Message ID | 20230922090856.920303-2-ada@thorsis.com |
---|---|
State | Accepted |
Commit | d6b4359e50bb1dc567f6596c67b25a3c7a8ff130 |
Delegated to: | Eugen Hristev |
Headers | show |
Series | mtd: nand: raw: atmel: R/B gpio on sam9x60 | expand |
On 9/22/23 12:08, Alexander Dahl wrote: > Adapt behaviour to Linux kernel driver. > > The return value of gpio_request_by_name_nodev() was not checked before, > and thus in case 'rb-gpios' was missing in DT, rb.type was set to > ATMEL_NAND_GPIO_RB nevertheless, leading to output like this for > example (on sam9x60-curiosity with the line removed from dts): > > NAND: Could not find valid ONFI parameter page; aborting > device found, Manufacturer ID: 0xc2, Chip ID: 0xdc > Macronix NAND 512MiB 3,3V 8-bit > 512 MiB, SLC, erase size: 256 KiB, page size: 4096, OOB size: 64 > atmel-nand-controller nand-controller: NAND scan failed: -22 > Failed to probe nand driver (err = -22) > Failed to initialize NAND controller. (error -22) > 0 MiB > > Note: not having that gpio assigned in dts is possible, the driver does > not override nand_chip->dev_ready() then and a generic solution is used. > > Fixes: 6a8dfd57220d ("nand: atmel: Add DM based NAND driver") > Signed-off-by: Alexander Dahl <ada@thorsis.com> > --- Reviewed-by: Eugen Hristev <eugen.hristev@collabora.com> > > Notes: > v1 -> v2: > > - Only issue error message if error is not ENOENT. If the node just is > missing, move on without error message. > > drivers/mtd/nand/raw/atmel/nand-controller.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) >
On Fri, Sep 22, 2023 at 11:40 AM Eugen Hristev <eugen.hristev@collabora.com> wrote: > > On 9/22/23 12:08, Alexander Dahl wrote: > > Adapt behaviour to Linux kernel driver. > > > > The return value of gpio_request_by_name_nodev() was not checked before, > > and thus in case 'rb-gpios' was missing in DT, rb.type was set to > > ATMEL_NAND_GPIO_RB nevertheless, leading to output like this for > > example (on sam9x60-curiosity with the line removed from dts): > > > > NAND: Could not find valid ONFI parameter page; aborting > > device found, Manufacturer ID: 0xc2, Chip ID: 0xdc > > Macronix NAND 512MiB 3,3V 8-bit > > 512 MiB, SLC, erase size: 256 KiB, page size: 4096, OOB size: 64 > > atmel-nand-controller nand-controller: NAND scan failed: -22 > > Failed to probe nand driver (err = -22) > > Failed to initialize NAND controller. (error -22) > > 0 MiB > > > > Note: not having that gpio assigned in dts is possible, the driver does > > not override nand_chip->dev_ready() then and a generic solution is used. > > > > Fixes: 6a8dfd57220d ("nand: atmel: Add DM based NAND driver") > > Signed-off-by: Alexander Dahl <ada@thorsis.com> > > --- > > Reviewed-by: Eugen Hristev <eugen.hristev@collabora.com> > > > > > Notes: > > v1 -> v2: > > > > - Only issue error message if error is not ENOENT. If the node just is > > missing, move on without error message. > > > > drivers/mtd/nand/raw/atmel/nand-controller.c | 11 +++++++---- > > 1 file changed, 7 insertions(+), 4 deletions(-) > > > Acked-by: Michael Trimarchi <michael@amarulasolutions.com>
On 9/23/23 19:50, Michael Nazzareno Trimarchi wrote: > On Fri, Sep 22, 2023 at 11:40 AM Eugen Hristev > <eugen.hristev@collabora.com> wrote: >> >> On 9/22/23 12:08, Alexander Dahl wrote: >>> Adapt behaviour to Linux kernel driver. >>> >>> The return value of gpio_request_by_name_nodev() was not checked before, >>> and thus in case 'rb-gpios' was missing in DT, rb.type was set to >>> ATMEL_NAND_GPIO_RB nevertheless, leading to output like this for >>> example (on sam9x60-curiosity with the line removed from dts): >>> >>> NAND: Could not find valid ONFI parameter page; aborting >>> device found, Manufacturer ID: 0xc2, Chip ID: 0xdc >>> Macronix NAND 512MiB 3,3V 8-bit >>> 512 MiB, SLC, erase size: 256 KiB, page size: 4096, OOB size: 64 >>> atmel-nand-controller nand-controller: NAND scan failed: -22 >>> Failed to probe nand driver (err = -22) >>> Failed to initialize NAND controller. (error -22) >>> 0 MiB >>> >>> Note: not having that gpio assigned in dts is possible, the driver does >>> not override nand_chip->dev_ready() then and a generic solution is used. >>> >>> Fixes: 6a8dfd57220d ("nand: atmel: Add DM based NAND driver") >>> Signed-off-by: Alexander Dahl <ada@thorsis.com> >>> --- >> >> Reviewed-by: Eugen Hristev <eugen.hristev@collabora.com> >> >>> >>> Notes: >>> v1 -> v2: >>> >>> - Only issue error message if error is not ENOENT. If the node just is >>> missing, move on without error message. >>> >>> drivers/mtd/nand/raw/atmel/nand-controller.c | 11 +++++++---- >>> 1 file changed, 7 insertions(+), 4 deletions(-) >>> >> > Acked-by: Michael Trimarchi <michael@amarulasolutions.com> > Applied to u-boot-at91/master, thanks !
diff --git a/drivers/mtd/nand/raw/atmel/nand-controller.c b/drivers/mtd/nand/raw/atmel/nand-controller.c index 2b29c8def6..fa962ba591 100644 --- a/drivers/mtd/nand/raw/atmel/nand-controller.c +++ b/drivers/mtd/nand/raw/atmel/nand-controller.c @@ -1600,10 +1600,13 @@ static struct atmel_nand *atmel_nand_create(struct atmel_nand_controller *nc, nand->cs[i].rb.type = ATMEL_NAND_NATIVE_RB; nand->cs[i].rb.id = val; } else { - gpio_request_by_name_nodev(np, "rb-gpios", 0, - &nand->cs[i].rb.gpio, - GPIOD_IS_IN); - nand->cs[i].rb.type = ATMEL_NAND_GPIO_RB; + ret = gpio_request_by_name_nodev(np, "rb-gpios", 0, + &nand->cs[i].rb.gpio, + GPIOD_IS_IN); + if (ret && ret != -ENOENT) + dev_err(nc->dev, "Failed to get R/B gpio (err = %d)\n", ret); + if (!ret) + nand->cs[i].rb.type = ATMEL_NAND_GPIO_RB; } gpio_request_by_name_nodev(np, "cs-gpios", 0,
Adapt behaviour to Linux kernel driver. The return value of gpio_request_by_name_nodev() was not checked before, and thus in case 'rb-gpios' was missing in DT, rb.type was set to ATMEL_NAND_GPIO_RB nevertheless, leading to output like this for example (on sam9x60-curiosity with the line removed from dts): NAND: Could not find valid ONFI parameter page; aborting device found, Manufacturer ID: 0xc2, Chip ID: 0xdc Macronix NAND 512MiB 3,3V 8-bit 512 MiB, SLC, erase size: 256 KiB, page size: 4096, OOB size: 64 atmel-nand-controller nand-controller: NAND scan failed: -22 Failed to probe nand driver (err = -22) Failed to initialize NAND controller. (error -22) 0 MiB Note: not having that gpio assigned in dts is possible, the driver does not override nand_chip->dev_ready() then and a generic solution is used. Fixes: 6a8dfd57220d ("nand: atmel: Add DM based NAND driver") Signed-off-by: Alexander Dahl <ada@thorsis.com> --- Notes: v1 -> v2: - Only issue error message if error is not ENOENT. If the node just is missing, move on without error message. drivers/mtd/nand/raw/atmel/nand-controller.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)