summaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/patch_cs8409.h
diff options
context:
space:
mode:
authorLucas Tanure <tanureal@opensource.cirrus.com>2021-08-11 19:56:43 +0100
committerTakashi Iwai <tiwai@suse.de>2021-08-12 13:41:50 +0200
commit165b81c4ac3062d61e5422c85fcd55e8d0f805da (patch)
treeee909341839d1c3e876d443ddd1933ebf1274200 /sound/pci/hda/patch_cs8409.h
parent8de4e5a6680df739f2368628e738d08820320484 (diff)
downloadlinux-stable-165b81c4ac3062d61e5422c85fcd55e8d0f805da.tar.gz
linux-stable-165b81c4ac3062d61e5422c85fcd55e8d0f805da.tar.bz2
linux-stable-165b81c4ac3062d61e5422c85fcd55e8d0f805da.zip
ALSA: hda/cs8409: Support i2c bulk read/write functions
This allows mutex locks to be moved into i2c functions, as the bulk read/write functions can lock/unlock themselves to prevent interruption of sequence reads/writes. Signed-off-by: Lucas Tanure <tanureal@opensource.cirrus.com> Signed-off-by: Vitaly Rodionov <vitalyr@opensource.cirrus.com> Link: https://lore.kernel.org/r/20210811185654.6837-17-vitalyr@opensource.cirrus.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/patch_cs8409.h')
-rw-r--r--sound/pci/hda/patch_cs8409.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/sound/pci/hda/patch_cs8409.h b/sound/pci/hda/patch_cs8409.h
index ee66fd0c01dc..d84cda94dfb9 100644
--- a/sound/pci/hda/patch_cs8409.h
+++ b/sound/pci/hda/patch_cs8409.h
@@ -243,6 +243,8 @@ enum cs8409_coefficient_index_registers {
#define CS8409_CS42L42_DMIC_PIN_NID CS8409_PIN_DMIC1_IN
#define CS8409_CS42L42_DMIC_ADC_PIN_NID CS8409_PIN_DMIC1
+#define CS42L42_INIT_REG_SEQ_SIZE 59
+
enum {
CS8409_BULLSEYE,
CS8409_WARLOCK,
@@ -257,7 +259,7 @@ enum {
struct cs8409_i2c_param {
unsigned int addr;
- unsigned int reg;
+ unsigned int value;
};
struct cs8409_cir_param {
@@ -279,7 +281,7 @@ struct cs8409_spec {
unsigned int cs42l42_suspended:1;
s8 vol[CS42L42_VOLUMES];
- struct mutex cs8409_i2c_mux;
+ struct mutex i2c_mux;
unsigned int i2c_clck_enabled;
unsigned int dev_addr;
struct delayed_work i2c_clk_work;
@@ -303,7 +305,7 @@ extern const struct hda_model_fixup cs8409_models[];
extern const struct hda_fixup cs8409_fixups[];
extern const struct hda_verb cs8409_cs42l42_init_verbs[];
extern const struct hda_pintbl cs8409_cs42l42_pincfgs[];
-extern const struct cs8409_i2c_param cs42l42_init_reg_seq[];
+extern const struct cs8409_i2c_param cs42l42_init_reg_seq[CS42L42_INIT_REG_SEQ_SIZE];
extern const struct cs8409_cir_param cs8409_cs42l42_hw_cfg[];
extern const struct cs8409_cir_param cs8409_cs42l42_bullseye_atn[];