hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/sound/soc/codecs/rt5631.c
....@@ -1,3 +1,4 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * rt5631.c -- RT5631 ALSA Soc Audio driver
34 *
....@@ -6,11 +7,6 @@
67 * Author: flove <flove@realtek.com>
78 *
89 * Based on WM8753.c
9
- *
10
- * This program is free software; you can redistribute it and/or modify
11
- * it under the terms of the GNU General Public License version 2 as
12
- * published by the Free Software Foundation.
13
- *
1410 */
1511 #include <linux/module.h>
1612 #include <linux/moduleparam.h>
....@@ -68,7 +64,7 @@
6864 { RT5631_PSEUDO_SPATL_CTRL, 0x0553 },
6965 };
7066
71
-/**
67
+/*
7268 * rt5631_write_index - write index register of 2nd layer
7369 */
7470 static void rt5631_write_index(struct snd_soc_component *component,
....@@ -78,7 +74,7 @@
7874 snd_soc_component_write(component, RT5631_INDEX_DATA, value);
7975 }
8076
81
-/**
77
+/*
8278 * rt5631_read_index - read index register of 2nd layer
8379 */
8480 static unsigned int rt5631_read_index(struct snd_soc_component *component,
....@@ -87,7 +83,7 @@
8783 unsigned int value;
8884
8985 snd_soc_component_write(component, RT5631_INDEX_ADD, reg);
90
- value = snd_soc_component_read32(component, RT5631_INDEX_DATA);
86
+ value = snd_soc_component_read(component, RT5631_INDEX_DATA);
9187
9288 return value;
9389 }
....@@ -289,7 +285,7 @@
289285 struct snd_soc_component *component = snd_soc_dapm_to_component(source->dapm);
290286 unsigned int reg;
291287
292
- reg = snd_soc_component_read32(component, RT5631_GLOBAL_CLK_CTRL);
288
+ reg = snd_soc_component_read(component, RT5631_GLOBAL_CLK_CTRL);
293289 return reg & RT5631_SYSCLK_SOUR_SEL_PLL;
294290 }
295291
....@@ -307,7 +303,7 @@
307303 struct snd_soc_component *component = snd_soc_dapm_to_component(source->dapm);
308304 unsigned int reg;
309305
310
- reg = snd_soc_component_read32(component, RT5631_OUTMIXER_L_CTRL);
306
+ reg = snd_soc_component_read(component, RT5631_OUTMIXER_L_CTRL);
311307 return !(reg & RT5631_M_DAC_L_TO_OUTMIXER_L);
312308 }
313309
....@@ -317,7 +313,7 @@
317313 struct snd_soc_component *component = snd_soc_dapm_to_component(source->dapm);
318314 unsigned int reg;
319315
320
- reg = snd_soc_component_read32(component, RT5631_OUTMIXER_R_CTRL);
316
+ reg = snd_soc_component_read(component, RT5631_OUTMIXER_R_CTRL);
321317 return !(reg & RT5631_M_DAC_R_TO_OUTMIXER_R);
322318 }
323319
....@@ -327,7 +323,7 @@
327323 struct snd_soc_component *component = snd_soc_dapm_to_component(source->dapm);
328324 unsigned int reg;
329325
330
- reg = snd_soc_component_read32(component, RT5631_SPK_MIXER_CTRL);
326
+ reg = snd_soc_component_read(component, RT5631_SPK_MIXER_CTRL);
331327 return !(reg & RT5631_M_DAC_L_TO_SPKMIXER_L);
332328 }
333329
....@@ -337,7 +333,7 @@
337333 struct snd_soc_component *component = snd_soc_dapm_to_component(source->dapm);
338334 unsigned int reg;
339335
340
- reg = snd_soc_component_read32(component, RT5631_SPK_MIXER_CTRL);
336
+ reg = snd_soc_component_read(component, RT5631_SPK_MIXER_CTRL);
341337 return !(reg & RT5631_M_DAC_R_TO_SPKMIXER_R);
342338 }
343339
....@@ -347,7 +343,7 @@
347343 struct snd_soc_component *component = snd_soc_dapm_to_component(source->dapm);
348344 unsigned int reg;
349345
350
- reg = snd_soc_component_read32(component, RT5631_ADC_REC_MIXER);
346
+ reg = snd_soc_component_read(component, RT5631_ADC_REC_MIXER);
351347 return !(reg & RT5631_M_MIC1_TO_RECMIXER_L);
352348 }
353349
....@@ -357,12 +353,13 @@
357353 struct snd_soc_component *component = snd_soc_dapm_to_component(source->dapm);
358354 unsigned int reg;
359355
360
- reg = snd_soc_component_read32(component, RT5631_ADC_REC_MIXER);
356
+ reg = snd_soc_component_read(component, RT5631_ADC_REC_MIXER);
361357 return !(reg & RT5631_M_MIC2_TO_RECMIXER_R);
362358 }
363359
364360 /**
365361 * onebit_depop_power_stage - auto depop in power stage.
362
+ * @component: ASoC component
366363 * @enable: power on/off
367364 *
368365 * When power on/off headphone, the depop sequence is done by hardware.
....@@ -376,9 +373,9 @@
376373 RT5631_EN_ONE_BIT_DEPOP, 0);
377374
378375 /* keep soft volume and zero crossing setting */
379
- soft_vol = snd_soc_component_read32(component, RT5631_SOFT_VOL_CTRL);
376
+ soft_vol = snd_soc_component_read(component, RT5631_SOFT_VOL_CTRL);
380377 snd_soc_component_write(component, RT5631_SOFT_VOL_CTRL, 0);
381
- hp_zc = snd_soc_component_read32(component, RT5631_INT_ST_IRQ_CTRL_2);
378
+ hp_zc = snd_soc_component_read(component, RT5631_INT_ST_IRQ_CTRL_2);
382379 snd_soc_component_write(component, RT5631_INT_ST_IRQ_CTRL_2, hp_zc & 0xf7ff);
383380 if (enable) {
384381 /* config one-bit depop parameter */
....@@ -401,6 +398,7 @@
401398
402399 /**
403400 * onebit_depop_mute_stage - auto depop in mute stage.
401
+ * @component: ASoC component
404402 * @enable: mute/unmute
405403 *
406404 * When mute/unmute headphone, the depop sequence is done by hardware.
....@@ -414,9 +412,9 @@
414412 RT5631_EN_ONE_BIT_DEPOP, 0);
415413
416414 /* keep soft volume and zero crossing setting */
417
- soft_vol = snd_soc_component_read32(component, RT5631_SOFT_VOL_CTRL);
415
+ soft_vol = snd_soc_component_read(component, RT5631_SOFT_VOL_CTRL);
418416 snd_soc_component_write(component, RT5631_SOFT_VOL_CTRL, 0);
419
- hp_zc = snd_soc_component_read32(component, RT5631_INT_ST_IRQ_CTRL_2);
417
+ hp_zc = snd_soc_component_read(component, RT5631_INT_ST_IRQ_CTRL_2);
420418 snd_soc_component_write(component, RT5631_INT_ST_IRQ_CTRL_2, hp_zc & 0xf7ff);
421419 if (enable) {
422420 schedule_timeout_uninterruptible(msecs_to_jiffies(10));
....@@ -439,6 +437,7 @@
439437
440438 /**
441439 * onebit_depop_power_stage - step by step depop sequence in power stage.
440
+ * @component: ASoC component
442441 * @enable: power on/off
443442 *
444443 * When power on/off headphone, the depop sequence is done in step by step.
....@@ -452,9 +451,9 @@
452451 RT5631_EN_ONE_BIT_DEPOP, RT5631_EN_ONE_BIT_DEPOP);
453452
454453 /* keep soft volume and zero crossing setting */
455
- soft_vol = snd_soc_component_read32(component, RT5631_SOFT_VOL_CTRL);
454
+ soft_vol = snd_soc_component_read(component, RT5631_SOFT_VOL_CTRL);
456455 snd_soc_component_write(component, RT5631_SOFT_VOL_CTRL, 0);
457
- hp_zc = snd_soc_component_read32(component, RT5631_INT_ST_IRQ_CTRL_2);
456
+ hp_zc = snd_soc_component_read(component, RT5631_INT_ST_IRQ_CTRL_2);
458457 snd_soc_component_write(component, RT5631_INT_ST_IRQ_CTRL_2, hp_zc & 0xf7ff);
459458 if (enable) {
460459 /* config depop sequence parameter */
....@@ -511,6 +510,7 @@
511510
512511 /**
513512 * depop_seq_mute_stage - step by step depop sequence in mute stage.
513
+ * @component: ASoC component
514514 * @enable: mute/unmute
515515 *
516516 * When mute/unmute headphone, the depop sequence is done in step by step.
....@@ -524,9 +524,9 @@
524524 RT5631_EN_ONE_BIT_DEPOP, RT5631_EN_ONE_BIT_DEPOP);
525525
526526 /* keep soft volume and zero crossing setting */
527
- soft_vol = snd_soc_component_read32(component, RT5631_SOFT_VOL_CTRL);
527
+ soft_vol = snd_soc_component_read(component, RT5631_SOFT_VOL_CTRL);
528528 snd_soc_component_write(component, RT5631_SOFT_VOL_CTRL, 0);
529
- hp_zc = snd_soc_component_read32(component, RT5631_INT_ST_IRQ_CTRL_2);
529
+ hp_zc = snd_soc_component_read(component, RT5631_INT_ST_IRQ_CTRL_2);
530530 snd_soc_component_write(component, RT5631_INT_ST_IRQ_CTRL_2, hp_zc & 0xf7ff);
531531 if (enable) {
532532 schedule_timeout_uninterruptible(msecs_to_jiffies(10));
....@@ -1695,6 +1695,8 @@
16951695 .reg_defaults = rt5631_reg,
16961696 .num_reg_defaults = ARRAY_SIZE(rt5631_reg),
16971697 .cache_type = REGCACHE_RBTREE,
1698
+ .use_single_read = true,
1699
+ .use_single_write = true,
16981700 };
16991701
17001702 static int rt5631_i2c_probe(struct i2c_client *i2c,