- 25 10月, 2011 3 次提交
-
-
由 Guenter Roeck 提交于
Driver remove functions have an error return value, but rarely return an error in practice. If a driver does return an error from its remove function, the driver won't be unloaded and is expected to stay alive. pmbus_do_remove() is defined as returning an int, but always returns 0 (no error). Calling code passes that return value on to high level driver remove functions, but does not evaluate it and removes driver data even if pmbus_do_remove() returned an error (which it in practice never does). Even if this code could never cause a real problem, it is nevertheless conceptually wrong. To reduce confusion and simplify the code, change pmbus_do_remove() to be a void function, and have PMBus client drivers always return zero in their driver remove functions. Reported-by: NJean Delvare <khali@linux-fr.org> Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Acked-by: NJean Delvare <khali@linux-fr.org>
-
由 Guenter Roeck 提交于
Return values for functions reading/writing manufacturer specific registers are poorly explained. Add comments to improve documentation. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Acked-by: NJean Delvare <khali@linux-fr.org>
-
由 Dmitry Artamonow 提交于
Export caseopen alarm status into userspace for Winbond W83627* and Nuvoton NCT677[56] chips and implement alarm clear attribute. Second caseopen alarm on NCT6776 is also supported. Signed-off-by: NDmitry Artamonow <mad_soft@inbox.ru> Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
-
- 20 10月, 2011 1 次提交
-
-
由 Jean Delvare 提交于
Since 8-bit temperature values are now handled in 16-bit struct members, values have to be cast to s8 for negative temperatures to be properly handled. This is broken since kernel version 2.6.39 (commit bce26c58.) Signed-off-by: NJean Delvare <khali@linux-fr.org> Cc: Guenter Roeck <guenter.roeck@ericsson.com> Cc: stable@kernel.org # 2.6.39+ Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
-
- 14 10月, 2011 1 次提交
-
-
由 Jean Delvare 提交于
The w83627ehf driver is improperly reporting thermal diode sensors as type 2, instead of 3. This caused "sensors" and possibly other monitoring tools to report these sensors as "transistor" instead of "thermal diode". Furthermore, diode subtype selection (CPU vs. external) is only supported by the original W83627EHF/EHG. All later models only support CPU diode type, and some (NCT6776F) don't even have the register in question so we should avoid reading from it. Signed-off-by: NJean Delvare <khali@linux-fr.org> Cc: stable@kernel.org Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
-
- 28 9月, 2011 2 次提交
-
-
由 Guenter Roeck 提交于
Storing the struct temp_data pointer allocated from create_core_data() when returning an error has the potential of leaving around a pointer to freed memory. Reset it to NULL for error returns. Reported-by: NJan Beulich <jbeulich@suse.com> Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Acked-by: NJean Delvare <khali@linux-fr.org>
-
由 Jean Delvare 提交于
With recent change "hwmon: (coretemp) don't use kernel assigned CPU number as platform device ID", the microcode check is now running on random CPU. Fix that by checking the microcode before creating the platform device rather than at probe time. Also avoid calling TO_PHYS_ID(cpu) twice in the same function, it's expensive. Signed-off-by: NJean Delvare <khali@linux-fr.org> Cc: Jan Beulich <jbeulich@suse.com> Cc: Guenter Roeck <guenter.roeck@ericsson.com> Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
-
- 24 9月, 2011 3 次提交
-
-
由 Jan Beulich 提交于
The only caller of the function obtained the pointer solely for the purpose of passing it to this function, while it can be easily determined from the struct platform_device * parameter also passed. Signed-off-by: NJan Beulich <jbeulich@suse.com> Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
-
由 Jan Beulich 提交于
These arrays won't ever be written to, so protect them from unintentional modification. Signed-off-by: NJan Beulich <jbeulich@suse.com> Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
-
由 Jan Beulich 提交于
... as that has the potential to conflict with (particularly soft) CPU hot removal and re-adding. Signed-off-by: NJan Beulich <jbeulich@suse.com> [guenter.roeck@ericsson.com: use platform device ID as physical CPU id] Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
-
- 22 9月, 2011 5 次提交
-
-
由 Roland Stigge 提交于
Signed (negative) temperatures were not handled correctly. Signed-off-by: NRoland Stigge <stigge@antcom.de> Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Cc: stable@kernel.org # v2.6.38+
-
由 Chris Peterson 提交于
gcc -Wextra warns "register is not at beginning of declaration" because the compiler thinks the parameter has been marked as a 'register' variable, but the function prototype intended to name the parameter "register" (which is a reserved keyword). Signed-off-by: NChris Peterson <cpeterso@cpeterso.com> Acked-by: NMarc Hulsman <m.hulsman@tudelft.nl> Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
-
由 Guenter Roeck 提交于
With commit c814a4c7, the meaning of tempX_max was changed. It no longer returns the value of bits 8:15 of MSR_IA32_TEMPERATURE_TARGET, but instead returns the value of CPU threshold register T1. tempX_max_hyst was added to reflect the value of temperature threshold register T0. As it turns out, T0 and T1 are used on some systems, presumably by the BIOS. Also, T0 and T1 don't have a well defined meaning. The thresholds may be used as upper or lower limits, and it is not guaranteed that T0 <= T1. Thus, the new attribute mapping does not reflect the actual usage of the threshold registers. Also, register contents are changed during runtime by an entity other than the hwmon driver, meaning the values cached by the driver do not reflect actual register contents. Revert most of c814a4c7 to address the problem. Support for T0 and T1 will be added back in with a separate commit, using new attribute names. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Cc: Fenghua Yu <fenghua.yu@intel.com> Cc: Durgadoss R <durgadoss.r@intel.com> Acked-by: NJean Delvare <khali@linux-fr.org>
-
由 Jean Delvare 提交于
On old CPUs (and even some recent Atom CPUs) TjMax can't be read from the CPU registers, so it is guessed by the driver using a complex heuristic which isn't reliable. So let users who know their CPU's TjMax pass it as a module parameter. Signed-off-by: NJean Delvare <khali@linux-fr.org> Cc: Fenghua Yu <fenghua.yu@intel.com> Cc: "R, Durgadoss" <durgadoss.r@intel.com> Cc: Guenter Roeck <guenter.roeck@ericsson.com> Cc: Alexander Stein <alexander.stein@systec-electronic.com> Acked-by: NFenghua Yu <fenghua.yu@intel.com> Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
-
由 Jean Delvare 提交于
Function get_pkg_tjmax is a simplified copy of get_tjmax. Drop it and always use get_tjmax, result is the same and this avoids code duplication. Also make get_tjmax less verbose: don't warn about MSR read failure when failure was expected, and don't report TjMax in the logs unless debugging is enabled. Signed-off-by: NJean Delvare <khali@linux-fr.org> Cc: Fenghua Yu <fenghua.yu@intel.com> Cc: Guenter Roeck <guenter.roeck@ericsson.com> Cc: Durgadoss R <durgadoss.r@intel.com> Acked-by: NFenghua Yu <fenghua.yu@intel.com> Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
-
- 14 9月, 2011 1 次提交
-
-
由 Jean Delvare 提交于
ttarget is initialized when the driver is loaded, but tmin is not. As a result, tempX_max_hyst attributes read 0. Fix this. Also use THERM_*_THRESHOLD* constants in these initializations instead of hard-coding the constants. Signed-off-by: NJean Delvare <khali@linux-fr.org> Cc: "R, Durgadoss" <durgadoss.r@intel.com> Cc: Guenter Roeck <guenter.roeck@ericsson.com> Cc: Fenghua Yu <fenghua.yu@intel.com> Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
-
- 13 9月, 2011 1 次提交
-
-
由 Guenter Roeck 提交于
Temperature alarms are detected by checking the alarm bit and comparing temperature limits against the current temperature. For low limits, this comparison needs to be reversed (temp < limit instead of temp > limit). This was not taken into account, resulting in wrong alarms if a temperature fell below a low limit. Fix by adding a low limit flag in the limit data structure. When creating the sensor entry, the order of registers to compare is now reversed for low limits. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Acked-by: NJean Delvare <khali@linux-fr.org> Cc: stable@kernel.org # 3.0+
-
- 06 9月, 2011 2 次提交
-
-
由 Jean Delvare 提交于
Rewrite the loop walking the id array during probe. The new code is better adapted to a null-terminated array, and is also clearer and more efficient than the original. Signed-off-by: NJean Delvare <khali@linux-fr.org> Cc: Axel Lin <axel.lin@gmail.com> Cc: Guenter Roeck <guenter.roeck@ericsson.com> Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
-
由 Guenter Roeck 提交于
Current calculation is completely wrong. Add missing brackets to fix it. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Acked-by: NJean Delvare <khali@linux-fr.org> Cc: stable@kernel.org # 3.0+
-
- 24 8月, 2011 1 次提交
-
-
由 Jean Delvare 提交于
Function i5k_channel_pci_id looks like it can fail, while a better code design would make it more obvious that it can't. We can even get rid of the function. Signed-off-by: NJean Delvare <khali@linux-fr.org> Acked-by: NDarrick J. Wong <djwong@us.ibm.com> Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
-
- 23 8月, 2011 1 次提交
-
-
由 Guenter Roeck 提交于
Replace unnecessary if with else statement. This fixes the following (false) compile warning reported with some combinations of C compiler version and configuration. drivers/hwmon/ntc_thermistor.c: In function 'ntc_show_temp': drivers/hwmon/ntc_thermistor.c:225: warning: 'low' may be used uninitialized in this function drivers/hwmon/ntc_thermistor.c:225: note: 'low' was declared here drivers/hwmon/ntc_thermistor.c:225: warning: 'high' may be used uninitialized in this function drivers/hwmon/ntc_thermistor.c:225: note: 'high' was declared here drivers/hwmon/ntc_thermistor.c:294: warning: 'temp' may be used uninitialized in this function Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Acked-by: NJean Delvare <khali@linux-fr.org>
-
- 12 8月, 2011 3 次提交
-
-
由 Julia Lawall 提交于
rs_resp is dynamically allocated in aem_read_sensor(), so it should be freed before exiting in every case. This collects the kfree and the return at the end of the function. Signed-off-by: NJulia Lawall <julia@diku.dk> Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Cc: stable@kernel.org # 2.6.27+
-
由 Guenter Roeck 提交于
pmbus_clear_faults() attempts to clear faults on non-existing real pages. As a result, the command error bit in the status register is set, and faults are not really cleared. All byte writes to non-zero pages are requests to clear the status register on that page. Since non-zero pages are virtual and do not exist on the chip, there is nothing to do, and such requests have to be ignored. This fixes above problem. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com>
-
由 Guenter Roeck 提交于
With virtual pages and to be able to handle more chips, it is necessary to virtualise pmbus_write_byte(). Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com>
-
- 29 7月, 2011 16 次提交
-
-
由 Jean Delvare 提交于
Several vendors implement a second configuration register, which we check during device detection. Refactor the code to avoid duplication. Signed-off-by: NJean Delvare <khali@linux-fr.org> Cc: Stijn Devriendt <sdevrien@cisco.com> Cc: Guenter Roeck <guenter.roeck@ericsson.com> Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
-
由 Jean Delvare 提交于
With a device ID register value of 0, the SA56004 detection is rather weak. Check several other register too to confirm the detection, as we do for other supported devices. Signed-off-by: NJean Delvare <khali@linux-fr.org> Cc: Stijn Devriendt <sdevrien@cisco.com> Cc: Guenter Roeck <guenter.roeck@ericsson.com> Acked-by: NStijn Devriendt <sdevrien@cisco.com> Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
-
由 Jean Delvare 提交于
The optional extended local temperature register can never have address 0, as this address is already used by another register. Thus we can get rid of flag LM90_HAVE_LOCAL_EXT and simply rely on reg_local_ext being non-zero to determine if a given chip has this extension or not. This makes the code more simple. Signed-off-by: NJean Delvare <khali@linux-fr.org> Cc: Stijn Devriendt <sdevrien@cisco.com> Cc: Guenter Roeck <guenter.roeck@ericsson.com> Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
-
由 Guenter Roeck 提交于
PMBus client driver supporting National Semiconductor LM25066, LM5064, and LM5066. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com>
-
由 Guenter Roeck 提交于
Add support for voltage, current, and temperature peak (historic maximum) attributes. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com>
-
由 Guenter Roeck 提交于
Add support for voltage, current, and temperature peak (historic maximum) attributes. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
-
由 Guenter Roeck 提交于
Add support for voltage and temperature peak (historic maximum) attributes. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com>
-
由 Guenter Roeck 提交于
Add support for voltage and current peak (historic maximum) attributes. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com>
-
由 Guenter Roeck 提交于
Most PMBus devices provide manufacturer specific commands to read low and/or high peak values for some or all of its sensors. To support providing those values as lowest/highest attributes to the user, introduce virtual PMBus commands. Those commands reside outside the normal command set and have to be implemented in device specific code, which map the virtual commands to device specific commands. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com>
-
由 Guenter Roeck 提交于
With virtual register page support, it is now possible that the status register on virtual pages does not exist or is itself virtual. To take this into account when creating alarm attributes, generate those attributes only if the status register on the respective page is known to exist. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com>
-
由 Guenter Roeck 提交于
Some PMBus chips have non-standard sensor registers. An easy way to support such sensors is to introduce virtual pages and map the non-standard registers into standard registers on an extra page. For this to work, the code verifying if the configured number of pages exists has to be removed. Since a wrong number of pages can only be configured in a front-end driver, this should not have a practical impact since the resulting errors should be found during development and testing. Also, functions to read the chip status while checking if a command register exists must be modified to no longer set the page register before reading the status, since the physical page associated with the checked register may not exist. This does not make a functional difference since the page was already set when the attempt to read the register was made. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com>
-
由 Guenter Roeck 提交于
Some PMBus devices use non-standard registers for some of the sensors and/or limits. To support such devices, add code to support reading and writing of word size registers in device specific code. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com>
-
由 Guenter Roeck 提交于
Some hwmon sysfs attributes have a length of 20 bytes (plus terminating 0). I2C_NAME_SIZE is defined as 20 and thus can not be used to define the length of hwmon sysfs attributes. Replace it with PMBUS_NAME_SIZE, set to 24. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com>
-
由 Guenter Roeck 提交于
Add ADP4000, NCP4200 and NCP4208 to the list of devices supported by the generic PMBus driver, and add device IDs to enable explicit instantiation. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com> Acked-by: NJean Delvare <khali@linux-fr.org>
-
由 Guenter Roeck 提交于
In VID mode, output voltages are measured and reported as VID values, and have to be converted to voltages using VID conversion tables or functions. Support is added for VR11 only at this time. This patch enables support for PMBus devices supporting VID VR11 based output voltage selection such as NCP4200 and NCP4208. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com>
-
由 Guenter Roeck 提交于
Since the number of PMBus drivers is getting large, move them into directory drivers/hwmon/pmbus to improve readability and scalability. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com>
-