Re: [PATCH 5/5] ASoC: amd: ACP powergating should be done by controller
From: Dan Carpenter
Date: Thu Sep 26 2019 - 08:57:11 EST
On Fri, Sep 27, 2019 at 04:37:39AM +0530, Ravulapati Vishnu vardhan rao wrote:
> +static int acp3x_power_on(void __iomem *acp3x_base)
> +{
> + u32 val;
> + u32 timeout = 0;
> + int ret = 0;
> +
> + val = rv_readl(acp3x_base + mmACP_PGFSM_STATUS);
> + if (val) {
Flip this around.
if (!val)
return 0;
> + if (!((val & ACP_PGFSM_STATUS_MASK) ==
> + ACP_POWER_ON_IN_PROGRESS))
Use != insead of !(foo == bar).
if ((val & ACP_PGFSM_STATUS_MASK) != ACP_POWER_ON_IN_PROGRESS)
> + rv_writel(ACP_PGFSM_CNTL_POWER_ON_MASK,
> + acp3x_base + mmACP_PGFSM_CONTROL);
> + while (true) {
> + val = rv_readl(acp3x_base + mmACP_PGFSM_STATUS);
> + if (!val)
> + break;
return 0;
> + udelay(1);
> + if (timeout > 500) {
if (timeout++ > 500) {
> + pr_err("ACP is Not Powered ON\n");
We print two error messages. :/
> + ret = -ETIMEDOUT;
return -ETIMOUT;
> + break;
> + }
> + timeout++;
> + }
> + if (ret) {
> + pr_err("ACP is not powered on status:%d\n", ret);
> + return ret;
> + }
> + }
> + return ret;
> +}
regards,
dan carpenter