Hi Jagan, On 19 April 2015 at 23:27, Jagan Teki <jagannadh.t...@gmail.com> wrote: > On 20 April 2015 at 10:11, Peng Fan <peng....@freescale.com> wrote: >> Hi, Simon >> >> >> On 4/19/2015 11:05 PM, Simon Glass wrote: >>> >>> These methods should be passed a slave device, not a bus. This matches the >>> old SPI interface. It is important to know which device is claiming the >>> bus >>> so passing a bus is not that useful. >>> >>> Reported-by: Haikun Wang <haikun.w...@freescale.com> >>> Signed-off-by: Simon Glass <s...@chromium.org> >>> --- >>> >>> drivers/spi/exynos_spi.c | 6 ++++-- >>> drivers/spi/spi-uclass.c | 4 ++-- >>> drivers/spi/tegra114_spi.c | 3 ++- >>> drivers/spi/tegra20_sflash.c | 3 ++- >>> drivers/spi/tegra20_slink.c | 3 ++- >>> include/spi.h | 10 +++++----- >>> 6 files changed, 17 insertions(+), 12 deletions(-) >>> >>> diff --git a/drivers/spi/exynos_spi.c b/drivers/spi/exynos_spi.c >>> index a46d8c1..67f6b2d 100644 >>> --- a/drivers/spi/exynos_spi.c >>> +++ b/drivers/spi/exynos_spi.c >>> @@ -296,8 +296,9 @@ static int exynos_spi_probe(struct udevice *bus) >>> return 0; >>> } >>> -static int exynos_spi_claim_bus(struct udevice *bus) >>> +static int exynos_spi_claim_bus(struct udevice *dev) >>> { >>> + struct udevice *bus = dev->parent; >>> struct exynos_spi_priv *priv = dev_get_priv(bus); >>> exynos_pinmux_config(priv->periph_id, PINMUX_FLAG_NONE); >>> @@ -308,8 +309,9 @@ static int exynos_spi_claim_bus(struct udevice *bus) >>> return 0; >>> } >>> -static int exynos_spi_release_bus(struct udevice *bus) >>> +static int exynos_spi_release_bus(struct udevice *dev) >>> { >>> + struct udevice *bus = dev->parent; >>> struct exynos_spi_priv *priv = dev_get_priv(bus); >>> spi_flush_fifo(priv->regs); >>> diff --git a/drivers/spi/spi-uclass.c b/drivers/spi/spi-uclass.c >>> index 866c48f..83fe8e0 100644 >>> --- a/drivers/spi/spi-uclass.c >>> +++ b/drivers/spi/spi-uclass.c >>> @@ -67,7 +67,7 @@ int spi_claim_bus(struct spi_slave *slave) >>> if (ret) >>> return ret; >>> - return ops->claim_bus ? ops->claim_bus(bus) : 0; >>> + return ops->claim_bus ? ops->claim_bus(dev) : 0; >>> } >>> void spi_release_bus(struct spi_slave *slave) >>> @@ -77,7 +77,7 @@ void spi_release_bus(struct spi_slave *slave) >>> struct dm_spi_ops *ops = spi_get_ops(bus); >>> if (ops->release_bus) >>> - ops->release_bus(bus); >>> + ops->release_bus(dev); >>> } >>> int spi_xfer(struct spi_slave *slave, unsigned int bitlen, >>> diff --git a/drivers/spi/tegra114_spi.c b/drivers/spi/tegra114_spi.c >>> index 53ff9ea..4bec663 100644 >>> --- a/drivers/spi/tegra114_spi.c >>> +++ b/drivers/spi/tegra114_spi.c >>> @@ -153,8 +153,9 @@ static int tegra114_spi_probe(struct udevice *bus) >>> return 0; >>> } >>> -static int tegra114_spi_claim_bus(struct udevice *bus) >>> +static int tegra114_spi_claim_bus(struct udevice *dev) >>> { >>> + struct udevice *bus = dev->parent; >>> struct tegra114_spi_priv *priv = dev_get_priv(bus); >>> struct spi_regs *regs = priv->regs; >>> diff --git a/drivers/spi/tegra20_sflash.c b/drivers/spi/tegra20_sflash.c >>> index 78c74cd..82c1b84 100644 >>> --- a/drivers/spi/tegra20_sflash.c >>> +++ b/drivers/spi/tegra20_sflash.c >>> @@ -125,8 +125,9 @@ static int tegra20_sflash_probe(struct udevice *bus) >>> return 0; >>> } >>> -static int tegra20_sflash_claim_bus(struct udevice *bus) >>> +static int tegra20_sflash_claim_bus(struct udevice *dev) >>> { >>> + struct udevice *bus = dev->parent; >>> struct tegra20_sflash_priv *priv = dev_get_priv(bus); >>> struct spi_regs *regs = priv->regs; >>> u32 reg; >>> diff --git a/drivers/spi/tegra20_slink.c b/drivers/spi/tegra20_slink.c >>> index 597d6ad..f6fb89b 100644 >>> --- a/drivers/spi/tegra20_slink.c >>> +++ b/drivers/spi/tegra20_slink.c >>> @@ -141,8 +141,9 @@ static int tegra30_spi_probe(struct udevice *bus) >>> return 0; >>> } >>> -static int tegra30_spi_claim_bus(struct udevice *bus) >>> +static int tegra30_spi_claim_bus(struct udevice *dev) >>> { >>> + struct udevice *bus = dev->parent; >>> struct tegra30_spi_priv *priv = dev_get_priv(bus); >>> struct spi_regs *regs = priv->regs; >>> u32 reg; >>> diff --git a/include/spi.h b/include/spi.h >>> index c58e453..863e6db 100644 >>> --- a/include/spi.h >>> +++ b/include/spi.h >>> @@ -385,12 +385,12 @@ struct dm_spi_ops { >>> * allowed to claim the same bus for several slaves without >>> releasing >>> * the bus in between. >>> * >>> - * @bus: The SPI slave >>> + * @dev: The SPI slave >>> * >>> * Returns: 0 if the bus was claimed successfully, or a negative >>> value >>> * if it wasn't. >>> */ >>> - int (*claim_bus)(struct udevice *bus); >>> + int (*claim_bus)(struct udevice *dev); >>> /** >>> * Release the SPI bus >>> @@ -399,9 +399,9 @@ struct dm_spi_ops { >>> * all transfers have finished. It may disable any SPI hardware as >>> * appropriate. >>> * >>> - * @bus: The SPI slave >>> + * @dev: The SPI slave >>> */ >>> - int (*release_bus)(struct udevice *bus); >>> + int (*release_bus)(struct udevice *dev); >>> /** >>> * Set the word length for SPI transactions >>> @@ -413,7 +413,7 @@ struct dm_spi_ops { >>> * >>> * Returns: 0 on success, -ve on failure. >>> */ >>> - int (*set_wordlen)(struct udevice *bus, unsigned int wordlen); >>> + int (*set_wordlen)(struct udevice *dev, unsigned int wordlen); >>> /** >>> * SPI transfer >> >> >> After applying this patch, qspi flashes can be correctly probed and >> read/write on i.MX platform. I original posted a patch >> https://patchwork.ozlabs.org/patch/461034/ which seems in wrong way:) >> >> Tested-by: Peng Fan <peng....@freescale.com> > > I'm picking on -spi/master! any concerns?
That's fine with me. Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot