On Thu, Dec 07, 2023 at 10:12:13PM +0100, Gergo Koteles wrote:
On Thu, 2023-12-07 at 20:36 +0000, Mark Brown wrote:
And only one, because tasdevice_change_chn_book directly changes the address of i2c_client, so the unlucky one gets invalid values in its actual book from regcache_sync.
The code creates the impression that writing to one tas2781 writes to all of them, is that not the case?
Yes, the tasdevice_* functions, but the regcache_sync doesn't know this.
So this syncing is done in software not hardware? My understanding was that this was a hardware thing.
How would the devices get their configuration restored?
tasdevice_tuning_switch calls tasdevice_select_tuningprm_cfg which checks whether the devices needs a new program or configuration.
the runtime_suspend and system resume set the devices cur_prog, cur_conf to -1.
...
The tas2781_hda_playback_hook calls the tasdevice_tuning_switch
And there are no registers other than these programs?