@@ -239,65 +239,6 @@ static const struct regmap_config max98373_sdw_regmap = {
239239 .use_single_write = true,
240240};
241241
242- static void max98373_read_config (struct sdw_slave * slave )
243- {
244- int value ;
245- struct device * dev = & slave -> dev ;
246- struct max98373_priv * max98373 = dev_get_drvdata (dev );
247-
248- if (!device_property_read_u32 (dev , "maxim,vmon-slot-no" , & value ))
249- max98373 -> v_slot = value & 0xF ;
250- else
251- max98373 -> v_slot = 0 ;
252-
253- if (!device_property_read_u32 (dev , "maxim,imon-slot-no" , & value ))
254- max98373 -> i_slot = value & 0xF ;
255- else
256- max98373 -> i_slot = 1 ;
257-
258- if (!device_property_read_u32 (dev , "maxim,spkfb-slot-no" , & value ))
259- max98373 -> spkfb_slot = value & 0xF ;
260- else
261- max98373 -> spkfb_slot = 2 ;
262-
263- /* update interleave mode info */
264- if (device_property_read_bool (dev , "maxim,interleave_mode" ))
265- max98373 -> interleave_mode = true;
266- else
267- max98373 -> interleave_mode = false;
268- }
269-
270- /* MAX98373 reset and initialization. */
271- static int max98373_reset (struct device * dev )
272- {
273- int ret , reg , count ;
274- struct max98373_priv * max98373 = dev_get_drvdata (dev );
275-
276- /* Software Reset */
277- ret = regmap_update_bits (max98373 -> regmap ,
278- MAX98373_R2000_SW_RESET ,
279- MAX98373_SOFT_RESET ,
280- MAX98373_SOFT_RESET );
281- if (ret ) {
282- dev_err (dev , "Reset command failed. (ret:%d)\n" , ret );
283- return ret ;
284- }
285-
286- for (count = 0 ; count < 3 ; count ++ ) {
287- usleep_range (10000 , 11000 );
288- /* Software Reset Verification */
289- ret = regmap_read (max98373 -> regmap ,
290- MAX98373_R21FF_REV_ID , & reg );
291- if (!ret ) {
292- dev_dbg (dev , "Reset completed (retry:%d)\n" , count );
293- return 0 ;
294- }
295- }
296-
297- dev_err (dev , "Reset failed. (ret:%d)\n" , ret );
298- return ret ;
299- }
300-
301242/* Power management functions and structure */
302243static int max98373_suspend (struct device * dev )
303244{
@@ -407,7 +348,6 @@ static int max98373_io_init(struct sdw_slave *slave)
407348{
408349 struct device * dev = & slave -> dev ;
409350 struct max98373_priv * max98373 = dev_get_drvdata (dev );
410- int ret ;
411351
412352 if (max98373 -> pm_init_once ) {
413353 regcache_cache_only (max98373 -> regmap , false);
@@ -434,9 +374,7 @@ static int max98373_io_init(struct sdw_slave *slave)
434374 pm_runtime_get_noresume (dev );
435375
436376 /* Software Reset */
437- ret = max98373_reset (dev );
438- if (ret )
439- return ret ;
377+ max98373_reset (max98373 , dev );
440378
441379 /* Set soundwire mode */
442380 regmap_write (max98373 -> regmap , MAX98373_R2025_AUDIO_IF_MODE , 3 );
@@ -460,13 +398,6 @@ static int max98373_io_init(struct sdw_slave *slave)
460398 regmap_write (max98373 -> regmap ,
461399 MAX98373_R202A_PCM_TO_SPK_MONO_MIX_2 ,
462400 0x1 );
463- /* Set initial volume (0dB) */
464- regmap_write (max98373 -> regmap ,
465- MAX98373_R203D_AMP_DIG_VOL_CTRL ,
466- 0x00 );
467- regmap_write (max98373 -> regmap ,
468- MAX98373_R203E_AMP_PATH_GAIN ,
469- 0x00 );
470401 /* Enable DC blocker */
471402 regmap_write (max98373 -> regmap ,
472403 MAX98373_R203F_AMP_DSP_CFG ,
@@ -624,7 +555,7 @@ static int max98373_sdw_dai_hw_params(struct snd_pcm_substream *substream,
624555 else
625556 stream_config .ch_count = params_channels (params );
626557
627- port_config .ch_mask = GENMASK (stream_config .ch_count - 1 , 0 );
558+ port_config .ch_mask = GENMASK (( int ) stream_config .ch_count - 1 , 0 );
628559 }
629560
630561 ret = sdw_stream_add_slave (max98373 -> slave , & stream_config ,
@@ -839,7 +770,7 @@ static int max98373_init(struct sdw_slave *slave, struct regmap *regmap)
839770 max98373 -> slave = slave ;
840771
841772 /* Read voltage and slot configuration */
842- max98373_read_config ( slave );
773+ max98373_slot_config ( dev , max98373 );
843774
844775 max98373 -> hw_init = false;
845776 max98373 -> pm_init_once = false;
0 commit comments