Hi CK,
On Fri, 2020-09-04 at 15:11 +0800, CK Hu wrote:
> Hi, Chunfeng:
> 
> On Thu, 2020-09-03 at 11:34 +0800, Chunfeng Yun wrote:
> > From: CK Hu <[email protected]>
> > 
> > add support runtime pm feature
> > 
> > Signed-off-by: Zhanyong Wang <[email protected]>
> > Signed-off-by: Chunfeng Yun <[email protected]>
> > ---
> >  drivers/usb/host/xhci-mtk.c | 446 
> > +++++++++++++++++++++++++++++++++++++++++++-
> >  drivers/usb/host/xhci-mtk.h |  14 ++
> >  2 files changed, 455 insertions(+), 5 deletions(-)
> >  mode change 100644 => 100755 drivers/usb/host/xhci-mtk.h
> > 
> 
> [snip]
> 
> > @@ -562,6 +794,31 @@ static int xhci_mtk_probe(struct platform_device *pdev)
> >     if (ret)
> >             goto dealloc_usb2_hcd;
> >  
> > +   INIT_DELAYED_WORK(&mtk->seal, xhci_mtk_seal_work);
> > +   snprintf(mtk->seal_descr, sizeof(mtk->seal_descr), "seal%s:usb%d",
> > +            hcd->driver->description, hcd->self.busnum);
> > +   ret = devm_request_irq(mtk->seal_irq, &xhci_mtk_seal_irq,
> > +                     IRQF_TRIGGER_FALLING, mtk->seal_descr, mtk);
> 
> In interrupt.h [1], devm_request_irq() need 6 parameters:
> 
> static inline int __must_check
> devm_request_irq(struct device *dev, unsigned int irq, irq_handler_t
> handler,
>                unsigned long irqflags, const char *devname, void *dev_id)
> {
>       return devm_request_threaded_irq(dev, irq, handler, NULL, irqflags,
>                                        devname, dev_id);
> }
> 
Will fix it, thanks
> 
> [1]
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/interrupt.h?h=v5.9-rc1
> 
> Regards,
> CK
> 
> > +   if (ret != 0) {
> > +           dev_err(dev, "seal request interrupt %d failed\n",
> > +                   mtk->seal_irq);
> > +           goto dealloc_usb2_hcd;
> > +   }
> > +   xhci_mtk_seal_wakeup_enable(mtk, false);
> > +
> > +   device_enable_async_suspend(dev);
> > +   xhci_mtk_runtime_ready = 1;
> > +
> > +   ret = add_power_attributes(dev);
> > +   if (ret)
> > +           goto dealloc_usb2_hcd;
> > +
> > +   pm_runtime_mark_last_busy(dev);
> > +   pm_runtime_put_autosuspend(dev);
> > +
> > +   dev_dbg(dev, "%s: xhci_mtk_runtime_ready %i",
> > +            __func__, xhci_mtk_runtime_ready);
> > +
> >     return 0;
> >  
> >  dealloc_usb2_hcd:
> > @@ -584,7 +841,7 @@ static int xhci_mtk_probe(struct platform_device *pdev)
> >     xhci_mtk_ldos_disable(mtk);
> >  
> >  disable_pm:
> > -   pm_runtime_put_sync(dev);
> > +   pm_runtime_put_sync_autosuspend(dev);
> >     pm_runtime_disable(dev);
> >     return ret;
> >  }
> 
> 
> 

Reply via email to