| .. | .. |
|---|
| 86 | 86 | val[i] = rsnd_kctrl_valm(dvc->volume, i); |
|---|
| 87 | 87 | |
|---|
| 88 | 88 | /* Enable Digital Volume */ |
|---|
| 89 | | - rsnd_mod_write(mod, DVC_VOL0R, val[0]); |
|---|
| 90 | | - rsnd_mod_write(mod, DVC_VOL1R, val[1]); |
|---|
| 91 | | - rsnd_mod_write(mod, DVC_VOL2R, val[2]); |
|---|
| 92 | | - rsnd_mod_write(mod, DVC_VOL3R, val[3]); |
|---|
| 93 | | - rsnd_mod_write(mod, DVC_VOL4R, val[4]); |
|---|
| 94 | | - rsnd_mod_write(mod, DVC_VOL5R, val[5]); |
|---|
| 95 | | - rsnd_mod_write(mod, DVC_VOL6R, val[6]); |
|---|
| 96 | | - rsnd_mod_write(mod, DVC_VOL7R, val[7]); |
|---|
| 89 | + for (i = 0; i < RSND_MAX_CHANNELS; i++) |
|---|
| 90 | + rsnd_mod_write(mod, DVC_VOLxR(i), val[i]); |
|---|
| 97 | 91 | } |
|---|
| 98 | 92 | |
|---|
| 99 | 93 | static void rsnd_dvc_volume_init(struct rsnd_dai_stream *io, |
|---|
| .. | .. |
|---|
| 192 | 186 | struct rsnd_dai_stream *io, |
|---|
| 193 | 187 | struct rsnd_priv *priv) |
|---|
| 194 | 188 | { |
|---|
| 195 | | - rsnd_mod_power_on(mod); |
|---|
| 189 | + int ret; |
|---|
| 190 | + |
|---|
| 191 | + ret = rsnd_mod_power_on(mod); |
|---|
| 192 | + if (ret < 0) |
|---|
| 193 | + return ret; |
|---|
| 196 | 194 | |
|---|
| 197 | 195 | rsnd_dvc_activation(mod); |
|---|
| 198 | 196 | |
|---|
| .. | .. |
|---|
| 298 | 296 | .init = rsnd_dvc_init, |
|---|
| 299 | 297 | .quit = rsnd_dvc_quit, |
|---|
| 300 | 298 | .pcm_new = rsnd_dvc_pcm_new, |
|---|
| 299 | + .get_status = rsnd_mod_get_status, |
|---|
| 301 | 300 | }; |
|---|
| 302 | 301 | |
|---|
| 303 | 302 | struct rsnd_mod *rsnd_dvc_mod_get(struct rsnd_priv *priv, int id) |
|---|
| .. | .. |
|---|
| 357 | 356 | } |
|---|
| 358 | 357 | |
|---|
| 359 | 358 | ret = rsnd_mod_init(priv, rsnd_mod_get(dvc), &rsnd_dvc_ops, |
|---|
| 360 | | - clk, rsnd_mod_get_status, RSND_MOD_DVC, i); |
|---|
| 359 | + clk, RSND_MOD_DVC, i); |
|---|
| 361 | 360 | if (ret) { |
|---|
| 362 | 361 | of_node_put(np); |
|---|
| 363 | 362 | goto rsnd_dvc_probe_done; |
|---|