hwmon, fam15h_power: Tweak runavg_range on resume
PATCH 1/1 hwmon, fam15h_power: Tweak runavg_range on resume
The quirk introduced with commit 00250ec90963b7ef6678438888f3244985ecde14 (hwmon: fam15h_power: fix bogus values with current BIOSes) is not only required during driver load but also when system resumes from suspend. The BIOS might set the previously recommended (but unsuitable) initilization value for the running average range register during resume.
--- drivers/hwmon/fam15h_power.c | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-)
drivers/hwmon/fam15h_power.c +13 -0
@@ -48,6 +48,7 @@ struct fam15h_power_data {unsigned int processor_pwr_watts; }; +static ssize_t show_power (struct device *dev,struct device_attribute *attr,char *buf) {
@@ -158,6 +159,17 @@ static void __devinit tweak_runavg_range(struct pci_dev *pdev) REG_TDP_RUNNING_AVERAGE, val); } +#ifdef CONFIG_PM +static int fam15h_power_resume (struct pci_dev *pdev) +{ +tweak_runavg_range (pdev); +return 0 ; +} +#define FAM15H_POWER_RESUME (fam15h_power_resume) +#else +#define FAM15H_POWER_RESUME NULL +#endif +static void __devinit fam15h_power_init_data (struct pci_dev *f4,struct fam15h_power_data *data) {
@@ -256,6 +268,7 @@ static struct pci_driver fam15h_power_driver = { .id_table = fam15h_power_id_table, .probe = fam15h_power_probe, .remove = __devexit_p(fam15h_power_remove), + .resume = FAM15H_POWER_RESUME, };module_pci_driver (fam15h_power_driver);
Signature · 8 lines
1.7.8.6 _______________________________________________ lm-sensors mailing list [email protected] http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
Hi Andreas,
Quoted 8 lines · Andreas Herrmann
The quirk introduced with commit
00250ec90963b7ef6678438888f3244985ecde14(hwmon:fam15h_power: fix bogus values with current BIOSes) is not only required during driver load but also when system resumes from suspend. The BIOS might set the previously recommended (but unsuitable) initilization value for the running average range register during resume.
Quoted 4 lines
Signed-off-by Andreas Herrmann <[email protected]>--- drivers/hwmon/fam15h_power.c | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-)
This patch adds the following build warning:
WARNING: drivers/hwmon/fam15h_power.o(.text+0x5): Section mismatch in reference from the function fam15h_power_resume() to the function .devinit.text:tweak_runavg_range() The function fam15h_power_resume() references
the function __devinit tweak_runavg_range().
This is often because fam15h_power_resume lacks a __devinit
annotation or the annotation of tweak_runavg_range is wrong.
You'll have to drop the __devinit from tweak_runavg_range() to fix that.
drivers/hwmon/fam15h_power.c struct fam15h_power_data { · line 54
Quoted 12 lines
drivers/hwmon/fam15h_power.c +1
-0@@ -48,6 +48,7 @@ struct fam15h_power_data {unsigned int processor_pwr_watts; }; +static ssize_t show_power (struct device *dev,struct device_attribute *attr,char *buf) {
Unneeded white space change, please avoid.
Quoted 4 lines
drivers/hwmon/fam15h_power.c +0
-0@@ -158,6 +159,17 @@ static void __devinit tweak_runavg_range(struct pci_dev *pdev) REG_TDP_RUNNING_AVERAGE, val); }
drivers/hwmon/fam15h_power.c static void __devinit tweak_runavg_range(struct pci_dev *pdev) · line 171
Quoted 10 lines
drivers/hwmon/fam15h_power.c +10
-0+#ifdef CONFIG_PM +static int fam15h_power_resume (struct pci_dev *pdev) +{ +tweak_runavg_range (pdev); +return 0 ; +} +#define FAM15H_POWER_RESUME (fam15h_power_resume) +#else +#define FAM15H_POWER_RESUME NULL +#endif
You can simply #define fam15h_power_resume as NULL directly in the !CONFIG_PM case, as most other drivers do.
drivers/hwmon/fam15h_power.c static struct pci_driver fam15h_power_driver = { · line 274
Quoted 12 lines
drivers/hwmon/fam15h_power.c +2
-0+static void __devinit fam15h_power_init_data (struct pci_dev *f4,struct fam15h_power_data *data) {@@ -256,6 +268,7 @@ static struct pci_driver fam15h_power_driver = { .id_table = fam15h_power_id_table, .probe = fam15h_power_probe, .remove = __devexit_p(fam15h_power_remove), + .resume = FAM15H_POWER_RESUME, };module_pci_driver (fam15h_power_driver);
I'm fine with the logic, please fix the problems above and resubmit.
Thanks,
Signature · 6 lines
Jean Delvare _______________________________________________ lm-sensors mailing list [email protected] http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
Hello Andreas,
Quoted 10 lines · Jean Delvare
Hi Andreas,
Quoted 7 lines · Andreas Herrmann
The quirk introduced with commit
00250ec90963b7ef6678438888f3244985ecde14(hwmon:fam15h_power: fix bogus values with current BIOSes) is not only required during driver load but also when system resumes from suspend. The BIOS might set the previously recommended (but unsuitable) initilization value for the running average range register during resume.
I'm waiting for the V2 for testing. Is this ok for you?
Thanks for your patch,
kind regards,
Andreas Hartmann
_______________________________________________
lm-sensors mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors