Re: [PATCH 10/27] mmc: vub300: Remove redundant suspend and resumecallbacks

From: Alan Stern
Date: Fri Sep 27 2013 - 12:22:51 EST


On Thu, 26 Sep 2013, Ulf Hansson wrote:

> Suspend and resume of cards are handled by the protocol layer and
> consequently the mmc_suspend|resume_host APIs are marked as deprecated.
>
> While moving away from using the deprecated APIs, there are nothing
> left to be done for the suspend and resume callbacks, so remove them.
>
> Cc: Tony Olech <tony.olech@xxxxxxxxxxxxxxxxxxxxxx>
> Cc: linux-usb@xxxxxxxxxxxxxxx
> Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
> ---
> drivers/mmc/host/vub300.c | 30 ------------------------------
> 1 file changed, 30 deletions(-)
>
> diff --git a/drivers/mmc/host/vub300.c b/drivers/mmc/host/vub300.c
> index e9028ad..db99edc 100644
> --- a/drivers/mmc/host/vub300.c
> +++ b/drivers/mmc/host/vub300.c
> @@ -2389,34 +2389,6 @@ static void vub300_disconnect(struct usb_interface *interface)
> }
> }
>
> -#ifdef CONFIG_PM
> -static int vub300_suspend(struct usb_interface *intf, pm_message_t message)
> -{
> - struct vub300_mmc_host *vub300 = usb_get_intfdata(intf);
> - if (!vub300 || !vub300->mmc) {
> - return 0;
> - } else {
> - struct mmc_host *mmc = vub300->mmc;
> - mmc_suspend_host(mmc);
> - return 0;
> - }
> -}
> -
> -static int vub300_resume(struct usb_interface *intf)
> -{
> - struct vub300_mmc_host *vub300 = usb_get_intfdata(intf);
> - if (!vub300 || !vub300->mmc) {
> - return 0;
> - } else {
> - struct mmc_host *mmc = vub300->mmc;
> - mmc_resume_host(mmc);
> - return 0;
> - }
> -}
> -#else
> -#define vub300_suspend NULL
> -#define vub300_resume NULL
> -#endif
> static int vub300_pre_reset(struct usb_interface *intf)
> { /* NOT irq */
> struct vub300_mmc_host *vub300 = usb_get_intfdata(intf);
> @@ -2437,8 +2409,6 @@ static struct usb_driver vub300_driver = {
> .name = "vub300",
> .probe = vub300_probe,
> .disconnect = vub300_disconnect,
> - .suspend = vub300_suspend,
> - .resume = vub300_resume,
> .pre_reset = vub300_pre_reset,
> .post_reset = vub300_post_reset,
> .id_table = vub300_table,

You shouldn't do it this way. The USB core treats drivers differently
depending on whether their suspend and resume callbacks are defined.
If those method pointers are NULL, the driver will be treated as though
it doesn't support power management at all.

You should keep the pointers and the routines. The contents of the
routines can be removed, leaving nothing but a "return 0;" line.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/