Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SoundWire: intel: cleanups/fixes before code reorganization #3835

Merged
33 changes: 10 additions & 23 deletions drivers/soundwire/intel.c
Original file line number Diff line number Diff line change
Expand Up @@ -311,15 +311,13 @@ static void intel_shim_master_ip_to_glue(struct sdw_intel *sdw)
/* at this point Integration Glue has full control of the I/Os */
}

static int intel_shim_init(struct sdw_intel *sdw)
/* this needs to be called with shim_lock */
static void intel_shim_init(struct sdw_intel *sdw)
{
void __iomem *shim = sdw->link_res->shim;
unsigned int link_id = sdw->instance;
int ret = 0;
u16 ioctl = 0, act = 0;

mutex_lock(sdw->link_res->shim_lock);

/* Initialize Shim */
ioctl |= SDW_SHIM_IOCTL_BKE;
intel_writew(shim, SDW_SHIM_IOCTL(link_id), ioctl);
Expand All @@ -344,10 +342,6 @@ static int intel_shim_init(struct sdw_intel *sdw)
act |= SDW_SHIM_CTMCTL_DODS;
intel_writew(shim, SDW_SHIM_CTMCTL(link_id), act);
usleep_range(10, 15);

mutex_unlock(sdw->link_res->shim_lock);

return ret;
}

static void intel_shim_wake(struct sdw_intel *sdw, bool wake_enable)
Expand Down Expand Up @@ -449,6 +443,9 @@ static int intel_link_power_up(struct sdw_intel *sdw)
*shim_mask |= BIT(link_id);

sdw->cdns.link_up = true;

intel_shim_init(sdw);

out:
mutex_unlock(sdw->link_res->shim_lock);

Expand Down Expand Up @@ -1275,16 +1272,6 @@ static struct sdw_master_ops sdw_intel_ops = {
.read_ping_status = cdns_read_ping_status,
};

static int intel_init(struct sdw_intel *sdw)
{
/* Initialize shim and controller */
intel_link_power_up(sdw);

intel_shim_init(sdw);

return 0;
}

/*
* probe and init (aux_dev_id argument is required by function prototype but not used)
*/
Expand Down Expand Up @@ -1386,7 +1373,7 @@ int intel_link_startup(struct auxiliary_device *auxdev)
}

/* Initialize shim, controller */
ret = intel_init(sdw);
ret = intel_link_power_up(sdw);
plbossart marked this conversation as resolved.
Show resolved Hide resolved
if (ret)
goto err_init;

Expand Down Expand Up @@ -1775,7 +1762,7 @@ static int __maybe_unused intel_resume(struct device *dev)
pm_runtime_idle(dev);
}

ret = intel_init(sdw);
ret = intel_link_power_up(sdw);
if (ret) {
dev_err(dev, "%s failed: %d\n", __func__, ret);
return ret;
Expand Down Expand Up @@ -1864,7 +1851,7 @@ static int __maybe_unused intel_resume_runtime(struct device *dev)
clock_stop_quirks = sdw->link_res->clock_stop_quirks;

if (clock_stop_quirks & SDW_INTEL_CLK_STOP_TEARDOWN) {
ret = intel_init(sdw);
ret = intel_link_power_up(sdw);
if (ret) {
dev_err(dev, "%s failed: %d\n", __func__, ret);
return ret;
Expand Down Expand Up @@ -1912,7 +1899,7 @@ static int __maybe_unused intel_resume_runtime(struct device *dev)
true, INTEL_MASTER_RESET_ITERATIONS);

} else if (clock_stop_quirks & SDW_INTEL_CLK_STOP_BUS_RESET) {
ret = intel_init(sdw);
ret = intel_link_power_up(sdw);
if (ret) {
dev_err(dev, "%s failed: %d\n", __func__, ret);
return ret;
Expand Down Expand Up @@ -1993,7 +1980,7 @@ static int __maybe_unused intel_resume_runtime(struct device *dev)
if (!clock_stop0)
dev_err(dev, "%s invalid configuration, clock was not stopped", __func__);

ret = intel_init(sdw);
ret = intel_link_power_up(sdw);
if (ret) {
dev_err(dev, "%s failed: %d\n", __func__, ret);
return ret;
Expand Down