- 12 8月, 2013 1 次提交
-
-
由 Jingoo Han 提交于
Use the wrapper function for retrieving the platform data instead of accessing dev->platform_data directly. Signed-off-by: NJingoo Han <jg1.han@samsung.com> Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
-
- 14 3月, 2013 1 次提交
-
-
由 David Woodhouse 提交于
If krealloc() returns NULL, it *doesn't* free the original. So any code of the form 'foo = krealloc(foo, …);' is almost certainly a bug. Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com> Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
-
- 07 2月, 2013 11 次提交
-
-
由 Guenter Roeck 提交于
Rearranged some data structures, and merged some common functions. Overall code and data size reduction by more than 900 bytes. Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
-
由 Guenter Roeck 提交于
Not all PMBus devices support the byte status register at 0x78. Try to use the word status register at 0x79 instead if that is the case. Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
-
由 Guenter Roeck 提交于
For PMBus chips, modifying one limit register may affect other limits. Since limits are all cached in the PMBus core driver, related changes are not reflected in reported limits. Introduce function to clear the attribute cache. After calling this function, the core pmbus driver re-reads all cached values. Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
-
由 Guenter Roeck 提交于
Some PMBus chips support monitoring an additional non-standard voltage. While this voltage can in many cases be supported by simulating an additional sensor page, this does not work in all cases. Specifically, it is problematic if the data format is linear and the voltage is reported in LINEAR11 format. Since output voltages use LINEAR16, and the exponent for LINEAR16 data is chip-wide and fixed, this can result in overflows. To solve this problem, add support for an additional virtual input voltage, call it 'vmon', and treat this voltage as input voltage (which, when the chip supports linear data format, uses LINEAR11). Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
-
由 Guenter Roeck 提交于
So far, attribute memory was allocated by pre-calculating the maximum possible amount of attributes. Not only does this waste memory, it is also risky because the calculation might be wrong. It also requires a lot of defines to specify the maximum number of attributes per class. Allocate attribute memory using krealloc() instead. That means we have to use kfree(), since devm_krealloc() does not exist, but that is still less costly and less risky than trying to predict the number of attributes at the beginning. Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
-
由 Guenter Roeck 提交于
Since memory is now allocated with dev_ functions, we no longer need to keep track of allocated memory. Sensor memory allocation can therefore be simplified significantly. Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
-
由 Guenter Roeck 提交于
Boolean handling depends on storing the sensor data index in sensor_device_attr as part of the index variable. This limits the number of sensor attributes to 256, and means the sensor sequence number actually has to be maintained to be able to access sensor data from boolean functions. Rework the code to store sensor pointers in the pmbus_boolean data structure directly. With this approach, the number of supportable sensors is now unlimited. Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
-
由 Guenter Roeck 提交于
Since memory is now allocated with dev_ functions, we no longer need to keep track of allocated memory. Memory allocation for booleans and labels can therefore be simplified substantially by allocating it only as needed. Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
-
由 Guenter Roeck 提交于
This simplifies the code and makes it a bit smaller. Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
-
由 Guenter Roeck 提交于
Fix: ERROR: Macros with multiple statements should be enclosed in a do - while loop by unwinding the problematic macros. As a side effect, this patch reduces code size on x86_64 by 160 bytes and bss size by 64 bytes. Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
-
由 Guenter Roeck 提交于
Drop error messages due to implementation errors and due to memory allocation errors. Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
-
- 26 1月, 2013 1 次提交
-
-
由 Guenter Roeck 提交于
SENSORS_LIMIT and the generic clamp_val have the same functionality, and clamp_val is more efficient. This patch reduces text size by 9052 bytes and bss size by 11624 bytes for x86_64 builds. Signed-off-by: NGuenter Roeck <linux@roeck-us.net> Acked-by: NGeorge Joseph <george.joseph@fairview5.com> Acked-by: NJean Delvare <khali@linux-fr.org>
-
- 10 10月, 2012 2 次提交
-
-
由 Jean Delvare 提交于
These drivers use no sleep or delay functions so they don't need to include <linux/delay.h>. Signed-off-by: NJean Delvare <khali@linux-fr.org> Acked-by: NGuenter Roeck <linux@roeck-us.net> Cc: Rudolf Marek <r.marek@assembler.cz>
-
由 Jean Delvare 提交于
Many hwmon drivers use jiffies but omit the inclusion of the header file. Fix that, and also fix one driver which was including the header file but didn't need it. Signed-off-by: NJean Delvare <khali@linux-fr.org> Acked-by: NGuenter Roeck <linux@roeck-us.net> Acked-by: NLuca Tettamanti <kronos.it@gmail.com> Cc: Marc Hulsman <m.hulsman@tudelft.nl> Cc: Rudolf Marek <r.marek@assembler.cz>
-
- 10 4月, 2012 1 次提交
-
-
由 Guenter Roeck 提交于
Some configurations produce the following compiler warning: drivers/hwmon/pmbus/pmbus_core.c: In function 'pmbus_show_boolean': drivers/hwmon/pmbus/pmbus_core.c:752: warning: 'val' may be used uninitialized in this function While this is a false positive, it can easily be fixed by overloading the return value from pmbus_get_boolean with both val and error return code (val is a boolean and thus never negative). Signed-off-by: NGuenter Roeck <linux@roeck-us.net> Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com>
-
- 19 3月, 2012 4 次提交
-
-
由 Guenter Roeck 提交于
Add PMBUS_VIRT_READ_TEMP_AVG, PMBUS_VIRT_READ_TEMP2_AVG, PMBUS_VIRT_READ_POUT_AVG, PMBUS_VIRT_READ_POUT_MAX, and PMBUS_VIRT_RESET_POUT_HISTORY. We'll need those for MAX34446. Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
-
由 Guenter Roeck 提交于
Since devm_kzalloc() is now used to allocate driver memory, the client driver remove function has no purpose other than to call pmbus_do_remove(). This means we can get rid of it by redefining pmbus_do_remove() to use the same prototype, and pointing to it directly. Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
-
由 Guenter Roeck 提交于
Marginally less code and eliminate the possibility of memory leaks. Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
-
由 Guenter Roeck 提交于
strict_strtol is deprecated and results in a checkpatch warning. Replace it with kstrtol. Acked-by: NJean Delvare <khali@linux-fr.org> Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
-
- 08 3月, 2012 1 次提交
-
-
由 Guenter Roeck 提交于
There are up to three POUT alarm attributes, not two, since cap_alarm was added. Reported-by: NMichele Petracca <mi.petracca@gmail.com> Cc: stable@vger.kernel.org # 3.0+ [3.0 will need backport] Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
-
- 25 10月, 2011 5 次提交
-
-
由 Guenter Roeck 提交于
Shift operations can be used for sign extensions. Use it. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com>
-
由 Guenter Roeck 提交于
At least one PMBus chip supports peak attributes for READ_TEMPERATURE2. Add virtual registers to be able to report it to the user. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com>
-
由 Guenter Roeck 提交于
Always call _pmbus_read_byte() instead of pmbus_read_byte() in PMBus core driver. With this change, device specific read functions can be implemented for all registers. Since the device specific read_byte function is now always called, we need to be more careful with page validations. Only fail if the passed page number is larger than 0, since -1 means "current page". Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com>
-
由 Guenter Roeck 提交于
EINVAL was over-used in the code. Replace it with more appropriate errors. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com>
-
由 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>
-
- 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+
-
- 12 8月, 2011 1 次提交
-
-
由 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 8 次提交
-
-
由 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 提交于
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 提交于
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>
-
- 12 7月, 2011 1 次提交
-
-
由 Guenter Roeck 提交于
Using integer variable types for register to data conversions can cause overflows especially for power calculations, which are in microwatt. Use long variables instead. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Acked-by: NJean Delvare <khali@linux-fr.org> Cc: stable@kernel.org # 2.6.39+
-
- 02 7月, 2011 1 次提交
-
-
由 Guenter Roeck 提交于
Some PMBus devices do not support the PMBus revision register, so don't check if it exists. Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com> Cc: stable.kernel.org # 2.6.39
-
- 27 5月, 2011 1 次提交
-
-
由 Guenter Roeck 提交于
Initialize sysfs attrs before device_create_file() call to suppress lockdep_init_map() warning: WARNING: at kernel/lockdep.c:2701 lockdep_init_map+0x12d/0x140() Reviewed-by: NRobert Coulson <robert.coulson@ericsson.com> Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com> Cc: stable@kernel.org # .39.x
-