Re: [PATCH 1/3] ASoC: tas6424: Allow disabling auto diagnostics for faster power-on

From: Jean-Jacques Hiblot
Date: Mon Apr 23 2018 - 15:00:46 EST




On 23/04/2018 17:44, Mark Brown wrote:
On Fri, Apr 20, 2018 at 12:04:42PM +0200, Jean-Jacques Hiblot wrote:
The TAS6424 incorporates both DC-load and AC-load diagnostics which are
used to determine the status of the load. The DC diagnostics runs when any
channel is directed to leave the Hi-Z state and enter the MUTE or PLAY
state.
The DC diagnostics are turned on by default but if a fast startup without
diagnostics is required the DC diagnostics can be bypassed by adding the
property "disable-auto-diagnostics".
This is making me think we should be smarter here and either only run
the diagnostics once during boot or provide a user control for the
diagnostics. It seems like something that is more of a runtime software
decision than something that's fixed in hardware design, is there
anything about the hardware design that'd make it impossible to run
diagnostics?
I can't think of anything that would make it unusable.
This auto diagnostic is really useful in cars where wires can get disconnected or shorted to ground.
In quieter environment it may not be as useful, and a test at startup may be sufficient.
Diagnostics can also be triggered at will.
Do you think a sysfs interface would be better suited to disable the autodiag ?

Thanks for your comment on the series.

JJ


+ if (tas6424->no_auto_diags) {
+ /*
+ * Disable DC auto-diagnostics to save time when channel leave
+ * Hi-Z state
+ */
+ ret = regmap_update_bits(tas6424->regmap,
+ TAS6424_DC_DIAG_CTRL1,
+ 0xff, TAS6424_LDGBYPASS);
This could just be exposed to userspace as a simple switch control
couldn't it? I do note that it masks more bits than it sets though...