diff for duplicates of <20111219004431.GE2376@gallagher> diff --git a/a/1.txt b/N1/1.txt index 7693533..e1058b3 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,10 +1,10 @@ Hi Linus, On Sun, Dec 18, 2011 at 11:01:38PM +0100, Linus Walleij wrote: -> On Sun, Dec 18, 2011 at 11:13 AM, Jamie Iles <jamie@jamieiles.com> wrote: +> On Sun, Dec 18, 2011 at 11:13 AM, Jamie Iles <jamie-wmLquQDDieKakBO8gow8eQ@public.gmane.org> wrote: > > > The Synopsys DesignWare block is used in some ARM devices (picoxcell) -> > and can be configured to provide multiple banks of GPIO pins. ?The first +> > and can be configured to provide multiple banks of GPIO pins. The first > > bank (A) can also provide IRQ capabilities. > > Overall this is looking good. @@ -13,24 +13,24 @@ On Sun, Dec 18, 2011 at 11:01:38PM +0100, Linus Walleij wrote: > > > +static int dwapb_irq_set_type(struct irq_data *d, u32 type) > > +{ -> > + ? ? ? struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); -> > + ? ? ? struct dwapb_gpio *gpio = gc->private; -> > + ? ? ? int bit = d->hwirq; -> > + ? ? ? unsigned long level, polarity; +> > + struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); +> > + struct dwapb_gpio *gpio = gc->private; +> > + int bit = d->hwirq; +> > + unsigned long level, polarity; > > + -> > + ? ? ? if (type & ~(IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING | -> > + ? ? ? ? ? ? ? ? ? ?IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW)) -> > + ? ? ? ? ? ? ? return -EINVAL; +> > + if (type & ~(IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING | +> > + IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW)) +> > + return -EINVAL; > > + -> > + ? ? ? level = readl(gpio->regs + INT_TYPE_REG_OFFS); -> > + ? ? ? polarity = readl(gpio->regs + INT_POLARITY_REG_OFFS); +> > + level = readl(gpio->regs + INT_TYPE_REG_OFFS); +> > + polarity = readl(gpio->regs + INT_POLARITY_REG_OFFS); > > + -> > + ? ? ? if (type & IRQ_TYPE_EDGE_RISING) { -> > + ? ? ? ? ? ? ? level |= (1 << bit); -> > + ? ? ? ? ? ? ? polarity |= (1 << bit); -> > + ? ? ? } else if (type & IRQ_TYPE_EDGE_FALLING) { -> > + ? ? ? ? ? ? ? level |= (1 << bit); -> > + ? ? ? ? ? ? ? polarity &= ~(1 << bit); +> > + if (type & IRQ_TYPE_EDGE_RISING) { +> > + level |= (1 << bit); +> > + polarity |= (1 << bit); +> > + } else if (type & IRQ_TYPE_EDGE_FALLING) { +> > + level |= (1 << bit); +> > + polarity &= ~(1 << bit); > > So what if you get request for *both* falling and rising edges? > diff --git a/a/content_digest b/N1/content_digest index 6e7c41a..58b880a 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,18 +1,23 @@ "ref\01324203229-15571-1-git-send-email-jamie@jamieiles.com\0" "ref\0CACRpkdYu7HCBdAzqNr1pwZMgvZFyBYpcJXYo-RUx5R-U3CJ1BA@mail.gmail.com\0" - "From\0jamie@jamieiles.com (Jamie Iles)\0" - "Subject\0[PATCH 1/2] gpio: add a driver for the Synopsys DesignWare APB GPIO block\0" + "ref\0CACRpkdYu7HCBdAzqNr1pwZMgvZFyBYpcJXYo-RUx5R-U3CJ1BA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org\0" + "From\0Jamie Iles <jamie-wmLquQDDieKakBO8gow8eQ@public.gmane.org>\0" + "Subject\0Re: [PATCH 1/2] gpio: add a driver for the Synopsys DesignWare APB GPIO block\0" "Date\0Mon, 19 Dec 2011 00:44:31 +0000\0" - "To\0linux-arm-kernel@lists.infradead.org\0" + "To\0Linus Walleij <linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>\0" + "Cc\0devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org" + Rob Herring <rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org> + Linus Walleij <linus.walleij-0IS4wlFg1OjSUeElwK9/Pw@public.gmane.org> + " linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org\0" "\00:1\0" "b\0" "Hi Linus,\n" "\n" "On Sun, Dec 18, 2011 at 11:01:38PM +0100, Linus Walleij wrote:\n" - "> On Sun, Dec 18, 2011 at 11:13 AM, Jamie Iles <jamie@jamieiles.com> wrote:\n" + "> On Sun, Dec 18, 2011 at 11:13 AM, Jamie Iles <jamie-wmLquQDDieKakBO8gow8eQ@public.gmane.org> wrote:\n" "> \n" "> > The Synopsys DesignWare block is used in some ARM devices (picoxcell)\n" - "> > and can be configured to provide multiple banks of GPIO pins. ?The first\n" + "> > and can be configured to provide multiple banks of GPIO pins. \302\240The first\n" "> > bank (A) can also provide IRQ capabilities.\n" "> \n" "> Overall this is looking good.\n" @@ -21,24 +26,24 @@ "> \n" "> > +static int dwapb_irq_set_type(struct irq_data *d, u32 type)\n" "> > +{\n" - "> > + ? ? ? struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d);\n" - "> > + ? ? ? struct dwapb_gpio *gpio = gc->private;\n" - "> > + ? ? ? int bit = d->hwirq;\n" - "> > + ? ? ? unsigned long level, polarity;\n" + "> > + \302\240 \302\240 \302\240 struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d);\n" + "> > + \302\240 \302\240 \302\240 struct dwapb_gpio *gpio = gc->private;\n" + "> > + \302\240 \302\240 \302\240 int bit = d->hwirq;\n" + "> > + \302\240 \302\240 \302\240 unsigned long level, polarity;\n" "> > +\n" - "> > + ? ? ? if (type & ~(IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING |\n" - "> > + ? ? ? ? ? ? ? ? ? ?IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW))\n" - "> > + ? ? ? ? ? ? ? return -EINVAL;\n" + "> > + \302\240 \302\240 \302\240 if (type & ~(IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING |\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW))\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 return -EINVAL;\n" "> > +\n" - "> > + ? ? ? level = readl(gpio->regs + INT_TYPE_REG_OFFS);\n" - "> > + ? ? ? polarity = readl(gpio->regs + INT_POLARITY_REG_OFFS);\n" + "> > + \302\240 \302\240 \302\240 level = readl(gpio->regs + INT_TYPE_REG_OFFS);\n" + "> > + \302\240 \302\240 \302\240 polarity = readl(gpio->regs + INT_POLARITY_REG_OFFS);\n" "> > +\n" - "> > + ? ? ? if (type & IRQ_TYPE_EDGE_RISING) {\n" - "> > + ? ? ? ? ? ? ? level |= (1 << bit);\n" - "> > + ? ? ? ? ? ? ? polarity |= (1 << bit);\n" - "> > + ? ? ? } else if (type & IRQ_TYPE_EDGE_FALLING) {\n" - "> > + ? ? ? ? ? ? ? level |= (1 << bit);\n" - "> > + ? ? ? ? ? ? ? polarity &= ~(1 << bit);\n" + "> > + \302\240 \302\240 \302\240 if (type & IRQ_TYPE_EDGE_RISING) {\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 level |= (1 << bit);\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 polarity |= (1 << bit);\n" + "> > + \302\240 \302\240 \302\240 } else if (type & IRQ_TYPE_EDGE_FALLING) {\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 level |= (1 << bit);\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 polarity &= ~(1 << bit);\n" "> \n" "> So what if you get request for *both* falling and rising edges?\n" "> \n" @@ -66,4 +71,4 @@ "\n" Jamie -5bf031f958dde1aeee1f4fbb7f79ff28a5a860bdcdef8ca57c9be324b6db0a95 +f98114cbe87126f95672162bf87cb1b1c25d10442dac8902089cdc7ea61499a7
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.