lkml.org 
[lkml]   [2019]   [Dec]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 3/5] firmware: xilinx: Add system shutdown API interface
    From
    Date
    On 05. 12. 19 0:29, Jolly Shah wrote:
    > From: Rajan Vaja <rajan.vaja@xilinx.com>
    >
    > Add system shutdown API interface which asks firmware to
    > perform system shutdown/restart.
    >
    > Signed-off-by: Michal Simek <michal.simek@xilinx.com>
    > Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
    > Signed-off-by: Jolly Shah <jolly.shah@xilinx.com>
    > ---
    > drivers/firmware/xilinx/zynqmp.c | 14 ++++++++++++++
    > include/linux/firmware/xlnx-zynqmp.h | 4 +++-
    > 2 files changed, 17 insertions(+), 1 deletion(-)
    >
    > diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c
    > index 9836174..8dcf5a4 100644
    > --- a/drivers/firmware/xilinx/zynqmp.c
    > +++ b/drivers/firmware/xilinx/zynqmp.c
    > @@ -690,6 +690,19 @@ static int zynqmp_pm_config_reg_access(u32 register_access_id, u32 address,
    > address, mask, value, out);
    > }
    >
    > +/**
    > + * 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
    > + *
    > + * Return: Returns status, either success or error+reason
    > + */
    > +static int zynqmp_pm_system_shutdown(const u32 type, const u32 subtype)
    > +{
    > + return zynqmp_pm_invoke_fn(PM_SYSTEM_SHUTDOWN, type, subtype,
    > + 0, 0, NULL);
    > +}
    > +
    > static const struct zynqmp_eemi_ops eemi_ops = {
    > .get_api_version = zynqmp_pm_get_api_version,
    > .get_chipid = zynqmp_pm_get_chipid,
    > @@ -714,6 +727,7 @@ static const struct zynqmp_eemi_ops eemi_ops = {
    > .fpga_load = zynqmp_pm_fpga_load,
    > .fpga_get_status = zynqmp_pm_fpga_get_status,
    > .register_access = zynqmp_pm_config_reg_access,
    > + .system_shutdown = zynqmp_pm_system_shutdown,
    > };
    >
    > /**
    > diff --git a/include/linux/firmware/xlnx-zynqmp.h b/include/linux/firmware/xlnx-zynqmp.h
    > index bf6e9db..b96ea5d 100644
    > --- a/include/linux/firmware/xlnx-zynqmp.h
    > +++ b/include/linux/firmware/xlnx-zynqmp.h
    > @@ -61,7 +61,8 @@
    >
    > enum pm_api_id {
    > PM_GET_API_VERSION = 1,
    > - PM_REQUEST_NODE = 13,
    > + PM_SYSTEM_SHUTDOWN = 12,
    > + PM_REQUEST_NODE,
    > PM_RELEASE_NODE,
    > PM_SET_REQUIREMENT,
    > PM_RESET_ASSERT = 17,
    > @@ -322,6 +323,7 @@ struct zynqmp_eemi_ops {
    > const enum zynqmp_pm_request_ack ack);
    > int (*register_access)(u32 register_access_id, u32 address,
    > u32 mask, u32 value, u32 *out);
    > + int (*system_shutdown)(const u32 type, const u32 subtype);
    > };
    >
    > int zynqmp_pm_invoke_fn(u32 pm_api_id, u32 arg0, u32 arg1,
    >

    This looks good to me.
    Acked-by: Michal Simek <michal.simek@xilinx.com>

    Thanks,
    Michal

    \
     
     \ /
      Last update: 2019-12-18 15:24    [W:2.784 / U:0.104 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site