On Wed, Jan 08, 2020 at 02:41:40PM +0300, Mika Westerberg wrote: > This converts the power button driver to use the new SCU IPC API where > the SCU IPC instance is passed to the functions. > Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> > --- > drivers/platform/x86/intel_mid_powerbtn.c | 15 +++++++++++---- > 1 file changed, 11 insertions(+), 4 deletions(-) > > diff --git a/drivers/platform/x86/intel_mid_powerbtn.c b/drivers/platform/x86/intel_mid_powerbtn.c > index 6f436836fe50..1fdcdef1d89f 100644 > --- a/drivers/platform/x86/intel_mid_powerbtn.c > +++ b/drivers/platform/x86/intel_mid_powerbtn.c > @@ -46,6 +46,7 @@ struct mid_pb_ddata { > unsigned short mirqlvl1_addr; > unsigned short pbstat_addr; > u8 pbstat_mask; > + struct intel_scu_ipc_dev *scu; > int (*setup)(struct mid_pb_ddata *ddata); > }; > > @@ -55,7 +56,8 @@ static int mid_pbstat(struct mid_pb_ddata *ddata, int *value) > int ret; > u8 pbstat; > > - ret = intel_scu_ipc_ioread8(ddata->pbstat_addr, &pbstat); > + ret = intel_scu_ipc_dev_ioread8(ddata->scu, ddata->pbstat_addr, > + &pbstat); > if (ret) > return ret; > > @@ -67,14 +69,15 @@ static int mid_pbstat(struct mid_pb_ddata *ddata, int *value) > > static int mid_irq_ack(struct mid_pb_ddata *ddata) > { > - return intel_scu_ipc_update_register(ddata->mirqlvl1_addr, 0, MSIC_PWRBTNM); > + return intel_scu_ipc_dev_update(ddata->scu, ddata->mirqlvl1_addr, 0, > + MSIC_PWRBTNM); > } > > static int mrfld_setup(struct mid_pb_ddata *ddata) > { > /* Unmask the PBIRQ and MPBIRQ on Tangier */ > - intel_scu_ipc_update_register(BCOVE_PBIRQ, 0, MSIC_PWRBTNM); > - intel_scu_ipc_update_register(BCOVE_PBIRQMASK, 0, MSIC_PWRBTNM); > + intel_scu_ipc_dev_update(ddata->scu, BCOVE_PBIRQ, 0, MSIC_PWRBTNM); > + intel_scu_ipc_dev_update(ddata->scu, BCOVE_PBIRQMASK, 0, MSIC_PWRBTNM); > > return 0; > } > @@ -161,6 +164,10 @@ static int mid_pb_probe(struct platform_device *pdev) > return error; > } > > + ddata->scu = devm_intel_scu_ipc_dev_get(&pdev->dev); > + if (!ddata->scu) > + return -EPROBE_DEFER; > + > error = devm_request_threaded_irq(&pdev->dev, irq, NULL, mid_pb_isr, > IRQF_ONESHOT, DRIVER_NAME, ddata); > if (error) { > -- > 2.24.1 > -- With Best Regards, Andy Shevchenko