[PATCH] eXcite nand flash driver
Thomas Koeller
thomas.koeller at baslerweb.com
Sat Feb 10 05:22:04 EST 2007
On Donnerstag, 8. Februar 2007, Thomas Gleixner wrote:
> > +/* command and control functions */
> > +static void excite_nand_control(struct mtd_info *mtd, int cmd,
> > + unsigned int ctrl)
> > +{
> > + io_reg_t regs =
> > + container_of(mtd, struct excite_nand_drvdata, board_mtd)->regs;
> > + static void __iomem *tgt = NULL;
> > +
> > + switch (ctrl) {
> > + case NAND_CTRL_CHANGE | NAND_CTRL_CLE:
> > + tgt = regs + EXCITE_NANDFLASH_CMD_BYTE;
> > + break;
> > + case NAND_CTRL_CHANGE | NAND_CTRL_ALE:
> > + tgt = regs + EXCITE_NANDFLASH_ADDR_BYTE;
> > + break;
> > + case NAND_CTRL_CHANGE | NAND_NCE:
> > + tgt = regs + EXCITE_NANDFLASH_DATA_BYTE;
> > + break;
> > + }
>
> Err, did this ever work ? I doubt it. From nand_base.c:
>
> chip->cmd_ctrl(mtd, page_addr, ctrl);
> ctrl &= ~NAND_CTRL_CHANGE;
> chip->cmd_ctrl(mtd, page_addr >> 8, ctrl);
>
> So I expect an OOPS happens on a regular base.
>
I guess it is the 'static void __iomem *tgt = NULL' part that worries
you? Think about it, that value is never used.
However, I admit it is somewhat unclean, and therefore I am changing
it. Updated patch follows.
tk
More information about the linux-mtd
mailing list