On Tue, 13 Aug 2013, Jack Pham wrote: > commit 9841f37a1c ("usb: ehci: Add support for SINGLE_STEP_SET_FEATURE > test of EHSET") added additional code to the EHCI hub driver but it is > anticipated to only have a limited audience (e.g. embedded silicon > vendors and integrators). Avoid subjecting all EHCI (and in the future > maybe xHCI/OHCI, etc.) HCD users to code bloat by conditionally > compiling the EHSET-specific additions with a new Kconfig option, > CONFIG_USB_HCD_TEST_MODE. > > Cc: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> > Signed-off-by: Jack Pham <jackp@xxxxxxxxxxxxxx> > --- > drivers/usb/host/Kconfig | 17 +++++++++++++++++ > drivers/usb/host/ehci-hub.c | 8 +++++++- > drivers/usb/host/ehci-q.c | 2 ++ > 3 files changed, 26 insertions(+), 1 deletions(-) > > diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig > index cf521d6..4b6ff21 100644 > --- a/drivers/usb/host/Kconfig > +++ b/drivers/usb/host/Kconfig > @@ -722,3 +722,20 @@ config USB_HCD_SSB > for ehci and ohci. > > If unsure, say N. > + > +config USB_HCD_TEST_MODE > + bool "HCD test mode support" > + ---help--- > + Say 'Y' to enable additional software test modes that may be > + supported by the host controller drivers. > + > + One such test mode is the Embedded High-speed Host Electrical Test > + (EHSET) for EHCI host controller hardware, specifically the "Single > + Step Set Feature" test. Typically this will be enabled for On-the-Go > + or embedded hosts that need to undergo USB-IF compliance testing with > + the aid of special testing hardware. In the future, this may expand > + to include other tests that require support from a HCD driver. > + > + This option is of interest only to developers who need to validate > + their USB hardware designs. It is not needed for normal use. If > + unsure, say N. > diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c > index 9b222e4..d0edf53 100644 > --- a/drivers/usb/host/ehci-hub.c > +++ b/drivers/usb/host/ehci-hub.c > @@ -711,6 +711,8 @@ ehci_hub_descriptor ( > } > > /*-------------------------------------------------------------------------*/ > +#ifdef CONFIG_USB_HCD_TEST_MODE > + > #define EHSET_TEST_SINGLE_STEP_SET_FEATURE 0x06 > > static void usb_ehset_completion(struct urb *urb) > @@ -846,6 +848,7 @@ cleanup: > kfree(buf); > return retval; > } > +#endif /* CONFIG_USB_HCD_TEST_MODE */ > /*-------------------------------------------------------------------------*/ > > static int ehci_hub_control ( > @@ -1221,13 +1224,16 @@ static int ehci_hub_control ( > * about the EHCI-specific stuff. > */ > case USB_PORT_FEAT_TEST: > +#ifdef CONFIG_USB_HCD_TEST_MODE > if (selector == EHSET_TEST_SINGLE_STEP_SET_FEATURE) { > spin_unlock_irqrestore(&ehci->lock, flags); > retval = ehset_single_step_set_feature(hcd, > wIndex); > spin_lock_irqsave(&ehci->lock, flags); > break; > - } else if (!selector || selector > 5) > + } > +#endif > + if (!selector || selector > 5) > goto error; > spin_unlock_irqrestore(&ehci->lock, flags); > ehci_quiesce(ehci); > diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c > index 702a0e9..c8d432f 100644 > --- a/drivers/usb/host/ehci-q.c > +++ b/drivers/usb/host/ehci-q.c > @@ -1144,6 +1144,7 @@ submit_async ( > } > > /*-------------------------------------------------------------------------*/ > +#ifdef CONFIG_USB_HCD_TEST_MODE > /* > * This function creates the qtds and submits them for the > * SINGLE_STEP_SET_FEATURE Test. > @@ -1243,6 +1244,7 @@ cleanup: > qtd_list_free(ehci, urb, head); > return -1; > } > +#endif /* CONFIG_USB_HCD_TEST_MODE */ > > /*-------------------------------------------------------------------------*/ > Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html