[U-Boot] [PATCH v3 1/5] kirkwood: add save functionality kirkwood_mpp_conf function

Prafulla Wadaskar prafulla at marvell.com
Fri Jun 1 10:46:06 CEST 2012



> -----Original Message-----
> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
> Sent: 01 June 2012 12:33
> To: uboot at lukaperkov.net
> Cc: Prafulla Wadaskar; Brunck, Holger; u-boot at lists.denx.de
> Subject: Re: [U-Boot] [PATCH v3 1/5] kirkwood: add save functionality
> kirkwood_mpp_conf function
> 
> Hi Luka,
> 
> On 06/01/2012 01:02 AM, Luka Perkov wrote:
> > Hi Valentin,
> >
> > On Thu, May 31, 2012 at 04:17:52PM +0200, Valentin Longchamp wrote:
> >> If a second non NULL argument is given to the kirkwood_mpp_conf
> >> function, it will be used to store the current configuration of the
> MPP
> >> registers. mpp_save  must be a preallocated table of the same size
> as
> >> mpp_list and it must be zero terminated as well.
> >>
> >> A later call to kirkwood_mpp_conf function with this saved list as
> first
> >> (mpp_conf) argment will set the configuration back.
> >>
> >> Signed-off-by: Valentin Longchamp <valentin.longchamp at keymile.com>
> >> cc: Holger Brunck <holger.brunck at keymile.com>
> >> cc: Prafulla Wadaskar <prafulla at marvell.com>
> >> ---
> >>  arch/arm/cpu/arm926ejs/kirkwood/mpp.c    |   14 ++++++++++++--
> >>  arch/arm/include/asm/arch-kirkwood/mpp.h |    2 +-
> >>  2 files changed, 13 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/arch/arm/cpu/arm926ejs/kirkwood/mpp.c
> b/arch/arm/cpu/arm926ejs/kirkwood/mpp.c
> >> index 3da6c98..158ea84 100644
> >> --- a/arch/arm/cpu/arm926ejs/kirkwood/mpp.c
> >> +++ b/arch/arm/cpu/arm926ejs/kirkwood/mpp.c
> >> @@ -31,11 +31,11 @@ static u32 kirkwood_variant(void)
> >>  #define MPP_CTRL(i)	(KW_MPP_BASE + (i* 4))
> >>  #define MPP_NR_REGS	(1 + MPP_MAX/8)
> >>
> >> -void kirkwood_mpp_conf(u32 *mpp_list)
> >> +void kirkwood_mpp_conf(u32 *mpp_list, u32 *mpp_save)
> >>  {
> >>  	u32 mpp_ctrl[MPP_NR_REGS];
> >>  	unsigned int variant_mask;
> >> -	int i;
> >> +	int i, save = 0;
> >>
> >>  	variant_mask = kirkwood_variant();
> >>  	if (!variant_mask)
> >> @@ -48,10 +48,13 @@ void kirkwood_mpp_conf(u32 *mpp_list)
> >>  	}
> >>  	debug("\n");
> >>
> >> +	if (mpp_save)
> >> +		save = 1;
> >>
> >>  	while (*mpp_list) {
> >>  		unsigned int num = MPP_NUM(*mpp_list);
> >>  		unsigned int sel = MPP_SEL(*mpp_list);
> >> +		unsigned int sel_save;
> >>  		int shift;
> >>
> >>  		if (num > MPP_MAX) {
> >> @@ -66,6 +69,13 @@ void kirkwood_mpp_conf(u32 *mpp_list)
> >>  		}
> >>
> >>  		shift = (num & 7) << 2;
> >> +
> >> +		if (save) {
> >
> > Why using new variable if it's only used in one place? Why not use
> this
> > here:
> >
> > 		if (mpp_save) {
> >
> > Then we don't need save variable at all.
> >
> 
> Yeah you are right, I can directly test on mpp_save, since it should
> remain NULL
> during the whole while loop if NULL at the beginning.

Pls port v4 with this fix, rest of the patch series looks okay to me.

Regards..
Prafulla . . .


More information about the U-Boot mailing list