Thread (7 messages) flat view 7 messages, 3 authors, 2012-05-19

[PATCH 1/2] gpio/generic: initialize basic_mmio_gpio shadow variables properly

From: Grant Likely <hidden>
Date: 2012-05-19 05:45:33
Also in: lkml

On Fri, May 18, 2012 at 11:44 PM, Grant Likely
[off-list ref] wrote:
On Thu, 17 May 2012 15:35:02 +0800, Shawn Guo [off-list ref] wrote:
quoted
It fixes the issue in gpio-generic that commit fb14921 (gpio/mxc: add
missing initialization of basic_mmio_gpio shadow variables) manged to
fix in gpio-mxc driver, so that other platform specific drivers do not
suffer from the same problem over and over again.

Signed-off-by: Shawn Guo <redacted>
---
?drivers/gpio/gpio-generic.c | ? ?4 ++++
?1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/drivers/gpio/gpio-generic.c b/drivers/gpio/gpio-generic.c
index e38dd0c..cfc9439 100644
--- a/drivers/gpio/gpio-generic.c
+++ b/drivers/gpio/gpio-generic.c
@@ -394,6 +394,10 @@ int bgpio_init(struct bgpio_chip *bgc, struct device *dev,
? ? ? ? ? ? ? return ret;

? ? ? bgc->data = bgc->read_reg(bgc->reg_dat);
+ ? ? if (bgc->gc.set == bgpio_set_set)
+ ? ? ? ? ? ? bgc->data = bgc->read_reg(bgc->reg_set);
+ ? ? if (bgc->reg_dir)
+ ? ? ? ? ? ? bgc->dir = bgc->read_reg(bgc->reg_dir);
This assumes that the set and dir registers are actually readable
which isn't the case on some hardware. ?There needs to be a mechanism
for drivers using bgpio_init to control how data & dir are initialized
(possibly with some flags; maybe replace the big_endian arg with a
flags arg).
If you can turn it around quickly, I'll still try to get it in for v3.5

g.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help