|
@@ -171,8 +171,7 @@ static int gpio_dwapb_bind(struct udevice *dev)
|
|
|
if (!fdtdec_get_bool(blob, node, "gpio-controller"))
|
|
|
continue;
|
|
|
|
|
|
- plat = NULL;
|
|
|
- plat = calloc(1, sizeof(*plat));
|
|
|
+ plat = devm_kcalloc(dev, 1, sizeof(*plat), GFP_KERNEL);
|
|
|
if (!plat)
|
|
|
return -ENOMEM;
|
|
|
|
|
@@ -181,23 +180,17 @@ static int gpio_dwapb_bind(struct udevice *dev)
|
|
|
plat->pins = fdtdec_get_int(blob, node, "snps,nr-gpios", 0);
|
|
|
plat->name = fdt_stringlist_get(blob, node, "bank-name", 0,
|
|
|
NULL);
|
|
|
- if (ret)
|
|
|
- goto err;
|
|
|
|
|
|
ret = device_bind(dev, dev->driver, plat->name,
|
|
|
plat, -1, &subdev);
|
|
|
if (ret)
|
|
|
- goto err;
|
|
|
+ return ret;
|
|
|
|
|
|
dev_set_of_offset(subdev, node);
|
|
|
bank++;
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
|
-
|
|
|
-err:
|
|
|
- free(plat);
|
|
|
- return ret;
|
|
|
}
|
|
|
|
|
|
static int gpio_dwapb_remove(struct udevice *dev)
|