forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-01-31 f70575805708cabdedea7498aaa3f710fde4d920
kernel/sound/soc/intel/atom/sst-atom-controls.c
....@@ -1,3 +1,4 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * sst-atom-controls.c - Intel MID Platform driver DPCM ALSA controls for Mrfld
34 *
....@@ -5,15 +6,6 @@
56 * Author: Omair Mohammed Abdullah <omair.m.abdullah@intel.com>
67 * Vinod Koul <vinod.koul@intel.com>
78 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8
- *
9
- * This program is free software; you can redistribute it and/or modify
10
- * it under the terms of the GNU General Public License as published by
11
- * the Free Software Foundation; version 2 of the License.
12
- *
13
- * This program is distributed in the hope that it will be useful, but
14
- * WITHOUT ANY WARRANTY; without even the implied warranty of
15
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
- * General Public License for more details.
179 *
1810 * In the dpcm driver modelling when a particular FE/BE/Mixer/Pipe is active
1911 * we forward the settings and parameters, rest we keep the values in
....@@ -58,6 +50,8 @@
5850 {
5951 int ret = 0;
6052
53
+ WARN_ON(!mutex_is_locked(&drv->lock));
54
+
6155 ret = sst_fill_byte_control(drv, ipc_msg,
6256 block, task_id, pipe_id, len, cmd_data);
6357 if (ret < 0)
....@@ -67,8 +61,13 @@
6761
6862 /**
6963 * sst_fill_and_send_cmd - generate the IPC message and send it to the FW
70
- * @ipc_msg: type of IPC (CMD, SET_PARAMS, GET_PARAMS)
71
- * @cmd_data: the IPC payload
64
+ * @drv: sst_data
65
+ * @ipc_msg: type of IPC (CMD, SET_PARAMS, GET_PARAMS)
66
+ * @block: block index
67
+ * @task_id: task index
68
+ * @pipe_id: pipe index
69
+ * @cmd_data: the IPC payload
70
+ * @len: length of data to be sent
7271 */
7372 static int sst_fill_and_send_cmd(struct sst_data *drv,
7473 u8 ipc_msg, u8 block, u8 task_id, u8 pipe_id,
....@@ -84,7 +83,7 @@
8483 return ret;
8584 }
8685
87
-/**
86
+/*
8887 * tx map value is a bitfield where each bit represents a FW channel
8988 *
9089 * 3 2 1 0 # 0 = codec0, 1 = codec1
....@@ -96,7 +95,7 @@
9695 0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, /* default rx map */
9796 };
9897
99
-/**
98
+/*
10099 * rx map value is a bitfield where each bit represents a slot
101100 *
102101 * 76543210 # 0 = slot 0, 1 = slot 1
....@@ -107,7 +106,7 @@
107106 0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, /* default tx map */
108107 };
109108
110
-/**
109
+/*
111110 * NOTE: this is invoked with lock held
112111 */
113112 static int sst_send_slot_map(struct sst_data *drv)
....@@ -151,7 +150,8 @@
151150
152151 /**
153152 * sst_slot_get - get the status of the interleaver/deinterleaver control
154
- *
153
+ * @kcontrol: control pointer
154
+ * @ucontrol: User data
155155 * Searches the map where the control status is stored, and gets the
156156 * channel/slot which is currently set for this enumerated control. Since it is
157157 * an enumerated control, there is only one possible value.
....@@ -203,7 +203,8 @@
203203
204204 /**
205205 * sst_slot_put - set the status of interleaver/deinterleaver control
206
- *
206
+ * @kcontrol: control pointer
207
+ * @ucontrol: User data
207208 * (de)interleaver controls are defined in opposite sense to be user-friendly
208209 *
209210 * Instead of the enum value being the value written to the register, it is the
....@@ -286,7 +287,9 @@
286287
287288 /**
288289 * sst_find_and_send_pipe_algo - send all the algo parameters for a pipe
289
- *
290
+ * @drv: sst_data
291
+ * @pipe: string identifier
292
+ * @ids: list of algorithms
290293 * The algos which are in each pipeline are sent to the firmware one by one
291294 *
292295 * Called with lock held
....@@ -296,7 +299,7 @@
296299 {
297300 int ret = 0;
298301 struct sst_algo_control *bc;
299
- struct sst_module *algo = NULL;
302
+ struct sst_module *algo;
300303
301304 dev_dbg(&drv->pdev->dev, "Enter: widget=%s\n", pipe);
302305
....@@ -385,11 +388,15 @@
385388
386389 /**
387390 * sst_send_gain_cmd - send the gain algorithm IPC to the FW
388
- * @gv: the stored value of gain (also contains rampduration)
389
- * @mute: flag that indicates whether this was called from the
390
- * digital_mute callback or directly. If called from the
391
- * digital_mute callback, module will be muted/unmuted based on this
392
- * flag. The flag is always 0 if called directly.
391
+ * @drv: sst_data
392
+ * @gv:the stored value of gain (also contains rampduration)
393
+ * @task_id: task index
394
+ * @loc_id: location/position index
395
+ * @module_id: module index
396
+ * @mute: flag that indicates whether this was called from the
397
+ * digital_mute callback or directly. If called from the
398
+ * digital_mute callback, module will be muted/unmuted based on this
399
+ * flag. The flag is always 0 if called directly.
393400 *
394401 * Called with sst_data.lock held
395402 *
....@@ -550,9 +557,12 @@
550557
551558 /**
552559 * fill_swm_input - fill in the SWM input ids given the register
560
+ * @cmpnt: ASoC component
561
+ * @swm_input: array of swm_input_ids
562
+ * @reg: the register value is a bit-field inicated which mixer inputs are ON.
553563 *
554
- * The register value is a bit-field inicated which mixer inputs are ON. Use the
555
- * lookup table to get the input-id and fill it in the structure.
564
+ * Use the lookup table to get the input-id and fill it in the
565
+ * structure.
556566 */
557567 static int fill_swm_input(struct snd_soc_component *cmpnt,
558568 struct swm_input_ids *swm_input, unsigned int reg)
....@@ -583,7 +593,7 @@
583593 }
584594
585595
586
-/**
596
+/*
587597 * called with lock held
588598 */
589599 static int sst_set_pipe_gain(struct sst_ids *ids,
....@@ -592,7 +602,7 @@
592602 int ret = 0;
593603 struct sst_gain_mixer_control *mc;
594604 struct sst_gain_value *gv;
595
- struct sst_module *gain = NULL;
605
+ struct sst_module *gain;
596606
597607 list_for_each_entry(gain, &ids->gain_list, node) {
598608 struct snd_kcontrol *kctl = gain->kctl;
....@@ -647,7 +657,7 @@
647657 set_mixer = false;
648658 }
649659
650
- if (set_mixer == false)
660
+ if (!set_mixer)
651661 return 0;
652662
653663 if (SND_SOC_DAPM_EVENT_ON(event) ||
....@@ -713,7 +723,7 @@
713723 SST_SBA_DECLARE_MIX_CONTROLS(sst_mix_sprot_l0_controls);
714724 SST_SBA_DECLARE_MIX_CONTROLS(sst_mix_media_l1_controls);
715725 SST_SBA_DECLARE_MIX_CONTROLS(sst_mix_media_l2_controls);
716
-SST_SBA_DECLARE_MIX_CONTROLS(sst_mix_voip_controls);
726
+SST_SBA_DECLARE_MIX_CONTROLS(__maybe_unused sst_mix_voip_controls);
717727 SST_SBA_DECLARE_MIX_CONTROLS(sst_mix_codec0_controls);
718728 SST_SBA_DECLARE_MIX_CONTROLS(sst_mix_codec1_controls);
719729 SST_SBA_DECLARE_MIX_CONTROLS(sst_mix_modem_controls);
....@@ -887,7 +897,7 @@
887897 return 0;
888898 }
889899
890
-/**
900
+/*
891901 * sst_ssp_config - contains SSP configuration for media UC
892902 * this can be overwritten by set_dai_xxx APIs
893903 */
....@@ -1306,6 +1316,9 @@
13061316
13071317 /**
13081318 * sst_send_pipe_gains - send gains for the front-end DAIs
1319
+ * @dai: front-end dai
1320
+ * @stream: direction
1321
+ * @mute: boolean indicating mute status
13091322 *
13101323 * The gains in the pipes connected to the front-ends are muted/unmuted
13111324 * automatically via the digital_mute() DAPM callback. This function sends the
....@@ -1363,7 +1376,9 @@
13631376
13641377 /**
13651378 * sst_fill_module_list - populate the list of modules/gains for a pipe
1366
- *
1379
+ * @kctl: kcontrol pointer
1380
+ * @w: dapm widget
1381
+ * @type: widget type
13671382 *
13681383 * Fills the widget pointer in the kcontrol private data, and also fills the
13691384 * kcontrol pointer in the widget private data.
....@@ -1409,7 +1424,8 @@
14091424
14101425 /**
14111426 * sst_fill_widget_module_info - fill list of gains/algos for the pipe
1412
- * @widget: pipe modelled as a DAPM widget
1427
+ * @w: pipe modeled as a DAPM widget
1428
+ * @component: ASoC component
14131429 *
14141430 * Fill the list of gains/algos for the widget by looking at all the card
14151431 * controls and comparing the name of the widget with the first part of control
....@@ -1469,6 +1485,8 @@
14691485
14701486 /**
14711487 * sst_fill_linked_widgets - fill the parent pointer for the linked widget
1488
+ * @component: ASoC component
1489
+ * @ids: sst_ids array
14721490 */
14731491 static void sst_fill_linked_widgets(struct snd_soc_component *component,
14741492 struct sst_ids *ids)
....@@ -1486,6 +1504,7 @@
14861504
14871505 /**
14881506 * sst_map_modules_to_pipe - fill algo/gains list for all pipes
1507
+ * @component: ASoC component
14891508 */
14901509 static int sst_map_modules_to_pipe(struct snd_soc_component *component)
14911510 {