From 39fd545bb198f6e17e7e8f730535e3976088cd9f Mon Sep 17 00:00:00 2001 From: Alan Olsen 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 --- 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 #include #include -#include #include @@ -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