@@ -1377,8 +1377,6 @@ viosnd_pcm_stream_configure(struct viosnd_pcm *pcm,
13771377 u32 rates ;
13781378 u32 sample_size_min = 0 ;
13791379 u32 sample_size_max = 0 ;
1380- unsigned int buffer_size_min ;
1381- unsigned int buffer_size_max ;
13821380 unsigned int page_order ;
13831381
13841382 stream = devm_kzalloc (dev , sizeof (* stream ), GFP_KERNEL );
@@ -1439,22 +1437,18 @@ viosnd_pcm_stream_configure(struct viosnd_pcm *pcm,
14391437 return ERR_PTR (- EINVAL );
14401438 }
14411439
1442- buffer_size_min =
1443- (sample_size_min * desc -> channels_min * stream -> hw .rate_min );
1444- buffer_size_min /= 2 ;
1445- buffer_size_max =
1446- (sample_size_max * desc -> channels_max * stream -> hw .rate_max );
1447- buffer_size_max /= 2 ;
1448-
1440+ stream -> hw .period_bytes_min =
1441+ (sample_size_min * desc -> channels_min * desc -> period_size_min );
1442+ stream -> hw .period_bytes_max =
1443+ (sample_size_max * desc -> channels_max * desc -> period_size_min );
14491444 stream -> hw .channels_min = desc -> channels_min ;
14501445 stream -> hw .channels_max = desc -> channels_max ;
1451- stream -> hw .buffer_bytes_max = buffer_size_max ;
1452- stream -> hw .periods_min = 4 ;
1453- stream -> hw .periods_max = 4 ;
1454- stream -> hw .period_bytes_min = buffer_size_min / 4 ;
1455- stream -> hw .period_bytes_max = buffer_size_max / 4 ;
1446+ stream -> hw .periods_min = 2 ;
1447+ stream -> hw .periods_max = 16 ;
1448+ stream -> hw .buffer_bytes_max =
1449+ stream -> hw .periods_max * stream -> hw .period_bytes_max ;
14561450
1457- page_order = get_order (buffer_size_max );
1451+ page_order = get_order (stream -> hw . buffer_bytes_max );
14581452
14591453 stream -> data = (void * )devm_get_free_pages (dev , GFP_KERNEL , page_order );
14601454 if (!stream -> data )
0 commit comments