USB: gadget: gadget_is_{dualspeed,otg} predicates and cleanup
This adds two small inlines to the gadget stack, which will often evaluate to compile-time constants. That can help shrink object code and remove #ifdeffery. - gadget_is_dualspeed(), currently always a compile-time constant (depending on which controller is selected). - gadget_is_otg(), usually a compile time "false", but this is a runtime test if the platform enables OTG (since it's reasonable to populate boards with different USB sockets). It also updates two peripheral controller drivers to use these: - fsl_usb2_udc, mostly OTG-related bugfixes: non-OTG devices must follow the rules about drawing VBUS power, and OTG ones need to reject invalid SET_FEATURE requests. - omap_udc, just scrubbing a bit of #ifdeffery. And also gadgetfs, which lost some #ifdefs and moved to a more standard handling of DEBUG and VERBOSE_DEBUG. The main benefits come from patches which will follow. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
a1d534bb23
commit
a4e3ef5597
@@ -1241,19 +1241,15 @@ static void pullup_enable(struct omap_udc *udc)
|
||||
udc->gadget.dev.parent->power.power_state = PMSG_ON;
|
||||
udc->gadget.dev.power.power_state = PMSG_ON;
|
||||
UDC_SYSCON1_REG |= UDC_PULLUP_EN;
|
||||
#ifndef CONFIG_USB_OTG
|
||||
if (!cpu_is_omap15xx())
|
||||
if (!gadget_is_otg(udc->gadget) && !cpu_is_omap15xx())
|
||||
OTG_CTRL_REG |= OTG_BSESSVLD;
|
||||
#endif
|
||||
UDC_IRQ_EN_REG = UDC_DS_CHG_IE;
|
||||
}
|
||||
|
||||
static void pullup_disable(struct omap_udc *udc)
|
||||
{
|
||||
#ifndef CONFIG_USB_OTG
|
||||
if (!cpu_is_omap15xx())
|
||||
if (!gadget_is_otg(udc->gadget) && !cpu_is_omap15xx())
|
||||
OTG_CTRL_REG &= ~OTG_BSESSVLD;
|
||||
#endif
|
||||
UDC_IRQ_EN_REG = UDC_DS_CHG_IE;
|
||||
UDC_SYSCON1_REG &= ~UDC_PULLUP_EN;
|
||||
}
|
||||
@@ -1390,7 +1386,7 @@ static void update_otg(struct omap_udc *udc)
|
||||
{
|
||||
u16 devstat;
|
||||
|
||||
if (!udc->gadget.is_otg)
|
||||
if (!gadget_is_otg(udc->gadget))
|
||||
return;
|
||||
|
||||
if (OTG_CTRL_REG & OTG_ID)
|
||||
|
Reference in New Issue
Block a user