misc: rtsx_usb: Use USB remote wakeup signaling for card insertion detection
Although rtsx_usb doesn't support card removal detection, card insertion will resume rtsx_usb by USB remote wakeup signaling. When rtsx_usb gets resumed, also resumes its child devices, rtsx_usb_sdmmc and rtsx_usb_ms, to notify them there's a card in its slot. Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
01a7e8e066
commit
883a87ddf2
@ -723,8 +723,15 @@ static int rtsx_usb_suspend(struct usb_interface *intf, pm_message_t message)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int rtsx_usb_resume_child(struct device *dev, void *data)
|
||||||
|
{
|
||||||
|
pm_request_resume(dev);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int rtsx_usb_resume(struct usb_interface *intf)
|
static int rtsx_usb_resume(struct usb_interface *intf)
|
||||||
{
|
{
|
||||||
|
device_for_each_child(&intf->dev, NULL, rtsx_usb_resume_child);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -734,6 +741,7 @@ static int rtsx_usb_reset_resume(struct usb_interface *intf)
|
|||||||
(struct rtsx_ucr *)usb_get_intfdata(intf);
|
(struct rtsx_ucr *)usb_get_intfdata(intf);
|
||||||
|
|
||||||
rtsx_usb_reset_chip(ucr);
|
rtsx_usb_reset_chip(ucr);
|
||||||
|
device_for_each_child(&intf->dev, NULL, rtsx_usb_resume_child);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user