5
5
* Copyright 2015-2016 Linaro Ltd.
6
6
*/
7
7
8
+ #include <linux/greybus.h>
8
9
#include "audio_codec.h"
9
- #include "greybus_protocols.h"
10
10
11
11
#define GBAUDIO_INVALID_ID 0xFF
12
12
@@ -165,15 +165,15 @@ static int gbcodec_mixer_ctl_info(struct snd_kcontrol *kcontrol,
165
165
struct gbaudio_ctl_pvt * data ;
166
166
struct gb_audio_ctl_elem_info * info ;
167
167
struct gbaudio_module_info * module ;
168
- struct snd_soc_codec * codec = snd_kcontrol_chip (kcontrol );
169
- struct gbaudio_codec_info * gbcodec = snd_soc_codec_get_drvdata ( codec );
168
+ struct snd_soc_component * comp = snd_soc_kcontrol_component (kcontrol );
169
+ struct gbaudio_codec_info * gbcodec = snd_soc_component_get_drvdata ( comp );
170
170
171
- dev_dbg (codec -> dev , "Entered %s:%s\n" , __func__ , kcontrol -> id .name );
171
+ dev_dbg (comp -> dev , "Entered %s:%s\n" , __func__ , kcontrol -> id .name );
172
172
data = (struct gbaudio_ctl_pvt * )kcontrol -> private_value ;
173
173
info = (struct gb_audio_ctl_elem_info * )data -> info ;
174
174
175
175
if (!info ) {
176
- dev_err (codec -> dev , "NULL info for %s\n" , uinfo -> id .name );
176
+ dev_err (comp -> dev , "NULL info for %s\n" , uinfo -> id .name );
177
177
return - EINVAL ;
178
178
}
179
179
@@ -201,7 +201,7 @@ static int gbcodec_mixer_ctl_info(struct snd_kcontrol *kcontrol,
201
201
strlcpy (uinfo -> value .enumerated .name , name , NAME_SIZE );
202
202
break ;
203
203
default :
204
- dev_err (codec -> dev , "Invalid type: %d for %s:kcontrol\n" ,
204
+ dev_err (comp -> dev , "Invalid type: %d for %s:kcontrol\n" ,
205
205
info -> type , kcontrol -> id .name );
206
206
break ;
207
207
}
@@ -216,11 +216,11 @@ static int gbcodec_mixer_ctl_get(struct snd_kcontrol *kcontrol,
216
216
struct gbaudio_ctl_pvt * data ;
217
217
struct gb_audio_ctl_elem_value gbvalue ;
218
218
struct gbaudio_module_info * module ;
219
- struct snd_soc_codec * codec = snd_kcontrol_chip (kcontrol );
220
- struct gbaudio_codec_info * gb = snd_soc_codec_get_drvdata ( codec );
219
+ struct snd_soc_component * comp = snd_soc_kcontrol_component (kcontrol );
220
+ struct gbaudio_codec_info * gb = snd_soc_component_get_drvdata ( comp );
221
221
struct gb_bundle * bundle ;
222
222
223
- dev_dbg (codec -> dev , "Entered %s:%s\n" , __func__ , kcontrol -> id .name );
223
+ dev_dbg (comp -> dev , "Entered %s:%s\n" , __func__ , kcontrol -> id .name );
224
224
module = find_gb_module (gb , kcontrol -> id .name );
225
225
if (!module )
226
226
return - EINVAL ;
@@ -239,7 +239,7 @@ static int gbcodec_mixer_ctl_get(struct snd_kcontrol *kcontrol,
239
239
gb_pm_runtime_put_autosuspend (bundle );
240
240
241
241
if (ret ) {
242
- dev_err_ratelimited (codec -> dev , "%d:Error in %s for %s\n" , ret ,
242
+ dev_err_ratelimited (comp -> dev , "%d:Error in %s for %s\n" , ret ,
243
243
__func__ , kcontrol -> id .name );
244
244
return ret ;
245
245
}
@@ -262,7 +262,7 @@ static int gbcodec_mixer_ctl_get(struct snd_kcontrol *kcontrol,
262
262
le32_to_cpu (gbvalue .value .enumerated_item [1 ]);
263
263
break ;
264
264
default :
265
- dev_err (codec -> dev , "Invalid type: %d for %s:kcontrol\n" ,
265
+ dev_err (comp -> dev , "Invalid type: %d for %s:kcontrol\n" ,
266
266
info -> type , kcontrol -> id .name );
267
267
ret = - EINVAL ;
268
268
break ;
@@ -278,11 +278,11 @@ static int gbcodec_mixer_ctl_put(struct snd_kcontrol *kcontrol,
278
278
struct gbaudio_ctl_pvt * data ;
279
279
struct gb_audio_ctl_elem_value gbvalue ;
280
280
struct gbaudio_module_info * module ;
281
- struct snd_soc_codec * codec = snd_kcontrol_chip (kcontrol );
282
- struct gbaudio_codec_info * gb = snd_soc_codec_get_drvdata ( codec );
281
+ struct snd_soc_component * comp = snd_soc_kcontrol_component (kcontrol );
282
+ struct gbaudio_codec_info * gb = snd_soc_component_get_drvdata ( comp );
283
283
struct gb_bundle * bundle ;
284
284
285
- dev_dbg (codec -> dev , "Entered %s:%s\n" , __func__ , kcontrol -> id .name );
285
+ dev_dbg (comp -> dev , "Entered %s:%s\n" , __func__ , kcontrol -> id .name );
286
286
module = find_gb_module (gb , kcontrol -> id .name );
287
287
if (!module )
288
288
return - EINVAL ;
@@ -309,7 +309,7 @@ static int gbcodec_mixer_ctl_put(struct snd_kcontrol *kcontrol,
309
309
cpu_to_le32 (ucontrol -> value .enumerated .item [1 ]);
310
310
break ;
311
311
default :
312
- dev_err (codec -> dev , "Invalid type: %d for %s:kcontrol\n" ,
312
+ dev_err (comp -> dev , "Invalid type: %d for %s:kcontrol\n" ,
313
313
info -> type , kcontrol -> id .name );
314
314
ret = - EINVAL ;
315
315
break ;
@@ -328,7 +328,7 @@ static int gbcodec_mixer_ctl_put(struct snd_kcontrol *kcontrol,
328
328
gb_pm_runtime_put_autosuspend (bundle );
329
329
330
330
if (ret ) {
331
- dev_err_ratelimited (codec -> dev , "%d:Error in %s for %s\n" , ret ,
331
+ dev_err_ratelimited (comp -> dev , "%d:Error in %s for %s\n" , ret ,
332
332
__func__ , kcontrol -> id .name );
333
333
}
334
334
@@ -352,11 +352,7 @@ static int gbcodec_mixer_dapm_ctl_info(struct snd_kcontrol *kcontrol,
352
352
int platform_max , platform_min ;
353
353
struct gbaudio_ctl_pvt * data ;
354
354
struct gb_audio_ctl_elem_info * info ;
355
- struct snd_soc_dapm_widget_list * wlist = snd_kcontrol_chip (kcontrol );
356
- struct snd_soc_dapm_widget * widget = wlist -> widgets [0 ];
357
- struct snd_soc_codec * codec = widget -> codec ;
358
355
359
- dev_dbg (codec -> dev , "Entered %s:%s\n" , __func__ , kcontrol -> id .name );
360
356
data = (struct gbaudio_ctl_pvt * )kcontrol -> private_value ;
361
357
info = (struct gb_audio_ctl_elem_info * )data -> info ;
362
358
@@ -387,11 +383,11 @@ static int gbcodec_mixer_dapm_ctl_get(struct snd_kcontrol *kcontrol,
387
383
struct gbaudio_module_info * module ;
388
384
struct snd_soc_dapm_widget_list * wlist = snd_kcontrol_chip (kcontrol );
389
385
struct snd_soc_dapm_widget * widget = wlist -> widgets [0 ];
390
- struct snd_soc_codec * codec = widget -> codec ;
391
- struct gbaudio_codec_info * gb = snd_soc_codec_get_drvdata ( codec );
386
+ struct device * codec_dev = widget -> dapm -> dev ;
387
+ struct gbaudio_codec_info * gb = dev_get_drvdata ( codec_dev );
392
388
struct gb_bundle * bundle ;
393
389
394
- dev_dbg (codec -> dev , "Entered %s:%s\n" , __func__ , kcontrol -> id .name );
390
+ dev_dbg (codec_dev , "Entered %s:%s\n" , __func__ , kcontrol -> id .name );
395
391
module = find_gb_module (gb , kcontrol -> id .name );
396
392
if (!module )
397
393
return - EINVAL ;
@@ -415,7 +411,7 @@ static int gbcodec_mixer_dapm_ctl_get(struct snd_kcontrol *kcontrol,
415
411
gb_pm_runtime_put_autosuspend (bundle );
416
412
417
413
if (ret ) {
418
- dev_err_ratelimited (codec -> dev , "%d:Error in %s for %s\n" , ret ,
414
+ dev_err_ratelimited (codec_dev , "%d:Error in %s for %s\n" , ret ,
419
415
__func__ , kcontrol -> id .name );
420
416
return ret ;
421
417
}
@@ -437,11 +433,11 @@ static int gbcodec_mixer_dapm_ctl_put(struct snd_kcontrol *kcontrol,
437
433
struct gbaudio_module_info * module ;
438
434
struct snd_soc_dapm_widget_list * wlist = snd_kcontrol_chip (kcontrol );
439
435
struct snd_soc_dapm_widget * widget = wlist -> widgets [0 ];
440
- struct snd_soc_codec * codec = widget -> codec ;
441
- struct gbaudio_codec_info * gb = snd_soc_codec_get_drvdata ( codec );
436
+ struct device * codec_dev = widget -> dapm -> dev ;
437
+ struct gbaudio_codec_info * gb = dev_get_drvdata ( codec_dev );
442
438
struct gb_bundle * bundle ;
443
439
444
- dev_dbg (codec -> dev , "Entered %s:%s\n" , __func__ , kcontrol -> id .name );
440
+ dev_dbg (codec_dev , "Entered %s:%s\n" , __func__ , kcontrol -> id .name );
445
441
module = find_gb_module (gb , kcontrol -> id .name );
446
442
if (!module )
447
443
return - EINVAL ;
@@ -464,11 +460,8 @@ static int gbcodec_mixer_dapm_ctl_put(struct snd_kcontrol *kcontrol,
464
460
if (gbvalue .value .integer_value [0 ] != val ) {
465
461
for (wi = 0 ; wi < wlist -> num_widgets ; wi ++ ) {
466
462
widget = wlist -> widgets [wi ];
467
-
468
- widget -> value = val ;
469
- widget -> dapm -> update = NULL ;
470
- snd_soc_dapm_mixer_update_power (widget , kcontrol ,
471
- connect );
463
+ snd_soc_dapm_mixer_update_power (widget -> dapm , kcontrol ,
464
+ connect , NULL );
472
465
}
473
466
gbvalue .value .integer_value [0 ] =
474
467
cpu_to_le32 (ucontrol -> value .integer .value [0 ]);
@@ -484,7 +477,7 @@ static int gbcodec_mixer_dapm_ctl_put(struct snd_kcontrol *kcontrol,
484
477
gb_pm_runtime_put_autosuspend (bundle );
485
478
486
479
if (ret ) {
487
- dev_err_ratelimited (codec -> dev ,
480
+ dev_err_ratelimited (codec_dev ,
488
481
"%d:Error in %s for %s\n" , ret ,
489
482
__func__ , kcontrol -> id .name );
490
483
return ret ;
@@ -553,11 +546,11 @@ static int gbcodec_enum_ctl_get(struct snd_kcontrol *kcontrol,
553
546
struct snd_ctl_elem_value * ucontrol )
554
547
{
555
548
int ret , ctl_id ;
556
- struct snd_soc_codec * codec = snd_kcontrol_chip (kcontrol );
549
+ struct snd_soc_component * comp = snd_soc_kcontrol_component (kcontrol );
550
+ struct gbaudio_codec_info * gb = snd_soc_component_get_drvdata (comp );
557
551
struct soc_enum * e = (struct soc_enum * )kcontrol -> private_value ;
558
552
struct gb_audio_ctl_elem_value gbvalue ;
559
553
struct gbaudio_module_info * module ;
560
- struct gbaudio_codec_info * gb = snd_soc_codec_get_drvdata (codec );
561
554
struct gb_bundle * bundle ;
562
555
563
556
module = find_gb_module (gb , kcontrol -> id .name );
@@ -580,7 +573,7 @@ static int gbcodec_enum_ctl_get(struct snd_kcontrol *kcontrol,
580
573
gb_pm_runtime_put_autosuspend (bundle );
581
574
582
575
if (ret ) {
583
- dev_err_ratelimited (codec -> dev , "%d:Error in %s for %s\n" , ret ,
576
+ dev_err_ratelimited (comp -> dev , "%d:Error in %s for %s\n" , ret ,
584
577
__func__ , kcontrol -> id .name );
585
578
return ret ;
586
579
}
@@ -598,11 +591,11 @@ static int gbcodec_enum_ctl_put(struct snd_kcontrol *kcontrol,
598
591
struct snd_ctl_elem_value * ucontrol )
599
592
{
600
593
int ret , ctl_id ;
601
- struct snd_soc_codec * codec = snd_kcontrol_chip (kcontrol );
594
+ struct snd_soc_component * comp = snd_soc_kcontrol_component (kcontrol );
595
+ struct gbaudio_codec_info * gb = snd_soc_component_get_drvdata (comp );
602
596
struct soc_enum * e = (struct soc_enum * )kcontrol -> private_value ;
603
597
struct gb_audio_ctl_elem_value gbvalue ;
604
598
struct gbaudio_module_info * module ;
605
- struct gbaudio_codec_info * gb = snd_soc_codec_get_drvdata (codec );
606
599
struct gb_bundle * bundle ;
607
600
608
601
module = find_gb_module (gb , kcontrol -> id .name );
@@ -613,13 +606,13 @@ static int gbcodec_enum_ctl_put(struct snd_kcontrol *kcontrol,
613
606
if (ctl_id < 0 )
614
607
return - EINVAL ;
615
608
616
- if (ucontrol -> value .enumerated .item [0 ] > e -> max - 1 )
609
+ if (ucontrol -> value .enumerated .item [0 ] > e -> items - 1 )
617
610
return - EINVAL ;
618
611
gbvalue .value .enumerated_item [0 ] =
619
612
cpu_to_le32 (ucontrol -> value .enumerated .item [0 ]);
620
613
621
614
if (e -> shift_l != e -> shift_r ) {
622
- if (ucontrol -> value .enumerated .item [1 ] > e -> max - 1 )
615
+ if (ucontrol -> value .enumerated .item [1 ] > e -> items - 1 )
623
616
return - EINVAL ;
624
617
gbvalue .value .enumerated_item [1 ] =
625
618
cpu_to_le32 (ucontrol -> value .enumerated .item [1 ]);
@@ -637,8 +630,8 @@ static int gbcodec_enum_ctl_put(struct snd_kcontrol *kcontrol,
637
630
gb_pm_runtime_put_autosuspend (bundle );
638
631
639
632
if (ret ) {
640
- dev_err_ratelimited (codec -> dev , "%d:Error in %s for %s\n" , ret ,
641
- __func__ , kcontrol -> id .name );
633
+ dev_err_ratelimited (comp -> dev , "%d:Error in %s for %s\n" ,
634
+ ret , __func__ , kcontrol -> id .name );
642
635
}
643
636
644
637
return ret ;
@@ -659,13 +652,13 @@ static int gbaudio_tplg_create_enum_kctl(struct gbaudio_module_info *gb,
659
652
gb_enum = & ctl -> info .value .enumerated ;
660
653
661
654
/* since count=1, and reg is dummy */
662
- gbe -> max = le32_to_cpu (gb_enum -> items );
655
+ gbe -> items = le32_to_cpu (gb_enum -> items );
663
656
gbe -> texts = gb_generate_enum_strings (gb , gb_enum );
664
657
665
658
/* debug enum info */
666
- dev_dbg (gb -> dev , "Max:%d, name_length:%d\n" , gbe -> max ,
659
+ dev_dbg (gb -> dev , "Max:%d, name_length:%d\n" , gbe -> items ,
667
660
le16_to_cpu (gb_enum -> names_length ));
668
- for (i = 0 ; i < gbe -> max ; i ++ )
661
+ for (i = 0 ; i < gbe -> items ; i ++ )
669
662
dev_dbg (gb -> dev , "src[%d]: %s\n" , i , gbe -> texts [i ]);
670
663
671
664
* kctl = (struct snd_kcontrol_new )
@@ -720,8 +713,8 @@ static int gbcodec_enum_dapm_ctl_get(struct snd_kcontrol *kcontrol,
720
713
struct snd_soc_dapm_widget * widget = wlist -> widgets [0 ];
721
714
struct gbaudio_module_info * module ;
722
715
struct gb_audio_ctl_elem_value gbvalue ;
723
- struct snd_soc_codec * codec = widget -> codec ;
724
- struct gbaudio_codec_info * gb = snd_soc_codec_get_drvdata ( codec );
716
+ struct device * codec_dev = widget -> dapm -> dev ;
717
+ struct gbaudio_codec_info * gb = dev_get_drvdata ( codec_dev );
725
718
struct soc_enum * e = (struct soc_enum * )kcontrol -> private_value ;
726
719
struct gb_bundle * bundle ;
727
720
@@ -745,7 +738,7 @@ static int gbcodec_enum_dapm_ctl_get(struct snd_kcontrol *kcontrol,
745
738
gb_pm_runtime_put_autosuspend (bundle );
746
739
747
740
if (ret ) {
748
- dev_err_ratelimited (codec -> dev , "%d:Error in %s for %s\n" , ret ,
741
+ dev_err_ratelimited (codec_dev , "%d:Error in %s for %s\n" , ret ,
749
742
__func__ , kcontrol -> id .name );
750
743
return ret ;
751
744
}
@@ -768,12 +761,12 @@ static int gbcodec_enum_dapm_ctl_put(struct snd_kcontrol *kcontrol,
768
761
struct snd_soc_dapm_widget * widget = wlist -> widgets [0 ];
769
762
struct gb_audio_ctl_elem_value gbvalue ;
770
763
struct gbaudio_module_info * module ;
771
- struct snd_soc_codec * codec = widget -> codec ;
772
- struct gbaudio_codec_info * gb = snd_soc_codec_get_drvdata ( codec );
764
+ struct device * codec_dev = widget -> dapm -> dev ;
765
+ struct gbaudio_codec_info * gb = dev_get_drvdata ( codec_dev );
773
766
struct soc_enum * e = (struct soc_enum * )kcontrol -> private_value ;
774
767
struct gb_bundle * bundle ;
775
768
776
- if (ucontrol -> value .enumerated .item [0 ] > e -> max - 1 )
769
+ if (ucontrol -> value .enumerated .item [0 ] > e -> items - 1 )
777
770
return - EINVAL ;
778
771
779
772
module = find_gb_module (gb , kcontrol -> id .name );
@@ -797,7 +790,7 @@ static int gbcodec_enum_dapm_ctl_put(struct snd_kcontrol *kcontrol,
797
790
gb_pm_runtime_put_autosuspend (bundle );
798
791
799
792
if (ret ) {
800
- dev_err_ratelimited (codec -> dev , "%d:Error in %s for %s\n" , ret ,
793
+ dev_err_ratelimited (codec_dev , "%d:Error in %s for %s\n" , ret ,
801
794
__func__ , kcontrol -> id .name );
802
795
return ret ;
803
796
}
@@ -814,7 +807,7 @@ static int gbcodec_enum_dapm_ctl_put(struct snd_kcontrol *kcontrol,
814
807
}
815
808
816
809
if (e -> shift_l != e -> shift_r ) {
817
- if (ucontrol -> value .enumerated .item [1 ] > e -> max - 1 )
810
+ if (ucontrol -> value .enumerated .item [1 ] > e -> items - 1 )
818
811
return - EINVAL ;
819
812
val |= ucontrol -> value .enumerated .item [1 ] << e -> shift_r ;
820
813
mask |= e -> mask << e -> shift_r ;
@@ -837,16 +830,14 @@ static int gbcodec_enum_dapm_ctl_put(struct snd_kcontrol *kcontrol,
837
830
gb_pm_runtime_put_autosuspend (bundle );
838
831
839
832
if (ret ) {
840
- dev_err_ratelimited (codec -> dev ,
833
+ dev_err_ratelimited (codec_dev ,
841
834
"%d:Error in %s for %s\n" , ret ,
842
835
__func__ , kcontrol -> id .name );
843
836
}
844
837
for (wi = 0 ; wi < wlist -> num_widgets ; wi ++ ) {
845
838
widget = wlist -> widgets [wi ];
846
-
847
- widget -> value = val ;
848
- widget -> dapm -> update = NULL ;
849
- snd_soc_dapm_mux_update_power (widget , kcontrol , mux , e );
839
+ snd_soc_dapm_mux_update_power (widget -> dapm , kcontrol ,
840
+ val , e , NULL );
850
841
}
851
842
}
852
843
@@ -868,13 +859,13 @@ static int gbaudio_tplg_create_enum_ctl(struct gbaudio_module_info *gb,
868
859
gb_enum = & ctl -> info .value .enumerated ;
869
860
870
861
/* since count=1, and reg is dummy */
871
- gbe -> max = le32_to_cpu (gb_enum -> items );
862
+ gbe -> items = le32_to_cpu (gb_enum -> items );
872
863
gbe -> texts = gb_generate_enum_strings (gb , gb_enum );
873
864
874
865
/* debug enum info */
875
- dev_dbg (gb -> dev , "Max:%d, name_length:%d\n" , gbe -> max ,
866
+ dev_dbg (gb -> dev , "Max:%d, name_length:%d\n" , gbe -> items ,
876
867
le16_to_cpu (gb_enum -> names_length ));
877
- for (i = 0 ; i < gbe -> max ; i ++ )
868
+ for (i = 0 ; i < gbe -> items ; i ++ )
878
869
dev_dbg (gb -> dev , "src[%d]: %s\n" , i , gbe -> texts [i ]);
879
870
880
871
* kctl = (struct snd_kcontrol_new )
@@ -935,12 +926,12 @@ static int gbaudio_widget_event(struct snd_soc_dapm_widget *w,
935
926
{
936
927
int wid ;
937
928
int ret ;
938
- struct snd_soc_codec * codec = w -> codec ;
939
- struct gbaudio_codec_info * gbcodec = snd_soc_codec_get_drvdata ( codec );
929
+ struct device * codec_dev = w -> dapm -> dev ;
930
+ struct gbaudio_codec_info * gbcodec = dev_get_drvdata ( codec_dev );
940
931
struct gbaudio_module_info * module ;
941
932
struct gb_bundle * bundle ;
942
933
943
- dev_dbg (codec -> dev , "%s %s %d\n" , __func__ , w -> name , event );
934
+ dev_dbg (codec_dev , "%s %s %d\n" , __func__ , w -> name , event );
944
935
945
936
/* Find relevant module */
946
937
module = find_gb_module (gbcodec , w -> name );
@@ -950,7 +941,7 @@ static int gbaudio_widget_event(struct snd_soc_dapm_widget *w,
950
941
/* map name to widget id */
951
942
wid = gbaudio_map_widgetname (module , w -> name );
952
943
if (wid < 0 ) {
953
- dev_err (codec -> dev , "Invalid widget name:%s\n" , w -> name );
944
+ dev_err (codec_dev , "Invalid widget name:%s\n" , w -> name );
954
945
return - EINVAL ;
955
946
}
956
947
@@ -973,7 +964,7 @@ static int gbaudio_widget_event(struct snd_soc_dapm_widget *w,
973
964
break ;
974
965
}
975
966
if (ret )
976
- dev_err_ratelimited (codec -> dev ,
967
+ dev_err_ratelimited (codec_dev ,
977
968
"%d: widget, event:%d failed:%d\n" , wid ,
978
969
event , ret );
979
970
0 commit comments