Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging

* 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
hwmon: (k10temp) Update documentation for Fam12h
hwmon-vid: Fix typo in VIA CPU name
hwmon: (f71882fg) Add support for the F71869A
hwmon: Use <> rather than () around my e-mail address
hwmon: (emc6w201) Properly handle all errors

+73 -22
+4
Documentation/hwmon/f71882fg
··· 22 22 Prefix: 'f71869' 23 23 Addresses scanned: none, address read from Super I/O config space 24 24 Datasheet: Available from the Fintek website 25 + * Fintek F71869A 26 + Prefix: 'f71869a' 27 + Addresses scanned: none, address read from Super I/O config space 28 + Datasheet: Not public 25 29 * Fintek F71882FG and F71883FG 26 30 Prefix: 'f71882fg' 27 31 Addresses scanned: none, address read from Super I/O config space
+6 -2
Documentation/hwmon/k10temp
··· 9 9 Socket S1G3: Athlon II, Sempron, Turion II 10 10 * AMD Family 11h processors: 11 11 Socket S1G2: Athlon (X2), Sempron (X2), Turion X2 (Ultra) 12 - * AMD Family 12h processors: "Llano" 13 - * AMD Family 14h processors: "Brazos" (C/E/G-Series) 12 + * AMD Family 12h processors: "Llano" (E2/A4/A6/A8-Series) 13 + * AMD Family 14h processors: "Brazos" (C/E/G/Z-Series) 14 14 * AMD Family 15h processors: "Bulldozer" 15 15 16 16 Prefix: 'k10temp' ··· 20 20 http://support.amd.com/us/Processor_TechDocs/31116.pdf 21 21 BIOS and Kernel Developer's Guide (BKDG) for AMD Family 11h Processors: 22 22 http://support.amd.com/us/Processor_TechDocs/41256.pdf 23 + BIOS and Kernel Developer's Guide (BKDG) for AMD Family 12h Processors: 24 + http://support.amd.com/us/Processor_TechDocs/41131.pdf 23 25 BIOS and Kernel Developer's Guide (BKDG) for AMD Family 14h Models 00h-0Fh Processors: 24 26 http://support.amd.com/us/Processor_TechDocs/43170.pdf 25 27 Revision Guide for AMD Family 10h Processors: 26 28 http://support.amd.com/us/Processor_TechDocs/41322.pdf 27 29 Revision Guide for AMD Family 11h Processors: 28 30 http://support.amd.com/us/Processor_TechDocs/41788.pdf 31 + Revision Guide for AMD Family 12h Processors: 32 + http://support.amd.com/us/Processor_TechDocs/44739.pdf 29 33 Revision Guide for AMD Family 14h Models 00h-0Fh Processors: 30 34 http://support.amd.com/us/Processor_TechDocs/47534.pdf 31 35 AMD Family 11h Processor Power and Thermal Data Sheet for Notebooks:
+1 -1
drivers/hwmon/Kconfig
··· 333 333 F71858FG 334 334 F71862FG 335 335 F71863FG 336 - F71869F/E 336 + F71869F/E/A 337 337 F71882FG 338 338 F71883FG 339 339 F71889FG/ED/A
+44 -14
drivers/hwmon/emc6w201.c
··· 78 78 79 79 lsb = i2c_smbus_read_byte_data(client, reg); 80 80 msb = i2c_smbus_read_byte_data(client, reg + 1); 81 - if (lsb < 0 || msb < 0) { 82 - dev_err(&client->dev, "16-bit read failed at 0x%02x\n", reg); 81 + if (unlikely(lsb < 0 || msb < 0)) { 82 + dev_err(&client->dev, "%d-bit %s failed at 0x%02x\n", 83 + 16, "read", reg); 83 84 return 0xFFFF; /* Arbitrary value */ 84 85 } 85 86 ··· 96 95 int err; 97 96 98 97 err = i2c_smbus_write_byte_data(client, reg, val & 0xff); 99 - if (!err) 98 + if (likely(!err)) 100 99 err = i2c_smbus_write_byte_data(client, reg + 1, val >> 8); 101 - if (err < 0) 102 - dev_err(&client->dev, "16-bit write failed at 0x%02x\n", reg); 100 + if (unlikely(err < 0)) 101 + dev_err(&client->dev, "%d-bit %s failed at 0x%02x\n", 102 + 16, "write", reg); 103 + 104 + return err; 105 + } 106 + 107 + /* Read 8-bit value from register */ 108 + static u8 emc6w201_read8(struct i2c_client *client, u8 reg) 109 + { 110 + int val; 111 + 112 + val = i2c_smbus_read_byte_data(client, reg); 113 + if (unlikely(val < 0)) { 114 + dev_err(&client->dev, "%d-bit %s failed at 0x%02x\n", 115 + 8, "read", reg); 116 + return 0x00; /* Arbitrary value */ 117 + } 118 + 119 + return val; 120 + } 121 + 122 + /* Write 8-bit value to register */ 123 + static int emc6w201_write8(struct i2c_client *client, u8 reg, u8 val) 124 + { 125 + int err; 126 + 127 + err = i2c_smbus_write_byte_data(client, reg, val); 128 + if (unlikely(err < 0)) 129 + dev_err(&client->dev, "%d-bit %s failed at 0x%02x\n", 130 + 8, "write", reg); 103 131 104 132 return err; 105 133 } ··· 144 114 if (time_after(jiffies, data->last_updated + HZ) || !data->valid) { 145 115 for (nr = 0; nr < 6; nr++) { 146 116 data->in[input][nr] = 147 - i2c_smbus_read_byte_data(client, 117 + emc6w201_read8(client, 148 118 EMC6W201_REG_IN(nr)); 149 119 data->in[min][nr] = 150 - i2c_smbus_read_byte_data(client, 120 + emc6w201_read8(client, 151 121 EMC6W201_REG_IN_LOW(nr)); 152 122 data->in[max][nr] = 153 - i2c_smbus_read_byte_data(client, 123 + emc6w201_read8(client, 154 124 EMC6W201_REG_IN_HIGH(nr)); 155 125 } 156 126 157 127 for (nr = 0; nr < 6; nr++) { 158 128 data->temp[input][nr] = 159 - i2c_smbus_read_byte_data(client, 129 + emc6w201_read8(client, 160 130 EMC6W201_REG_TEMP(nr)); 161 131 data->temp[min][nr] = 162 - i2c_smbus_read_byte_data(client, 132 + emc6w201_read8(client, 163 133 EMC6W201_REG_TEMP_LOW(nr)); 164 134 data->temp[max][nr] = 165 - i2c_smbus_read_byte_data(client, 135 + emc6w201_read8(client, 166 136 EMC6W201_REG_TEMP_HIGH(nr)); 167 137 } 168 138 ··· 222 192 223 193 mutex_lock(&data->update_lock); 224 194 data->in[sf][nr] = SENSORS_LIMIT(val, 0, 255); 225 - err = i2c_smbus_write_byte_data(client, reg, data->in[sf][nr]); 195 + err = emc6w201_write8(client, reg, data->in[sf][nr]); 226 196 mutex_unlock(&data->update_lock); 227 197 228 198 return err < 0 ? err : count; ··· 259 229 260 230 mutex_lock(&data->update_lock); 261 231 data->temp[sf][nr] = SENSORS_LIMIT(val, -127, 128); 262 - err = i2c_smbus_write_byte_data(client, reg, data->temp[sf][nr]); 232 + err = emc6w201_write8(client, reg, data->temp[sf][nr]); 263 233 mutex_unlock(&data->update_lock); 264 234 265 235 return err < 0 ? err : count; ··· 474 444 475 445 /* Check configuration */ 476 446 config = i2c_smbus_read_byte_data(client, EMC6W201_REG_CONFIG); 477 - if ((config & 0xF4) != 0x04) 447 + if (config < 0 || (config & 0xF4) != 0x04) 478 448 return -ENODEV; 479 449 if (!(config & 0x01)) { 480 450 dev_err(&client->dev, "Monitoring not enabled\n");
+16 -3
drivers/hwmon/f71882fg.c
··· 52 52 #define SIO_F71858_ID 0x0507 /* Chipset ID */ 53 53 #define SIO_F71862_ID 0x0601 /* Chipset ID */ 54 54 #define SIO_F71869_ID 0x0814 /* Chipset ID */ 55 + #define SIO_F71869A_ID 0x1007 /* Chipset ID */ 55 56 #define SIO_F71882_ID 0x0541 /* Chipset ID */ 56 57 #define SIO_F71889_ID 0x0723 /* Chipset ID */ 57 58 #define SIO_F71889E_ID 0x0909 /* Chipset ID */ ··· 109 108 module_param(force_id, ushort, 0); 110 109 MODULE_PARM_DESC(force_id, "Override the detected device ID"); 111 110 112 - enum chips { f71808e, f71808a, f71858fg, f71862fg, f71869, f71882fg, f71889fg, 113 - f71889ed, f71889a, f8000, f81865f }; 111 + enum chips { f71808e, f71808a, f71858fg, f71862fg, f71869, f71869a, f71882fg, 112 + f71889fg, f71889ed, f71889a, f8000, f81865f }; 114 113 115 114 static const char *f71882fg_names[] = { 116 115 "f71808e", ··· 118 117 "f71858fg", 119 118 "f71862fg", 120 119 "f71869", /* Both f71869f and f71869e, reg. compatible and same id */ 120 + "f71869a", 121 121 "f71882fg", 122 122 "f71889fg", /* f81801u too, same id */ 123 123 "f71889ed", ··· 133 131 [f71858fg] = { 1, 1, 1, 0, 0, 0, 0, 0, 0 }, 134 132 [f71862fg] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 }, 135 133 [f71869] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 }, 134 + [f71869a] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 }, 136 135 [f71882fg] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 }, 137 136 [f71889fg] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 }, 138 137 [f71889ed] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 }, ··· 148 145 [f71858fg] = 0, 149 146 [f71862fg] = 0, 150 147 [f71869] = 0, 148 + [f71869a] = 0, 151 149 [f71882fg] = 1, 152 150 [f71889fg] = 1, 153 151 [f71889ed] = 1, ··· 163 159 [f71858fg] = 0, 164 160 [f71862fg] = 1, 165 161 [f71869] = 1, 162 + [f71869a] = 1, 166 163 [f71882fg] = 1, 167 164 [f71889fg] = 1, 168 165 [f71889ed] = 1, ··· 178 173 [f71858fg] = 3, 179 174 [f71862fg] = 3, 180 175 [f71869] = 3, 176 + [f71869a] = 3, 181 177 [f71882fg] = 4, 182 178 [f71889fg] = 3, 183 179 [f71889ed] = 3, ··· 193 187 [f71858fg] = 0, 194 188 [f71862fg] = 1, 195 189 [f71869] = 1, 190 + [f71869a] = 1, 196 191 [f71882fg] = 1, 197 192 [f71889fg] = 1, 198 193 [f71889ed] = 1, ··· 208 201 [f71858fg] = 3, 209 202 [f71862fg] = 3, 210 203 [f71869] = 3, 204 + [f71869a] = 3, 211 205 [f71882fg] = 3, 212 206 [f71889fg] = 3, 213 207 [f71889ed] = 3, ··· 2251 2243 case f71808e: 2252 2244 case f71808a: 2253 2245 case f71869: 2246 + case f71869a: 2254 2247 /* These always have signed auto point temps */ 2255 2248 data->auto_point_temp_signed = 1; 2256 2249 /* Fall through to select correct fan/pwm reg bank! */ ··· 2314 2305 case f71808e: 2315 2306 case f71808a: 2316 2307 case f71869: 2308 + case f71869a: 2317 2309 case f71889fg: 2318 2310 case f71889ed: 2319 2311 case f71889a: ··· 2538 2528 case SIO_F71869_ID: 2539 2529 sio_data->type = f71869; 2540 2530 break; 2531 + case SIO_F71869A_ID: 2532 + sio_data->type = f71869a; 2533 + break; 2541 2534 case SIO_F71882_ID: 2542 2535 sio_data->type = f71882fg; 2543 2536 break; ··· 2675 2662 } 2676 2663 2677 2664 MODULE_DESCRIPTION("F71882FG Hardware Monitoring Driver"); 2678 - MODULE_AUTHOR("Hans Edgington, Hans de Goede (hdegoede@redhat.com)"); 2665 + MODULE_AUTHOR("Hans Edgington, Hans de Goede <hdegoede@redhat.com>"); 2679 2666 MODULE_LICENSE("GPL"); 2680 2667 2681 2668 module_init(f71882fg_init);
+1 -1
drivers/hwmon/hwmon-vid.c
··· 202 202 203 203 {X86_VENDOR_CENTAUR, 0x6, 0x7, ANY, 85}, /* Eden ESP/Ezra */ 204 204 {X86_VENDOR_CENTAUR, 0x6, 0x8, 0x7, 85}, /* Ezra T */ 205 - {X86_VENDOR_CENTAUR, 0x6, 0x9, 0x7, 85}, /* Nemiah */ 205 + {X86_VENDOR_CENTAUR, 0x6, 0x9, 0x7, 85}, /* Nehemiah */ 206 206 {X86_VENDOR_CENTAUR, 0x6, 0x9, ANY, 17}, /* C3-M, Eden-N */ 207 207 {X86_VENDOR_CENTAUR, 0x6, 0xA, 0x7, 0}, /* No information */ 208 208 {X86_VENDOR_CENTAUR, 0x6, 0xA, ANY, 13}, /* C7, Esther */
+1 -1
drivers/hwmon/sch5627.c
··· 887 887 } 888 888 889 889 MODULE_DESCRIPTION("SMSC SCH5627 Hardware Monitoring Driver"); 890 - MODULE_AUTHOR("Hans de Goede (hdegoede@redhat.com)"); 890 + MODULE_AUTHOR("Hans de Goede <hdegoede@redhat.com>"); 891 891 MODULE_LICENSE("GPL"); 892 892 893 893 module_init(sch5627_init);