[U-Boot] [PATCH 3/5] fsl: usb: make errata function common for PPC and ARM

Marek Vasut marex at denx.de
Fri May 27 14:48:51 CEST 2016


On 05/27/2016 07:14 AM, Sriram Dash wrote:
>> -----Original Message-----
>> From: Marek Vasut [mailto:marex at denx.de]
>> Sent: Thursday, May 26, 2016 5:51 PM
>> To: Sriram Dash <sriram.dash at nxp.com>; u-boot at lists.denx.de
>> Cc: york sun <york.sun at nxp.com>; albert.u.boot at aribaud.net; Rajesh Bhagat
>> <rajesh.bhagat at nxp.com>
>> Subject: Re: [PATCH 3/5] fsl: usb: make errata function common for PPC and ARM
>>
>> On 05/26/2016 07:59 AM, Sriram Dash wrote:
>>
>> Since there is no commit message, I have no clue what the rationale for this patch
>> is, sorry. Please explain.
>>
> 
> This patch adds support for ARM for the errata applicability checking code.
> Will take care in v2.
> 
>> Besides, I would much rather see a patch which moves all these static inline
>> functions into a dedicated C file and converts this header into just a list of
>> prototypes. I wouldn't be surprised if the U-Boot size dropped a bit too.
>>
> 
> Will move the function definitions to a new file in v2.
> Shall I place the file in drivers/usb/common/fsl_usb.c or drivers/usb/host/fsl_usb.c
> and keep fsl_usb.h at same place.

Most likely the former, since it's a common stuff used by some
platforms. The fsl_usb.h needs to stay. Make sure to use buildman
to test for breakage on powerpc.

> Please suggest.
> 
>>> Signed-off-by: Sriram Dash <sriram.dash at nxp.com>
>>> Signed-off-by: Rajesh Bhagat <rajesh.bhagat at nxp.com>
>>> ---
>>>  drivers/usb/common/fsl-dt-fixup.c |  1 +
>>>  include/fsl_usb.h                 | 51 ++++++++++++---------------------------
>>>  2 files changed, 17 insertions(+), 35 deletions(-)
>>>
>>> diff --git a/drivers/usb/common/fsl-dt-fixup.c
>>> b/drivers/usb/common/fsl-dt-fixup.c
>>> index 520130e..47e1049 100644
>>> --- a/drivers/usb/common/fsl-dt-fixup.c
>>> +++ b/drivers/usb/common/fsl-dt-fixup.c
>>> @@ -12,6 +12,7 @@
>>>  #include <usb.h>
>>>  #include <asm/io.h>
>>>  #include <hwconfig.h>
>>> +#include <fsl_errata.h>
>>>  #include <fsl_usb.h>
>>>  #include <fdt_support.h>
>>>
>>> diff --git a/include/fsl_usb.h b/include/fsl_usb.h index
>>> 187e384..d9db0ea 100644
>>> --- a/include/fsl_usb.h
>>> +++ b/include/fsl_usb.h
>>> @@ -86,13 +86,14 @@ struct ccsr_usb_phy {  #endif
>>>
>>>  /* USB Erratum Checking code */
>>> -#ifdef CONFIG_PPC
>>> +#if defined(CONFIG_PPC) || defined(CONFIG_ARM)
>>>  static inline bool has_dual_phy(void)  {
>>>  	u32 svr = get_svr();
>>>  	u32 soc = SVR_SOC_VER(svr);
>>>
>>>  	switch (soc) {
>>> +#ifdef CONFIG_PPC
>>>  	case SVR_T1023:
>>>  	case SVR_T1024:
>>>  	case SVR_T1013:
>>> @@ -109,6 +110,7 @@ static inline bool has_dual_phy(void)
>>>  	case SVR_T4160:
>>>  	case SVR_T4080:
>>>  		return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
>>> +#endif
>>>  	}
>>>
>>>  	return false;
>>> @@ -120,6 +122,7 @@ static inline bool has_erratum_a006261(void)
>>>  	u32 soc = SVR_SOC_VER(svr);
>>>
>>>  	switch (soc) {
>>> +#ifdef CONFIG_PPC
>>>  	case SVR_P1010:
>>>  		return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
>>>  	case SVR_P2041:
>>> @@ -145,6 +148,7 @@ static inline bool has_erratum_a006261(void)
>>>  		return IS_SVR_REV(svr, 1, 0);
>>>  	case SVR_P5040:
>>>  		return IS_SVR_REV(svr, 1, 0);
>>> +#endif
>>>  	}
>>>
>>>  	return false;
>>> @@ -156,6 +160,7 @@ static inline bool has_erratum_a007075(void)
>>>  	u32 soc = SVR_SOC_VER(svr);
>>>
>>>  	switch (soc) {
>>> +#ifdef CONFIG_PPC
>>>  	case SVR_B4860:
>>>  	case SVR_B4420:
>>>  		return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0); @@ -163,14
>>> +168,18 @@ static inline bool has_erratum_a007075(void)
>>>  		return IS_SVR_REV(svr, 1, 0);
>>>  	case SVR_P4080:
>>>  		return IS_SVR_REV(svr, 2, 0) || IS_SVR_REV(svr, 3, 0);
>>> +#endif
>>>  	}
>>>  	return false;
>>>  }
>>>
>>>  static inline bool has_erratum_a007798(void)  {
>>> +#ifdef CONFIG_PPC
>>>  	return SVR_SOC_VER(get_svr()) == SVR_T4240 &&
>>>  		IS_SVR_REV(get_svr(), 2, 0);
>>> +#endif
>>> +	return false;
>>>  }
>>>
>>>  static inline bool has_erratum_a007792(void) @@ -179,6 +188,7 @@
>>> static inline bool has_erratum_a007792(void)
>>>  	u32 soc = SVR_SOC_VER(svr);
>>>
>>>  	switch (soc) {
>>> +#ifdef CONFIG_PPC
>>>  	case SVR_T4240:
>>>  	case SVR_T4160:
>>>  	case SVR_T4080:
>>> @@ -193,6 +203,7 @@ static inline bool has_erratum_a007792(void)
>>>  	case SVR_T2080:
>>>  	case SVR_T2081:
>>>  		return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 1, 1);
>>> +#endif
>>>  	}
>>>  	return false;
>>>  }
>>> @@ -203,9 +214,11 @@ static inline bool has_erratum_a005697(void)
>>>  	u32 soc = SVR_SOC_VER(svr);
>>>
>>>  	switch (soc) {
>>> +#ifdef CONFIG_PPC
>>>  	case SVR_9131:
>>>  	case SVR_9132:
>>>  		return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 1, 1);
>>> +#endif
>>>  	}
>>>  	return false;
>>>  }
>>> @@ -216,6 +229,7 @@ static inline bool has_erratum_a004477(void)
>>>  	u32 soc = SVR_SOC_VER(svr);
>>>
>>>  	switch (soc) {
>>> +#ifdef CONFIG_PPC
>>>  	case SVR_P1010:
>>>  		return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
>>>  	case SVR_P1022:
>>> @@ -230,44 +244,11 @@ static inline bool has_erratum_a004477(void)
>>>  		return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
>>>  	case SVR_P4080:
>>>  		return IS_SVR_REV(svr, 2, 0) || IS_SVR_REV(svr, 3, 0);
>>> +#endif
>>>  	}
>>>
>>>  	return false;
>>>  }
>>> -#else
>>> -static inline bool has_dual_phy(void) -{
>>> -	return false;
>>> -}
>>> -
>>> -static inline bool has_erratum_a006261(void) -{
>>> -	return false;
>>> -}
>>> -
>>> -static inline bool has_erratum_a007075(void) -{
>>> -	return false;
>>> -}
>>>
>>> -static inline bool has_erratum_a007798(void) -{
>>> -	return false;
>>> -}
>>> -
>>> -static inline bool has_erratum_a007792(void) -{
>>> -	return false;
>>> -}
>>> -
>>> -static inline bool has_erratum_a005697(void) -{
>>> -	return false;
>>> -}
>>> -
>>> -static inline bool has_erratum_a004477(void) -{
>>> -	return false;
>>> -}
>>>  #endif
>>>  #endif /*_ASM_FSL_USB_H_ */
>>>
>>
>>
>> --
>> Best regards,
>> Marek Vasut


-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list