Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu> SVN-Revision: 40512master
parent
ba6689b064
commit
ba62f78e2e
@ -1,29 +0,0 @@ |
||||
From 820a121fdef79cc1293e6fee2fbe8156d9e8a75a Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Wed, 11 Dec 2013 15:07:52 +0100
|
||||
Subject: [PATCH] regulator_get_optional: don't print an error when no
|
||||
regulator is found
|
||||
|
||||
Only print an error when _regulator_get() is expected to return a valid
|
||||
regulator, that is when _regulator_get() is called from regulator_get() and
|
||||
we're not using the dummy because we don't have full-constraints, or when
|
||||
_regulator_get() is called from regulator_get_exclusive() in which case
|
||||
returning a dummy is not allowed.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/regulator/core.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/regulator/core.c
|
||||
+++ b/drivers/regulator/core.c
|
||||
@@ -1351,7 +1351,8 @@ static struct regulator *_regulator_get(
|
||||
|
||||
rdev = dummy_regulator_rdev;
|
||||
goto found;
|
||||
- } else {
|
||||
+ /* Don't log an error when called from regulator_get_optional() */
|
||||
+ } else if (!have_full_constraints() || exclusive) {
|
||||
dev_err(dev, "dummy supplies not allowed\n");
|
||||
}
|
||||
|
@ -1,49 +0,0 @@ |
||||
From 613c8489f6b576166aa31d32cbd573f6b7952e06 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Sat, 15 Feb 2014 12:58:17 +0100
|
||||
Subject: [PATCH] pinctrl-sunxi: Fix hang on gpio irq
|
||||
|
||||
Our irq handler was missing chained_irq_enter / exit calls, causing a
|
||||
hard hang as soon as a gpio irq happened.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/pinctrl/pinctrl-sunxi.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/drivers/pinctrl/pinctrl-sunxi.c b/drivers/pinctrl/pinctrl-sunxi.c
|
||||
index 74635cc..cc9bd1b 100644
|
||||
--- a/drivers/pinctrl/pinctrl-sunxi.c
|
||||
+++ b/drivers/pinctrl/pinctrl-sunxi.c
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/gpio.h>
|
||||
+#include <linux/irqchip/chained_irq.h>
|
||||
#include <linux/irqdomain.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
@@ -665,9 +666,12 @@ static void sunxi_pinctrl_irq_unmask(struct irq_data *d)
|
||||
|
||||
static void sunxi_pinctrl_irq_handler(unsigned irq, struct irq_desc *desc)
|
||||
{
|
||||
+ struct irq_chip *chip = irq_get_chip(irq);
|
||||
struct sunxi_pinctrl *pctl = irq_get_handler_data(irq);
|
||||
const unsigned long reg = readl(pctl->membase + IRQ_STATUS_REG);
|
||||
|
||||
+ chained_irq_enter(chip, desc);
|
||||
+
|
||||
/* Clear all interrupts */
|
||||
writel(reg, pctl->membase + IRQ_STATUS_REG);
|
||||
|
||||
@@ -679,6 +683,7 @@ static void sunxi_pinctrl_irq_handler(unsigned irq, struct irq_desc *desc)
|
||||
generic_handle_irq(pin_irq);
|
||||
}
|
||||
}
|
||||
+ chained_irq_exit(chip, desc);
|
||||
}
|
||||
|
||||
static struct of_device_id sunxi_pinctrl_match[] = {
|
||||
--
|
||||
1.8.5.5
|
||||
|
Loading…
Reference in new issue