[PATCH 16/18] dm: Use access methods for dev/uclass private data
Pratyush Yadav
p.yadav at ti.com
Thu Dec 17 16:18:44 CET 2020
[Dropping Jean-Jacques Hiblot because his email will bounce anyway.]
Hi Simon,
On 16/12/20 08:25AM, Simon Glass wrote:
> Most drivers use these access methods but a few do not. Update them.
>
> In some cases the access is not permitted, so mark those with a FIXME tag
> for the maintainer to check.
Your series does not apply cleanly on the tip of u-boot master
(a439136599 as of writing this). Is this dependent on some other series
or branch?
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
[...]
> diff --git a/drivers/mux/mmio.c b/drivers/mux/mmio.c
> index b9868505a3b..00e0282dcc0 100644
> --- a/drivers/mux/mmio.c
> +++ b/drivers/mux/mmio.c
> @@ -12,6 +12,7 @@
> #include <regmap.h>
> #include <syscon.h>
> #include <dm/device.h>
> +#include <dm/device-internal.h>
> #include <dm/device_compat.h>
> #include <dm/read.h>
> #include <dm/devres.h>
> @@ -68,7 +69,7 @@ static int mmio_mux_probe(struct udevice *dev)
> fields = devm_kmalloc(dev, num_fields * sizeof(*fields), __GFP_ZERO);
> if (!fields)
> return -ENOMEM;
> - dev->priv = fields;
> + dev_set_priv(dev, fields);
Ok.
>
> mux_reg_masks = devm_kmalloc(dev, num_fields * 2 * sizeof(u32),
> __GFP_ZERO);
[...]
> diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c
> index b746501f5ff..67980431ba0 100644
> --- a/drivers/spi/cadence_qspi.c
> +++ b/drivers/spi/cadence_qspi.c
> @@ -27,7 +27,7 @@
>
> static int cadence_spi_write_speed(struct udevice *bus, uint hz)
> {
> - struct cadence_spi_plat *plat = bus->plat;
> + struct cadence_spi_plat *plat = dev_get_plat(bus);
I am confused. Grepping on the current tip of master (a439136599), I see
no hits for dev_get_plat(). Your series does not introduce it either.
Patch 18/18 changes it but I don't see it being added anywhere. What am
I missing?
> struct cadence_spi_priv *priv = dev_get_priv(bus);
>
> cadence_qspi_apb_config_baudrate_div(priv->regbase,
> @@ -130,7 +130,7 @@ static int spi_calibration(struct udevice *bus, uint hz)
>
> static int cadence_spi_set_speed(struct udevice *bus, uint hz)
> {
> - struct cadence_spi_plat *plat = bus->plat;
> + struct cadence_spi_plat *plat = dev_get_plat(bus);
> struct cadence_spi_priv *priv = dev_get_priv(bus);
> int err;
>
> @@ -165,7 +165,7 @@ static int cadence_spi_set_speed(struct udevice *bus, uint hz)
>
> static int cadence_spi_probe(struct udevice *bus)
> {
> - struct cadence_spi_plat *plat = bus->plat;
> + struct cadence_spi_plat *plat = dev_get_plat(bus);
> struct cadence_spi_priv *priv = dev_get_priv(bus);
> struct clk clk;
> int ret;
> @@ -212,7 +212,7 @@ static int cadence_spi_remove(struct udevice *dev)
>
> static int cadence_spi_set_mode(struct udevice *bus, uint mode)
> {
> - struct cadence_spi_plat *plat = bus->plat;
> + struct cadence_spi_plat *plat = dev_get_plat(bus);
> struct cadence_spi_priv *priv = dev_get_priv(bus);
>
> /* Disable QSPI */
> @@ -235,7 +235,7 @@ static int cadence_spi_mem_exec_op(struct spi_slave *spi,
> const struct spi_mem_op *op)
> {
> struct udevice *bus = spi->dev->parent;
> - struct cadence_spi_plat *plat = bus->plat;
> + struct cadence_spi_plat *plat = dev_get_plat(bus);
> struct cadence_spi_priv *priv = dev_get_priv(bus);
> void *base = priv->regbase;
> int err = 0;
> @@ -284,7 +284,7 @@ static int cadence_spi_mem_exec_op(struct spi_slave *spi,
>
> static int cadence_spi_of_to_plat(struct udevice *bus)
> {
> - struct cadence_spi_plat *plat = bus->plat;
> + struct cadence_spi_plat *plat = dev_get_plat(bus);
> ofnode subnode;
>
> plat->regbase = (void *)devfdt_get_addr_index(bus, 0);
Anyway, assuming dev_get_plat() looks like:
void *dev_get_plat(const struct udevice *dev) {
return dev->plat;
}
Acked-by: Pratyush Yadav <p.yadav at ti.com>
for drivers/{mux/mmio.c,spi/cadence_qspi.c}.
--
Regards,
Pratyush Yadav
Texas Instruments India
More information about the U-Boot
mailing list