Re: [PATCH] usb: host: add Kconfig option for EHSET

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux