[PATCH 1/2] mtd: nand: Check ONFI timings have been acked by the chip
boris.brezillon at free-electrons.com
Mon Jan 15 05:19:00 PST 2018
On Mon, 8 Jan 2018 14:04:29 +0100
Boris Brezillon <boris.brezillon at free-electrons.com> wrote:
> On Fri, 5 Jan 2018 16:42:39 +0100
> Miquel RAYNAL <miquel.raynal at free-electrons.com> wrote:
> > Hello,
> > > Hm, I'm not sure this is safe. The spec says that new ONFI timing mode
> > > is applied as soon the CS line is released after a
> > > SET_FEATURES(ONFI_FEATURE_ADDR_TIMING_MODE), and since we have no
> > > guarantee that the CS will be kept low by the controller after
> > > ->onfi_set_features() returns we must assume the new mode has been
> > > applied and call ->setup_data_interface() to instruct the controller
> > > to apply new timings.
> > >
> > > If you want to check if the mode has really been applied, you should
> > > release the CS (->select_chip(-1)), re-acquire it
> > > (->select_chip(X)), and call
> > > ->onfi_get_features(ONFI_FEATURE_ADDR_TIMING_MODE). If it appears
> > > that the mode has not been applied, you should restore timing mode 0
> > > and issue a RESET.
> > Boris, thanks for the comment, I will fix that.
> > Han, could I have your input on this series? Aside Boris' comment of
> > course.
> Han, we really need your feedback on this series since you were the one
> complaining that ONFI mode should be checked back after applying a new
> mode. Miquel is reworking the framework to mimic what the GPMI driver,
> but we need to be sure that you'll accept to transition to the generic
> ->setup_data_interface() solution.
More information about the linux-mtd