writel(mod, priv->addr + I2SMOD);
spin_unlock_irqrestore(&priv->lock, flags);
done:
writel(mod, priv->addr + I2SMOD);
spin_unlock_irqrestore(&priv->lock, flags);
done:
- pm_runtime_put(dai->dev);
+ pm_runtime_put_sync(dai->dev);
- pm_runtime_put(dai->dev);
+ pm_runtime_put_sync(dai->dev);
if (any_active(i2s) &&
((mod & (sdf_mask | lrp_rlow | mod_slave)) != tmp)) {
spin_unlock_irqrestore(&priv->lock, flags);
if (any_active(i2s) &&
((mod & (sdf_mask | lrp_rlow | mod_slave)) != tmp)) {
spin_unlock_irqrestore(&priv->lock, flags);
- pm_runtime_put(dai->dev);
+ pm_runtime_put_sync(dai->dev);
dev_err(&i2s->pdev->dev,
"%s:%d Other DAI busy\n", __func__, __LINE__);
return -EAGAIN;
dev_err(&i2s->pdev->dev,
"%s:%d Other DAI busy\n", __func__, __LINE__);
return -EAGAIN;
mod |= tmp;
writel(mod, priv->addr + I2SMOD);
spin_unlock_irqrestore(&priv->lock, flags);
mod |= tmp;
writel(mod, priv->addr + I2SMOD);
spin_unlock_irqrestore(&priv->lock, flags);
- pm_runtime_put(dai->dev);
+ pm_runtime_put_sync(dai->dev);
spin_unlock_irqrestore(&priv->pcm_lock, flags);
spin_unlock_irqrestore(&priv->pcm_lock, flags);
- pm_runtime_put(dai->dev);
+ pm_runtime_put_sync(dai->dev);
}
static int config_setup(struct i2s_dai *i2s)
}
static int config_setup(struct i2s_dai *i2s)
}
spin_unlock_irqrestore(&priv->lock, flags);
}
spin_unlock_irqrestore(&priv->lock, flags);
- pm_runtime_put(dai->dev);
+ pm_runtime_put_sync(dai->dev);
pm_runtime_get_sync(dai->dev);
if ((any_active(i2s) && div && (get_bfs(i2s) != div))
|| (other && other->bfs && (other->bfs != div))) {
pm_runtime_get_sync(dai->dev);
if ((any_active(i2s) && div && (get_bfs(i2s) != div))
|| (other && other->bfs && (other->bfs != div))) {
- pm_runtime_put(dai->dev);
+ pm_runtime_put_sync(dai->dev);
dev_err(&i2s->pdev->dev,
"%s:%d Other DAI busy\n", __func__, __LINE__);
return -EAGAIN;
}
i2s->bfs = div;
dev_err(&i2s->pdev->dev,
"%s:%d Other DAI busy\n", __func__, __LINE__);
return -EAGAIN;
}
i2s->bfs = div;
- pm_runtime_put(dai->dev);
+ pm_runtime_put_sync(dai->dev);
break;
default:
dev_err(&i2s->pdev->dev,
break;
default:
dev_err(&i2s->pdev->dev,
if (!is_opened(other))
i2s_set_sysclk(dai, SAMSUNG_I2S_CDCLK,
0, SND_SOC_CLOCK_IN);
if (!is_opened(other))
i2s_set_sysclk(dai, SAMSUNG_I2S_CDCLK,
0, SND_SOC_CLOCK_IN);
- pm_runtime_put(dai->dev);
+ pm_runtime_put_sync(dai->dev);
- pm_runtime_put(dai->dev);
+ pm_runtime_put_sync(dai->dev);