Messages in this thread | | | From | Abhyuday Godhasara <> | Subject | RE: [PATCH 1/6] firmware: xilinx: add register notifier in zynqmp firmware | Date | Fri, 25 Jun 2021 13:37:18 +0000 |
| |
Hi,
> -----Original Message----- > From: Michal Simek <michal.simek@xilinx.com> > Sent: Monday, June 21, 2021 5:16 PM > To: Abhyuday Godhasara <agodhasa@xilinx.com>; Michal Simek > <michals@xilinx.com> > Cc: Rajan Vaja <RAJANV@xilinx.com>; Manish Narani <MNARANI@xilinx.com>; > zou_wei@huawei.com; Amit Sunil Dhamne <amitsuni@xlnx.xilinx.com>; Sai > Krishna Potthuri <lakshmis@xilinx.com>; Jiaying Liang <jliang@xilinx.com>; > linux-kernel@vger.kernel.org; linux-arm-kernel@lists.infradead.org; Tejas Patel > <tejasp@xlnx.xilinx.com> > Subject: Re: [PATCH 1/6] firmware: xilinx: add register notifier in zynqmp > firmware > > > > On 5/28/21 5:59 PM, Abhyuday Godhasara wrote: > > In zynqmp-firmware, register notifier is not supported, add support of > > register notifier in zynqmp-firmware. > > > > Signed-off-by: Tejas Patel <tejas.patel@xilinx.com> > > Signed-off-by: Abhyuday Godhasara <abhyuday.godhasara@xilinx.com> > > --- > > drivers/firmware/xilinx/zynqmp-debug.c | 2 +- > > drivers/firmware/xilinx/zynqmp.c | 23 +++++++++++++++++++++++ > > include/linux/firmware/xlnx-zynqmp.h | 11 ++++++++++- > > 3 files changed, 34 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/firmware/xilinx/zynqmp-debug.c > > b/drivers/firmware/xilinx/zynqmp-debug.c > > index 99606b3..7841cb7 100644 > > --- a/drivers/firmware/xilinx/zynqmp-debug.c > > +++ b/drivers/firmware/xilinx/zynqmp-debug.c > > @@ -2,7 +2,7 @@ > > /* > > * Xilinx Zynq MPSoC Firmware layer for debugfs APIs > > * > > - * Copyright (C) 2014-2018 Xilinx, Inc. > > + * Copyright (C) 2014-2021 Xilinx, Inc. > > no reason for this change when you don't change this file. [Abhyuday] I will remove this in next patch series.
> > > * > > * Michal Simek <michal.simek@xilinx.com> > > * Davorin Mista <davorin.mista@aggios.com> diff --git > > a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c > > index 15b13832..33f190e 100644 > > --- a/drivers/firmware/xilinx/zynqmp.c > > +++ b/drivers/firmware/xilinx/zynqmp.c > > @@ -1037,6 +1037,29 @@ int zynqmp_pm_aes_engine(const u64 address, > u32 > > *out) EXPORT_SYMBOL_GPL(zynqmp_pm_aes_engine); > > > > /** > > + * zynqmp_pm_register_notifier() - PM API for register a subsystem > > + * to be notified about specific > > + * event/error. > > + * @node: Node ID to which the event is related. > > + * @event: Event Mask of Error events for which wants to get notified. > > + * @wake: Wake subsystem upon capturing the event if value 1 > > + * @enable: Enable the registration for value 1, disable for value 0 > > + * > > + * This function is used to register/un-register for particular > > + node-event > > + * combination in firmware. > > + * > > + * Return: Returns status, either success or error+reason */ > > + > > +int zynqmp_pm_register_notifier(const u32 node, const u32 event, > > + const u32 wake, const u32 enable) { > > + return zynqmp_pm_invoke_fn(PM_REGISTER_NOTIFIER, node, event, > > + wake, enable, NULL); > > +} > > +EXPORT_SYMBOL_GPL(zynqmp_pm_register_notifier); > > + > > +/** > > * zynqmp_pm_system_shutdown - PM call to request a system shutdown or > restart > > * @type: Shutdown or restart? 0 for shutdown, 1 for restart > > * @subtype: Specifies which system should be restarted or shut down > > diff --git a/include/linux/firmware/xlnx-zynqmp.h > > b/include/linux/firmware/xlnx-zynqmp.h > > index 9d1a5c1..6557832 100644 > > --- a/include/linux/firmware/xlnx-zynqmp.h > > +++ b/include/linux/firmware/xlnx-zynqmp.h > > @@ -2,7 +2,7 @@ > > /* > > * Xilinx Zynq MPSoC Firmware layer > > * > > - * Copyright (C) 2014-2019 Xilinx > > + * Copyright (C) 2014-2021 Xilinx > > * > > * Michal Simek <michal.simek@xilinx.com> > > * Davorin Mista <davorin.mista@aggios.com> @@ -62,6 +62,7 @@ > > > > enum pm_api_id { > > PM_GET_API_VERSION = 1, > > + PM_REGISTER_NOTIFIER = 5, > > PM_SYSTEM_SHUTDOWN = 12, > > PM_REQUEST_NODE = 13, > > PM_RELEASE_NODE = 14, > > @@ -411,6 +412,8 @@ int zynqmp_pm_pinctrl_get_config(const u32 pin, > const u32 param, > > u32 *value); > > int zynqmp_pm_pinctrl_set_config(const u32 pin, const u32 param, > > u32 value); > > +int zynqmp_pm_register_notifier(const u32 node, const u32 event, > > + const u32 wake, const u32 enable); > > #else > > static inline int zynqmp_pm_get_api_version(u32 *version) { @@ > > -622,6 +625,12 @@ static inline int zynqmp_pm_pinctrl_set_config(const > > u32 pin, const u32 param, { > > return -ENODEV; > > } > > + > > +static inline int zynqmp_pm_register_notifier(const u32 node, const u32 > event, > > + const u32 wake, const u32 enable) > { > > + return -ENODEV; > > +} > > #endif > > > > #endif /* __FIRMWARE_ZYNQMP_H__ */ > > > > M Thanks, Abhyuday
| |