@@ -376,7 +376,6 @@ enum gfx_sysfs_idx {
376376};
377377
378378struct gfx_sysfs_info {
379- const char * path ;
380379 FILE * fp ;
381380 unsigned int val ;
382381 unsigned long long val_ull ;
@@ -5766,10 +5765,7 @@ int snapshot_graphics(int idx)
57665765{
57675766 int retval ;
57685767
5769- if (gfx_info [idx ].fp == NULL )
5770- gfx_info [idx ].fp = fopen_or_die (gfx_info [idx ].path , "r" );
5771- else
5772- rewind (gfx_info [idx ].fp );
5768+ rewind (gfx_info [idx ].fp );
57735769
57745770 switch (idx ) {
57755771 case GFX_rc6 :
@@ -6474,14 +6470,19 @@ static void probe_intel_uncore_frequency(void)
64746470 probe_intel_uncore_frequency_legacy ();
64756471}
64766472
6473+ static void set_graphics_fp (char * path , int idx )
6474+ {
6475+ if (!access (path , R_OK ))
6476+ gfx_info [idx ].fp = fopen_or_die (path , "r" );
6477+ }
6478+
64776479static void probe_graphics (void )
64786480{
64796481 /* Xe graphics sysfs knobs */
64806482 if (!access ("/sys/class/drm/card0/device/tile0/gt0/gtidle/idle_residency_ms" , R_OK )) {
64816483 FILE * fp ;
64826484 char buf [8 ];
64836485 bool gt0_is_gt ;
6484- int idx ;
64856486
64866487 fp = fopen ("/sys/class/drm/card0/device/tile0/gt0/gtidle/name" , "r" );
64876488 if (!fp )
@@ -6500,81 +6501,62 @@ static void probe_graphics(void)
65006501 else
65016502 goto next ;
65026503
6503- idx = gt0_is_gt ? GFX_rc6 : SAM_mc6 ;
6504- gfx_info [idx ].path = "/sys/class/drm/card0/device/tile0/gt0/gtidle/idle_residency_ms" ;
6504+ set_graphics_fp ("/sys/class/drm/card0/device/tile0/gt0/gtidle/idle_residency_ms" , gt0_is_gt ? GFX_rc6 : SAM_mc6 );
65056505
6506- idx = gt0_is_gt ? GFX_MHz : SAM_MHz ;
6507- if (!access ("/sys/class/drm/card0/device/tile0/gt0/freq0/cur_freq" , R_OK ))
6508- gfx_info [idx ].path = "/sys/class/drm/card0/device/tile0/gt0/freq0/cur_freq" ;
6506+ set_graphics_fp ("/sys/class/drm/card0/device/tile0/gt0/freq0/cur_freq" , gt0_is_gt ? GFX_MHz : SAM_MHz );
65096507
6510- idx = gt0_is_gt ? GFX_ACTMHz : SAM_ACTMHz ;
6511- if (!access ("/sys/class/drm/card0/device/tile0/gt0/freq0/act_freq" , R_OK ))
6512- gfx_info [idx ].path = "/sys/class/drm/card0/device/tile0/gt0/freq0/act_freq" ;
6508+ set_graphics_fp ("/sys/class/drm/card0/device/tile0/gt0/freq0/act_freq" , gt0_is_gt ? GFX_ACTMHz : SAM_ACTMHz );
65136509
6514- idx = gt0_is_gt ? SAM_mc6 : GFX_rc6 ;
6515- if (!access ("/sys/class/drm/card0/device/tile0/gt1/gtidle/idle_residency_ms" , R_OK ))
6516- gfx_info [idx ].path = "/sys/class/drm/card0/device/tile0/gt1/gtidle/idle_residency_ms" ;
6510+ set_graphics_fp ("/sys/class/drm/card0/device/tile0/gt1/gtidle/idle_residency_ms" , gt0_is_gt ? SAM_mc6 : GFX_rc6 );
65176511
6518- idx = gt0_is_gt ? SAM_MHz : GFX_MHz ;
6519- if (!access ("/sys/class/drm/card0/device/tile0/gt1/freq0/cur_freq" , R_OK ))
6520- gfx_info [idx ].path = "/sys/class/drm/card0/device/tile0/gt1/freq0/cur_freq" ;
6512+ set_graphics_fp ("/sys/class/drm/card0/device/tile0/gt1/freq0/cur_freq" , gt0_is_gt ? SAM_MHz : GFX_MHz );
65216513
6522- idx = gt0_is_gt ? SAM_ACTMHz : GFX_ACTMHz ;
6523- if (!access ("/sys/class/drm/card0/device/tile0/gt1/freq0/act_freq" , R_OK ))
6524- gfx_info [idx ].path = "/sys/class/drm/card0/device/tile0/gt1/freq0/act_freq" ;
6514+ set_graphics_fp ("/sys/class/drm/card0/device/tile0/gt1/freq0/act_freq" , gt0_is_gt ? SAM_ACTMHz : GFX_ACTMHz );
65256515
65266516 goto end ;
65276517 }
65286518
65296519next :
65306520 /* New i915 graphics sysfs knobs */
65316521 if (!access ("/sys/class/drm/card0/gt/gt0/rc6_residency_ms" , R_OK )) {
6532- gfx_info [ GFX_rc6 ]. path = "/sys/class/drm/card0/gt/gt0/rc6_residency_ms" ;
6522+ set_graphics_fp ( "/sys/class/drm/card0/gt/gt0/rc6_residency_ms" , GFX_rc6 ) ;
65336523
6534- if (!access ("/sys/class/drm/card0/gt/gt0/rps_cur_freq_mhz" , R_OK ))
6535- gfx_info [GFX_MHz ].path = "/sys/class/drm/card0/gt/gt0/rps_cur_freq_mhz" ;
6524+ set_graphics_fp ("/sys/class/drm/card0/gt/gt0/rps_cur_freq_mhz" , GFX_MHz );
65366525
6537- if (!access ("/sys/class/drm/card0/gt/gt0/rps_act_freq_mhz" , R_OK ))
6538- gfx_info [GFX_ACTMHz ].path = "/sys/class/drm/card0/gt/gt0/rps_act_freq_mhz" ;
6526+ set_graphics_fp ("/sys/class/drm/card0/gt/gt0/rps_act_freq_mhz" , GFX_ACTMHz );
65396527
6540- if (!access ("/sys/class/drm/card0/gt/gt1/rc6_residency_ms" , R_OK ))
6541- gfx_info [SAM_mc6 ].path = "/sys/class/drm/card0/gt/gt1/rc6_residency_ms" ;
6528+ set_graphics_fp ("/sys/class/drm/card0/gt/gt1/rc6_residency_ms" , SAM_mc6 );
65426529
6543- if (!access ("/sys/class/drm/card0/gt/gt1/rps_cur_freq_mhz" , R_OK ))
6544- gfx_info [SAM_MHz ].path = "/sys/class/drm/card0/gt/gt1/rps_cur_freq_mhz" ;
6530+ set_graphics_fp ("/sys/class/drm/card0/gt/gt1/rps_cur_freq_mhz" , SAM_MHz );
65456531
6546- if (!access ("/sys/class/drm/card0/gt/gt1/rps_act_freq_mhz" , R_OK ))
6547- gfx_info [SAM_ACTMHz ].path = "/sys/class/drm/card0/gt/gt1/rps_act_freq_mhz" ;
6532+ set_graphics_fp ("/sys/class/drm/card0/gt/gt1/rps_act_freq_mhz" , SAM_ACTMHz );
65486533
65496534 goto end ;
65506535 }
65516536
65526537 /* Fall back to traditional i915 graphics sysfs knobs */
6553- if (!access ("/sys/class/drm/card0/power/rc6_residency_ms" , R_OK ))
6554- gfx_info [GFX_rc6 ].path = "/sys/class/drm/card0/power/rc6_residency_ms" ;
6538+ set_graphics_fp ("/sys/class/drm/card0/power/rc6_residency_ms" , GFX_rc6 );
65556539
6556- if (!access ("/sys/class/drm/card0/gt_cur_freq_mhz" , R_OK ))
6557- gfx_info [GFX_MHz ].path = "/sys/class/drm/card0/gt_cur_freq_mhz" ;
6558- else if (!access ("/sys/class/graphics/fb0/device/drm/card0/gt_cur_freq_mhz" , R_OK ))
6559- gfx_info [GFX_MHz ].path = "/sys/class/graphics/fb0/device/drm/card0/gt_cur_freq_mhz" ;
6540+ set_graphics_fp ("/sys/class/drm/card0/gt_cur_freq_mhz" , GFX_MHz );
6541+ if (!gfx_info [GFX_MHz ].fp )
6542+ set_graphics_fp ("/sys/class/graphics/fb0/device/drm/card0/gt_cur_freq_mhz" , GFX_MHz );
65606543
6561- if (!access ("/sys/class/drm/card0/gt_act_freq_mhz" , R_OK ))
6562- gfx_info [GFX_ACTMHz ].path = "/sys/class/drm/card0/gt_act_freq_mhz" ;
6563- else if (!access ("/sys/class/graphics/fb0/device/drm/card0/gt_act_freq_mhz" , R_OK ))
6564- gfx_info [GFX_ACTMHz ].path = "/sys/class/graphics/fb0/device/drm/card0/gt_act_freq_mhz" ;
6544+ set_graphics_fp ("/sys/class/drm/card0/gt_act_freq_mhz" , GFX_ACTMHz );
6545+ if (!gfx_info [GFX_ACTMHz ].fp )
6546+ set_graphics_fp ("/sys/class/graphics/fb0/device/drm/card0/gt_act_freq_mhz" , GFX_ACTMHz );
65656547
65666548end :
6567- if (gfx_info [GFX_rc6 ].path )
6549+ if (gfx_info [GFX_rc6 ].fp )
65686550 BIC_PRESENT (BIC_GFX_rc6 );
6569- if (gfx_info [GFX_MHz ].path )
6551+ if (gfx_info [GFX_MHz ].fp )
65706552 BIC_PRESENT (BIC_GFXMHz );
6571- if (gfx_info [GFX_ACTMHz ].path )
6553+ if (gfx_info [GFX_ACTMHz ].fp )
65726554 BIC_PRESENT (BIC_GFXACTMHz );
6573- if (gfx_info [SAM_mc6 ].path )
6555+ if (gfx_info [SAM_mc6 ].fp )
65746556 BIC_PRESENT (BIC_SAM_mc6 );
6575- if (gfx_info [SAM_MHz ].path )
6557+ if (gfx_info [SAM_MHz ].fp )
65766558 BIC_PRESENT (BIC_SAMMHz );
6577- if (gfx_info [SAM_ACTMHz ].path )
6559+ if (gfx_info [SAM_ACTMHz ].fp )
65786560 BIC_PRESENT (BIC_SAMACTMHz );
65796561}
65806562
0 commit comments