Commit 36017af4 authored by Miquel Raynal's avatar Miquel Raynal

mtd: rawnand: Declare the nand_manufacturer structure out of nand_chip

Now that struct nand_manufacturer type is free, use it to store the
nand_manufacturer_desc and the manufacturer's private data.
Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
Reviewed-by: default avatarBoris Brezillon <boris.brezillon@collabora.com>
Link: https://lore.kernel.org/linux-mtd/20200529111322.7184-6-miquel.raynal@bootlin.com
parent 271de009
...@@ -1043,10 +1043,21 @@ struct nand_chip_ops { ...@@ -1043,10 +1043,21 @@ struct nand_chip_ops {
int (*setup_read_retry)(struct nand_chip *chip, int retry_mode); int (*setup_read_retry)(struct nand_chip *chip, int retry_mode);
}; };
/**
* struct nand_manufacturer - NAND manufacturer structure
* @desc: The manufacturer description
* @priv: Private information for the manufacturer driver
*/
struct nand_manufacturer {
const struct nand_manufacturer_desc *desc;
void *priv;
};
/** /**
* struct nand_chip - NAND Private Flash Chip Data * struct nand_chip - NAND Private Flash Chip Data
* @base: Inherit from the generic NAND device * @base: Inherit from the generic NAND device
* @ops: NAND chip operations * @ops: NAND chip operations
* @manufacturer: Manufacturer information
* @legacy: All legacy fields/hooks. If you develop a new driver, * @legacy: All legacy fields/hooks. If you develop a new driver,
* don't even try to use any of these fields/hooks, and if * don't even try to use any of these fields/hooks, and if
* you're modifying an existing driver that is using those * you're modifying an existing driver that is using those
...@@ -1106,13 +1117,11 @@ struct nand_chip_ops { ...@@ -1106,13 +1117,11 @@ struct nand_chip_ops {
* structure which is shared among multiple independent * structure which is shared among multiple independent
* devices. * devices.
* @priv: [OPTIONAL] pointer to private chip data * @priv: [OPTIONAL] pointer to private chip data
* @manufacturer: [INTERN] Contains manufacturer information
* @manufacturer.desc: [INTERN] Contains manufacturer's description
* @manufacturer.priv: [INTERN] Contains manufacturer private information
*/ */
struct nand_chip { struct nand_chip {
struct nand_device base; struct nand_device base;
struct nand_manufacturer manufacturer;
struct nand_chip_ops ops; struct nand_chip_ops ops;
struct nand_legacy legacy; struct nand_legacy legacy;
...@@ -1161,11 +1170,6 @@ struct nand_chip { ...@@ -1161,11 +1170,6 @@ struct nand_chip {
struct nand_bbt_descr *badblock_pattern; struct nand_bbt_descr *badblock_pattern;
void *priv; void *priv;
struct {
const struct nand_manufacturer_desc *desc;
void *priv;
} manufacturer;
}; };
extern const struct mtd_ooblayout_ops nand_ooblayout_sp_ops; extern const struct mtd_ooblayout_ops nand_ooblayout_sp_ops;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment