Clean up ASOC functions to support 32b values instead of 16b
Signed-off-by: Jon Smirl jonsmirl@gmail.com ---
include/sound/soc.h | 22 +++++++++++----------- sound/soc/soc-core.c | 35 +++++++++++++++++------------------ sound/soc/soc-dapm.c | 32 ++++++++++++++++---------------- 3 files changed, 44 insertions(+), 45 deletions(-)
diff --git a/include/sound/soc.h b/include/sound/soc.h index 412cd83..ac59506 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h @@ -253,10 +253,10 @@ int snd_soc_set_runtime_hwparams(struct snd_pcm_substream *substream, #define snd_soc_write(codec, reg, value) codec->write(codec, reg, value)
/* codec register bit access */ -int snd_soc_update_bits(struct snd_soc_codec *codec, unsigned short reg, - unsigned short mask, unsigned short value); -int snd_soc_test_bits(struct snd_soc_codec *codec, unsigned short reg, - unsigned short mask, unsigned short value); +int snd_soc_update_bits(struct snd_soc_codec *codec, uint reg, + uint mask, uint value); +int snd_soc_test_bits(struct snd_soc_codec *codec, uint reg, + uint mask, uint value);
int snd_soc_new_ac97_codec(struct snd_soc_codec *codec, struct snd_ac97_bus_ops *ops, int num); @@ -419,8 +419,8 @@ struct snd_soc_codec { hw_write_t hw_write; hw_read_t hw_read; void *reg_cache; - short reg_cache_size; - short reg_cache_step; + uint reg_cache_size; + uint reg_cache_step;
/* dapm */ struct list_head dapm_widgets; @@ -530,11 +530,11 @@ struct soc_mixer_control {
/* enumerated kcontrol */ struct soc_enum { - unsigned short reg; - unsigned short reg2; - unsigned char shift_l; - unsigned char shift_r; - unsigned int max; + uint reg; + uint reg2; + uint shift_l; + uint shift_r; + uint max; const char **texts; void *dapm; }; diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index c0e6ab4..358aa95 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -961,7 +961,7 @@ static ssize_t codec_reg_show(struct device *dev, { struct snd_soc_device *devdata = dev_get_drvdata(dev); struct snd_soc_codec *codec = devdata->codec; - int i, step = 1, count = 0; + uint i, step = 1, count = 0;
if (!codec->reg_cache_size) return 0; @@ -1039,11 +1039,11 @@ EXPORT_SYMBOL_GPL(snd_soc_free_ac97_codec); * * Returns 1 for change else 0. */ -int snd_soc_update_bits(struct snd_soc_codec *codec, unsigned short reg, - unsigned short mask, unsigned short value) +int snd_soc_update_bits(struct snd_soc_codec *codec, u32 reg, + u32 mask, u32 value) { int change; - unsigned short old, new; + u32 old, new;
mutex_lock(&io_mutex); old = snd_soc_read(codec, reg); @@ -1069,11 +1069,11 @@ EXPORT_SYMBOL_GPL(snd_soc_update_bits); * * Returns 1 for change else 0. */ -int snd_soc_test_bits(struct snd_soc_codec *codec, unsigned short reg, - unsigned short mask, unsigned short value) +int snd_soc_test_bits(struct snd_soc_codec *codec, u32 reg, + u32 mask, u32 value) { int change; - unsigned short old, new; + u32 old, new;
mutex_lock(&io_mutex); old = snd_soc_read(codec, reg); @@ -1320,7 +1320,7 @@ int snd_soc_get_enum_double(struct snd_kcontrol *kcontrol, { struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); struct soc_enum *e = (struct soc_enum *)kcontrol->private_value; - unsigned short val, bitmask; + u32 val, bitmask;
for (bitmask = 1; bitmask < e->max; bitmask <<= 1) ; @@ -1349,8 +1349,7 @@ int snd_soc_put_enum_double(struct snd_kcontrol *kcontrol, { struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); struct soc_enum *e = (struct soc_enum *)kcontrol->private_value; - unsigned short val; - unsigned short mask, bitmask; + u32 val, mask, bitmask;
for (bitmask = 1; bitmask < e->max; bitmask <<= 1) ; @@ -1512,7 +1511,7 @@ int snd_soc_put_volsw(struct snd_kcontrol *kcontrol, int max = mc->max; uint mask = (1 << fls(max)) - 1; uint invert = mc->invert; - unsigned short val, val2, val_mask; + u32 val, val2, val_mask;
val = (ucontrol->value.integer.value[0] & mask); if (invert) @@ -1618,7 +1617,7 @@ int snd_soc_put_volsw_2r(struct snd_kcontrol *kcontrol, uint mask = (1 << fls(max)) - 1; uint invert = mc->invert; int err; - unsigned short val, val2, val_mask; + u32 val, val2, val_mask;
val_mask = mask << shift; val = (ucontrol->value.integer.value[0] & mask); @@ -1683,12 +1682,12 @@ int snd_soc_get_volsw_s8(struct snd_kcontrol *kcontrol, struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); uint reg = mc->reg; int min = mc->min; - int val = snd_soc_read(codec, reg); + uint val = snd_soc_read(codec, reg);
ucontrol->value.integer.value[0] = - ((signed char)(val & 0xff))-min; + ((signed char)(val & 0xff)) - min; ucontrol->value.integer.value[1] = - ((signed char)((val >> 8) & 0xff))-min; + ((signed char)((val >> 8) & 0xff)) - min; return 0; } EXPORT_SYMBOL_GPL(snd_soc_get_volsw_s8); @@ -1710,10 +1709,10 @@ int snd_soc_put_volsw_s8(struct snd_kcontrol *kcontrol, struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); uint reg = mc->reg; int min = mc->min; - unsigned short val; + uint val;
- val = (ucontrol->value.integer.value[0]+min) & 0xff; - val |= ((ucontrol->value.integer.value[1]+min) & 0xff) << 8; + val = (ucontrol->value.integer.value[0] + min) & 0xff; + val |= ((ucontrol->value.integer.value[1] + min) & 0xff) << 8;
return snd_soc_update_bits(codec, reg, 0xffff, val); } diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c index 424e4e8..d88b21a 100644 --- a/sound/soc/soc-dapm.c +++ b/sound/soc/soc-dapm.c @@ -103,7 +103,7 @@ static void dapm_set_path_status(struct snd_soc_dapm_widget *w, switch (w->id) { case snd_soc_dapm_switch: case snd_soc_dapm_mixer: { - int val; + uint val; struct soc_mixer_control *mc = (struct soc_mixer_control *) w->kcontrols[i].private_value; uint reg = mc->reg; @@ -123,7 +123,7 @@ static void dapm_set_path_status(struct snd_soc_dapm_widget *w, break; case snd_soc_dapm_mux: { struct soc_enum *e = (struct soc_enum *)w->kcontrols[i].private_value; - int val, item, bitmask; + uint val, item, bitmask;
for (bitmask = 1; bitmask < e->max; bitmask <<= 1) ; @@ -206,8 +206,8 @@ static int dapm_connect_mixer(struct snd_soc_codec *codec, /* update dapm codec register bits */ static int dapm_update_bits(struct snd_soc_dapm_widget *widget) { - int change, power; - unsigned short old, new; + uint change, power; + uint old, new; struct snd_soc_codec *codec = widget->codec;
/* check for valid widgets */ @@ -221,7 +221,7 @@ static int dapm_update_bits(struct snd_soc_dapm_widget *widget)
power = widget->power; if (widget->invert) - power = (power ? 0:1); + power = (power ? 0 : 1);
old = snd_soc_read(codec, widget->reg); new = (old & ~(0x1 << widget->shift)) | (power << widget->shift); @@ -464,7 +464,7 @@ static int is_connected_input_ep(struct snd_soc_dapm_widget *widget) int dapm_reg_event(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event) { - unsigned int val; + uint val;
if (SND_SOC_DAPM_EVENT_ON(event)) val = w->on_val; @@ -695,8 +695,8 @@ static void dbg_dump_dapm(struct snd_soc_codec* codec, const char *action)
/* test and update the power status of a mux widget */ static int dapm_mux_update_power(struct snd_soc_dapm_widget *widget, - struct snd_kcontrol *kcontrol, int mask, - int val, struct soc_enum* e) + struct snd_kcontrol *kcontrol, uint mask, + uint val, struct soc_enum *e) { struct snd_soc_dapm_path *path; int found = 0; @@ -733,8 +733,8 @@ static int dapm_mux_update_power(struct snd_soc_dapm_widget *widget,
/* test and update the power status of a mixer or switch widget */ static int dapm_mixer_update_power(struct snd_soc_dapm_widget *widget, - struct snd_kcontrol *kcontrol, int reg, - int val_mask, int val, int invert) + struct snd_kcontrol *kcontrol, uint reg, + uint val_mask, uint val, uint invert) { struct snd_soc_dapm_path *path; int found = 0; @@ -755,10 +755,10 @@ static int dapm_mixer_update_power(struct snd_soc_dapm_widget *widget, found = 1; if (val) /* new connection */ - path->connect = invert ? 0:1; + path->connect = invert ? 0 : 1; else /* old connection must be powered down */ - path->connect = invert ? 1:0; + path->connect = invert ? 1 : 0; break; }
@@ -1198,7 +1198,7 @@ int snd_soc_dapm_put_volsw(struct snd_kcontrol *kcontrol, int max = mc->max; uint mask = (1 << fls(max)) - 1; uint invert = mc->invert; - unsigned short val, val2, val_mask; + uint val, val2, val_mask; int ret;
val = (ucontrol->value.integer.value[0] & mask); @@ -1262,7 +1262,7 @@ int snd_soc_dapm_get_enum_double(struct snd_kcontrol *kcontrol, { struct snd_soc_dapm_widget *widget = snd_kcontrol_chip(kcontrol); struct soc_enum *e = (struct soc_enum *)kcontrol->private_value; - unsigned short val, bitmask; + uint val, bitmask;
for (bitmask = 1; bitmask < e->max; bitmask <<= 1) ; @@ -1290,8 +1290,8 @@ int snd_soc_dapm_put_enum_double(struct snd_kcontrol *kcontrol, { struct snd_soc_dapm_widget *widget = snd_kcontrol_chip(kcontrol); struct soc_enum *e = (struct soc_enum *)kcontrol->private_value; - unsigned short val, mux; - unsigned short mask, bitmask; + uint val, mux; + uint mask, bitmask; int ret = 0;
for (bitmask = 1; bitmask < e->max; bitmask <<= 1)