Re: [alsa-devel] [RFC PATCH 00/40] soundwire: updates for 5.4
Comments and feedback welcome! Hello Pierre, This patchset is pretty large - I'd suggest dividing next RFC into segments: debugfs, info, power-management, basic flow corrections and frame shape calculator. There was an intent to provide a logical progression... First debugfs, since I believe it was reviewed before, and I wanted folks like Greg to double-check it without burrying it too deep. Then all corrections, followed by the allocator. And last all PM stuff, split by regular suspend/resume and pm_runtime. The RFC state is precisely to gather feedback, if folks want a different order that's fine. I just wanted to be transparent and share what we have. Some commits have no messages and others lack additional info - tried to provide feedback wherever I could, though, especially for the last one, it would be vital to post additional info so in-depth feedback can be provided. The lack of commits is a miss, I went from 170 debug/integration patches to 40 yesterday and my brain was fried. Maybe nothing for calculator will come up, maybe something will. In general I remember it being an essential part of SDW and one where many bugs where found during the initial verification phase. the frame allocation is a critical piece and it does need to be hardened. However we can do so in steps. The current setups we have support 1 Slave per link and a limited amount of bandwidth. The links themselves don't operate at the max frequency. Also note that that the streams are 'statically' defined by the dailinks, and the allocation is not fully dynamic with random configurations being request. If you fail you fail fast. Nevertheless I do plan to recheck the allocator with an additional scripting tool. It'd be very good to e.g. dump the current setup in a debugfs file and show to users what is happening (or not happening). I didn't recall you worked on SoundWire and I can use your practical knowledge to make the code and tools better :-) Thanks for your contribution and have a good day! Thanks for reviewing this long series and have a nice week-end. -Pierre
Re: [RFC PATCH 00/40] soundwire: updates for 5.4
On 2019-07-26 01:39, Pierre-Louis Bossart wrote: The existing upstream code allows for SoundWire devices to be enumerated and managed by the bus, but streaming is not currently supported. Bard Liao, Rander Wang and I did quite a bit of integration/validation work to close this gap and we now have SoundWire streaming + basic power managemement on Intel CometLake and IceLake reference boards. These changes are still preliminary and should not be merged as is, but it's time to start reviews. While the number of patches is quite large, each of the changes is quite small. SOF driver changes will be submitted shortly as well but are still being validated. ClockStop modes and synchronized playback on multiple links are not supported for now and will likely be part of the next cycle (dependencies on codec drivers and multi-cpu DAI support). Acknowledgements: This work would not have been possible without the support of Slawomir Blauciak and Tomasz Lauda on the SOF side, currently being reviewed, see https://github.com/thesofproject/sof/pull/1638 Comments and feedback welcome! Hello Pierre, This patchset is pretty large - I'd suggest dividing next RFC into segments: debugfs, info, power-management, basic flow corrections and frame shape calculator. Some commits have no messages and others lack additional info - tried to provide feedback wherever I could, though, especially for the last one, it would be vital to post additional info so in-depth feedback can be provided. Maybe nothing for calculator will come up, maybe something will. In general I remember it being an essential part of SDW and one where many bugs where found during the initial verification phase. Thanks for your contribution and have a good day! Czarek
[RFC PATCH 00/40] soundwire: updates for 5.4
The existing upstream code allows for SoundWire devices to be enumerated and managed by the bus, but streaming is not currently supported. Bard Liao, Rander Wang and I did quite a bit of integration/validation work to close this gap and we now have SoundWire streaming + basic power managemement on Intel CometLake and IceLake reference boards. These changes are still preliminary and should not be merged as is, but it's time to start reviews. While the number of patches is quite large, each of the changes is quite small. SOF driver changes will be submitted shortly as well but are still being validated. ClockStop modes and synchronized playback on multiple links are not supported for now and will likely be part of the next cycle (dependencies on codec drivers and multi-cpu DAI support). Acknowledgements: This work would not have been possible without the support of Slawomir Blauciak and Tomasz Lauda on the SOF side, currently being reviewed, see https://github.com/thesofproject/sof/pull/1638 Comments and feedback welcome! Bard liao (1): soundwire: include mod_devicetable.h to avoid compiling warnings Pierre-Louis Bossart (38): soundwire: add debugfs support soundwire: cadence_master: add debugfs register dump soundwire: cadence_master: align debugfs to 8 digits soundwire: intel: add debugfs register dump soundwire: intel: move interrupt enable after interrupt handler registration soundwire: intel: prevent possible dereference in hw_params soundwire: intel: fix channel number reported by hardware soundwire: intel: remove BIOS work-arounds soundwire: cadence_master: fix usage of CONFIG_UPDATE soundwire: cadence_master: remove useless wrapper soundwire: cadence_master: simplify bus clash interrupt clear soundwire: cadence_master: revisit interrupt settings soundwire: cadence_master: fix register definition for SLAVE_STATE soundwire: cadence_master: fix definitions for INTSTAT0/1 soundwire: cadence_master: handle multiple status reports per Slave soundwire: cadence_master: improve startup sequence with link hw_reset soundwire: bus: use runtime_pm_get_sync/pm when enabled soundwire: bus: split handling of Device0 events soundwire: bus: improve dynamic debug comments for enumeration soundwire: prototypes for suspend/resume soundwire: export helpers to find row and column values soundwire: stream: fix disable sequence soundwire: cadence_master: use BIOS defaults for frame shape soundwire: intel: use BIOS information to set clock dividers soundwire: Add Intel resource management algorithm soundwire: intel: handle disabled links soundwire: intel_init: add kernel module parameter to filter out links soundwire: cadence_master: add kernel parameter to override interrupt mask soundwire: intel: move shutdown() callback and don't export symbol soundwire: intel: add helper for initialization soundwire: intel: Add basic power management support soundwire: intel: ignore disabled links for suspend/resume soundwire: intel: export helper to exit reset soundwire: intel: disable interrupts on suspend soundwire: cadence_master: add hw_reset capability in debugfs soundwire: cadence_master: make clock stop exit configurable on init soundwire: intel: add pm_runtime support soundwire: intel: add delay on restart for enumeration Rander Wang (1): soundwire: cadence_master: fix divider setting in clock register drivers/soundwire/Makefile | 4 +- drivers/soundwire/algo_dynamic_allocation.c | 403 drivers/soundwire/bus.c | 44 ++- drivers/soundwire/bus.h | 77 +++- drivers/soundwire/bus_type.c| 3 + drivers/soundwire/cadence_master.c | 365 ++ drivers/soundwire/cadence_master.h | 12 +- drivers/soundwire/debugfs.c | 156 drivers/soundwire/intel.c | 381 +- drivers/soundwire/intel_init.c | 14 + drivers/soundwire/slave.c | 1 + drivers/soundwire/stream.c | 53 ++- include/linux/soundwire/sdw.h | 15 + 13 files changed, 1414 insertions(+), 114 deletions(-) create mode 100644 drivers/soundwire/algo_dynamic_allocation.c create mode 100644 drivers/soundwire/debugfs.c -- 2.20.1