103-v5.18-mtd-rawnand-brcmnand-Move-OF-operations-out-of-brcmnand_init_cs.patch 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. From: Florian Fainelli <[email protected]>
  2. Subject: [PATCH v3 4/9] mtd: rawnand: brcmnand: Move OF operations out of brcmnand_init_cs()
  3. Date: Fri, 07 Jan 2022 10:46:09 -0800
  4. Content-Type: text/plain; charset="utf-8"
  5. In order to initialize a given chip select object for use by the
  6. brcmnand driver, move all of the Device Tree specific routines outside
  7. of brcmnand_init_cs() in order to make it usable in a platform data
  8. configuration which will be necessary for supporting BCMA chips.
  9. No functional changes introduced.
  10. Signed-off-by: Florian Fainelli <[email protected]>
  11. ---
  12. drivers/mtd/nand/raw/brcmnand/brcmnand.c | 20 +++++++++++---------
  13. 1 file changed, 11 insertions(+), 9 deletions(-)
  14. --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
  15. +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
  16. @@ -2811,7 +2811,7 @@ static const struct nand_controller_ops
  17. .attach_chip = brcmnand_attach_chip,
  18. };
  19. -static int brcmnand_init_cs(struct brcmnand_host *host, struct device_node *dn)
  20. +static int brcmnand_init_cs(struct brcmnand_host *host)
  21. {
  22. struct brcmnand_controller *ctrl = host->ctrl;
  23. struct device *dev = ctrl->dev;
  24. @@ -2820,16 +2820,9 @@ static int brcmnand_init_cs(struct brcmn
  25. int ret;
  26. u16 cfg_offs;
  27. - ret = of_property_read_u32(dn, "reg", &host->cs);
  28. - if (ret) {
  29. - dev_err(dev, "can't get chip-select\n");
  30. - return -ENXIO;
  31. - }
  32. -
  33. mtd = nand_to_mtd(&host->chip);
  34. chip = &host->chip;
  35. - nand_set_flash_node(chip, dn);
  36. nand_set_controller_data(chip, host);
  37. mtd->name = devm_kasprintf(dev, GFP_KERNEL, "brcmnand.%d",
  38. host->cs);
  39. @@ -3240,7 +3233,16 @@ int brcmnand_probe(struct platform_devic
  40. host->pdev = pdev;
  41. host->ctrl = ctrl;
  42. - ret = brcmnand_init_cs(host, child);
  43. + ret = of_property_read_u32(child, "reg", &host->cs);
  44. + if (ret) {
  45. + dev_err(dev, "can't get chip-select\n");
  46. + devm_kfree(dev, host);
  47. + continue;
  48. + }
  49. +
  50. + nand_set_flash_node(&host->chip, child);
  51. +
  52. + ret = brcmnand_init_cs(host);
  53. if (ret) {
  54. devm_kfree(dev, host);
  55. continue; /* Try all chip-selects */