On 4 June 2015 at 17:05, Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx> wrote: > Joachim, > > I tested the driver and found an issue with it. > > On 05/31/2015 06:06 PM, Joachim Eastwood wrote: >> + >> + spifi->mtd.priv = &spifi->nor; >> + spifi->nor.mtd = &spifi->mtd; >> + spifi->nor.dev = spifi->dev; >> + spifi->nor.priv = spifi; >> + spifi->nor.read = nxp_spifi_read; >> + spifi->nor.write = nxp_spifi_write; >> + spifi->nor.erase = nxp_spifi_erase; >> + spifi->nor.read_reg = nxp_spifi_read_reg; >> + spifi->nor.write_reg = nxp_spifi_write_reg; >> + >> + ret = of_modalias_node(np, modalias, sizeof(modalias)); >> + if (ret < 0) { >> + dev_err(spifi->dev, "unable to get device modalias\n"); >> + return ret; >> + } >> + >> + /* >> + * The first read on a hard reset isn't reliable so do a >> + * dummy read of the id before calling spi_nor_scan(). >> + * The reason for this problem is unknown. >> + * >> + * The official NXP spifilib uses more or less the same >> + * workaround that is applied here by reading the device >> + * id multiple times. >> + */ >> + nxp_spifi_dummy_id_read(&spifi->nor); >> + > > Actually, I think there's an issue here. See how m25p80 deals > with modalias: > > [..] > else if (!strcmp(spi->modalias, "spi-nor")) > flash_name = NULL; /* auto-detect */ > else > flash_name = spi->modalias; > > ret = spi_nor_scan(nor, flash_name, mode); > if (ret) > return ret; > > I think the "auto-detect" quirk is really needed, or you are will > otherwise fail to probe with the generic "jedec,spi-nor" compatible > string. I see. Seem easy enough to fix. I'll send out new version after doing some more tests here. Note that this code was copied from fsl-quadspi so I assume it has the same problem. Thanks for testing and catching the issue, Ezequiel. regards, Joachim Eastwood -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html