lkml.org 
[lkml]   [2018]   [Oct]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [RFC PATCH] mtd: rawnand: ams-delta: use ->exec_op()
    Date
    On Wednesday, October 3, 2018 2:30:54 PM CEST Boris Brezillon wrote:
    > Hi Janusz,
    >
    > On Wed, 3 Oct 2018 14:00:28 +0200
    > Janusz Krzysztofik <jmkrzyszt@gmail.com> wrote:
    >
    > > Replace legacy callbacks with ->select_chip() and ->exec_op().
    >
    > Thanks for working on that, that's really appreciated.
    >
    > >
    > > Implementation of NAND_OP_WAITRDY_INSTR has been based on legacy
    > > nand_wait_ready(),
    >
    > I don't remember what the ams-delta ->dev_ready()/->waitfunc() hooks
    > are doing, but is shouldn't be too hard to replace them by an
    > ams_delta_wait_ready() func.

    Default nand_wait() is used as ->waitfunc(), and ->dev_ready() returns R/B
    GPIO pin status.

    > > otherwise that function would probabaly have to be
    >
    > ^ probably

    Do you think other drivers which now provide ->dev_ready() won't require
    reimplementation of nand_wait_ready()?

    > > reimplemented inside the driver. Hence, legacy callback ->dev_ready()
    > > is still used.
    > >
    > > Use of IO_ADDR_R and IO_ADDR_W legacy structure members will be dropped
    > > later, as soon as the driver is converted to use GPIO API for data I/O.
    >
    > In the meantime, can you move the iomem pointer to the ams_delta
    > private struct so that this driver no longer uses the ->IO_ADDR_R/W
    > fields?

    OK

    > >
    > > Suggested-by: Boris Brezillon <boris.brezillon@bootlin.com>
    > > Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
    > > ---
    > > Hi,
    > >
    > > I've not tested the change on hardware yet as I'm not sure if:
    > > - handling of NCE limited to that inside ->select_chip() is
    > > sufficient,
    >
    > I think it is.
    >
    > > - releasing ALE / CLE immediately after ams_delta_write_buf() is
    > > correct.
    >
    > Well, you should probably consider waiting for instr->ctx.delay_ns
    > nanoseconds after each instruction, but, if it was working before the
    > conversion to ->exec_op(), it should work just fine now.

    OK, I'll give it a try.

    Thanks,
    Janusz



    \
     
     \ /
      Last update: 2018-10-03 15:54    [W:4.737 / U:0.328 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site