Message ID | 1428988763-32733-1-git-send-email-Peng.Fan@freescale.com |
---|---|
State | Superseded |
Delegated to: | Simon Glass |
Headers | show |
Add missed people. On 4/14/2015 1:19 PM, Peng Fan wrote: > For fsl_qspi_claim_bus and fsl_qspi_release_bus, the input parameter > "struct udevice *dev" represents device: "qspi[x]: qspi@[address] {...}". > Since "dev" already represents the qspi controller, use its parent to > get platdata and get 'priv' is wrong. > > After applying this patch, qspi flashes can be correctly probed. > > CC: Simon Glass <sjg@chromium.org> > CC: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com> > CC: Haikun Wang <Haikun.Wang@freescale.com> > Signed-off-by: Peng Fan <Peng.Fan@freescale.com> > --- > > Hi, > > This patch is based on dm/next branch. > > Regards, > Peng. > > drivers/spi/fsl_qspi.c | 10 +++------- > 1 file changed, 3 insertions(+), 7 deletions(-) > > diff --git a/drivers/spi/fsl_qspi.c b/drivers/spi/fsl_qspi.c > index 868df5f..04f1801 100644 > --- a/drivers/spi/fsl_qspi.c > +++ b/drivers/spi/fsl_qspi.c > @@ -1044,11 +1044,9 @@ static int fsl_qspi_xfer(struct udevice *dev, unsigned int bitlen, > static int fsl_qspi_claim_bus(struct udevice *dev) > { > struct fsl_qspi_priv *priv; > - struct udevice *bus; > - struct dm_spi_slave_platdata *slave_plat = dev_get_parent_platdata(dev); > + struct dm_spi_slave_platdata *slave_plat = dev_get_platdata(dev); > > - bus = dev->parent; > - priv = dev_get_priv(bus); > + priv = dev_get_priv(dev); > > priv->cur_amba_base = > priv->amba_base[0] + FSL_QSPI_FLASH_SIZE * slave_plat->cs; > @@ -1061,10 +1059,8 @@ static int fsl_qspi_claim_bus(struct udevice *dev) > static int fsl_qspi_release_bus(struct udevice *dev) > { > struct fsl_qspi_priv *priv; > - struct udevice *bus; > > - bus = dev->parent; > - priv = dev_get_priv(bus); > + priv = dev_get_priv(dev); > > qspi_module_disable(priv, 1); >
Hi Peng, On 15 April 2015 at 03:50, Peng Fan <Peng.Fan@freescale.com> wrote: > Add missed people. > > > On 4/14/2015 1:19 PM, Peng Fan wrote: >> >> For fsl_qspi_claim_bus and fsl_qspi_release_bus, the input parameter >> "struct udevice *dev" represents device: "qspi[x]: qspi@[address] {...}". >> Since "dev" already represents the qspi controller, use its parent to >> get platdata and get 'priv' is wrong. >> >> After applying this patch, qspi flashes can be correctly probed. Is this patch still needed after this patch? http://patchwork.ozlabs.org/patch/462595/ >> >> CC: Simon Glass <sjg@chromium.org> >> CC: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com> >> CC: Haikun Wang <Haikun.Wang@freescale.com> >> Signed-off-by: Peng Fan <Peng.Fan@freescale.com> >> --- >> >> Hi, >> >> This patch is based on dm/next branch. >> >> Regards, >> Peng. >> >> drivers/spi/fsl_qspi.c | 10 +++------- >> 1 file changed, 3 insertions(+), 7 deletions(-) >> >> diff --git a/drivers/spi/fsl_qspi.c b/drivers/spi/fsl_qspi.c >> index 868df5f..04f1801 100644 >> --- a/drivers/spi/fsl_qspi.c >> +++ b/drivers/spi/fsl_qspi.c >> @@ -1044,11 +1044,9 @@ static int fsl_qspi_xfer(struct udevice *dev, >> unsigned int bitlen, >> static int fsl_qspi_claim_bus(struct udevice *dev) >> { >> struct fsl_qspi_priv *priv; >> - struct udevice *bus; >> - struct dm_spi_slave_platdata *slave_plat = >> dev_get_parent_platdata(dev); >> + struct dm_spi_slave_platdata *slave_plat = dev_get_platdata(dev); >> - bus = dev->parent; >> - priv = dev_get_priv(bus); >> + priv = dev_get_priv(dev); >> priv->cur_amba_base = >> priv->amba_base[0] + FSL_QSPI_FLASH_SIZE * slave_plat->cs; >> @@ -1061,10 +1059,8 @@ static int fsl_qspi_claim_bus(struct udevice *dev) >> static int fsl_qspi_release_bus(struct udevice *dev) >> { >> struct fsl_qspi_priv *priv; >> - struct udevice *bus; >> - bus = dev->parent; >> - priv = dev_get_priv(bus); >> + priv = dev_get_priv(dev); >> qspi_module_disable(priv, 1); >> > > Regards, Simon
Hi Simon, On 4/23/2015 11:17 PM, Simon Glass wrote: > Hi Peng, > > On 15 April 2015 at 03:50, Peng Fan <Peng.Fan@freescale.com> wrote: >> Add missed people. >> >> >> On 4/14/2015 1:19 PM, Peng Fan wrote: >>> For fsl_qspi_claim_bus and fsl_qspi_release_bus, the input parameter >>> "struct udevice *dev" represents device: "qspi[x]: qspi@[address] {...}". >>> Since "dev" already represents the qspi controller, use its parent to >>> get platdata and get 'priv' is wrong. >>> >>> After applying this patch, qspi flashes can be correctly probed. > Is this patch still needed after this patch? > > http://patchwork.ozlabs.org/patch/462595/ After applying your patch, this patch is not needed. > >>> CC: Simon Glass <sjg@chromium.org> >>> CC: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com> >>> CC: Haikun Wang <Haikun.Wang@freescale.com> >>> Signed-off-by: Peng Fan <Peng.Fan@freescale.com> >>> --- >>> >>> Hi, >>> >>> This patch is based on dm/next branch. >>> >>> Regards, >>> Peng. >>> >>> drivers/spi/fsl_qspi.c | 10 +++------- >>> 1 file changed, 3 insertions(+), 7 deletions(-) >>> >>> diff --git a/drivers/spi/fsl_qspi.c b/drivers/spi/fsl_qspi.c >>> index 868df5f..04f1801 100644 >>> --- a/drivers/spi/fsl_qspi.c >>> +++ b/drivers/spi/fsl_qspi.c >>> @@ -1044,11 +1044,9 @@ static int fsl_qspi_xfer(struct udevice *dev, >>> unsigned int bitlen, >>> static int fsl_qspi_claim_bus(struct udevice *dev) >>> { >>> struct fsl_qspi_priv *priv; >>> - struct udevice *bus; >>> - struct dm_spi_slave_platdata *slave_plat = >>> dev_get_parent_platdata(dev); >>> + struct dm_spi_slave_platdata *slave_plat = dev_get_platdata(dev); >>> - bus = dev->parent; >>> - priv = dev_get_priv(bus); >>> + priv = dev_get_priv(dev); >>> priv->cur_amba_base = >>> priv->amba_base[0] + FSL_QSPI_FLASH_SIZE * slave_plat->cs; >>> @@ -1061,10 +1059,8 @@ static int fsl_qspi_claim_bus(struct udevice *dev) >>> static int fsl_qspi_release_bus(struct udevice *dev) >>> { >>> struct fsl_qspi_priv *priv; >>> - struct udevice *bus; >>> - bus = dev->parent; >>> - priv = dev_get_priv(bus); >>> + priv = dev_get_priv(dev); >>> qspi_module_disable(priv, 1); >>> >> > Regards, > Simon > . > Regards, Peng.
diff --git a/drivers/spi/fsl_qspi.c b/drivers/spi/fsl_qspi.c index 868df5f..04f1801 100644 --- a/drivers/spi/fsl_qspi.c +++ b/drivers/spi/fsl_qspi.c @@ -1044,11 +1044,9 @@ static int fsl_qspi_xfer(struct udevice *dev, unsigned int bitlen, static int fsl_qspi_claim_bus(struct udevice *dev) { struct fsl_qspi_priv *priv; - struct udevice *bus; - struct dm_spi_slave_platdata *slave_plat = dev_get_parent_platdata(dev); + struct dm_spi_slave_platdata *slave_plat = dev_get_platdata(dev); - bus = dev->parent; - priv = dev_get_priv(bus); + priv = dev_get_priv(dev); priv->cur_amba_base = priv->amba_base[0] + FSL_QSPI_FLASH_SIZE * slave_plat->cs; @@ -1061,10 +1059,8 @@ static int fsl_qspi_claim_bus(struct udevice *dev) static int fsl_qspi_release_bus(struct udevice *dev) { struct fsl_qspi_priv *priv; - struct udevice *bus; - bus = dev->parent; - priv = dev_get_priv(bus); + priv = dev_get_priv(dev); qspi_module_disable(priv, 1);
For fsl_qspi_claim_bus and fsl_qspi_release_bus, the input parameter "struct udevice *dev" represents device: "qspi[x]: qspi@[address] {...}". Since "dev" already represents the qspi controller, use its parent to get platdata and get 'priv' is wrong. After applying this patch, qspi flashes can be correctly probed. CC: Simon Glass <sjg@chromium.org> CC: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com> CC: Haikun Wang <Haikun.Wang@freescale.com> Signed-off-by: Peng Fan <Peng.Fan@freescale.com> --- Hi, This patch is based on dm/next branch. Regards, Peng. drivers/spi/fsl_qspi.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-)