Re: [PATCH 1/5] ASoC: amd: Registering device endpoints using MFD framework

From: Mark Brown
Date: Thu Sep 26 2019 - 14:23:15 EST


On Fri, Sep 27, 2019 at 04:37:35AM +0530, Ravulapati Vishnu vardhan rao wrote:

> -#define ACP3x_PHY_BASE_ADDRESS 0x1240000
> -#define ACP3x_I2S_MODE 0
> -#define ACP3x_REG_START 0x1240000
> -#define ACP3x_REG_END 0x1250200
> -#define I2S_MODE 0x04
> -#define BT_TX_THRESHOLD 26
> -#define BT_RX_THRESHOLD 25
> -#define ACP3x_POWER_ON 0x00
> -#define ACP3x_POWER_ON_IN_PROGRESS 0x01
> -#define ACP3x_POWER_OFF 0x02
> -#define ACP3x_POWER_OFF_IN_PROGRESS 0x03
> +#define ACP3x_DEVS 3
> +#define ACP3x_PHY_BASE_ADDRESS 0x1240000
> +#define ACP3x_I2S_MODE 0
> +#define ACP3x_REG_START 0x1240000
> +#define ACP3x_REG_END 0x1250200

A large part of this appears to be unrelated indentation changes,
these should be split out into a separate patch.

> +static struct device *get_mfd_cell_dev(const char *device_name, int r)
> +{
> + char auto_dev_name[25];
> + struct device *dev;
> +
> + snprintf(auto_dev_name, sizeof(auto_dev_name),
> + "%s.%d.auto", device_name, r);
> + dev = bus_find_device_by_name(&platform_bus_type,
> + NULL, auto_dev_name);
> + dev_info(dev, "device %s added\n", auto_dev_name);

Remove this log message, it's going to be very noisy.

> + r = mfd_add_hotplug_devices(adata->parent, adata->cell, 3);
> + for (i = 0; i < 3 ; i++)
> + dev = get_mfd_cell_dev(adata->cell[i].name, i);

What is this doing? We never look at the result of this
get_mfd_cell_dev() and having a function like this suggests that
there's some abstraction issue here.

> + kfree(adata->cell);
> iounmap(adata->acp3x_base);
> + /*ignore device status and return driver probe error*/
> + return -ENODEV;
> release_regions:

This looks broken, as well as discarding error codes (making
things harder to diagnose) it means we stop unwinding things and
leave the rest of the resources lying around.

Attachment: signature.asc
Description: PGP signature