[0/2] Handle probe defer properly in MTD core
mbox series

Message ID 20210302132757.225395-1-manivannan.sadhasivam@linaro.org
Headers show
Series
  • Handle probe defer properly in MTD core
Related show

Message

Manivannan Sadhasivam March 2, 2021, 1:27 p.m. UTC
Hello,

These two patches aims at fixing the -EPROBE_DEFER handling in the MTD
core and also in the Qcom nand driver. The "qcomsmem" parser depends on
the QCOM_SMEM driver to parse the partitions defined in the shared
memory. Due to the DT layout, the SMEM driver might probe after the NAND
driver. In that case, the -EPROBE_DEFER returned by qcom_smem_get() in
the parser will fail to propagate till the driver core. So this will
result in the partitions not getting parsed even after the SMEM driver is
available.

So fix this issue by handling the -EPROBE_DEFER error properly in both
MTD core and in the Qcom nand driver. This issue is observed on Qcom SDX55
based Telit FN980 EVB and in SDX55-MTP.

Thanks,
Mani

Manivannan Sadhasivam (2):
  mtd: Handle possible -EPROBE_DEFER from parse_mtd_partitions()
  mtd: rawnand: qcom: Return actual error code instead of -ENODEV

 drivers/mtd/mtdcore.c             | 3 +++
 drivers/mtd/nand/raw/qcom_nandc.c | 7 ++-----
 2 files changed, 5 insertions(+), 5 deletions(-)

Comments

Miquel Raynal March 3, 2021, 8:03 a.m. UTC | #1
Hi Manivannan,

Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> wrote on Tue,
2 Mar 2021 18:57:55 +0530:

> Hello,
> 
> These two patches aims at fixing the -EPROBE_DEFER handling in the MTD
> core and also in the Qcom nand driver. The "qcomsmem" parser depends on
> the QCOM_SMEM driver to parse the partitions defined in the shared
> memory. Due to the DT layout, the SMEM driver might probe after the NAND
> driver. In that case, the -EPROBE_DEFER returned by qcom_smem_get() in
> the parser will fail to propagate till the driver core. So this will
> result in the partitions not getting parsed even after the SMEM driver is
> available.
> 
> So fix this issue by handling the -EPROBE_DEFER error properly in both
> MTD core and in the Qcom nand driver. This issue is observed on Qcom SDX55
> based Telit FN980 EVB and in SDX55-MTP.

Applied manually on top of nand/next as infradead.org is dead at the
moment and the patches were not collected by patchwork.

Thanks,
Miquèl