瀏覽代碼

hwmon: (pmbus) Add function to clear sensor cache

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: Guenter Roeck <linux@roeck-us.net>
Guenter Roeck 12 年之前
父節點
當前提交
ce603b18f3
共有 2 個文件被更改,包括 9 次插入0 次删除
  1. 1 0
      drivers/hwmon/pmbus/pmbus.h
  2. 8 0
      drivers/hwmon/pmbus/pmbus_core.c

+ 1 - 0
drivers/hwmon/pmbus/pmbus.h

@@ -369,6 +369,7 @@ struct pmbus_driver_info {
 
 
 /* Function declarations */
 /* Function declarations */
 
 
+void pmbus_clear_cache(struct i2c_client *client);
 int pmbus_set_page(struct i2c_client *client, u8 page);
 int pmbus_set_page(struct i2c_client *client, u8 page);
 int pmbus_read_word_data(struct i2c_client *client, u8 page, u8 reg);
 int pmbus_read_word_data(struct i2c_client *client, u8 page, u8 reg);
 int pmbus_write_word_data(struct i2c_client *client, u8 page, u8 reg, u16 word);
 int pmbus_write_word_data(struct i2c_client *client, u8 page, u8 reg, u16 word);

+ 8 - 0
drivers/hwmon/pmbus/pmbus_core.c

@@ -113,6 +113,14 @@ struct pmbus_data {
 	u8 currpage;
 	u8 currpage;
 };
 };
 
 
+void pmbus_clear_cache(struct i2c_client *client)
+{
+	struct pmbus_data *data = i2c_get_clientdata(client);
+
+	data->valid = false;
+}
+EXPORT_SYMBOL_GPL(pmbus_clear_cache);
+
 int pmbus_set_page(struct i2c_client *client, u8 page)
 int pmbus_set_page(struct i2c_client *client, u8 page)
 {
 {
 	struct pmbus_data *data = i2c_get_clientdata(client);
 	struct pmbus_data *data = i2c_get_clientdata(client);