Thank you very much for the proposed patch, but I have some questions that I would like to discuss with you
On Mon, Sep 04, 2023 at 12:53 PM +0200, Krzysztof Kozlowski wrote:
The Devicetree sound-channel property was never accepted and is not allowed by bindings. It is not used by any upstream user, thus considering that it was never documented, should be dropped.
This node property is intended for use with multiple PA, to load different configurations for different PA. Can I add this sound-channel in the "awinic,aw88395.yaml" file?
Even though it does not look like from the diff, the property is not actually used by the driver, because once set, it is read only in loops depending on ddt_num (prof_hdr->ddt_num, cfg_hdr->ddt_num). The variable ddt_num is never set and is always 0, so the loops do not have any iteration. Dropping sound-channel and ddt_num-related loops allows to drop empty functions which in turn drop quite a lot of code. This entire code was not possible to execute.
The ddt_num variable is not always 0, this variable is defined in the configuration file. The "prof_hdr" variable is assigned by the "cfg_hdr" variable. The "cfg_hdr" variable is assigned by "aw_cfg" aw_cfg is the data obtained through request_firmware.The specific process is as follows:
request_firmware ---> cont->data ---> aw_cfg->data --> cfg_hdr --> prof_hdr
Signed-off-by: Krzysztof Kozlowski krzysztof.kozlowski@linaro.org
---
Not tested on hardware... but feature removed here could not work according if conforming to documented interface.
---
sound/soc/codecs/aw88261.c | 13 - sound/soc/codecs/aw88395/aw88395_data_type.h | 1 - sound/soc/codecs/aw88395/aw88395_device.c | 21 - sound/soc/codecs/aw88395/aw88395_device.h | 1 - sound/soc/codecs/aw88395/aw88395_lib.c | 788 ------------------- 5 files changed, 824 deletions(-)
diff --git a/sound/soc/codecs/aw88261.c b/sound/soc/codecs/aw88261.c index a5de7c704e73..e0527ce2f83e 100644 --- a/sound/soc/codecs/aw88261.c +++ b/sound/soc/codecs/aw88261.c @@ -1171,17 +1171,6 @@ static void aw88261_hw_reset(struct aw88261 *aw88261) usleep_range(AW88261_1000_US, AW88261_1000_US + 10); }
...
Best Regards, Weidong Wang