RFC: nand and onenand can't coexist

Alessandro Rubini rubini-list at gnudd.com
Sun Sep 20 13:01:31 EDT 2009


While testing the nomadik-onenand patch as applied by
dwmw2 to the mtd-2.6 git tree, I found that I can't declare
both a nand and onenand platform device in the same file.

The problem arises from the new platform_data for onenand, which
requires me to include <linux/mtd/onenand.h> in the same
file where I include <linux/mtd/nand.h>.

There are two errors reported:

* onenand_state_t and nand_state_t define the same enums,
  but with different values

* struct nand_bbt_descr and other material is defined both
  in nand.h and bbm.h.

For the latter, including bbm.h from nand.h, removing duplicates,
should work file (I'm going to try it right now).

The former is more of an issue, moreso because the same values
(FL_READY and such) are defined in <mtd/flashchip.h> as well.
Shouldn't they be rather unified?

A quick grep shows that

* nand_state_t is defined by ./include/linux/mtd/nand.h
  and never used.

* onenand_state_t is defined by ./include/linux/mtd/onenand.h
  and never used

* flstate_t is defined in ./include/linux/mtd/flashchip.h
  and used in a few places.

Should I try to unify things in order to allow OneNand and Nand
coexist in the same board source file and remove duplicates?

I'm going to work on the problem anyways, I just don't know
if patches in this direction are acceptable or not.

thanks
/alessandro



More information about the linux-mtd mailing list