
On 04/13/2011 06:24 PM, Scott Wood wrote:
Hi Scott,
Davinci-specific #defines do not belong in nand_base.c[1]. The controller driver should be able to set "this isn't supported" options just as well as the chip data -- I just don't think it should be limited to this specific one.
surely, but it is not clear to me how. There is no entry for a write_subpage function, as this issue does not happen with other controllers, and I do not see a callback for the driver after the nand_scan() function, where I thought the driver could change the options according to its capabilities.
For example, fsl_elbc_nand.c sets NAND_NO_READRDY and NAND_NO_AUTOINCR. Before this thread, I didn't realize it they were getting ignored. Things work anyway because the former is an optimization, and the latter is getting forced on after the masking, for some reason -- does autoincr simply not work? Can we remove the code? :-)
Well, the options are simply ignored, I agree about removing them.
-Scott
[1] Nor should it be turned back into a non-davinci define -- what if there are multiple NAND controllers supported, and only one requires this? It's not so bad in U-Boot (I'd still rather avoid it though), but this approach is not going to go over well in Linux.
How is Linux handling this?
What I have seen (kernel 2.6.38), the options are ignored in Linux as well, and this issue is open for the davinci processors.
Best regards, Stefano Babic