@@ -178,7 +178,6 @@ struct perf_dom_info {
178178})
179179
180180struct scmi_perf_info {
181- u32 version ;
182181 u16 num_domains ;
183182 enum scmi_power_scale power_scale ;
184183 u64 stats_addr ;
@@ -215,7 +214,7 @@ static int scmi_perf_attributes_get(const struct scmi_protocol_handle *ph,
215214
216215 if (POWER_SCALE_IN_MILLIWATT (flags ))
217216 pi -> power_scale = SCMI_POWER_MILLIWATTS ;
218- if (PROTOCOL_REV_MAJOR (pi -> version ) >= 0x3 )
217+ if (PROTOCOL_REV_MAJOR (ph -> version ) >= 0x3 )
219218 if (POWER_SCALE_IN_MICROWATT (flags ))
220219 pi -> power_scale = SCMI_POWER_MICROWATTS ;
221220
@@ -251,8 +250,7 @@ static void scmi_perf_xa_destroy(void *data)
251250static int
252251scmi_perf_domain_attributes_get (const struct scmi_protocol_handle * ph ,
253252 struct perf_dom_info * dom_info ,
254- bool notify_lim_cmd , bool notify_lvl_cmd ,
255- u32 version )
253+ bool notify_lim_cmd , bool notify_lvl_cmd )
256254{
257255 int ret ;
258256 u32 flags ;
@@ -280,7 +278,7 @@ scmi_perf_domain_attributes_get(const struct scmi_protocol_handle *ph,
280278 dom_info -> perf_level_notify =
281279 SUPPORTS_PERF_LEVEL_NOTIFY (flags );
282280 dom_info -> perf_fastchannels = SUPPORTS_PERF_FASTCHANNELS (flags );
283- if (PROTOCOL_REV_MAJOR (version ) >= 0x4 )
281+ if (PROTOCOL_REV_MAJOR (ph -> version ) >= 0x4 )
284282 dom_info -> level_indexing_mode =
285283 SUPPORTS_LEVEL_INDEXING (flags );
286284 dom_info -> rate_limit_us = le32_to_cpu (attr -> rate_limit_us ) &
@@ -323,7 +321,7 @@ scmi_perf_domain_attributes_get(const struct scmi_protocol_handle *ph,
323321 * If supported overwrite short name with the extended one;
324322 * on error just carry on and use already provided short name.
325323 */
326- if (!ret && PROTOCOL_REV_MAJOR (version ) >= 0x3 &&
324+ if (!ret && PROTOCOL_REV_MAJOR (ph -> version ) >= 0x3 &&
327325 SUPPORTS_EXTENDED_NAMES (flags ))
328326 ph -> hops -> extended_name_get (ph , PERF_DOMAIN_NAME_GET ,
329327 dom_info -> id , NULL , dom_info -> info .name ,
@@ -345,19 +343,14 @@ static int opp_cmp_func(const void *opp1, const void *opp2)
345343 return t1 -> perf - t2 -> perf ;
346344}
347345
348- struct scmi_perf_ipriv {
349- u32 version ;
350- struct perf_dom_info * perf_dom ;
351- };
352-
353346static void iter_perf_levels_prepare_message (void * message ,
354347 unsigned int desc_index ,
355348 const void * priv )
356349{
357350 struct scmi_msg_perf_describe_levels * msg = message ;
358- const struct scmi_perf_ipriv * p = priv ;
351+ const struct perf_dom_info * perf_dom = priv ;
359352
360- msg -> domain = cpu_to_le32 (p -> perf_dom -> id );
353+ msg -> domain = cpu_to_le32 (perf_dom -> id );
361354 /* Set the number of OPPs to be skipped/already read */
362355 msg -> level_index = cpu_to_le32 (desc_index );
363356}
@@ -445,21 +438,21 @@ iter_perf_levels_process_response(const struct scmi_protocol_handle *ph,
445438{
446439 int ret ;
447440 struct scmi_opp * opp ;
448- struct scmi_perf_ipriv * p = priv ;
441+ struct perf_dom_info * perf_dom = priv ;
449442
450- opp = & p -> perf_dom -> opp [p -> perf_dom -> opp_count ];
451- if (PROTOCOL_REV_MAJOR (p -> version ) <= 0x3 )
452- ret = process_response_opp (ph -> dev , p -> perf_dom , opp ,
443+ opp = & perf_dom -> opp [perf_dom -> opp_count ];
444+ if (PROTOCOL_REV_MAJOR (ph -> version ) <= 0x3 )
445+ ret = process_response_opp (ph -> dev , perf_dom , opp ,
453446 st -> loop_idx , response );
454447 else
455- ret = process_response_opp_v4 (ph -> dev , p -> perf_dom , opp ,
448+ ret = process_response_opp_v4 (ph -> dev , perf_dom , opp ,
456449 st -> loop_idx , response );
457450
458451 /* Skip BAD duplicates received from firmware */
459452 if (ret )
460453 return ret == - EBUSY ? 0 : ret ;
461454
462- p -> perf_dom -> opp_count ++ ;
455+ perf_dom -> opp_count ++ ;
463456
464457 dev_dbg (ph -> dev , "Level %d Power %d Latency %dus Ifreq %d Index %d\n" ,
465458 opp -> perf , opp -> power , opp -> trans_latency_us ,
@@ -470,7 +463,7 @@ iter_perf_levels_process_response(const struct scmi_protocol_handle *ph,
470463
471464static int
472465scmi_perf_describe_levels_get (const struct scmi_protocol_handle * ph ,
473- struct perf_dom_info * perf_dom , u32 version )
466+ struct perf_dom_info * perf_dom )
474467{
475468 int ret ;
476469 void * iter ;
@@ -479,15 +472,11 @@ scmi_perf_describe_levels_get(const struct scmi_protocol_handle *ph,
479472 .update_state = iter_perf_levels_update_state ,
480473 .process_response = iter_perf_levels_process_response ,
481474 };
482- struct scmi_perf_ipriv ppriv = {
483- .version = version ,
484- .perf_dom = perf_dom ,
485- };
486475
487476 iter = ph -> hops -> iter_response_init (ph , & ops , MAX_OPPS ,
488477 PERF_DESCRIBE_LEVELS ,
489478 sizeof (struct scmi_msg_perf_describe_levels ),
490- & ppriv );
479+ perf_dom );
491480 if (IS_ERR (iter ))
492481 return PTR_ERR (iter );
493482
@@ -576,7 +565,6 @@ static int __scmi_perf_limits_set(const struct scmi_protocol_handle *ph,
576565static int scmi_perf_limits_set (const struct scmi_protocol_handle * ph ,
577566 u32 domain , u32 max_perf , u32 min_perf )
578567{
579- struct scmi_perf_info * pi = ph -> get_priv (ph );
580568 struct perf_dom_info * dom ;
581569
582570 dom = scmi_perf_domain_lookup (ph , domain );
@@ -586,7 +574,7 @@ static int scmi_perf_limits_set(const struct scmi_protocol_handle *ph,
586574 if (!dom -> set_limits )
587575 return - EOPNOTSUPP ;
588576
589- if (PROTOCOL_REV_MAJOR (pi -> version ) >= 0x3 && !max_perf && !min_perf )
577+ if (PROTOCOL_REV_MAJOR (ph -> version ) >= 0x3 && !max_perf && !min_perf )
590578 return - EINVAL ;
591579
592580 if (dom -> level_indexing_mode ) {
@@ -1281,22 +1269,15 @@ static const struct scmi_protocol_events perf_protocol_events = {
12811269static int scmi_perf_protocol_init (const struct scmi_protocol_handle * ph )
12821270{
12831271 int domain , ret ;
1284- u32 version ;
12851272 struct scmi_perf_info * pinfo ;
12861273
1287- ret = ph -> xops -> version_get (ph , & version );
1288- if (ret )
1289- return ret ;
1290-
12911274 dev_dbg (ph -> dev , "Performance Version %d.%d\n" ,
1292- PROTOCOL_REV_MAJOR (version ), PROTOCOL_REV_MINOR (version ));
1275+ PROTOCOL_REV_MAJOR (ph -> version ), PROTOCOL_REV_MINOR (ph -> version ));
12931276
12941277 pinfo = devm_kzalloc (ph -> dev , sizeof (* pinfo ), GFP_KERNEL );
12951278 if (!pinfo )
12961279 return - ENOMEM ;
12971280
1298- pinfo -> version = version ;
1299-
13001281 ret = scmi_perf_attributes_get (ph , pinfo );
13011282 if (ret )
13021283 return ret ;
@@ -1311,8 +1292,8 @@ static int scmi_perf_protocol_init(const struct scmi_protocol_handle *ph)
13111292
13121293 dom -> id = domain ;
13131294 scmi_perf_domain_attributes_get (ph , dom , pinfo -> notify_lim_cmd ,
1314- pinfo -> notify_lvl_cmd , version );
1315- scmi_perf_describe_levels_get (ph , dom , version );
1295+ pinfo -> notify_lvl_cmd );
1296+ scmi_perf_describe_levels_get (ph , dom );
13161297
13171298 if (dom -> perf_fastchannels )
13181299 scmi_perf_domain_init_fc (ph , dom );
@@ -1322,7 +1303,7 @@ static int scmi_perf_protocol_init(const struct scmi_protocol_handle *ph)
13221303 if (ret )
13231304 return ret ;
13241305
1325- return ph -> set_priv (ph , pinfo , version );
1306+ return ph -> set_priv (ph , pinfo );
13261307}
13271308
13281309static const struct scmi_protocol scmi_perf = {
0 commit comments