[U-Boot-Users] [PATCH 08/13] SPARC: added SMC91111 driver in and out macros for LEON processors.
Daniel Hellstrom
daniel at gaisler.com
Mon Mar 31 16:40:47 CEST 2008
Ben Warren wrote:
> Daniel Hellstrom wrote:
>
>> Ben Warren wrote:
>>
>>
>>> I haven't looked at how all the funky macros in this patch are
>>> called, but it's generally considered good form to wrap multi-line
>>> macros with do {...} while(0) in order to avoid compiler issues.
>>> I'll NAK the patch for now based on this.
>>>
>>
>>
>> The Macros are used to read/write 8-,16-,32-bit words from the I/O
>> bus where the SMC MAC is. LEON2/3 is bigendian, so the macros swaps
>> the read and written data as well. The I/O bus is
>> non-cacheable so no force cache miss is needed here.
>>
>> I have made the do{}while(0) you asked for and updated patch 8 and my
>> repository:
>>
>>
>>
>
> Per the e-mail by A. Rubini, I guess this isn't necessary. Sorry for
> causing extra work for you. I'll pull this into the net tree today.
>
> regards,
> Ben
I agree with you both. However, some of the macros should not be
"expression statements" as they return nothing this is also indicated by
the inline function declared in drivers/net/smc91111.c:
static inline word SMC_inw(dword offset);
static inline void SMC_outw(word value, dword offset);
static inline byte SMC_inb(dword offset);
static inline void SMC_outb(byte value, dword offset);
static inline void SMC_insw(dword offset, volatile uchar* buf, dword len);
static inline void SMC_outsw(dword offset, uchar* buf, dword len);
I my last patch I let the only the "true" "expressions statements" have
the gcc slang Alessandro speak of.
I would prefer the last patch I sent, currently in the repository.
Best Regards,
Daniel Hellstrom
More information about the U-Boot
mailing list