@@ -806,27 +806,6 @@ static void skl_set_copier_format(struct skl_dev *skl,
806
806
skl_setup_cpr_gateway_cfg (skl , mconfig , cpr_mconfig );
807
807
}
808
808
809
- /*
810
- * Algo module are DSP pre processing modules. Algo module take base module
811
- * configuration and params
812
- */
813
-
814
- static void skl_set_algo_format (struct skl_dev * skl ,
815
- struct skl_module_cfg * mconfig ,
816
- struct skl_algo_cfg * algo_mcfg )
817
- {
818
- struct skl_base_cfg * base_cfg = (struct skl_base_cfg * )algo_mcfg ;
819
-
820
- skl_set_base_module_format (skl , mconfig , base_cfg );
821
- if (mconfig -> formats_config [SKL_PARAM_INIT ].caps_size == 0 )
822
- return ;
823
-
824
- memcpy (algo_mcfg -> params ,
825
- mconfig -> formats_config [SKL_PARAM_INIT ].caps ,
826
- mconfig -> formats_config [SKL_PARAM_INIT ].caps_size );
827
-
828
- }
829
-
830
809
/*
831
810
* Mic select module allows selecting one or many input channels, thus
832
811
* acting as a demux.
@@ -849,6 +828,8 @@ static void skl_set_base_outfmt_format(struct skl_dev *skl,
849
828
static u16 skl_get_module_param_size (struct skl_dev * skl ,
850
829
struct skl_module_cfg * mconfig )
851
830
{
831
+ struct skl_module_res * res ;
832
+ struct skl_module * module = mconfig -> module ;
852
833
u16 param_size ;
853
834
854
835
switch (mconfig -> m_type ) {
@@ -863,11 +844,6 @@ static u16 skl_get_module_param_size(struct skl_dev *skl,
863
844
case SKL_MODULE_TYPE_UPDWMIX :
864
845
return sizeof (struct skl_up_down_mixer_cfg );
865
846
866
- case SKL_MODULE_TYPE_ALGO :
867
- param_size = sizeof (struct skl_base_cfg );
868
- param_size += mconfig -> formats_config [SKL_PARAM_INIT ].caps_size ;
869
- return param_size ;
870
-
871
847
case SKL_MODULE_TYPE_BASE_OUTFMT :
872
848
case SKL_MODULE_TYPE_MIC_SELECT :
873
849
return sizeof (struct skl_base_outfmt_cfg );
@@ -876,12 +852,16 @@ static u16 skl_get_module_param_size(struct skl_dev *skl,
876
852
case SKL_MODULE_TYPE_KPB :
877
853
return sizeof (struct skl_base_cfg );
878
854
855
+ case SKL_MODULE_TYPE_ALGO :
879
856
default :
880
- /*
881
- * return only base cfg when no specific module type is
882
- * specified
883
- */
884
- return sizeof (struct skl_base_cfg );
857
+ res = & module -> resources [mconfig -> res_idx ];
858
+
859
+ param_size = sizeof (struct skl_base_cfg ) + sizeof (struct skl_base_cfg_ext );
860
+ param_size += (res -> nr_input_pins + res -> nr_output_pins ) *
861
+ sizeof (struct skl_pin_format );
862
+ param_size += mconfig -> formats_config [SKL_PARAM_INIT ].caps_size ;
863
+
864
+ return param_size ;
885
865
}
886
866
887
867
return 0 ;
@@ -922,10 +902,6 @@ static int skl_set_module_format(struct skl_dev *skl,
922
902
skl_set_updown_mixer_format (skl , module_config , * param_data );
923
903
break ;
924
904
925
- case SKL_MODULE_TYPE_ALGO :
926
- skl_set_algo_format (skl , module_config , * param_data );
927
- break ;
928
-
929
905
case SKL_MODULE_TYPE_BASE_OUTFMT :
930
906
case SKL_MODULE_TYPE_MIC_SELECT :
931
907
skl_set_base_outfmt_format (skl , module_config , * param_data );
@@ -936,10 +912,13 @@ static int skl_set_module_format(struct skl_dev *skl,
936
912
skl_set_base_module_format (skl , module_config , * param_data );
937
913
break ;
938
914
915
+ case SKL_MODULE_TYPE_ALGO :
939
916
default :
940
917
skl_set_base_module_format (skl , module_config , * param_data );
918
+ skl_set_base_ext_module_format (skl , module_config ,
919
+ * param_data +
920
+ sizeof (struct skl_base_cfg ));
941
921
break ;
942
-
943
922
}
944
923
945
924
dev_dbg (skl -> dev , "Module type=%d id=%d config size: %d bytes\n" ,
0 commit comments