mirror of
https://git.yoctoproject.org/poky
synced 2026-02-21 00:49:41 +01:00
86 lines
2.6 KiB
Diff
86 lines
2.6 KiB
Diff
From 39fd545bb198f6e17e7e8f730535e3976088cd9f Mon Sep 17 00:00:00 2001
|
|
From: Alan Olsen <alan.r.olsen@intel.com>
|
|
Date: Fri, 26 Mar 2010 11:59:00 -0700
|
|
Subject: [PATCH] GPE fix for sensors
|
|
|
|
Patch-mainline: 2.6.35?
|
|
|
|
Signed-off-by: Alan Olsen <alan.r.olsen@intel.com>
|
|
---
|
|
drivers/hwmon/emc1403.c | 53 ++++++++--------------------------------------
|
|
1 files changed, 10 insertions(+), 43 deletions(-)
|
|
|
|
diff --git a/drivers/hwmon/emc1403.c b/drivers/hwmon/emc1403.c
|
|
index 75e3b15..c94d933 100644
|
|
--- a/drivers/hwmon/emc1403.c
|
|
+++ b/drivers/hwmon/emc1403.c
|
|
@@ -33,7 +33,6 @@
|
|
#include <linux/delay.h>
|
|
#include <linux/mutex.h>
|
|
#include <linux/sysfs.h>
|
|
-#include <linux/gpe.h>
|
|
#include <linux/intel_mid.h>
|
|
|
|
|
|
@@ -624,48 +623,16 @@ static int emc1403_probe(struct i2c_client *new_client,
|
|
data->therm_irq = t_irq & ~IRQ_TYPE_MASK;
|
|
data->alert_irq = a_irq & ~IRQ_TYPE_MASK;
|
|
/* interpret irq field */
|
|
- if (data->therm_irq == 0x113) {
|
|
- if (t_irq & IRQ_TYPE_MASK) {
|
|
- /* irq -> GPE_ID */
|
|
- res = request_gpe(data->therm_irq,
|
|
- (gpio_function_t)therm_interrupt_handler,
|
|
- data, DETECT_LEVEL_LOW);
|
|
- if (res)
|
|
- dev_crit(&new_client->dev, "%s(): cannot \
|
|
- register therm gpe \n", __func__);
|
|
- } else {
|
|
- res = request_irq(data->therm_irq,
|
|
- therm_interrupt_handler,
|
|
- DETECT_LEVEL_LOW, "emc1403", data);
|
|
- if (res)
|
|
- dev_crit(&new_client->dev, "%s(): \
|
|
- cannot get therm IRQ\n", __func__);
|
|
- }
|
|
- } else {
|
|
- printk(KERN_WARNING"emc1403: IRQ mismatch \
|
|
- sent for therm registration");
|
|
- }
|
|
- if (data->alert_irq == 0x114) {
|
|
- if (a_irq & IRQ_TYPE_MASK) {
|
|
- /* irq -> GPE_ID */
|
|
- res = request_gpe(data->alert_irq,
|
|
- (gpio_function_t)alert_interrupt_handler,
|
|
- data, DETECT_LEVEL_LOW);
|
|
- if (res)
|
|
- dev_crit(&new_client->dev, "%s(): \
|
|
- cannot register alert gpe \n", __func__);
|
|
- } else {
|
|
- res = request_irq(data->alert_irq,
|
|
- alert_interrupt_handler, DETECT_LEVEL_LOW,
|
|
- "emc1403", data);
|
|
- if (res)
|
|
- dev_crit(&new_client->dev, "%s(): cannot \
|
|
+ res = request_irq(data->therm_irq, therm_interrupt_handler,
|
|
+ IRQ_TYPE_EDGE_FALLING, "emc1403_therm", data);
|
|
+ if (res)
|
|
+ dev_crit(&new_client->dev, "%s(): \
|
|
+ cannot get therm IRQ\n", __func__);
|
|
+ res = request_irq(data->alert_irq, alert_interrupt_handler,
|
|
+ IRQ_TYPE_EDGE_FALLING, "emc1403_alert", data);
|
|
+ if (res)
|
|
+ dev_crit(&new_client->dev, "%s(): cannot \
|
|
get alert IRQ\n", __func__);
|
|
- }
|
|
- } else {
|
|
- printk(KERN_WARNING"emc1403: IRQ mismatch \
|
|
- sent for alert registration");
|
|
- }
|
|
#endif
|
|
emc1403_set_default_config(new_client);
|
|
dev_info(&new_client->dev, "%s EMC1403 Thermal chip found \n",
|
|
--
|
|
1.6.0.6
|
|
|