mtd: nand: Create helpers to set/extract the ECC requirements
Despite its current name, the eccreq field actually encodes both the NAND requirements and the final ECC configuration. That works fine when using on-die ECC since those 2 concepts match perfectly, but it starts being a problem as soon as we use on-host ECC engines, where we're not guaranteed to have a perfect match. Let's hide the ECC requirements access behind helpers so we can later split those 2 concepts. As the structures have not been clarified yet, these helpers access the same internal variable as nanddev_get_ecc_conf() for now. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Link: https://lore.kernel.org/linux-mtd/20200827085208.16276-14-miquel.raynal@bootlin.com
This commit is contained in:
parent
9a333a72c1
commit
3316c8e3ad
@ -533,6 +533,30 @@ nanddev_get_ecc_conf(struct nand_device *nand)
|
||||
return &nand->eccreq;
|
||||
}
|
||||
|
||||
/**
|
||||
* nanddev_get_ecc_requirements() - Extract the ECC requirements from a NAND
|
||||
* device
|
||||
* @nand: NAND device
|
||||
*/
|
||||
static inline const struct nand_ecc_props *
|
||||
nanddev_get_ecc_requirements(struct nand_device *nand)
|
||||
{
|
||||
return &nand->eccreq;
|
||||
}
|
||||
|
||||
/**
|
||||
* nanddev_set_ecc_requirements() - Assign the ECC requirements of a NAND
|
||||
* device
|
||||
* @nand: NAND device
|
||||
* @reqs: Requirements
|
||||
*/
|
||||
static inline void
|
||||
nanddev_set_ecc_requirements(struct nand_device *nand,
|
||||
const struct nand_ecc_props *reqs)
|
||||
{
|
||||
nand->eccreq = *reqs;
|
||||
}
|
||||
|
||||
int nanddev_init(struct nand_device *nand, const struct nand_ops *ops,
|
||||
struct module *owner);
|
||||
void nanddev_cleanup(struct nand_device *nand);
|
||||
|
Loading…
x
Reference in New Issue
Block a user