[PATCH 29/40] ab8500-charger: Run detect workaround only on AB8500

2013-02-15 Thread Lee Jones
From: Rabin Vincent 

Only AB8500 has this hardware bug, so these works only need to be run
there.

Signed-off-by: Rabin Vincent 
Signed-off-by: Lee Jones 
Reviewed-by: Marcus COOPER 
Reviewed-by: Martin SJOBLOM 
Reviewed-by: Jonas ABERG 
---
 drivers/power/ab8500_charger.c |   21 +
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/drivers/power/ab8500_charger.c b/drivers/power/ab8500_charger.c
index 64accb2..8530028 100644
--- a/drivers/power/ab8500_charger.c
+++ b/drivers/power/ab8500_charger.c
@@ -441,7 +441,8 @@ static void ab8500_charger_set_usb_connected(struct 
ab8500_charger *di,
mutex_lock(>charger_attached_mutex);
mutex_unlock(>charger_attached_mutex);
 
-   queue_delayed_work(di->charger_wq,
+   if (is_ab8500(di->parent))
+   queue_delayed_work(di->charger_wq,
   >usb_charger_attached_work,
   HZ);
} else {
@@ -2622,7 +2623,9 @@ static irqreturn_t 
ab8500_charger_mainchplugdet_handler(int irq, void *_di)
 
mutex_lock(>charger_attached_mutex);
mutex_unlock(>charger_attached_mutex);
-   queue_delayed_work(di->charger_wq,
+
+   if (is_ab8500(di->parent))
+   queue_delayed_work(di->charger_wq,
   >ac_charger_attached_work,
   HZ);
return IRQ_HANDLED;
@@ -3690,14 +3693,16 @@ static int ab8500_charger_probe(struct platform_device 
*pdev)
ch_stat = ab8500_charger_detect_chargers(di, false);
 
if ((ch_stat & AC_PW_CONN) == AC_PW_CONN) {
-   queue_delayed_work(di->charger_wq,
-  >ac_charger_attached_work,
-  HZ);
+   if (is_ab8500(di->parent))
+   queue_delayed_work(di->charger_wq,
+  >ac_charger_attached_work,
+  HZ);
}
if ((ch_stat & USB_PW_CONN) == USB_PW_CONN) {
-   queue_delayed_work(di->charger_wq,
-  >usb_charger_attached_work,
-  HZ);
+   if (is_ab8500(di->parent))
+   queue_delayed_work(di->charger_wq,
+  >usb_charger_attached_work,
+  HZ);
}
 
mutex_unlock(>charger_attached_mutex);
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 29/40] ab8500-charger: Run detect workaround only on AB8500

2013-02-15 Thread Lee Jones
From: Rabin Vincent rabin.vinc...@stericsson.com

Only AB8500 has this hardware bug, so these works only need to be run
there.

Signed-off-by: Rabin Vincent rabin.vinc...@stericsson.com
Signed-off-by: Lee Jones lee.jo...@linaro.org
Reviewed-by: Marcus COOPER marcus.xm.coo...@stericsson.com
Reviewed-by: Martin SJOBLOM martin.w.sjob...@stericsson.com
Reviewed-by: Jonas ABERG jonas.ab...@stericsson.com
---
 drivers/power/ab8500_charger.c |   21 +
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/drivers/power/ab8500_charger.c b/drivers/power/ab8500_charger.c
index 64accb2..8530028 100644
--- a/drivers/power/ab8500_charger.c
+++ b/drivers/power/ab8500_charger.c
@@ -441,7 +441,8 @@ static void ab8500_charger_set_usb_connected(struct 
ab8500_charger *di,
mutex_lock(di-charger_attached_mutex);
mutex_unlock(di-charger_attached_mutex);
 
-   queue_delayed_work(di-charger_wq,
+   if (is_ab8500(di-parent))
+   queue_delayed_work(di-charger_wq,
   di-usb_charger_attached_work,
   HZ);
} else {
@@ -2622,7 +2623,9 @@ static irqreturn_t 
ab8500_charger_mainchplugdet_handler(int irq, void *_di)
 
mutex_lock(di-charger_attached_mutex);
mutex_unlock(di-charger_attached_mutex);
-   queue_delayed_work(di-charger_wq,
+
+   if (is_ab8500(di-parent))
+   queue_delayed_work(di-charger_wq,
   di-ac_charger_attached_work,
   HZ);
return IRQ_HANDLED;
@@ -3690,14 +3693,16 @@ static int ab8500_charger_probe(struct platform_device 
*pdev)
ch_stat = ab8500_charger_detect_chargers(di, false);
 
if ((ch_stat  AC_PW_CONN) == AC_PW_CONN) {
-   queue_delayed_work(di-charger_wq,
-  di-ac_charger_attached_work,
-  HZ);
+   if (is_ab8500(di-parent))
+   queue_delayed_work(di-charger_wq,
+  di-ac_charger_attached_work,
+  HZ);
}
if ((ch_stat  USB_PW_CONN) == USB_PW_CONN) {
-   queue_delayed_work(di-charger_wq,
-  di-usb_charger_attached_work,
-  HZ);
+   if (is_ab8500(di-parent))
+   queue_delayed_work(di-charger_wq,
+  di-usb_charger_attached_work,
+  HZ);
}
 
mutex_unlock(di-charger_attached_mutex);
-- 
1.7.10.4

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/