@@ -276,6 +276,19 @@ bool no_msr;
276
276
bool no_perf ;
277
277
enum amperf_source amperf_source ;
278
278
279
+ enum gfx_sysfs_idx {
280
+ GFX_rc6 ,
281
+ GFX_MHz ,
282
+ GFX_ACTMHz ,
283
+ GFX_MAX
284
+ };
285
+
286
+ struct gfx_sysfs_info {
287
+ const char * path ;
288
+ };
289
+
290
+ static struct gfx_sysfs_info gfx_info [GFX_MAX ];
291
+
279
292
int get_msr (int cpu , off_t offset , unsigned long long * msr );
280
293
281
294
/* Model specific support Start */
@@ -4620,7 +4633,7 @@ int snapshot_gfx_rc6_ms(void)
4620
4633
FILE * fp ;
4621
4634
int retval ;
4622
4635
4623
- fp = fopen_or_die ("/sys/class/drm/card0/power/rc6_residency_ms" , "r" );
4636
+ fp = fopen_or_die (gfx_info [ GFX_rc6 ]. path , "r" );
4624
4637
4625
4638
retval = fscanf (fp , "%lld" , & gfx_cur_rc6_ms );
4626
4639
if (retval != 1 )
@@ -4645,9 +4658,7 @@ int snapshot_gfx_mhz(void)
4645
4658
int retval ;
4646
4659
4647
4660
if (fp == NULL ) {
4648
- fp = fopen ("/sys/class/drm/card0/gt_cur_freq_mhz" , "r" );
4649
- if (!fp )
4650
- fp = fopen_or_die ("/sys/class/graphics/fb0/device/drm/card0/gt_cur_freq_mhz" , "r" );
4661
+ fp = fopen_or_die (gfx_info [GFX_MHz ].path , "r" );
4651
4662
} else {
4652
4663
rewind (fp );
4653
4664
fflush (fp );
@@ -4674,9 +4685,7 @@ int snapshot_gfx_act_mhz(void)
4674
4685
int retval ;
4675
4686
4676
4687
if (fp == NULL ) {
4677
- fp = fopen ("/sys/class/drm/card0/gt_act_freq_mhz" , "r" );
4678
- if (!fp )
4679
- fp = fopen_or_die ("/sys/class/graphics/fb0/device/drm/card0/gt_act_freq_mhz" , "r" );
4688
+ fp = fopen_or_die (gfx_info [GFX_ACTMHz ].path , "r" );
4680
4689
} else {
4681
4690
rewind (fp );
4682
4691
fflush (fp );
@@ -5338,14 +5347,24 @@ static void probe_intel_uncore_frequency(void)
5338
5347
static void probe_graphics (void )
5339
5348
{
5340
5349
if (!access ("/sys/class/drm/card0/power/rc6_residency_ms" , R_OK ))
5341
- BIC_PRESENT ( BIC_GFX_rc6 ) ;
5350
+ gfx_info [ GFX_rc6 ]. path = "/sys/class/drm/card0/power/rc6_residency_ms" ;
5342
5351
5343
- if (!access ("/sys/class/drm/card0/gt_cur_freq_mhz" , R_OK ) ||
5344
- !access ("/sys/class/graphics/fb0/device/drm/card0/gt_cur_freq_mhz" , R_OK ))
5345
- BIC_PRESENT (BIC_GFXMHz );
5352
+ if (!access ("/sys/class/drm/card0/gt_cur_freq_mhz" , R_OK ))
5353
+ gfx_info [GFX_MHz ].path = "/sys/class/drm/card0/gt_cur_freq_mhz" ;
5354
+ else if (!access ("/sys/class/graphics/fb0/device/drm/card0/gt_cur_freq_mhz" , R_OK ))
5355
+ gfx_info [GFX_MHz ].path = "/sys/class/graphics/fb0/device/drm/card0/gt_cur_freq_mhz" ;
5356
+
5357
+
5358
+ if (!access ("/sys/class/drm/card0/gt_act_freq_mhz" , R_OK ))
5359
+ gfx_info [GFX_ACTMHz ].path = "/sys/class/drm/card0/gt_act_freq_mhz" ;
5360
+ else if (!access ("/sys/class/graphics/fb0/device/drm/card0/gt_act_freq_mhz" , R_OK ))
5361
+ gfx_info [GFX_ACTMHz ].path = "/sys/class/graphics/fb0/device/drm/card0/gt_act_freq_mhz" ;
5346
5362
5347
- if (!access ("/sys/class/drm/card0/gt_act_freq_mhz" , R_OK ) ||
5348
- !access ("/sys/class/graphics/fb0/device/drm/card0/gt_act_freq_mhz" , R_OK ))
5363
+ if (gfx_info [GFX_rc6 ].path )
5364
+ BIC_PRESENT (BIC_GFX_rc6 );
5365
+ if (gfx_info [GFX_MHz ].path )
5366
+ BIC_PRESENT (BIC_GFXMHz );
5367
+ if (gfx_info [GFX_ACTMHz ].path )
5349
5368
BIC_PRESENT (BIC_GFXACTMHz );
5350
5369
}
5351
5370
0 commit comments