Commit c021ca72 authored by Gergo Koteles's avatar Gergo Koteles Committed by Takashi Iwai

ALSA: hda/tas2781: add configurable global i2c address

Make the global i2c address configurable to support compatible amplifiers
with different global i2c address.
Signed-off-by: default avatarGergo Koteles <soyer@irl.hu>
Link: https://lore.kernel.org/r/a252f1efeed5049f027f01e699c9e10e1e05bf9e.1703891777.git.soyer@irl.huSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 76f5f55c
...@@ -121,6 +121,8 @@ struct tasdevice_priv { ...@@ -121,6 +121,8 @@ struct tasdevice_priv {
bool force_fwload_status; bool force_fwload_status;
bool playback_started; bool playback_started;
bool isacpi; bool isacpi;
unsigned int global_addr;
int (*fw_parse_variable_header)(struct tasdevice_priv *tas_priv, int (*fw_parse_variable_header)(struct tasdevice_priv *tas_priv,
const struct firmware *fmw, int offset); const struct firmware *fmw, int offset);
int (*fw_parse_program_data)(struct tasdevice_priv *tas_priv, int (*fw_parse_program_data)(struct tasdevice_priv *tas_priv,
......
...@@ -81,7 +81,7 @@ static int tas2781_get_i2c_res(struct acpi_resource *ares, void *data) ...@@ -81,7 +81,7 @@ static int tas2781_get_i2c_res(struct acpi_resource *ares, void *data)
if (i2c_acpi_get_i2c_resource(ares, &sb)) { if (i2c_acpi_get_i2c_resource(ares, &sb)) {
if (tas_priv->ndev < TASDEVICE_MAX_CHANNELS && if (tas_priv->ndev < TASDEVICE_MAX_CHANNELS &&
sb->slave_address != TAS2781_GLOBAL_ADDR) { sb->slave_address != tas_priv->global_addr) {
tas_priv->tasdevice[tas_priv->ndev].dev_addr = tas_priv->tasdevice[tas_priv->ndev].dev_addr =
(unsigned int)sb->slave_address; (unsigned int)sb->slave_address;
tas_priv->ndev++; tas_priv->ndev++;
...@@ -701,6 +701,7 @@ static int tas2781_hda_i2c_probe(struct i2c_client *clt) ...@@ -701,6 +701,7 @@ static int tas2781_hda_i2c_probe(struct i2c_client *clt)
device_name = "TIAS2781"; device_name = "TIAS2781";
tas_hda->priv->save_calibration = tas2781_save_calibration; tas_hda->priv->save_calibration = tas2781_save_calibration;
tas_hda->priv->apply_calibration = tas2781_apply_calib; tas_hda->priv->apply_calibration = tas2781_apply_calib;
tas_hda->priv->global_addr = TAS2781_GLOBAL_ADDR;
} else } else
return -ENODEV; return -ENODEV;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment