History

ASoC: SOF: Use input/output pin consistently

Currently we use input/output and sink/source pins interchangeably. Remove the references to sink/source pins and replace with input/output pins everywhere for consistency and clarity.

Ranjani Sridharan committed 3 years ago

Commit bb79f2a1 parent 3f738e44 files · +86 −86Browse files

Unified · Split

4 files
  1. include/uapi/sound/sof/tokens.h +6 −6
  2. sound/soc/sof/ipc4-topology.c +24 −24
  3. sound/soc/sof/sof-audio.h +16 −16
  4. sound/soc/sof/topology.c +40 −40
include/uapi/sound/sof/tokens.h+6−6
@@ -88,14 +88,14 @@ · 87 unmodified lines
8888 #define SOF_TKN_COMP_CPC 406
8989 #define SOF_TKN_COMP_IS_PAGES 409
9090 #define SOF_TKN_COMP_NUM_AUDIO_FORMATS 410
91−#define SOF_TKN_COMP_NUM_SINK_PINS 411
92−#define SOF_TKN_COMP_NUM_SOURCE_PINS 412
91+#define SOF_TKN_COMP_NUM_INPUT_PINS 411
92+#define SOF_TKN_COMP_NUM_OUTPUT_PINS 412
9393 /*
94− * The token for sink/source pin binding, it specifies the widget
95− * name that the sink/source pin is connected from/to.
94+ * The token for input/output pin binding, it specifies the widget
95+ * name that the input/output pin is connected from/to.
9696 */
97−#define SOF_TKN_COMP_SINK_PIN_BINDING_WNAME 413
98−#define SOF_TKN_COMP_SRC_PIN_BINDING_WNAME 414
97+#define SOF_TKN_COMP_INPUT_PIN_BINDING_WNAME 413
98+#define SOF_TKN_COMP_OUTPUT_PIN_BINDING_WNAME 414
9999
100100
101101 /* SSP */
sound/soc/sof/ipc4-topology.c+24−24
@@ -1698,17 +1698,17 @@ static int sof_ipc4_get_queue_id(struct snd_sof_widget *src_widget, · 1697 unmodified lines
16981698 u32 num_pins;
16991699 int i;
17001700
1701− if (pin_type == SOF_PIN_TYPE_SOURCE) {
1701+ if (pin_type == SOF_PIN_TYPE_OUTPUT) {
17021702 current_swidget = src_widget;
1703− pin_binding = src_widget->src_pin_binding;
1704− queue_ida = &src_widget->src_queue_ida;
1705− num_pins = src_widget->num_source_pins;
1703+ pin_binding = src_widget->output_pin_binding;
1704+ queue_ida = &src_widget->output_queue_ida;
1705+ num_pins = src_widget->num_output_pins;
17061706 buddy_name = sink_widget->widget->name;
17071707 } else {
17081708 current_swidget = sink_widget;
1709− pin_binding = sink_widget->sink_pin_binding;
1710− queue_ida = &sink_widget->sink_queue_ida;
1711− num_pins = sink_widget->num_sink_pins;
1709+ pin_binding = sink_widget->input_pin_binding;
1710+ queue_ida = &sink_widget->input_queue_ida;
1711+ num_pins = sink_widget->num_input_pins;
17121712 buddy_name = src_widget->widget->name;
17131713 }
17141714
@@ -1716,12 +1716,12 @@ static int sof_ipc4_get_queue_id(struct snd_sof_widget *src_widget, · 1 unmodified line
17161716
17171717 if (num_pins < 1) {
17181718 dev_err(scomp->dev, "invalid %s num_pins: %d for queue allocation for %s\n",
1719− (pin_type == SOF_PIN_TYPE_SOURCE ? "source" : "sink"),
1719+ (pin_type == SOF_PIN_TYPE_OUTPUT ? "output" : "input"),
17201720 num_pins, current_swidget->widget->name);
17211721 return -EINVAL;
17221722 }
17231723
1724− /* If there is only one sink/source pin, queue id must be 0 */
1724+ /* If there is only one input/output pin, queue id must be 0 */
17251725 if (num_pins == 1)
17261726 return 0;
17271727
@@ -1736,7 +1736,7 @@ static int sof_ipc4_get_queue_id(struct snd_sof_widget *src_widget, · 8 unmodified lines
17361736 * mixed use pin binding array and ida for queue ID allocation.
17371737 */
17381738 dev_err(scomp->dev, "no %s queue id found from pin binding array for %s\n",
1739− (pin_type == SOF_PIN_TYPE_SOURCE ? "source" : "sink"),
1739+ (pin_type == SOF_PIN_TYPE_OUTPUT ? "output" : "input"),
17401740 current_swidget->widget->name);
17411741 return -EINVAL;
17421742 }
@@ -1752,14 +1752,14 @@ static void sof_ipc4_put_queue_id(struct snd_sof_widget *swidget, int queue_id, · 9 unmodified lines
17521752 char **pin_binding;
17531753 int num_pins;
17541754
1755− if (pin_type == SOF_PIN_TYPE_SOURCE) {
1756− pin_binding = swidget->src_pin_binding;
1757− queue_ida = &swidget->src_queue_ida;
1758− num_pins = swidget->num_source_pins;
1755+ if (pin_type == SOF_PIN_TYPE_OUTPUT) {
1756+ pin_binding = swidget->output_pin_binding;
1757+ queue_ida = &swidget->output_queue_ida;
1758+ num_pins = swidget->num_output_pins;
17591759 } else {
1760− pin_binding = swidget->sink_pin_binding;
1761− queue_ida = &swidget->sink_queue_ida;
1762− num_pins = swidget->num_sink_pins;
1760+ pin_binding = swidget->input_pin_binding;
1761+ queue_ida = &swidget->input_queue_ida;
1762+ num_pins = swidget->num_input_pins;
17631763 }
17641764
17651765 /* Nothing to free if queue ID is not allocated with ida. */
@@ -1829,7 +1829,7 @@ static int sof_ipc4_route_setup(struct snd_sof_dev *sdev, struct snd_sof_route * · 63 unmodified lines
18291829 int ret;
18301830
18311831 sroute->src_queue_id = sof_ipc4_get_queue_id(src_widget, sink_widget,
1832− SOF_PIN_TYPE_SOURCE);
1832+ SOF_PIN_TYPE_OUTPUT);
18331833 if (sroute->src_queue_id < 0) {
18341834 dev_err(sdev->dev, "failed to get queue ID for source widget: %s\n",
18351835 src_widget->widget->name);
@@ -1837,12 +1837,12 @@ static int sof_ipc4_route_setup(struct snd_sof_dev *sdev, struct snd_sof_route * · 1 unmodified line
18371837 }
18381838
18391839 sroute->dst_queue_id = sof_ipc4_get_queue_id(src_widget, sink_widget,
1840− SOF_PIN_TYPE_SINK);
1840+ SOF_PIN_TYPE_INPUT);
18411841 if (sroute->dst_queue_id < 0) {
18421842 dev_err(sdev->dev, "failed to get queue ID for sink widget: %s\n",
18431843 sink_widget->widget->name);
18441844 sof_ipc4_put_queue_id(src_widget, sroute->src_queue_id,
1845− SOF_PIN_TYPE_SOURCE);
1845+ SOF_PIN_TYPE_OUTPUT);
18461846 return sroute->dst_queue_id;
18471847 }
18481848
@@ -1886,8 +1886,8 @@ static int sof_ipc4_route_setup(struct snd_sof_dev *sdev, struct snd_sof_route * · 37 unmodified lines
18861886 return ret;
18871887
18881888 out:
1889− sof_ipc4_put_queue_id(src_widget, sroute->src_queue_id, SOF_PIN_TYPE_SOURCE);
1890− sof_ipc4_put_queue_id(sink_widget, sroute->dst_queue_id, SOF_PIN_TYPE_SINK);
1889+ sof_ipc4_put_queue_id(src_widget, sroute->src_queue_id, SOF_PIN_TYPE_OUTPUT);
1890+ sof_ipc4_put_queue_id(sink_widget, sroute->dst_queue_id, SOF_PIN_TYPE_INPUT);
18911891 return ret;
18921892 }
18931893
@@ -1932,8 +1932,8 @@ static int sof_ipc4_route_free(struct snd_sof_dev *sdev, struct snd_sof_route *s · 38 unmodified lines
19321932 src_widget->widget->name, sroute->src_queue_id,
19331933 sink_widget->widget->name, sroute->dst_queue_id);
19341934 out:
1935− sof_ipc4_put_queue_id(sink_widget, sroute->dst_queue_id, SOF_PIN_TYPE_SINK);
1936− sof_ipc4_put_queue_id(src_widget, sroute->src_queue_id, SOF_PIN_TYPE_SOURCE);
1935+ sof_ipc4_put_queue_id(sink_widget, sroute->dst_queue_id, SOF_PIN_TYPE_INPUT);
1936+ sof_ipc4_put_queue_id(src_widget, sroute->src_queue_id, SOF_PIN_TYPE_OUTPUT);
19371937
19381938 return ret;
19391939 }
sound/soc/sof/sof-audio.h+16−16
@@ -30,9 +30,9 @@ · 29 unmodified lines
3030 */
3131 #define SOF_WIDGET_MAX_NUM_PINS 8
3232
33−/* The type of a widget pin is either sink or source */
34−#define SOF_PIN_TYPE_SINK 0
35−#define SOF_PIN_TYPE_SOURCE 1
33+/* Widget pin type */
34+#define SOF_PIN_TYPE_INPUT 0
35+#define SOF_PIN_TYPE_OUTPUT 1
3636
3737 /* max number of FE PCMs before BEs */
3838 #define SOF_BE_PCM_BASE 16
@@ -433,31 +433,31 @@ struct snd_sof_widget { · 394 unmodified lines
433433 struct snd_sof_tuple *tuples;
434434
435435 /*
436− * The allowed range for num_sink/source_pins is [0, SOF_WIDGET_MAX_NUM_PINS].
437− * Widgets may have zero sink or source pins, for example the tone widget has
438− * zero sink pins.
436+ * The allowed range for num_input/output_pins is [0, SOF_WIDGET_MAX_NUM_PINS].
437+ * Widgets may have zero input or output pins, for example the tone widget has
438+ * zero input pins.
439439 */
440− u32 num_sink_pins;
441− u32 num_source_pins;
440+ u32 num_input_pins;
441+ u32 num_output_pins;
442442
443443 /*
444− * The sink/source pin binding array, it takes the form of
444+ * The input/output pin binding array, it takes the form of
445445 * [widget_name_connected_to_pin0, widget_name_connected_to_pin1, ...],
446446 * with the index as the queue ID.
447447 *
448448 * The array is used for special pin binding. Note that even if there
449− * is only one sink/source pin requires special pin binding, pin binding
450− * should be defined for all sink/source pins in topology, for pin(s) that
449+ * is only one input/output pin requires special pin binding, pin binding
450+ * should be defined for all input/output pins in topology, for pin(s) that
451451 * are not used, give the value "NotConnected".
452452 *
453453 * If pin binding is not defined in topology, nothing to parse in the kernel,
454− * sink_pin_binding and src_pin_binding shall be NULL.
454+ * input_pin_binding and output_pin_binding shall be NULL.
455455 */
456− char **sink_pin_binding;
457− char **src_pin_binding;
456+ char **input_pin_binding;
457+ char **output_pin_binding;
458458
459− struct ida src_queue_ida;
460− struct ida sink_queue_ida;
459+ struct ida output_queue_ida;
460+ struct ida input_queue_ida;
461461
462462 void *private; /* core does not touch this */
463463 };
sound/soc/sof/topology.c+40−40
@@ -416,19 +416,19 @@ static const struct sof_topology_token led_tokens[] = { · 415 unmodified lines
416416 };
417417
418418 static const struct sof_topology_token comp_pin_tokens[] = {
419− {SOF_TKN_COMP_NUM_SINK_PINS, SND_SOC_TPLG_TUPLE_TYPE_WORD, get_token_u32,
420− offsetof(struct snd_sof_widget, num_sink_pins)},
421− {SOF_TKN_COMP_NUM_SOURCE_PINS, SND_SOC_TPLG_TUPLE_TYPE_WORD, get_token_u32,
422− offsetof(struct snd_sof_widget, num_source_pins)},
419+ {SOF_TKN_COMP_NUM_INPUT_PINS, SND_SOC_TPLG_TUPLE_TYPE_WORD, get_token_u32,
420+ offsetof(struct snd_sof_widget, num_input_pins)},
421+ {SOF_TKN_COMP_NUM_OUTPUT_PINS, SND_SOC_TPLG_TUPLE_TYPE_WORD, get_token_u32,
422+ offsetof(struct snd_sof_widget, num_output_pins)},
423423 };
424424
425−static const struct sof_topology_token comp_sink_pin_binding_tokens[] = {
426− {SOF_TKN_COMP_SINK_PIN_BINDING_WNAME, SND_SOC_TPLG_TUPLE_TYPE_STRING,
425+static const struct sof_topology_token comp_input_pin_binding_tokens[] = {
426+ {SOF_TKN_COMP_INPUT_PIN_BINDING_WNAME, SND_SOC_TPLG_TUPLE_TYPE_STRING,
427427 get_token_string, 0},
428428 };
429429
430−static const struct sof_topology_token comp_src_pin_binding_tokens[] = {
431− {SOF_TKN_COMP_SRC_PIN_BINDING_WNAME, SND_SOC_TPLG_TUPLE_TYPE_STRING,
430+static const struct sof_topology_token comp_output_pin_binding_tokens[] = {
431+ {SOF_TKN_COMP_OUTPUT_PIN_BINDING_WNAME, SND_SOC_TPLG_TUPLE_TYPE_STRING,
432432 get_token_string, 0},
433433 };
434434
@@ -1286,12 +1286,12 @@ static void sof_free_pin_binding(struct snd_sof_widget *swidget, · 851 unmodified lines
12861286 u32 num_pins;
12871287 int i;
12881288
1289− if (pin_type == SOF_PIN_TYPE_SINK) {
1290− pin_binding = swidget->sink_pin_binding;
1291− num_pins = swidget->num_sink_pins;
1289+ if (pin_type == SOF_PIN_TYPE_INPUT) {
1290+ pin_binding = swidget->input_pin_binding;
1291+ num_pins = swidget->num_input_pins;
12921292 } else {
1293− pin_binding = swidget->src_pin_binding;
1294− num_pins = swidget->num_source_pins;
1293+ pin_binding = swidget->output_pin_binding;
1294+ num_pins = swidget->num_output_pins;
12951295 }
12961296
12971297 if (pin_binding) {
@@ -1313,14 +1313,14 @@ static int sof_parse_pin_binding(struct snd_sof_widget *swidget, · 15 unmodified lines
13131313 int ret;
13141314 int i;
13151315
1316− if (pin_type == SOF_PIN_TYPE_SINK) {
1317− num_pins = swidget->num_sink_pins;
1318− pin_binding_token = comp_sink_pin_binding_tokens;
1319− token_count = ARRAY_SIZE(comp_sink_pin_binding_tokens);
1316+ if (pin_type == SOF_PIN_TYPE_INPUT) {
1317+ num_pins = swidget->num_input_pins;
1318+ pin_binding_token = comp_input_pin_binding_tokens;
1319+ token_count = ARRAY_SIZE(comp_input_pin_binding_tokens);
13201320 } else {
1321− num_pins = swidget->num_source_pins;
1322− pin_binding_token = comp_src_pin_binding_tokens;
1323− token_count = ARRAY_SIZE(comp_src_pin_binding_tokens);
1321+ num_pins = swidget->num_output_pins;
1322+ pin_binding_token = comp_output_pin_binding_tokens;
1323+ token_count = ARRAY_SIZE(comp_output_pin_binding_tokens);
13241324 }
13251325
13261326 memset(pin_binding, 0, SOF_WIDGET_MAX_NUM_PINS * sizeof(char *));
@@ -1337,10 +1337,10 @@ static int sof_parse_pin_binding(struct snd_sof_widget *swidget, · 10 unmodified lines
13371337 ret = -ENOMEM;
13381338 goto err;
13391339 }
1340− if (pin_type == SOF_PIN_TYPE_SINK)
1341− swidget->sink_pin_binding = pb;
1340+ if (pin_type == SOF_PIN_TYPE_INPUT)
1341+ swidget->input_pin_binding = pb;
13421342 else
1343− swidget->src_pin_binding = pb;
1343+ swidget->output_pin_binding = pb;
13441344 }
13451345
13461346 return 0;
@@ -1379,8 +1379,8 @@ static int sof_widget_ready(struct snd_soc_component *scomp, int index, · 32 unmodified lines
13791379 swidget->private = NULL;
13801380 mutex_init(&swidget->setup_mutex);
13811381
1382− ida_init(&swidget->src_queue_ida);
1383− ida_init(&swidget->sink_queue_ida);
1382+ ida_init(&swidget->output_queue_ida);
1383+ ida_init(&swidget->input_queue_ida);
13841384
13851385 ret = sof_parse_tokens(scomp, swidget, comp_pin_tokens,
13861386 ARRAY_SIZE(comp_pin_tokens), priv->array,
@@ -1391,29 +1391,29 @@ static int sof_widget_ready(struct snd_soc_component *scomp, int index, · 4 unmodified lines
13911391 goto widget_free;
13921392 }
13931393
1394− if (swidget->num_sink_pins > SOF_WIDGET_MAX_NUM_PINS ||
1395− swidget->num_source_pins > SOF_WIDGET_MAX_NUM_PINS) {
1396− dev_err(scomp->dev, "invalid pins for %s: [sink: %d, src: %d]\n",
1397− swidget->widget->name, swidget->num_sink_pins, swidget->num_source_pins);
1394+ if (swidget->num_input_pins > SOF_WIDGET_MAX_NUM_PINS ||
1395+ swidget->num_output_pins > SOF_WIDGET_MAX_NUM_PINS) {
1396+ dev_err(scomp->dev, "invalid pins for %s: [input: %d, output: %d]\n",
1397+ swidget->widget->name, swidget->num_input_pins, swidget->num_output_pins);
13981398 ret = -EINVAL;
13991399 goto widget_free;
14001400 }
14011401
1402− if (swidget->num_sink_pins > 1) {
1403− ret = sof_parse_pin_binding(swidget, priv, SOF_PIN_TYPE_SINK);
1402+ if (swidget->num_input_pins > 1) {
1403+ ret = sof_parse_pin_binding(swidget, priv, SOF_PIN_TYPE_INPUT);
14041404 /* on parsing error, pin binding is not allocated, nothing to free. */
14051405 if (ret < 0) {
1406− dev_err(scomp->dev, "failed to parse sink pin binding for %s\n",
1406+ dev_err(scomp->dev, "failed to parse input pin binding for %s\n",
14071407 w->name);
14081408 goto widget_free;
14091409 }
14101410 }
14111411
1412− if (swidget->num_source_pins > 1) {
1413− ret = sof_parse_pin_binding(swidget, priv, SOF_PIN_TYPE_SOURCE);
1412+ if (swidget->num_output_pins > 1) {
1413+ ret = sof_parse_pin_binding(swidget, priv, SOF_PIN_TYPE_OUTPUT);
14141414 /* on parsing error, pin binding is not allocated, nothing to free. */
14151415 if (ret < 0) {
1416− dev_err(scomp->dev, "failed to parse source pin binding for %s\n",
1416+ dev_err(scomp->dev, "failed to parse output pin binding for %s\n",
14171417 w->name);
14181418 goto widget_free;
14191419 }
@@ -1422,7 +1422,7 @@ static int sof_widget_ready(struct snd_soc_component *scomp, int index, · 2 unmodified lines
14221422 dev_dbg(scomp->dev,
14231423 "tplg: widget %d (%s) is ready [type: %d, pipe: %d, pins: %d / %d, stream: %s]\n",
14241424 swidget->comp_id, w->name, swidget->id, index,
1425− swidget->num_sink_pins, swidget->num_source_pins,
1425+ swidget->num_input_pins, swidget->num_output_pins,
14261426 strnlen(w->sname, SNDRV_CTL_ELEM_ID_NAME_MAXLEN) > 0 ? w->sname : "none");
14271427
14281428 widget_ops = tplg_ops ? tplg_ops->widget : NULL;
@@ -1643,11 +1643,11 @@ out: · 214 unmodified lines
16431643 if (widget_ops && widget_ops[swidget->id].ipc_free)
16441644 widget_ops[swidget->id].ipc_free(swidget);
16451645
1646− ida_destroy(&swidget->src_queue_ida);
1647− ida_destroy(&swidget->sink_queue_ida);
1646+ ida_destroy(&swidget->output_queue_ida);
1647+ ida_destroy(&swidget->input_queue_ida);
16481648
1649− sof_free_pin_binding(swidget, SOF_PIN_TYPE_SINK);
1650− sof_free_pin_binding(swidget, SOF_PIN_TYPE_SOURCE);
1649+ sof_free_pin_binding(swidget, SOF_PIN_TYPE_INPUT);
1650+ sof_free_pin_binding(swidget, SOF_PIN_TYPE_OUTPUT);
16511651
16521652 kfree(swidget->tuples);
16531653