]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
misc: vexpress_config: Use member .priv_auto to set the private data
authorWei Chen <wei.chen@arm.com>
Wed, 18 Oct 2023 06:27:44 +0000 (14:27 +0800)
committerTom Rini <trini@konsulko.com>
Sat, 28 Oct 2023 01:02:08 +0000 (21:02 -0400)
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>
drivers/misc/vexpress_config.c

index 2baca48109f9155cd08369de9b4bc5da6a8dbc6f..99aad1412ae733c24dbdf796fc37108c0313563b 100644 (file)
@@ -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),
 };