diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-01-18 14:53:41 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-01-18 14:53:41 +0100 |
commit | c20c76acf6ec1df0af3bdd3370f7e3fef4494ba8 (patch) | |
tree | 58e87829837e2a1ac5fed3f1434f754fdc330c08 /drivers/soundwire/intel_init.c | |
parent | 1660557bd7cfced58b12389d7e99e21cde7e1cbe (diff) | |
parent | 5098cae1f79cc0580dc2741ce250307a60451eca (diff) |
Merge tag 'soundwire-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire into char-misc-next
Vinod writes:
soundwire updates for v5.6-rc1
This round we have bunch of updates to interfaces for ASoC (audio)
subsystem by Intel and a new Qualcomm controller driver
Details
- Updates for sdw_slave interfaces for ASoC
- Updates to cadence library and intel driver
- New Soundwire controller for Qualcomm masters
- Rework of device number assignment
* tag 'soundwire-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire: (27 commits)
dt-bindings: soundwire: fix example
soundwire: cadence: fix kernel-doc parameter descriptions
soundwire: intel: report slave_ids for each link to SOF driver
soundwire: intel: fix factor of two in MCLK handling
soundwire: bus: fix device number leak on errors
soundwire: cadence: remove useless variable incrementation
soundwire: cadence: update kernel-doc parameter descriptions
soundwire: qcom: add support for SoundWire controller
dt-bindings: soundwire: add bindings for Qcom controller
soundwire: bus: check first if Slaves become UNATTACHED
soundwire: cadence_master: handle multiple status reports per Slave
soundwire: cadence_master: remove config update for interrupt setting
soundwire: cadence_master: log more useful information during timeouts
soundwire: cadence_master: clear interrupt status before enabling interrupt
soundwire: cadence_master: filter out bad interrupts
soundwire: stream: remove redundant pr_err traces
soundwire: intel: add clock stop quirks
soundwire: intel: add mutex for shared SHIM register access
soundwire: intel: add prototype for WAKEEN interrupt processing
soundwire: intel: add link_list to handle interrupts with a single thread
...
Diffstat (limited to 'drivers/soundwire/intel_init.c')
-rw-r--r-- | drivers/soundwire/intel_init.c | 32 |
1 files changed, 8 insertions, 24 deletions
diff --git a/drivers/soundwire/intel_init.c b/drivers/soundwire/intel_init.c index 2a2b4d8df462..4b769409f6f8 100644 --- a/drivers/soundwire/intel_init.c +++ b/drivers/soundwire/intel_init.c @@ -27,19 +27,9 @@ static int link_mask; module_param_named(sdw_link_mask, link_mask, int, 0444); MODULE_PARM_DESC(sdw_link_mask, "Intel link mask (one bit per link)"); -struct sdw_link_data { - struct sdw_intel_link_res res; - struct platform_device *pdev; -}; - -struct sdw_intel_ctx { - int count; - struct sdw_link_data *links; -}; - static int sdw_intel_cleanup_pdev(struct sdw_intel_ctx *ctx) { - struct sdw_link_data *link = ctx->links; + struct sdw_intel_link_res *link = ctx->links; int i; if (!link) @@ -62,7 +52,7 @@ static struct sdw_intel_ctx { struct platform_device_info pdevinfo; struct platform_device *pdev; - struct sdw_link_data *link; + struct sdw_intel_link_res *link; struct sdw_intel_ctx *ctx; struct acpi_device *adev; int ret, i; @@ -123,14 +113,13 @@ static struct sdw_intel_ctx continue; } - link->res.irq = res->irq; - link->res.registers = res->mmio_base + SDW_LINK_BASE + link->registers = res->mmio_base + SDW_LINK_BASE + (SDW_LINK_SIZE * i); - link->res.shim = res->mmio_base + SDW_SHIM_BASE; - link->res.alh = res->mmio_base + SDW_ALH_BASE; + link->shim = res->mmio_base + SDW_SHIM_BASE; + link->alh = res->mmio_base + SDW_ALH_BASE; - link->res.ops = res->ops; - link->res.arg = res->arg; + link->ops = res->ops; + link->dev = res->dev; memset(&pdevinfo, 0, sizeof(pdevinfo)); @@ -138,8 +127,6 @@ static struct sdw_intel_ctx pdevinfo.name = "int-sdw"; pdevinfo.id = i; pdevinfo.fwnode = acpi_fwnode_handle(adev); - pdevinfo.data = &link->res; - pdevinfo.size_data = sizeof(link->res); pdev = platform_device_register_full(&pdevinfo); if (IS_ERR(pdev)) { @@ -216,7 +203,6 @@ void *sdw_intel_init(acpi_handle *parent_handle, struct sdw_intel_res *res) return sdw_intel_add_controller(res); } -EXPORT_SYMBOL(sdw_intel_init); /** * sdw_intel_exit() - SoundWire Intel exit @@ -224,10 +210,8 @@ EXPORT_SYMBOL(sdw_intel_init); * * Delete the controller instances created and cleanup */ -void sdw_intel_exit(void *arg) +void sdw_intel_exit(struct sdw_intel_ctx *ctx) { - struct sdw_intel_ctx *ctx = arg; - sdw_intel_cleanup_pdev(ctx); kfree(ctx); } |