summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWei Chen <wei.chen@arm.com>2023-10-18 14:27:44 +0800
committerTom Rini <trini@konsulko.com>2023-10-27 21:02:08 -0400
commitffdb85bfcfd79a432a9379a9a13680699eb686fb (patch)
treeeaf65ad1dbeecce020fbc5ab72c2c22d74f0ebb4
parent7093b89ab12fae697548bbc839f3966642132221 (diff)
misc: vexpress_config: Use member .priv_auto to set the private data
In current vexpress_config_probe code, it sets the uclass private data directly. This will cause one compilation error: drivers/misc/vexpress_config.c:114:27: error: lvalue required as left operand of assignment 114 | dev_get_uclass_priv(dev) = priv; | ^ In this patch we set the uclass private data through struct member .priv_auto, and this compilation error disappears. Signed-off-by: Wei Chen <wei.chen@arm.com> Signed-off-by: Qi Feng <qi.feng@arm.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r--drivers/misc/vexpress_config.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/misc/vexpress_config.c b/drivers/misc/vexpress_config.c
index 2baca48109f..99aad1412ae 100644
--- a/drivers/misc/vexpress_config.c
+++ b/drivers/misc/vexpress_config.c
@@ -92,7 +92,7 @@ static struct misc_ops vexpress_config_ops = {
static int vexpress_config_probe(struct udevice *dev)
{
struct ofnode_phandle_args args;
- struct vexpress_config_sysreg *priv;
+ struct vexpress_config_sysreg *priv = dev_get_priv(dev);
const char *prop;
int err, prop_size;
@@ -105,11 +105,9 @@ static int vexpress_config_probe(struct udevice *dev)
if (!prop || (strncmp(prop, "arm,vexpress-sysreg", 19) != 0))
return -ENOENT;
- priv = calloc(1, sizeof(*priv));
if (!priv)
return -ENOMEM;
- dev_get_uclass_priv(dev) = priv;
priv->addr = ofnode_get_addr(args.node);
return dev_read_u32(dev, "arm,vexpress,site", &priv->site);
@@ -127,4 +125,5 @@ U_BOOT_DRIVER(vexpress_config_drv) = {
.bind = dm_scan_fdt_dev,
.probe = vexpress_config_probe,
.ops = &vexpress_config_ops,
+ .priv_auto = sizeof(struct vexpress_config_sysreg),
};