[PATCH V3 6/9] mtd: add a new field for ecc info in the nand_flash_dev{}

Huang Shijie b32955 at freescale.com
Thu Apr 25 04:56:41 EDT 2013


于 2013年04月25日 14:57, Brian Norris 写道:
>
> A bit late on this one, but is there a good reason this wasn't just 2
> separate 16-bit fields? We already have a few, and I don't see why
> this couldn't be the same.
>
I just want to make the ecc_strength/ecc_size more coupled for the 
nand_flash_dev{}.
If we spilit to two fields. It makes the nand_flash_ids[] less readable.
>> Signed-off-by: Huang Shijie<b32955 at freescale.com>
>> ---
>>   include/linux/mtd/nand.h |   10 ++++++++++
>>   1 files changed, 10 insertions(+), 0 deletions(-)
>>
>> diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h
>> index 063e517..f4c7777 100644
>> --- a/include/linux/mtd/nand.h
>> +++ b/include/linux/mtd/nand.h
>> @@ -624,6 +624,10 @@ struct nand_chip {
>>          { .name = (nm), {{ .dev_id = (devid) }}, .chipsize = (chipsz), \
>>            .options = (opts) }
>>
>> +#define NAND_ECC_INFO(strength, size)  (((strength)<<  16) | (size))
> We could redefine this:
>
> #define NAND_ECC_INFO(strength, size) .ecc_strength = (strength),
> .ecc_size = (size)
Do this type of macro could be accepted by the kernel?

I think your macro needs a pair of bracket, such as:
#define NAND_ECC_INFO(strength, size) (.ecc_strength = (strength), 
.ecc_size = (size))

But if we add the brackets, we will meet a compiler error.




thanks
Huang Shijie





More information about the linux-mtd mailing list