Re: [PATCH v4 10/15] mtd: nand: move Micron specific init logic in nand_micron.c
From: Marek Vasut
Date: Wed Jan 04 2017 - 16:24:29 EST
On 01/04/2017 06:58 PM, Boris Brezillon wrote:
> On Wed, 4 Jan 2017 18:22:31 +0100
> Marek Vasut <marek.vasut@xxxxxxxxx> wrote:
>
>> On 01/04/2017 06:13 PM, Boris Brezillon wrote:
>>> On Wed, 4 Jan 2017 16:15:46 +0100
>>> Marek Vasut <marek.vasut@xxxxxxxxx> wrote:
>>>
>>>> On 01/03/2017 02:01 PM, Boris Brezillon wrote:
>>>>> Move Micron specific initialization logic into nand_micron.c. This is
>>>>> part of the "separate vendor specific code from core" cleanup process.
>>>>>
>>>>> Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
>>>>
>>>> [...]
>>>>
>>>>> diff --git a/drivers/mtd/nand/nand_micron.c b/drivers/mtd/nand/nand_micron.c
>>>>> new file mode 100644
>>>>> index 000000000000..ddb9adf12c21
>>>>> --- /dev/null
>>>>> +++ b/drivers/mtd/nand/nand_micron.c
>>>>> @@ -0,0 +1,83 @@
>>>>> +/*
>>>>> + * Copyright (C) 2013 Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
>>>>
>>>> 2013-2017 ?
>>>
>>> 2017, indeed.
>>>
>>>>
>>>>> + * This program is free software; you can redistribute it and/or modify
>>>>> + * it under the terms of the GNU General Public License as published by
>>>>> + * the Free Software Foundation; either version 2 of the License, or
>>>>> + * (at your option) any later version.
>>>>> + *
>>>>> + * This program is distributed in the hope that it will be useful,
>>>>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>>>>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
>>>>> + * GNU General Public License for more details.
>>>>> + */
>>>>> +
>>>>> +#include <linux/mtd/nand.h>
>>>>> +
>>>>> +struct nand_onfi_vendor_micron {
>>>>> + u8 two_plane_read;
>>>>> + u8 read_cache;
>>>>> + u8 read_unique_id;
>>>>> + u8 dq_imped;
>>>>> + u8 dq_imped_num_settings;
>>>>> + u8 dq_imped_feat_addr;
>>>>> + u8 rb_pulldown_strength;
>>>>> + u8 rb_pulldown_strength_feat_addr;
>>>>> + u8 rb_pulldown_strength_num_settings;
>>>>> + u8 otp_mode;
>>>>> + u8 otp_page_start;
>>>>> + u8 otp_data_prot_addr;
>>>>> + u8 otp_num_pages;
>>>>> + u8 otp_feat_addr;
>>>>> + u8 read_retry_options;
>>>>> + u8 reserved[72];
>>>>> + u8 param_revision;
>>>>> +} __packed;
>>>>
>>>> Is this __packed really needed?
>>>>
>>>
>>> I'm just copying an existing structure. And yes, it's probably unneeded
>>> since all fields are u8, and the struct size in a multiple of 8 bytes,
>>> but it shouldn't hurt either.
>>>
>> Could you send a patch to drop it, please ? :)
>>
>
> Is there a strong reason to drop this attribute? All ONFI related
> structs are using it to make sure the layout is not changed by the
> compiler, and be able to cast a buffer container the ONFI param page
> content to one of the nand_onfi_xxx struct.
>
> Yes, this is currently not needed (at least for this struct), but I'd
> prefer to keep nand_onfi_xxx definitions consistent if you don't mind,
> unless you see a good reason to avoid using this __packed attribute.
OK, fine. No, there's no strong reason to remove it.
--
Best regards,
Marek Vasut