@@ -57,6 +57,7 @@ static int intel_ace2x_bpt_open_stream(struct sdw_intel *sdw, struct sdw_slave *
5757 struct sdw_port_config * pconfig ;
5858 unsigned int pdi0_buf_size_pre_frame ;
5959 unsigned int pdi1_buf_size_pre_frame ;
60+ unsigned int max_data_per_frame ;
6061 unsigned int pdi0_buffer_size_ ;
6162 unsigned int pdi1_buffer_size_ ;
6263 unsigned int pdi0_buffer_size ;
@@ -168,11 +169,17 @@ static int intel_ace2x_bpt_open_stream(struct sdw_intel *sdw, struct sdw_slave *
168169 pdi0_buffer_size = 0 ;
169170 pdi1_buffer_size = 0 ;
170171 num_frames = 0 ;
172+
173+ if (slave -> prop .bra_max_data_per_frame )
174+ max_data_per_frame = slave -> prop .bra_max_data_per_frame ;
175+ else
176+ max_data_per_frame = SDW_BPT_MSG_MAX_BYTES ;
177+
171178 /* Add up pdi buffer size and frame numbers of each BPT sections */
172179 for (i = 0 ; i < msg -> sections ; i ++ ) {
173180 ret = sdw_cdns_bpt_find_buffer_sizes (command , cdns -> bus .params .row ,
174181 cdns -> bus .params .col ,
175- msg -> sec [i ].len , SDW_BPT_MSG_MAX_BYTES ,
182+ msg -> sec [i ].len , max_data_per_frame ,
176183 slave -> prop .bra_block_alignment ,
177184 & data_per_frame , & pdi0_buffer_size_ ,
178185 & pdi1_buffer_size_ , & num_frames_ );
@@ -197,7 +204,7 @@ static int intel_ace2x_bpt_open_stream(struct sdw_intel *sdw, struct sdw_slave *
197204 /* Get buffer size of a full frame */
198205 ret = sdw_cdns_bpt_find_buffer_sizes (command , cdns -> bus .params .row ,
199206 cdns -> bus .params .col ,
200- data_per_frame , SDW_BPT_MSG_MAX_BYTES ,
207+ data_per_frame , max_data_per_frame ,
201208 slave -> prop .bra_block_alignment ,
202209 & data_per_frame , & pdi0_buf_size_pre_frame ,
203210 & pdi1_buf_size_pre_frame , & fake_num_frames );
0 commit comments