diff options
author | Arnaud Pouliquen <arnaud.pouliquen@st.com> | 2016-10-24 10:42:51 -0400 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2016-10-26 06:41:11 -0400 |
commit | 748abba8f3a93cee13a56350386e59457ffa600d (patch) | |
tree | 0a5a8ff24a27a2259b2f5b775a08c15cf2d0cdfe | |
parent | 1001354ca34179f3db924eb66672442a173147dc (diff) |
ASoC: sti: fix errors management
Add missing error messages.
Propagate error of uni_reader_init and uni_reader_init.
Add return at end of dev_err strings.
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@st.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r-- | sound/soc/sti/sti_uniperif.c | 20 | ||||
-rw-r--r-- | sound/soc/sti/uniperif_player.c | 58 | ||||
-rw-r--r-- | sound/soc/sti/uniperif_reader.c | 25 |
3 files changed, 58 insertions, 45 deletions
diff --git a/sound/soc/sti/sti_uniperif.c b/sound/soc/sti/sti_uniperif.c index 549fac349fa0..ee91ae5f812a 100644 --- a/sound/soc/sti/sti_uniperif.c +++ b/sound/soc/sti/sti_uniperif.c | |||
@@ -293,7 +293,7 @@ static int sti_uniperiph_dai_suspend(struct snd_soc_dai *dai) | |||
293 | 293 | ||
294 | /* The uniperipheral should be in stopped state */ | 294 | /* The uniperipheral should be in stopped state */ |
295 | if (uni->state != UNIPERIF_STATE_STOPPED) { | 295 | if (uni->state != UNIPERIF_STATE_STOPPED) { |
296 | dev_err(uni->dev, "%s: invalid uni state( %d)", | 296 | dev_err(uni->dev, "%s: invalid uni state( %d)\n", |
297 | __func__, (int)uni->state); | 297 | __func__, (int)uni->state); |
298 | return -EBUSY; | 298 | return -EBUSY; |
299 | } | 299 | } |
@@ -301,7 +301,7 @@ static int sti_uniperiph_dai_suspend(struct snd_soc_dai *dai) | |||
301 | /* Pinctrl: switch pinstate to sleep */ | 301 | /* Pinctrl: switch pinstate to sleep */ |
302 | ret = pinctrl_pm_select_sleep_state(uni->dev); | 302 | ret = pinctrl_pm_select_sleep_state(uni->dev); |
303 | if (ret) | 303 | if (ret) |
304 | dev_err(uni->dev, "%s: failed to select pinctrl state", | 304 | dev_err(uni->dev, "%s: failed to select pinctrl state\n", |
305 | __func__); | 305 | __func__); |
306 | 306 | ||
307 | return ret; | 307 | return ret; |
@@ -322,7 +322,7 @@ static int sti_uniperiph_dai_resume(struct snd_soc_dai *dai) | |||
322 | /* pinctrl: switch pinstate to default */ | 322 | /* pinctrl: switch pinstate to default */ |
323 | ret = pinctrl_pm_select_default_state(uni->dev); | 323 | ret = pinctrl_pm_select_default_state(uni->dev); |
324 | if (ret) | 324 | if (ret) |
325 | dev_err(uni->dev, "%s: failed to select pinctrl state", | 325 | dev_err(uni->dev, "%s: failed to select pinctrl state\n", |
326 | __func__); | 326 | __func__); |
327 | 327 | ||
328 | return ret; | 328 | return ret; |
@@ -366,11 +366,12 @@ static int sti_uniperiph_cpu_dai_of(struct device_node *node, | |||
366 | const struct of_device_id *of_id; | 366 | const struct of_device_id *of_id; |
367 | const struct sti_uniperiph_dev_data *dev_data; | 367 | const struct sti_uniperiph_dev_data *dev_data; |
368 | const char *mode; | 368 | const char *mode; |
369 | int ret; | ||
369 | 370 | ||
370 | /* Populate data structure depending on compatibility */ | 371 | /* Populate data structure depending on compatibility */ |
371 | of_id = of_match_node(snd_soc_sti_match, node); | 372 | of_id = of_match_node(snd_soc_sti_match, node); |
372 | if (!of_id->data) { | 373 | if (!of_id->data) { |
373 | dev_err(dev, "data associated to device is missing"); | 374 | dev_err(dev, "data associated to device is missing\n"); |
374 | return -EINVAL; | 375 | return -EINVAL; |
375 | } | 376 | } |
376 | dev_data = (struct sti_uniperiph_dev_data *)of_id->data; | 377 | dev_data = (struct sti_uniperiph_dev_data *)of_id->data; |
@@ -389,7 +390,7 @@ static int sti_uniperiph_cpu_dai_of(struct device_node *node, | |||
389 | uni->mem_region = platform_get_resource(priv->pdev, IORESOURCE_MEM, 0); | 390 | uni->mem_region = platform_get_resource(priv->pdev, IORESOURCE_MEM, 0); |
390 | 391 | ||
391 | if (!uni->mem_region) { | 392 | if (!uni->mem_region) { |
392 | dev_err(dev, "Failed to get memory resource"); | 393 | dev_err(dev, "Failed to get memory resource\n"); |
393 | return -ENODEV; | 394 | return -ENODEV; |
394 | } | 395 | } |
395 | 396 | ||
@@ -403,7 +404,7 @@ static int sti_uniperiph_cpu_dai_of(struct device_node *node, | |||
403 | 404 | ||
404 | uni->irq = platform_get_irq(priv->pdev, 0); | 405 | uni->irq = platform_get_irq(priv->pdev, 0); |
405 | if (uni->irq < 0) { | 406 | if (uni->irq < 0) { |
406 | dev_err(dev, "Failed to get IRQ resource"); | 407 | dev_err(dev, "Failed to get IRQ resource\n"); |
407 | return -ENXIO; | 408 | return -ENXIO; |
408 | } | 409 | } |
409 | 410 | ||
@@ -421,12 +422,15 @@ static int sti_uniperiph_cpu_dai_of(struct device_node *node, | |||
421 | dai_data->stream = dev_data->stream; | 422 | dai_data->stream = dev_data->stream; |
422 | 423 | ||
423 | if (priv->dai_data.stream == SNDRV_PCM_STREAM_PLAYBACK) { | 424 | if (priv->dai_data.stream == SNDRV_PCM_STREAM_PLAYBACK) { |
424 | uni_player_init(priv->pdev, uni); | 425 | ret = uni_player_init(priv->pdev, uni); |
425 | stream = &dai->playback; | 426 | stream = &dai->playback; |
426 | } else { | 427 | } else { |
427 | uni_reader_init(priv->pdev, uni); | 428 | ret = uni_reader_init(priv->pdev, uni); |
428 | stream = &dai->capture; | 429 | stream = &dai->capture; |
429 | } | 430 | } |
431 | if (ret < 0) | ||
432 | return ret; | ||
433 | |||
430 | dai->ops = uni->dai_ops; | 434 | dai->ops = uni->dai_ops; |
431 | 435 | ||
432 | stream->stream_name = dai->name; | 436 | stream->stream_name = dai->name; |
diff --git a/sound/soc/sti/uniperif_player.c b/sound/soc/sti/uniperif_player.c index 1bc8ebc2528e..c9b4670b772b 100644 --- a/sound/soc/sti/uniperif_player.c +++ b/sound/soc/sti/uniperif_player.c | |||
@@ -67,7 +67,7 @@ static inline int reset_player(struct uniperif *player) | |||
67 | } | 67 | } |
68 | 68 | ||
69 | if (!count) { | 69 | if (!count) { |
70 | dev_err(player->dev, "Failed to reset uniperif"); | 70 | dev_err(player->dev, "Failed to reset uniperif\n"); |
71 | return -EIO; | 71 | return -EIO; |
72 | } | 72 | } |
73 | 73 | ||
@@ -97,7 +97,7 @@ static irqreturn_t uni_player_irq_handler(int irq, void *dev_id) | |||
97 | 97 | ||
98 | /* Check for fifo error (underrun) */ | 98 | /* Check for fifo error (underrun) */ |
99 | if (unlikely(status & UNIPERIF_ITS_FIFO_ERROR_MASK(player))) { | 99 | if (unlikely(status & UNIPERIF_ITS_FIFO_ERROR_MASK(player))) { |
100 | dev_err(player->dev, "FIFO underflow error detected"); | 100 | dev_err(player->dev, "FIFO underflow error detected\n"); |
101 | 101 | ||
102 | /* Interrupt is just for information when underflow recovery */ | 102 | /* Interrupt is just for information when underflow recovery */ |
103 | if (player->underflow_enabled) { | 103 | if (player->underflow_enabled) { |
@@ -119,7 +119,7 @@ static irqreturn_t uni_player_irq_handler(int irq, void *dev_id) | |||
119 | 119 | ||
120 | /* Check for dma error (overrun) */ | 120 | /* Check for dma error (overrun) */ |
121 | if (unlikely(status & UNIPERIF_ITS_DMA_ERROR_MASK(player))) { | 121 | if (unlikely(status & UNIPERIF_ITS_DMA_ERROR_MASK(player))) { |
122 | dev_err(player->dev, "DMA error detected"); | 122 | dev_err(player->dev, "DMA error detected\n"); |
123 | 123 | ||
124 | /* Disable interrupt so doesn't continually fire */ | 124 | /* Disable interrupt so doesn't continually fire */ |
125 | SET_UNIPERIF_ITM_BCLR_DMA_ERROR(player); | 125 | SET_UNIPERIF_ITM_BCLR_DMA_ERROR(player); |
@@ -135,11 +135,14 @@ static irqreturn_t uni_player_irq_handler(int irq, void *dev_id) | |||
135 | /* Check for underflow recovery done */ | 135 | /* Check for underflow recovery done */ |
136 | if (unlikely(status & UNIPERIF_ITM_UNDERFLOW_REC_DONE_MASK(player))) { | 136 | if (unlikely(status & UNIPERIF_ITM_UNDERFLOW_REC_DONE_MASK(player))) { |
137 | if (!player->underflow_enabled) { | 137 | if (!player->underflow_enabled) { |
138 | dev_err(player->dev, "unexpected Underflow recovering"); | 138 | dev_err(player->dev, |
139 | "unexpected Underflow recovering\n"); | ||
139 | return -EPERM; | 140 | return -EPERM; |
140 | } | 141 | } |
141 | /* Read the underflow recovery duration */ | 142 | /* Read the underflow recovery duration */ |
142 | tmp = GET_UNIPERIF_STATUS_1_UNDERFLOW_DURATION(player); | 143 | tmp = GET_UNIPERIF_STATUS_1_UNDERFLOW_DURATION(player); |
144 | dev_dbg(player->dev, "Underflow recovered (%d LR clocks max)\n", | ||
145 | tmp); | ||
143 | 146 | ||
144 | /* Clear the underflow recovery duration */ | 147 | /* Clear the underflow recovery duration */ |
145 | SET_UNIPERIF_BIT_CONTROL_CLR_UNDERFLOW_DURATION(player); | 148 | SET_UNIPERIF_BIT_CONTROL_CLR_UNDERFLOW_DURATION(player); |
@@ -153,7 +156,7 @@ static irqreturn_t uni_player_irq_handler(int irq, void *dev_id) | |||
153 | /* Check if underflow recovery failed */ | 156 | /* Check if underflow recovery failed */ |
154 | if (unlikely(status & | 157 | if (unlikely(status & |
155 | UNIPERIF_ITM_UNDERFLOW_REC_FAILED_MASK(player))) { | 158 | UNIPERIF_ITM_UNDERFLOW_REC_FAILED_MASK(player))) { |
156 | dev_err(player->dev, "Underflow recovery failed"); | 159 | dev_err(player->dev, "Underflow recovery failed\n"); |
157 | 160 | ||
158 | /* Stop the player */ | 161 | /* Stop the player */ |
159 | snd_pcm_stream_lock(player->substream); | 162 | snd_pcm_stream_lock(player->substream); |
@@ -336,7 +339,7 @@ static int uni_player_prepare_iec958(struct uniperif *player, | |||
336 | 339 | ||
337 | /* Oversampling must be multiple of 128 as iec958 frame is 32-bits */ | 340 | /* Oversampling must be multiple of 128 as iec958 frame is 32-bits */ |
338 | if ((clk_div % 128) || (clk_div <= 0)) { | 341 | if ((clk_div % 128) || (clk_div <= 0)) { |
339 | dev_err(player->dev, "%s: invalid clk_div %d", | 342 | dev_err(player->dev, "%s: invalid clk_div %d\n", |
340 | __func__, clk_div); | 343 | __func__, clk_div); |
341 | return -EINVAL; | 344 | return -EINVAL; |
342 | } | 345 | } |
@@ -359,7 +362,7 @@ static int uni_player_prepare_iec958(struct uniperif *player, | |||
359 | SET_UNIPERIF_I2S_FMT_DATA_SIZE_24(player); | 362 | SET_UNIPERIF_I2S_FMT_DATA_SIZE_24(player); |
360 | break; | 363 | break; |
361 | default: | 364 | default: |
362 | dev_err(player->dev, "format not supported"); | 365 | dev_err(player->dev, "format not supported\n"); |
363 | return -EINVAL; | 366 | return -EINVAL; |
364 | } | 367 | } |
365 | 368 | ||
@@ -448,12 +451,12 @@ static int uni_player_prepare_pcm(struct uniperif *player, | |||
448 | * for 16 bits must be a multiple of 64 | 451 | * for 16 bits must be a multiple of 64 |
449 | */ | 452 | */ |
450 | if ((slot_width == 32) && (clk_div % 128)) { | 453 | if ((slot_width == 32) && (clk_div % 128)) { |
451 | dev_err(player->dev, "%s: invalid clk_div", __func__); | 454 | dev_err(player->dev, "%s: invalid clk_div\n", __func__); |
452 | return -EINVAL; | 455 | return -EINVAL; |
453 | } | 456 | } |
454 | 457 | ||
455 | if ((slot_width == 16) && (clk_div % 64)) { | 458 | if ((slot_width == 16) && (clk_div % 64)) { |
456 | dev_err(player->dev, "%s: invalid clk_div", __func__); | 459 | dev_err(player->dev, "%s: invalid clk_div\n", __func__); |
457 | return -EINVAL; | 460 | return -EINVAL; |
458 | } | 461 | } |
459 | 462 | ||
@@ -471,7 +474,7 @@ static int uni_player_prepare_pcm(struct uniperif *player, | |||
471 | SET_UNIPERIF_I2S_FMT_DATA_SIZE_16(player); | 474 | SET_UNIPERIF_I2S_FMT_DATA_SIZE_16(player); |
472 | break; | 475 | break; |
473 | default: | 476 | default: |
474 | dev_err(player->dev, "subframe format not supported"); | 477 | dev_err(player->dev, "subframe format not supported\n"); |
475 | return -EINVAL; | 478 | return -EINVAL; |
476 | } | 479 | } |
477 | 480 | ||
@@ -491,7 +494,7 @@ static int uni_player_prepare_pcm(struct uniperif *player, | |||
491 | break; | 494 | break; |
492 | 495 | ||
493 | default: | 496 | default: |
494 | dev_err(player->dev, "format not supported"); | 497 | dev_err(player->dev, "format not supported\n"); |
495 | return -EINVAL; | 498 | return -EINVAL; |
496 | } | 499 | } |
497 | 500 | ||
@@ -504,7 +507,7 @@ static int uni_player_prepare_pcm(struct uniperif *player, | |||
504 | /* Number of channelsmust be even*/ | 507 | /* Number of channelsmust be even*/ |
505 | if ((runtime->channels % 2) || (runtime->channels < 2) || | 508 | if ((runtime->channels % 2) || (runtime->channels < 2) || |
506 | (runtime->channels > 10)) { | 509 | (runtime->channels > 10)) { |
507 | dev_err(player->dev, "%s: invalid nb of channels", __func__); | 510 | dev_err(player->dev, "%s: invalid nb of channels\n", __func__); |
508 | return -EINVAL; | 511 | return -EINVAL; |
509 | } | 512 | } |
510 | 513 | ||
@@ -758,7 +761,7 @@ static int uni_player_prepare(struct snd_pcm_substream *substream, | |||
758 | 761 | ||
759 | /* The player should be stopped */ | 762 | /* The player should be stopped */ |
760 | if (player->state != UNIPERIF_STATE_STOPPED) { | 763 | if (player->state != UNIPERIF_STATE_STOPPED) { |
761 | dev_err(player->dev, "%s: invalid player state %d", __func__, | 764 | dev_err(player->dev, "%s: invalid player state %d\n", __func__, |
762 | player->state); | 765 | player->state); |
763 | return -EINVAL; | 766 | return -EINVAL; |
764 | } | 767 | } |
@@ -787,7 +790,8 @@ static int uni_player_prepare(struct snd_pcm_substream *substream, | |||
787 | /* Trigger limit must be an even number */ | 790 | /* Trigger limit must be an even number */ |
788 | if ((!trigger_limit % 2) || (trigger_limit != 1 && transfer_size % 2) || | 791 | if ((!trigger_limit % 2) || (trigger_limit != 1 && transfer_size % 2) || |
789 | (trigger_limit > UNIPERIF_CONFIG_DMA_TRIG_LIMIT_MASK(player))) { | 792 | (trigger_limit > UNIPERIF_CONFIG_DMA_TRIG_LIMIT_MASK(player))) { |
790 | dev_err(player->dev, "invalid trigger limit %d", trigger_limit); | 793 | dev_err(player->dev, "invalid trigger limit %d\n", |
794 | trigger_limit); | ||
791 | return -EINVAL; | 795 | return -EINVAL; |
792 | } | 796 | } |
793 | 797 | ||
@@ -808,7 +812,7 @@ static int uni_player_prepare(struct snd_pcm_substream *substream, | |||
808 | ret = uni_player_prepare_tdm(player, runtime); | 812 | ret = uni_player_prepare_tdm(player, runtime); |
809 | break; | 813 | break; |
810 | default: | 814 | default: |
811 | dev_err(player->dev, "invalid player type"); | 815 | dev_err(player->dev, "invalid player type\n"); |
812 | return -EINVAL; | 816 | return -EINVAL; |
813 | } | 817 | } |
814 | 818 | ||
@@ -848,7 +852,7 @@ static int uni_player_prepare(struct snd_pcm_substream *substream, | |||
848 | SET_UNIPERIF_I2S_FMT_PADDING_SONY_MODE(player); | 852 | SET_UNIPERIF_I2S_FMT_PADDING_SONY_MODE(player); |
849 | break; | 853 | break; |
850 | default: | 854 | default: |
851 | dev_err(player->dev, "format not supported"); | 855 | dev_err(player->dev, "format not supported\n"); |
852 | return -EINVAL; | 856 | return -EINVAL; |
853 | } | 857 | } |
854 | 858 | ||
@@ -866,13 +870,13 @@ static int uni_player_start(struct uniperif *player) | |||
866 | 870 | ||
867 | /* The player should be stopped */ | 871 | /* The player should be stopped */ |
868 | if (player->state != UNIPERIF_STATE_STOPPED) { | 872 | if (player->state != UNIPERIF_STATE_STOPPED) { |
869 | dev_err(player->dev, "%s: invalid player state", __func__); | 873 | dev_err(player->dev, "%s: invalid player state\n", __func__); |
870 | return -EINVAL; | 874 | return -EINVAL; |
871 | } | 875 | } |
872 | 876 | ||
873 | ret = clk_prepare_enable(player->clk); | 877 | ret = clk_prepare_enable(player->clk); |
874 | if (ret) { | 878 | if (ret) { |
875 | dev_err(player->dev, "%s: Failed to enable clock", __func__); | 879 | dev_err(player->dev, "%s: Failed to enable clock\n", __func__); |
876 | return ret; | 880 | return ret; |
877 | } | 881 | } |
878 | 882 | ||
@@ -934,7 +938,7 @@ static int uni_player_stop(struct uniperif *player) | |||
934 | 938 | ||
935 | /* The player should not be in stopped state */ | 939 | /* The player should not be in stopped state */ |
936 | if (player->state == UNIPERIF_STATE_STOPPED) { | 940 | if (player->state == UNIPERIF_STATE_STOPPED) { |
937 | dev_err(player->dev, "%s: invalid player state", __func__); | 941 | dev_err(player->dev, "%s: invalid player state\n", __func__); |
938 | return -EINVAL; | 942 | return -EINVAL; |
939 | } | 943 | } |
940 | 944 | ||
@@ -969,7 +973,7 @@ int uni_player_resume(struct uniperif *player) | |||
969 | ret = regmap_field_write(player->clk_sel, 1); | 973 | ret = regmap_field_write(player->clk_sel, 1); |
970 | if (ret) { | 974 | if (ret) { |
971 | dev_err(player->dev, | 975 | dev_err(player->dev, |
972 | "%s: Failed to select freq synth clock", | 976 | "%s: Failed to select freq synth clock\n", |
973 | __func__); | 977 | __func__); |
974 | return ret; | 978 | return ret; |
975 | } | 979 | } |
@@ -1066,7 +1070,7 @@ int uni_player_init(struct platform_device *pdev, | |||
1066 | ret = uni_player_parse_dt_audio_glue(pdev, player); | 1070 | ret = uni_player_parse_dt_audio_glue(pdev, player); |
1067 | 1071 | ||
1068 | if (ret < 0) { | 1072 | if (ret < 0) { |
1069 | dev_err(player->dev, "Failed to parse DeviceTree"); | 1073 | dev_err(player->dev, "Failed to parse DeviceTree\n"); |
1070 | return ret; | 1074 | return ret; |
1071 | } | 1075 | } |
1072 | 1076 | ||
@@ -1081,15 +1085,17 @@ int uni_player_init(struct platform_device *pdev, | |||
1081 | 1085 | ||
1082 | /* Get uniperif resource */ | 1086 | /* Get uniperif resource */ |
1083 | player->clk = of_clk_get(pdev->dev.of_node, 0); | 1087 | player->clk = of_clk_get(pdev->dev.of_node, 0); |
1084 | if (IS_ERR(player->clk)) | 1088 | if (IS_ERR(player->clk)) { |
1089 | dev_err(player->dev, "Failed to get clock\n"); | ||
1085 | ret = PTR_ERR(player->clk); | 1090 | ret = PTR_ERR(player->clk); |
1091 | } | ||
1086 | 1092 | ||
1087 | /* Select the frequency synthesizer clock */ | 1093 | /* Select the frequency synthesizer clock */ |
1088 | if (player->clk_sel) { | 1094 | if (player->clk_sel) { |
1089 | ret = regmap_field_write(player->clk_sel, 1); | 1095 | ret = regmap_field_write(player->clk_sel, 1); |
1090 | if (ret) { | 1096 | if (ret) { |
1091 | dev_err(player->dev, | 1097 | dev_err(player->dev, |
1092 | "%s: Failed to select freq synth clock", | 1098 | "%s: Failed to select freq synth clock\n", |
1093 | __func__); | 1099 | __func__); |
1094 | return ret; | 1100 | return ret; |
1095 | } | 1101 | } |
@@ -1101,7 +1107,7 @@ int uni_player_init(struct platform_device *pdev, | |||
1101 | ret = regmap_field_write(player->valid_sel, player->id); | 1107 | ret = regmap_field_write(player->valid_sel, player->id); |
1102 | if (ret) { | 1108 | if (ret) { |
1103 | dev_err(player->dev, | 1109 | dev_err(player->dev, |
1104 | "%s: unable to connect to tdm bus", __func__); | 1110 | "%s: unable to connect to tdm bus\n", __func__); |
1105 | return ret; | 1111 | return ret; |
1106 | } | 1112 | } |
1107 | } | 1113 | } |
@@ -1109,8 +1115,10 @@ int uni_player_init(struct platform_device *pdev, | |||
1109 | ret = devm_request_irq(&pdev->dev, player->irq, | 1115 | ret = devm_request_irq(&pdev->dev, player->irq, |
1110 | uni_player_irq_handler, IRQF_SHARED, | 1116 | uni_player_irq_handler, IRQF_SHARED, |
1111 | dev_name(&pdev->dev), player); | 1117 | dev_name(&pdev->dev), player); |
1112 | if (ret < 0) | 1118 | if (ret < 0) { |
1119 | dev_err(player->dev, "unable to request IRQ %d\n", player->irq); | ||
1113 | return ret; | 1120 | return ret; |
1121 | } | ||
1114 | 1122 | ||
1115 | mutex_init(&player->ctrl_lock); | 1123 | mutex_init(&player->ctrl_lock); |
1116 | 1124 | ||
diff --git a/sound/soc/sti/uniperif_reader.c b/sound/soc/sti/uniperif_reader.c index 0e1c3ee56675..09314f8be841 100644 --- a/sound/soc/sti/uniperif_reader.c +++ b/sound/soc/sti/uniperif_reader.c | |||
@@ -52,7 +52,7 @@ static irqreturn_t uni_reader_irq_handler(int irq, void *dev_id) | |||
52 | 52 | ||
53 | if (reader->state == UNIPERIF_STATE_STOPPED) { | 53 | if (reader->state == UNIPERIF_STATE_STOPPED) { |
54 | /* Unexpected IRQ: do nothing */ | 54 | /* Unexpected IRQ: do nothing */ |
55 | dev_warn(reader->dev, "unexpected IRQ "); | 55 | dev_warn(reader->dev, "unexpected IRQ\n"); |
56 | return IRQ_HANDLED; | 56 | return IRQ_HANDLED; |
57 | } | 57 | } |
58 | 58 | ||
@@ -62,7 +62,7 @@ static irqreturn_t uni_reader_irq_handler(int irq, void *dev_id) | |||
62 | 62 | ||
63 | /* Check for fifo overflow error */ | 63 | /* Check for fifo overflow error */ |
64 | if (unlikely(status & UNIPERIF_ITS_FIFO_ERROR_MASK(reader))) { | 64 | if (unlikely(status & UNIPERIF_ITS_FIFO_ERROR_MASK(reader))) { |
65 | dev_err(reader->dev, "FIFO error detected"); | 65 | dev_err(reader->dev, "FIFO error detected\n"); |
66 | 66 | ||
67 | snd_pcm_stream_lock(reader->substream); | 67 | snd_pcm_stream_lock(reader->substream); |
68 | snd_pcm_stop(reader->substream, SNDRV_PCM_STATE_XRUN); | 68 | snd_pcm_stop(reader->substream, SNDRV_PCM_STATE_XRUN); |
@@ -105,7 +105,7 @@ static int uni_reader_prepare_pcm(struct snd_pcm_runtime *runtime, | |||
105 | SET_UNIPERIF_I2S_FMT_DATA_SIZE_16(reader); | 105 | SET_UNIPERIF_I2S_FMT_DATA_SIZE_16(reader); |
106 | break; | 106 | break; |
107 | default: | 107 | default: |
108 | dev_err(reader->dev, "subframe format not supported"); | 108 | dev_err(reader->dev, "subframe format not supported\n"); |
109 | return -EINVAL; | 109 | return -EINVAL; |
110 | } | 110 | } |
111 | 111 | ||
@@ -125,14 +125,14 @@ static int uni_reader_prepare_pcm(struct snd_pcm_runtime *runtime, | |||
125 | break; | 125 | break; |
126 | 126 | ||
127 | default: | 127 | default: |
128 | dev_err(reader->dev, "format not supported"); | 128 | dev_err(reader->dev, "format not supported\n"); |
129 | return -EINVAL; | 129 | return -EINVAL; |
130 | } | 130 | } |
131 | 131 | ||
132 | /* Number of channels must be even */ | 132 | /* Number of channels must be even */ |
133 | if ((runtime->channels % 2) || (runtime->channels < 2) || | 133 | if ((runtime->channels % 2) || (runtime->channels < 2) || |
134 | (runtime->channels > 10)) { | 134 | (runtime->channels > 10)) { |
135 | dev_err(reader->dev, "%s: invalid nb of channels", __func__); | 135 | dev_err(reader->dev, "%s: invalid nb of channels\n", __func__); |
136 | return -EINVAL; | 136 | return -EINVAL; |
137 | } | 137 | } |
138 | 138 | ||
@@ -190,7 +190,7 @@ static int uni_reader_prepare(struct snd_pcm_substream *substream, | |||
190 | 190 | ||
191 | /* The reader should be stopped */ | 191 | /* The reader should be stopped */ |
192 | if (reader->state != UNIPERIF_STATE_STOPPED) { | 192 | if (reader->state != UNIPERIF_STATE_STOPPED) { |
193 | dev_err(reader->dev, "%s: invalid reader state %d", __func__, | 193 | dev_err(reader->dev, "%s: invalid reader state %d\n", __func__, |
194 | reader->state); | 194 | reader->state); |
195 | return -EINVAL; | 195 | return -EINVAL; |
196 | } | 196 | } |
@@ -219,7 +219,8 @@ static int uni_reader_prepare(struct snd_pcm_substream *substream, | |||
219 | if ((!trigger_limit % 2) || | 219 | if ((!trigger_limit % 2) || |
220 | (trigger_limit != 1 && transfer_size % 2) || | 220 | (trigger_limit != 1 && transfer_size % 2) || |
221 | (trigger_limit > UNIPERIF_CONFIG_DMA_TRIG_LIMIT_MASK(reader))) { | 221 | (trigger_limit > UNIPERIF_CONFIG_DMA_TRIG_LIMIT_MASK(reader))) { |
222 | dev_err(reader->dev, "invalid trigger limit %d", trigger_limit); | 222 | dev_err(reader->dev, "invalid trigger limit %d\n", |
223 | trigger_limit); | ||
223 | return -EINVAL; | 224 | return -EINVAL; |
224 | } | 225 | } |
225 | 226 | ||
@@ -246,7 +247,7 @@ static int uni_reader_prepare(struct snd_pcm_substream *substream, | |||
246 | SET_UNIPERIF_I2S_FMT_PADDING_SONY_MODE(reader); | 247 | SET_UNIPERIF_I2S_FMT_PADDING_SONY_MODE(reader); |
247 | break; | 248 | break; |
248 | default: | 249 | default: |
249 | dev_err(reader->dev, "format not supported"); | 250 | dev_err(reader->dev, "format not supported\n"); |
250 | return -EINVAL; | 251 | return -EINVAL; |
251 | } | 252 | } |
252 | 253 | ||
@@ -294,7 +295,7 @@ static int uni_reader_prepare(struct snd_pcm_substream *substream, | |||
294 | count--; | 295 | count--; |
295 | } | 296 | } |
296 | if (!count) { | 297 | if (!count) { |
297 | dev_err(reader->dev, "Failed to reset uniperif"); | 298 | dev_err(reader->dev, "Failed to reset uniperif\n"); |
298 | return -EIO; | 299 | return -EIO; |
299 | } | 300 | } |
300 | 301 | ||
@@ -305,7 +306,7 @@ static int uni_reader_start(struct uniperif *reader) | |||
305 | { | 306 | { |
306 | /* The reader should be stopped */ | 307 | /* The reader should be stopped */ |
307 | if (reader->state != UNIPERIF_STATE_STOPPED) { | 308 | if (reader->state != UNIPERIF_STATE_STOPPED) { |
308 | dev_err(reader->dev, "%s: invalid reader state", __func__); | 309 | dev_err(reader->dev, "%s: invalid reader state\n", __func__); |
309 | return -EINVAL; | 310 | return -EINVAL; |
310 | } | 311 | } |
311 | 312 | ||
@@ -325,7 +326,7 @@ static int uni_reader_stop(struct uniperif *reader) | |||
325 | { | 326 | { |
326 | /* The reader should not be in stopped state */ | 327 | /* The reader should not be in stopped state */ |
327 | if (reader->state == UNIPERIF_STATE_STOPPED) { | 328 | if (reader->state == UNIPERIF_STATE_STOPPED) { |
328 | dev_err(reader->dev, "%s: invalid reader state", __func__); | 329 | dev_err(reader->dev, "%s: invalid reader state\n", __func__); |
329 | return -EINVAL; | 330 | return -EINVAL; |
330 | } | 331 | } |
331 | 332 | ||
@@ -423,7 +424,7 @@ int uni_reader_init(struct platform_device *pdev, | |||
423 | uni_reader_irq_handler, IRQF_SHARED, | 424 | uni_reader_irq_handler, IRQF_SHARED, |
424 | dev_name(&pdev->dev), reader); | 425 | dev_name(&pdev->dev), reader); |
425 | if (ret < 0) { | 426 | if (ret < 0) { |
426 | dev_err(&pdev->dev, "Failed to request IRQ"); | 427 | dev_err(&pdev->dev, "Failed to request IRQ\n"); |
427 | return -EBUSY; | 428 | return -EBUSY; |
428 | } | 429 | } |
429 | 430 | ||