From 43e98b082f9ea3c7daaf14fad32557ee045e7c02 Mon Sep 17 00:00:00 2001 From: Matthias Maennich Date: Wed, 20 Nov 2019 11:09:32 +0000 Subject: [PATCH] ANDROID: usb: gadget: configfs: fix compiler warning Commit 7a160e2b962b ("ANDROID: usb: gadget: configfs: Add Uevent to notify userspace") introduces android_setup and android_disconnect as alternatives to configfs_composite_setup and configfs_composite_disconnect in case CONFIG_USB_CONFIGFS_UEVENT is set. In case this config is set and in the presence of commit 1a1c851bbd70 ("usb: gadget: configfs: fix concurrent issue between composite APIs"), the configfs_* functions are unused and therefore compilers complain about that, e.g. common/drivers/usb/gadget/configfs.c:1486:12: warning: unused function 'configfs_composite_setup' [-Wunused-function] Fix that by conditionally compiling these functions. Bug: 144674477 Fixes: 7a160e2b962b ("ANDROID: usb: gadget: configfs: Add Uevent to notify userspace") Fixes: 1a1c851bbd70 ("usb: gadget: configfs: fix concurrent issue between composite APIs") Change-Id: Idb6bb726d676d0d03b920375fd48fba41b60bb2d Cc: Badhri Jagan Sridharan Signed-off-by: Matthias Maennich --- drivers/usb/gadget/configfs.c | 187 +++++++++++++++++----------------- 1 file changed, 95 insertions(+), 92 deletions(-) diff --git a/drivers/usb/gadget/configfs.c b/drivers/usb/gadget/configfs.c index efcbf28b93e0..e6a4516a2a75 100644 --- a/drivers/usb/gadget/configfs.c +++ b/drivers/usb/gadget/configfs.c @@ -1483,97 +1483,6 @@ static void configfs_composite_unbind(struct usb_gadget *gadget) spin_unlock_irqrestore(&gi->spinlock, flags); } -static int configfs_composite_setup(struct usb_gadget *gadget, - const struct usb_ctrlrequest *ctrl) -{ - struct usb_composite_dev *cdev; - struct gadget_info *gi; - unsigned long flags; - int ret; - - cdev = get_gadget_data(gadget); - if (!cdev) - return 0; - - gi = container_of(cdev, struct gadget_info, cdev); - spin_lock_irqsave(&gi->spinlock, flags); - cdev = get_gadget_data(gadget); - if (!cdev || gi->unbind) { - spin_unlock_irqrestore(&gi->spinlock, flags); - return 0; - } - - ret = composite_setup(gadget, ctrl); - spin_unlock_irqrestore(&gi->spinlock, flags); - return ret; -} - -static void configfs_composite_disconnect(struct usb_gadget *gadget) -{ - struct usb_composite_dev *cdev; - struct gadget_info *gi; - unsigned long flags; - - cdev = get_gadget_data(gadget); - if (!cdev) - return; - - gi = container_of(cdev, struct gadget_info, cdev); - spin_lock_irqsave(&gi->spinlock, flags); - cdev = get_gadget_data(gadget); - if (!cdev || gi->unbind) { - spin_unlock_irqrestore(&gi->spinlock, flags); - return; - } - - composite_disconnect(gadget); - spin_unlock_irqrestore(&gi->spinlock, flags); -} - -static void configfs_composite_suspend(struct usb_gadget *gadget) -{ - struct usb_composite_dev *cdev; - struct gadget_info *gi; - unsigned long flags; - - cdev = get_gadget_data(gadget); - if (!cdev) - return; - - gi = container_of(cdev, struct gadget_info, cdev); - spin_lock_irqsave(&gi->spinlock, flags); - cdev = get_gadget_data(gadget); - if (!cdev || gi->unbind) { - spin_unlock_irqrestore(&gi->spinlock, flags); - return; - } - - composite_suspend(gadget); - spin_unlock_irqrestore(&gi->spinlock, flags); -} - -static void configfs_composite_resume(struct usb_gadget *gadget) -{ - struct usb_composite_dev *cdev; - struct gadget_info *gi; - unsigned long flags; - - cdev = get_gadget_data(gadget); - if (!cdev) - return; - - gi = container_of(cdev, struct gadget_info, cdev); - spin_lock_irqsave(&gi->spinlock, flags); - cdev = get_gadget_data(gadget); - if (!cdev || gi->unbind) { - spin_unlock_irqrestore(&gi->spinlock, flags); - return; - } - - composite_resume(gadget); - spin_unlock_irqrestore(&gi->spinlock, flags); -} - #ifdef CONFIG_USB_CONFIGFS_UEVENT static int android_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *c) @@ -1645,7 +1554,101 @@ static void android_disconnect(struct usb_gadget *gadget) schedule_work(&gi->work); composite_disconnect(gadget); } -#endif + +#else // CONFIG_USB_CONFIGFS_UEVENT + +static int configfs_composite_setup(struct usb_gadget *gadget, + const struct usb_ctrlrequest *ctrl) +{ + struct usb_composite_dev *cdev; + struct gadget_info *gi; + unsigned long flags; + int ret; + + cdev = get_gadget_data(gadget); + if (!cdev) + return 0; + + gi = container_of(cdev, struct gadget_info, cdev); + spin_lock_irqsave(&gi->spinlock, flags); + cdev = get_gadget_data(gadget); + if (!cdev || gi->unbind) { + spin_unlock_irqrestore(&gi->spinlock, flags); + return 0; + } + + ret = composite_setup(gadget, ctrl); + spin_unlock_irqrestore(&gi->spinlock, flags); + return ret; +} + +static void configfs_composite_disconnect(struct usb_gadget *gadget) +{ + struct usb_composite_dev *cdev; + struct gadget_info *gi; + unsigned long flags; + + cdev = get_gadget_data(gadget); + if (!cdev) + return; + + gi = container_of(cdev, struct gadget_info, cdev); + spin_lock_irqsave(&gi->spinlock, flags); + cdev = get_gadget_data(gadget); + if (!cdev || gi->unbind) { + spin_unlock_irqrestore(&gi->spinlock, flags); + return; + } + + composite_disconnect(gadget); + spin_unlock_irqrestore(&gi->spinlock, flags); +} + +#endif // CONFIG_USB_CONFIGFS_UEVENT + +static void configfs_composite_suspend(struct usb_gadget *gadget) +{ + struct usb_composite_dev *cdev; + struct gadget_info *gi; + unsigned long flags; + + cdev = get_gadget_data(gadget); + if (!cdev) + return; + + gi = container_of(cdev, struct gadget_info, cdev); + spin_lock_irqsave(&gi->spinlock, flags); + cdev = get_gadget_data(gadget); + if (!cdev || gi->unbind) { + spin_unlock_irqrestore(&gi->spinlock, flags); + return; + } + + composite_suspend(gadget); + spin_unlock_irqrestore(&gi->spinlock, flags); +} + +static void configfs_composite_resume(struct usb_gadget *gadget) +{ + struct usb_composite_dev *cdev; + struct gadget_info *gi; + unsigned long flags; + + cdev = get_gadget_data(gadget); + if (!cdev) + return; + + gi = container_of(cdev, struct gadget_info, cdev); + spin_lock_irqsave(&gi->spinlock, flags); + cdev = get_gadget_data(gadget); + if (!cdev || gi->unbind) { + spin_unlock_irqrestore(&gi->spinlock, flags); + return; + } + + composite_resume(gadget); + spin_unlock_irqrestore(&gi->spinlock, flags); +} static const struct usb_gadget_driver configfs_driver_template = { .bind = configfs_composite_bind,