@@ -537,8 +537,7 @@ static ssize_t radeon_hwmon_show_temp(struct device *dev,
537
537
struct device_attribute * attr ,
538
538
char * buf )
539
539
{
540
- struct drm_device * ddev = dev_get_drvdata (dev );
541
- struct radeon_device * rdev = ddev -> dev_private ;
540
+ struct radeon_device * rdev = dev_get_drvdata (dev );
542
541
int temp ;
543
542
544
543
if (rdev -> asic -> pm .get_temperature )
@@ -566,23 +565,14 @@ static ssize_t radeon_hwmon_show_temp_thresh(struct device *dev,
566
565
return snprintf (buf , PAGE_SIZE , "%d\n" , temp );
567
566
}
568
567
569
- static ssize_t radeon_hwmon_show_name (struct device * dev ,
570
- struct device_attribute * attr ,
571
- char * buf )
572
- {
573
- return sprintf (buf , "radeon\n" );
574
- }
575
-
576
568
static SENSOR_DEVICE_ATTR (temp1_input , S_IRUGO , radeon_hwmon_show_temp , NULL, 0 ) ;
577
569
static SENSOR_DEVICE_ATTR (temp1_crit , S_IRUGO , radeon_hwmon_show_temp_thresh , NULL, 0 ) ;
578
570
static SENSOR_DEVICE_ATTR (temp1_crit_hyst , S_IRUGO , radeon_hwmon_show_temp_thresh , NULL, 1 ) ;
579
- static SENSOR_DEVICE_ATTR (name , S_IRUGO , radeon_hwmon_show_name , NULL, 0 ) ;
580
571
581
572
static struct attribute * hwmon_attributes [] = {
582
573
& sensor_dev_attr_temp1_input .dev_attr .attr ,
583
574
& sensor_dev_attr_temp1_crit .dev_attr .attr ,
584
575
& sensor_dev_attr_temp1_crit_hyst .dev_attr .attr ,
585
- & sensor_dev_attr_name .dev_attr .attr ,
586
576
NULL
587
577
};
588
578
@@ -607,11 +597,15 @@ static const struct attribute_group hwmon_attrgroup = {
607
597
.is_visible = hwmon_attributes_visible ,
608
598
};
609
599
600
+ static const struct attribute_group * hwmon_groups [] = {
601
+ & hwmon_attrgroup ,
602
+ NULL
603
+ };
604
+
610
605
static int radeon_hwmon_init (struct radeon_device * rdev )
611
606
{
612
607
int err = 0 ;
613
-
614
- rdev -> pm .int_hwmon_dev = NULL ;
608
+ struct device * hwmon_dev ;
615
609
616
610
switch (rdev -> pm .int_thermal_type ) {
617
611
case THERMAL_TYPE_RV6XX :
@@ -624,20 +618,13 @@ static int radeon_hwmon_init(struct radeon_device *rdev)
624
618
case THERMAL_TYPE_KV :
625
619
if (rdev -> asic -> pm .get_temperature == NULL )
626
620
return err ;
627
- rdev -> pm .int_hwmon_dev = hwmon_device_register (rdev -> dev );
628
- if (IS_ERR (rdev -> pm .int_hwmon_dev )) {
629
- err = PTR_ERR (rdev -> pm .int_hwmon_dev );
621
+ hwmon_dev = hwmon_device_register_with_groups (rdev -> dev ,
622
+ "radeon" , rdev ,
623
+ hwmon_groups );
624
+ if (IS_ERR (hwmon_dev )) {
625
+ err = PTR_ERR (hwmon_dev );
630
626
dev_err (rdev -> dev ,
631
627
"Unable to register hwmon device: %d\n" , err );
632
- break ;
633
- }
634
- dev_set_drvdata (rdev -> pm .int_hwmon_dev , rdev -> ddev );
635
- err = sysfs_create_group (& rdev -> pm .int_hwmon_dev -> kobj ,
636
- & hwmon_attrgroup );
637
- if (err ) {
638
- dev_err (rdev -> dev ,
639
- "Unable to create hwmon sysfs file: %d\n" , err );
640
- hwmon_device_unregister (rdev -> dev );
641
628
}
642
629
break ;
643
630
default :
@@ -647,14 +634,6 @@ static int radeon_hwmon_init(struct radeon_device *rdev)
647
634
return err ;
648
635
}
649
636
650
- static void radeon_hwmon_fini (struct radeon_device * rdev )
651
- {
652
- if (rdev -> pm .int_hwmon_dev ) {
653
- sysfs_remove_group (& rdev -> pm .int_hwmon_dev -> kobj , & hwmon_attrgroup );
654
- hwmon_device_unregister (rdev -> pm .int_hwmon_dev );
655
- }
656
- }
657
-
658
637
static void radeon_dpm_thermal_work_handler (struct work_struct * work )
659
638
{
660
639
struct radeon_device * rdev =
@@ -1337,8 +1316,6 @@ static void radeon_pm_fini_old(struct radeon_device *rdev)
1337
1316
1338
1317
if (rdev -> pm .power_state )
1339
1318
kfree (rdev -> pm .power_state );
1340
-
1341
- radeon_hwmon_fini (rdev );
1342
1319
}
1343
1320
1344
1321
static void radeon_pm_fini_dpm (struct radeon_device * rdev )
@@ -1358,8 +1335,6 @@ static void radeon_pm_fini_dpm(struct radeon_device *rdev)
1358
1335
1359
1336
if (rdev -> pm .power_state )
1360
1337
kfree (rdev -> pm .power_state );
1361
-
1362
- radeon_hwmon_fini (rdev );
1363
1338
}
1364
1339
1365
1340
void radeon_pm_fini (struct radeon_device * rdev )
0 commit comments