Vinod Koul
becfce5233
soundwire: amd: drop bus freq calculation and set 'max_clk_freq'
...
max_dr_freq and curr_dr_freq is calculated and set in
sdw_bus_master_add(). Setting in the driver is reduanant, so drop that.
Set max_clk_freq instead.
Signed-off-by: Vinod Koul <vkoul@kernel.org >
Tested-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Link: https://lore.kernel.org/r/20231129130449.9892-1-vkoul@kernel.org
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-12-18 18:02:10 +05:30
Pierre-Louis Bossart
6543ac13c6
soundwire: bus: introduce controller_id
...
The existing SoundWire support misses a clear Controller/Manager
hiearchical definition to deal with all variants across SOC vendors.
a) Intel platforms have one controller with 4 or more Managers.
b) AMD platforms have two controllers with one Manager each, but due
to BIOS issues use two different link_id values within the scope of a
single controller.
c) QCOM platforms have one or more controller with one Manager each.
This patch adds a 'controller_id' which can be set by higher
levels. If assigned to -1, the controller_id will be set to the
system-unique IDA-assigned bus->id.
The main change is that the bus->id is no longer used for any device
name, which makes the definition completely predictable and not
dependent on any enumeration order. The bus->id is only used to insert
the Managers in the stream rt context.
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Reviewed-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Tested-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org >
Link: https://lore.kernel.org/stable/20231017160933.12624-2-pierre-louis.bossart%40linux.intel.com
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org >
Link: https://lore.kernel.org/r/20231017160933.12624-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-11-24 12:24:37 +05:30
Dan Carpenter
7891d0a5ce
soundwire: amd: Fix a check for errors in probe()
...
This code has two problems:
1) The devm_ioremap() function returns NULL, not error pointers.
2) It's checking the wrong variable. ->mmio instead of ->acp_mmio.
Fixes: d8f48fbdfd ("soundwire: amd: Add support for AMD Manager driver")
Suggested-by: "Mukunda,Vijendar" <vijendar.mukunda@amd.com >
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org >
Link: https://lore.kernel.org/r/9863b2bf-0de2-4bf8-8f09-fe24dc5c63ff@moroto.mountain
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-07-13 11:09:07 +05:30
Uwe Kleine-König
1ec33e22b8
soundwire: amd: Improve error message in remove callback
...
Returning an error code in the remove callback yields to an error
message
remove callback returned a non-zero value. This will be ignored.
After that the device is removed anyhow. Improve the error message to at
least say what the actual problem is. While touching that code, convert
the driver to the .remove_new() callback which returns no value with the
same effect as returning zero in a .remove() callback.
As the return value is ignored by the core the only effect of this patch
is to improve the error message. (And the motivating effect is that
there is one less driver using .remove().)
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de >
Link: https://lore.kernel.org/r/20230518200823.249795-1-u.kleine-koenig@pengutronix.de
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-05-29 10:49:46 +05:30
Vijendar Mukunda
9cf1efc5ed
soundwire: amd: add pm_prepare callback and pm ops support
...
Add pm_prepare callback and System level pm ops support for
AMD SoundWire manager driver.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Signed-off-by: Mastan Katragadda <Mastan.Katragadda@amd.com >
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Link: https://lore.kernel.org/lkml/20230310162554.699766-9-Vijendar.Mukunda@amd.com
Link: https://lore.kernel.org/r/20230321050901.115439-9-Vijendar.Mukunda@amd.com
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-04-12 15:30:36 +05:30
Vijendar Mukunda
66c878838f
soundwire: amd: handle SoundWire wake enable interrupt
...
Add wake enable interrupt support for both the SoundWire manager
instances.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Signed-off-by: Mastan Katragadda <Mastan.Katragadda@amd.com >
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Link: https://lore.kernel.org/lkml/20230227154801.50319-8-Vijendar.Mukunda@amd.com
Link: https://lore.kernel.org/r/20230321050901.115439-8-Vijendar.Mukunda@amd.com
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-04-12 15:30:36 +05:30
Vijendar Mukunda
81ff58ff71
soundwire: amd: add runtime pm ops for AMD SoundWire manager driver
...
Add support for runtime pm ops for AMD SoundWire manager driver.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Signed-off-by: Mastan Katragadda <Mastan.Katragadda@amd.com >
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Link: https://lore.kernel.org/lkml/20230227154801.50319-7-Vijendar.Mukunda@amd.com
Link: https://lore.kernel.org/r/20230321050901.115439-7-Vijendar.Mukunda@amd.com
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-04-12 15:30:36 +05:30
Vijendar Mukunda
65f93e4096
soundwire: amd: add SoundWire manager interrupt handling
...
Add support for handling SoundWire manager interrupts.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Signed-off-by: Mastan Katragadda <Mastan.Katragadda@amd.com >
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Link: https://lore.kernel.org/lkml/20230227154801.50319-6-Vijendar.Mukunda@amd.com
Link: https://lore.kernel.org/r/20230321050901.115439-6-Vijendar.Mukunda@amd.com
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-04-12 15:30:36 +05:30
Vijendar Mukunda
2b13596f7c
soundwire: amd: register SoundWire manager dai ops
...
Register dai ops for SoundWire manager instances.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Link: https://lore.kernel.org/lkml/20230227154801.50319-4-Vijendar.Mukunda@amd.com
Link: https://lore.kernel.org/r/20230321050901.115439-4-Vijendar.Mukunda@amd.com
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-04-12 15:30:36 +05:30
Vijendar Mukunda
d8f48fbdfd
soundwire: amd: Add support for AMD Manager driver
...
AMD ACP(v6.x) IP block has two SoundWire manager devices.
Add support for
- Manager driver probe & remove sequence
- Helper functions to enable/disable interrupts,
Initialize sdw manager, enable sdw pads
- Manager driver sdw_master_ops & port_ops callbacks
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Link: https://lore.kernel.org/lkml/20230310162554.699766-3-Vijendar.Mukunda@amd.com
Link: https://lore.kernel.org/r/20230321050901.115439-3-Vijendar.Mukunda@amd.com
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-04-12 15:30:35 +05:30