[alsa-devel] [PATCH] soundwire: intel: report slave_ids for each link to SOF driver
From: Bard Liao yung-chuan.liao@linux.intel.com
The existing link_mask flag is no longer sufficient to detect the hardware and identify which topology file and a machine driver to load.
By reporting the slave_ids exposed in ACPI tables, the parent SOF driver will be able to compare against a set of static configurations.
This patch only adds the interface change, the functionality is added in future patches.
Signed-off-by: Bard Liao yung-chuan.liao@linux.intel.com Signed-off-by: Pierre-Louis Bossart pierre-louis.bossart@linux.intel.com --- include/linux/soundwire/sdw_intel.h | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/include/linux/soundwire/sdw_intel.h b/include/linux/soundwire/sdw_intel.h index 93b83bdf8035..979b41b5dcb4 100644 --- a/include/linux/soundwire/sdw_intel.h +++ b/include/linux/soundwire/sdw_intel.h @@ -5,6 +5,7 @@ #define __SDW_INTEL_H
#include <linux/irqreturn.h> +#include <linux/soundwire/sdw.h>
/** * struct sdw_intel_stream_params_data: configuration passed during @@ -93,6 +94,11 @@ struct sdw_intel_link_res; */ #define SDW_INTEL_CLK_STOP_BUS_RESET BIT(3)
+struct sdw_intel_slave_id { + int link_id; + struct sdw_slave_id id; +}; + /** * struct sdw_intel_ctx - context allocated by the controller * driver probe @@ -101,9 +107,12 @@ struct sdw_intel_link_res; * hardware capabilities after all power dependencies are settled. * @link_mask: bit-wise mask listing SoundWire links reported by the * Controller + * @num_slaves: total number of devices exposed across all enabled links * @handle: ACPI parent handle * @links: information for each link (controller-specific and kept * opaque here) + * @ids: array of slave_id, representing Slaves exposed across all enabled + * links * @link_list: list to handle interrupts across all links * @shim_lock: mutex to handle concurrent rmw access to shared SHIM registers. */ @@ -111,8 +120,10 @@ struct sdw_intel_ctx { int count; void __iomem *mmio_base; u32 link_mask; + int num_slaves; acpi_handle handle; struct sdw_intel_link_res *links; + struct sdw_intel_slave_id *ids; struct list_head link_list; struct mutex shim_lock; /* lock for access to shared SHIM registers */ };
On 1/10/20 4:00 PM, Pierre-Louis Bossart wrote:
From: Bard Liao yung-chuan.liao@linux.intel.com
The existing link_mask flag is no longer sufficient to detect the hardware and identify which topology file and a machine driver to load.
By reporting the slave_ids exposed in ACPI tables, the parent SOF driver will be able to compare against a set of static configurations.
This patch only adds the interface change, the functionality is added in future patches.
Vinod, this patch would need to be shared as an immutable tag for Mark, once this is done I can share the SOF parts that make use of the information (cf. https://github.com/thesofproject/linux/pull/1692 for reference)
Sorry we missed this in the earlier interface changes, we didn't think we would have so many hardware variations so quickly.
Thanks!
Signed-off-by: Bard Liao yung-chuan.liao@linux.intel.com Signed-off-by: Pierre-Louis Bossart pierre-louis.bossart@linux.intel.com
include/linux/soundwire/sdw_intel.h | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/include/linux/soundwire/sdw_intel.h b/include/linux/soundwire/sdw_intel.h index 93b83bdf8035..979b41b5dcb4 100644 --- a/include/linux/soundwire/sdw_intel.h +++ b/include/linux/soundwire/sdw_intel.h @@ -5,6 +5,7 @@ #define __SDW_INTEL_H
#include <linux/irqreturn.h> +#include <linux/soundwire/sdw.h>
/**
- struct sdw_intel_stream_params_data: configuration passed during
@@ -93,6 +94,11 @@ struct sdw_intel_link_res; */ #define SDW_INTEL_CLK_STOP_BUS_RESET BIT(3)
+struct sdw_intel_slave_id {
- int link_id;
- struct sdw_slave_id id;
+};
- /**
- struct sdw_intel_ctx - context allocated by the controller
- driver probe
@@ -101,9 +107,12 @@ struct sdw_intel_link_res;
- hardware capabilities after all power dependencies are settled.
- @link_mask: bit-wise mask listing SoundWire links reported by the
- Controller
- @num_slaves: total number of devices exposed across all enabled links
- @handle: ACPI parent handle
- @links: information for each link (controller-specific and kept
- opaque here)
- @ids: array of slave_id, representing Slaves exposed across all enabled
*/
- links
- @link_list: list to handle interrupts across all links
- @shim_lock: mutex to handle concurrent rmw access to shared SHIM registers.
@@ -111,8 +120,10 @@ struct sdw_intel_ctx { int count; void __iomem *mmio_base; u32 link_mask;
- int num_slaves; acpi_handle handle; struct sdw_intel_link_res *links;
- struct sdw_intel_slave_id *ids; struct list_head link_list; struct mutex shim_lock; /* lock for access to shared SHIM registers */ };
On 10-01-20, 16:31, Pierre-Louis Bossart wrote:
On 1/10/20 4:00 PM, Pierre-Louis Bossart wrote:
From: Bard Liao yung-chuan.liao@linux.intel.com
The existing link_mask flag is no longer sufficient to detect the hardware and identify which topology file and a machine driver to load.
By reporting the slave_ids exposed in ACPI tables, the parent SOF driver will be able to compare against a set of static configurations.
This patch only adds the interface change, the functionality is added in future patches.
Vinod, this patch would need to be shared as an immutable tag for Mark, once this is done I can share the SOF parts that make use of the information (cf. https://github.com/thesofproject/linux/pull/1692 for reference)
Sorry we missed this in the earlier interface changes, we didn't think we would have so many hardware variations so quickly.
do you want the tag now..? I can provide... We are already in -rc6 and i will send PR to greg later this week...
On 1/14/20 12:26 AM, Vinod Koul wrote:
On 10-01-20, 16:31, Pierre-Louis Bossart wrote:
On 1/10/20 4:00 PM, Pierre-Louis Bossart wrote:
From: Bard Liao yung-chuan.liao@linux.intel.com
The existing link_mask flag is no longer sufficient to detect the hardware and identify which topology file and a machine driver to load.
By reporting the slave_ids exposed in ACPI tables, the parent SOF driver will be able to compare against a set of static configurations.
This patch only adds the interface change, the functionality is added in future patches.
Vinod, this patch would need to be shared as an immutable tag for Mark, once this is done I can share the SOF parts that make use of the information (cf. https://github.com/thesofproject/linux/pull/1692 for reference)
Sorry we missed this in the earlier interface changes, we didn't think we would have so many hardware variations so quickly.
do you want the tag now..? I can provide... We are already in -rc6 and i will send PR to greg later this week...
yes please, I'd like to send the SOF patches this week as well.
On 14-01-20, 10:05, Pierre-Louis Bossart wrote:
On 1/14/20 12:26 AM, Vinod Koul wrote:
On 10-01-20, 16:31, Pierre-Louis Bossart wrote:
On 1/10/20 4:00 PM, Pierre-Louis Bossart wrote:
From: Bard Liao yung-chuan.liao@linux.intel.com
The existing link_mask flag is no longer sufficient to detect the hardware and identify which topology file and a machine driver to load.
By reporting the slave_ids exposed in ACPI tables, the parent SOF driver will be able to compare against a set of static configurations.
This patch only adds the interface change, the functionality is added in future patches.
Vinod, this patch would need to be shared as an immutable tag for Mark, once this is done I can share the SOF parts that make use of the information (cf. https://github.com/thesofproject/linux/pull/1692 for reference)
Sorry we missed this in the earlier interface changes, we didn't think we would have so many hardware variations so quickly.
do you want the tag now..? I can provide... We are already in -rc6 and i will send PR to greg later this week...
yes please, I'd like to send the SOF patches this week as well.
Applied now and pushed tag 'sdw_interfaces_2_5.6' for this, thanks
participants (2)
-
Pierre-Louis Bossart
-
Vinod Koul