[alsa-devel] Using regmap_multi_reg_write() with regcache_sync()
Hi Mark, We are trying to measure cold start output latency for audio playback usecase on our platform and observing that the latency is high. As a part of optimization, we have profiled regcache_sync() API when the codec is out of reset and observed that regcache_sync() takes little long time for synching all of the codec registers (around 100 registers). But, the bus connecting the codec has the capability to send multiple register writes at once. It seems regmap_multi_reg_write() can be used for triggering multiple register writes at once. So, we would like to know, if it is possible to use regmap_multi_reg_write() or a similar function with regcache_sync that intern calls bus driver's multi_reg_write API to sync to the HW, that will help in reducing the latency.
Your comments/suggestions are highly appreciated.
Thanks & Regards, Sudheer Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project
On Thu, Jul 30, 2015 at 08:01:07PM -0700, Sudheer wrote:
We are trying to measure cold start output latency for audio playback usecase on our platform and observing that the latency is high. As a part of optimization, we have profiled regcache_sync() API when the codec is out of reset and observed that regcache_sync() takes little long time for synching all of the codec registers (around 100 registers). But, the bus connecting the codec has the capability to send multiple register writes at once. It seems regmap_multi_reg_write() can be used for triggering multiple register writes at once. So, we would like to know, if it is possible to use regmap_multi_reg_write() or a similar function with regcache_sync that intern calls bus driver's multi_reg_write API to sync to the HW, that will help in reducing the latency.
We already coalesce register writes using _raw_write() in the cache code where appropriate, if your device isn't able to use that for some reason then falling back to multi write sounds sensible, though it'd be a bit surprising to see a device that uses that.
In general please post proposed changes as patches rather than vague design questions (it's easier to answer and avoids disappointment later if there's some hidden issues which present problems), and please remember to send mails to the relevant lists - linux-kernel for regmap.
participants (2)
-
Mark Brown
-
Sudheer