On Wed, 4 Jan 2017 18:22:31 +0100 Marek Vasut <marek.va...@gmail.com> wrote:
> On 01/04/2017 06:13 PM, Boris Brezillon wrote: > > On Wed, 4 Jan 2017 16:15:46 +0100 > > Marek Vasut <marek.va...@gmail.com> 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.brezil...@free-electrons.com> > >> > >> [...] > >> > >>> 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.brezil...@free-electrons.com> > >> > >> 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.