Message ID | 20200110220016.30887-1-pierre-louis.bossart@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | soundwire: intel: report slave_ids for each link to SOF driver | expand |
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
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 */ };