On Fri, 10 Oct 2014, Kevin Cernekee wrote:

> OHCI_QUIRK_FRAME_NO is currently set under either of the following
> conditions:
> 
> 1) If a ppc-of-ohci DT node indicates a compatible string of
> "fsl,mpc5200-ohci" or "mpc5200-ohci"
> 
> 2) If usb_ohci_pdata->no_big_frame_no is set
> 
> For #1, the affected platforms already enable CONFIG_PPC_MPC52xx.
> For #2, there are currently no in-tree users.
> 
> So we can safely remove the #ifdef, and thereby allow OHCI_QUIRK_FRAME_NO
> to be used by other (non-PPC) platforms that have the same property.
> bcm63xx and bcm3384 are two such users.

Sorry, but I can't understand this patch description.  What #ifdef does 
it refer to?

By comparing the description with the patch, it looks like you _wanted_ 
to say something along these lines:

        The bcm63xx and bcm3384 platforms need to set 
        OHCI_QUIRK_FRAME_NO, but they are non-PPC platforms and
        don't enable CONFIG_PPC_MPC52xx.  Therefore this patch changes 
        the code that uses OHCI_QUIRK_FRAME_NO, making it not depend
        on CONFIG_PPC_MPC52xx.

Does that properly describe what you are doing?

Alan Stern

> Signed-off-by: Kevin Cernekee <[email protected]>
> ---
>  drivers/usb/host/ohci.h | 19 +++++++++----------
>  1 file changed, 9 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/usb/host/ohci.h b/drivers/usb/host/ohci.h
> index 59f4245..bc46228 100644
> --- a/drivers/usb/host/ohci.h
> +++ b/drivers/usb/host/ohci.h
> @@ -647,23 +647,22 @@ static inline u32 hc32_to_cpup (const struct ohci_hcd 
> *ohci, const __hc32 *x)
>  
>  /*-------------------------------------------------------------------------*/
>  
> -/* HCCA frame number is 16 bits, but is accessed as 32 bits since not all
> - * hardware handles 16 bit reads.  That creates a different confusion on
> - * some big-endian SOC implementations.  Same thing happens with PSW access.
> +/*
> + * The HCCA frame number is 16 bits, but is accessed as 32 bits since not all
> + * hardware handles 16 bit reads.  Depending on the SoC implementation, the
> + * frame number can wind up in either bits [31:16] (default) or
> + * [15:0] (OHCI_QUIRK_FRAME_NO) on big endian hosts.
> + *
> + * Somewhat similarly, the 16-bit PSW fields in a transfer descriptor are
> + * reordered on BE.
>   */
>  
> -#ifdef CONFIG_PPC_MPC52xx
> -#define big_endian_frame_no_quirk(ohci)      (ohci->flags & 
> OHCI_QUIRK_FRAME_NO)
> -#else
> -#define big_endian_frame_no_quirk(ohci)      0
> -#endif
> -
>  static inline u16 ohci_frame_no(const struct ohci_hcd *ohci)
>  {
>       u32 tmp;
>       if (big_endian_desc(ohci)) {
>               tmp = be32_to_cpup((__force __be32 *)&ohci->hcca->frame_no);
> -             if (!big_endian_frame_no_quirk(ohci))
> +             if (!(ohci->flags & OHCI_QUIRK_FRAME_NO))
>                       tmp >>= 16;
>       } else
>               tmp = le32_to_cpup((__force __le32 *)&ohci->hcca->frame_no);
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to