All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <1494976072.2728.5.camel@baylibre.com>

diff --git a/a/1.txt b/N1/1.txt
index b5eadf4..f936da6 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -5,40 +5,40 @@ On Fri, 2017-05-12 at 21:14 +0200, Heiner Kallweit wrote:
 > Note that IRQ_TYPE_EDGE_BOTH interrupts reserve two parent IRQ's,
 > one for each edge.
 > 
-> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
+> Signed-off-by: Heiner Kallweit <hkallweit1-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
 > ---
 > v2:
 > - make the GPIO IRQ controller a separate driver
 > - several smaller improvements
 > ---
-> ?drivers/pinctrl/Kconfig???????????????????|???1 +
-> ?drivers/pinctrl/meson/Makefile????????????|???2 +-
-> ?drivers/pinctrl/meson/pinctrl-meson-irq.c | 367
+>  drivers/pinctrl/Kconfig                   |   1 +
+>  drivers/pinctrl/meson/Makefile            |   2 +-
+>  drivers/pinctrl/meson/pinctrl-meson-irq.c | 367
 > ++++++++++++++++++++++++++++++
-> ?drivers/pinctrl/meson/pinctrl-meson.c?????|???8 +-
-> ?drivers/pinctrl/meson/pinctrl-meson.h?????|???1 +
-> ?5 files changed, 377 insertions(+), 2 deletions(-)
-> ?create mode 100644 drivers/pinctrl/meson/pinctrl-meson-irq.c
+>  drivers/pinctrl/meson/pinctrl-meson.c     |   8 +-
+>  drivers/pinctrl/meson/pinctrl-meson.h     |   1 +
+>  5 files changed, 377 insertions(+), 2 deletions(-)
+>  create mode 100644 drivers/pinctrl/meson/pinctrl-meson-irq.c
 > 
 > diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig
 > index 37af5e30..f8f401a0 100644
 > --- a/drivers/pinctrl/Kconfig
 > +++ b/drivers/pinctrl/Kconfig
 > @@ -153,6 +153,7 @@ config PINCTRL_MESON
-> ?	select PINCONF
-> ?	select GENERIC_PINCONF
-> ?	select GPIOLIB
+>  	select PINCONF
+>  	select GENERIC_PINCONF
+>  	select GPIOLIB
 > +	select GPIOLIB_IRQCHIP
-> ?	select OF_GPIO
-> ?	select REGMAP_MMIO
-> ?
+>  	select OF_GPIO
+>  	select REGMAP_MMIO
+>  
 > diff --git a/drivers/pinctrl/meson/Makefile b/drivers/pinctrl/meson/Makefile
 > index 27c5b512..827e416d 100644
 > --- a/drivers/pinctrl/meson/Makefile
 > +++ b/drivers/pinctrl/meson/Makefile
 > @@ -1,3 +1,3 @@
-> ?obj-y	+= pinctrl-meson8.o pinctrl-meson8b.o
-> ?obj-y	+= pinctrl-meson-gxbb.o pinctrl-meson-gxl.o
+>  obj-y	+= pinctrl-meson8.o pinctrl-meson8b.o
+>  obj-y	+= pinctrl-meson-gxbb.o pinctrl-meson-gxl.o
 > -obj-y	+= pinctrl-meson.o
 > +obj-y	+= pinctrl-meson.o pinctrl-meson-irq.o
 > diff --git a/drivers/pinctrl/meson/pinctrl-meson-irq.c
@@ -51,8 +51,8 @@ On Fri, 2017-05-12 at 21:14 +0200, Heiner Kallweit wrote:
 > +/*
 > + * Amlogic Meson GPIO IRQ driver
 > + *
-> + * Copyright 2017 Heiner Kallweit <hkallweit1@gmail.com>
-> + * Based on a first version by Jerome Brunet <jbrunet@baylibre.com>
+> + * Copyright 2017 Heiner Kallweit <hkallweit1-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
+> + * Based on a first version by Jerome Brunet <jbrunet-rdvid1DuHRBWk0Htik3J/w@public.gmane.org>
 > + *
 > + * This program is free software; you can redistribute it and/or
 > + * modify it under the terms of the GNU General Public License as
@@ -151,21 +151,21 @@ On Fri, 2017-05-12 at 21:14 +0200, Heiner Kallweit wrote:
 > +	int hwirq = meson_gpio_data_to_hwirq(gpio_irqdata);
 > +
 > +	/*
-> +	?* For some strange reason spurious interrupts created by the chip
+> +	 * For some strange reason spurious interrupts created by the chip
 > when
-> +	?* the interrupt source registers are written cause a deadlock here.
-> +	?* generic_handle_irq calls handle_simple_irq which tries to get
-> +	?* spinlock desc->lock. This interrupt handler is called whilst
-> +	?* __setup_irq holds desc->lock.
-> +	?* The deadlock means that both are running on the same CPU what
+> +	 * the interrupt source registers are written cause a deadlock here.
+> +	 * generic_handle_irq calls handle_simple_irq which tries to get
+> +	 * spinlock desc->lock. This interrupt handler is called whilst
+> +	 * __setup_irq holds desc->lock.
+> +	 * The deadlock means that both are running on the same CPU what
 > should
-> +	?* not happen as __setup_irq called raw_spin_lock_irqsave thus
+> +	 * not happen as __setup_irq called raw_spin_lock_irqsave thus
 > disabling
-> +	?* interrupts on this CPU.
-> +	?* Work around this by ignoring interrupts in code protected by
-> +	?* chip_bus_lock (__setup_irq/__free_irq for the respective GPIO
+> +	 * interrupts on this CPU.
+> +	 * Work around this by ignoring interrupts in code protected by
+> +	 * chip_bus_lock (__setup_irq/__free_irq for the respective GPIO
 > hwirq).
-> +	?*/
+> +	 */
 
 The explanation for this seems a bit weak. Even your comment say it does not
 make sense. I've never seen this 'spurious irq' during my test.
@@ -181,7 +181,7 @@ It be nice to have the beginning of an explanation before introducing such hack.
 > +}
 > +
 > +static int meson_gpio_alloc_irq_slot(struct irq_data *data, int num_slots,
-> +				?????int *slots)
+> +				     int *slots)
 > +{
 > +	int i, cnt = 0;
 > +
@@ -240,7 +240,7 @@ It be nice to have the beginning of an explanation before introducing such hack.
 > +	int shift = 8 * (idx % 4);
 > +
 > +	regmap_update_bits(meson_gpio_irq_regmap, reg, 0xff << shift,
-> +			???hwirq << shift);
+> +			   hwirq << shift);
 > +}
 > +
 > +static void meson_gpio_irq_set_hwirq(struct irq_data *data, int hwirq)
@@ -295,17 +295,17 @@ It be nice to have the beginning of an explanation before introducing such hack.
 > +		val |= REG_EDGE_POL_LOW(slots[0]);
 > +
 > +	regmap_update_bits(meson_gpio_irq_regmap, REG_EDGE_POL,
-> +			???REG_EDGE_POL_MASK(slots[0]), val);
+> +			   REG_EDGE_POL_MASK(slots[0]), val);
 > +
 > +	/*
-> +	?* The chip can create an interrupt for either rising or falling edge
-> +	?* only. Therefore use two interrupts in case of IRQ_TYPE_EDGE_BOTH,
-> +	?* first for falling edge and second one for rising edge.
-> +	?*/
+> +	 * The chip can create an interrupt for either rising or falling edge
+> +	 * only. Therefore use two interrupts in case of IRQ_TYPE_EDGE_BOTH,
+> +	 * first for falling edge and second one for rising edge.
+> +	 */
 > +	if (num_slots > 1) {
 > +		val = REG_EDGE_POL_EDGE(slots[1]);
 > +		regmap_update_bits(meson_gpio_irq_regmap, REG_EDGE_POL,
-> +				???REG_EDGE_POL_MASK(slots[1]), val);
+> +				   REG_EDGE_POL_MASK(slots[1]), val);
 > +	}
 > +
 > +	if (type & IRQ_TYPE_EDGE_BOTH)
@@ -319,7 +319,7 @@ It be nice to have the beginning of an explanation before introducing such hack.
 > +		if (ret)
 > +			break;
 > +		ret = request_irq(irq, meson_gpio_irq_handler, 0,
-> +				??"GPIO parent", data);
+> +				  "GPIO parent", data);
 It seems weird to use request_irq here. With the eventual reuqeste_irq in the
 consumer driver, wouldn't you end with to virq allocated for what is only on irq
 line really ?
@@ -380,9 +380,9 @@ Isn't it showing that you should use domains and mappings ?
 > +}
 > +
 > +static const struct regmap_config meson_gpio_regmap_config = {
-> +	.reg_bits???????= 32,
-> +	.reg_stride?????= 4,
-> +	.val_bits???????= 32,
+> +	.reg_bits       = 32,
+> +	.reg_stride     = 4,
+> +	.val_bits       = 32,
 > +	.max_register	= REG_FILTER_SEL,
 > +};
 > +
@@ -438,36 +438,36 @@ Isn't it showing that you should use domains and mappings ?
 > --- a/drivers/pinctrl/meson/pinctrl-meson.c
 > +++ b/drivers/pinctrl/meson/pinctrl-meson.c
 > @@ -62,6 +62,8 @@
-> ?#include "../pinctrl-utils.h"
-> ?#include "pinctrl-meson.h"
-> ?
+>  #include "../pinctrl-utils.h"
+>  #include "pinctrl-meson.h"
+>  
 > +struct irq_chip *meson_pinctrl_irq_chip;
 > +
-> ?/**
-> ? * meson_pinctrl_get_bank() - find the bank containing a given pin
-> ? *
+>  /**
+>   * meson_pinctrl_get_bank() - find the bank containing a given pin
+>   *
 > @@ -551,7 +553,8 @@ static int meson_gpiolib_register(struct meson_pinctrl
 > *pc)
-> ?		return ret;
-> ?	}
-> ?
+>  		return ret;
+>  	}
+>  
 > -	return 0;
 > +	return gpiochip_irqchip_add(&pc->chip, meson_pinctrl_irq_chip, 0,
-> +				????handle_simple_irq, IRQ_TYPE_NONE);
-> ?}
-> ?
-> ?static struct regmap_config meson_regmap_config = {
+> +				    handle_simple_irq, IRQ_TYPE_NONE);
+>  }
+>  
+>  static struct regmap_config meson_regmap_config = {
 > @@ -640,6 +643,9 @@ static int meson_pinctrl_probe(struct platform_device
 > *pdev)
-> ?	struct meson_pinctrl *pc;
-> ?	int ret;
-> ?
+>  	struct meson_pinctrl *pc;
+>  	int ret;
+>  
 > +	if (!meson_pinctrl_irq_chip)
 > +		return -EPROBE_DEFER;
 > +
-> ?	pc = devm_kzalloc(dev, sizeof(struct meson_pinctrl), GFP_KERNEL);
-> ?	if (!pc)
-> ?		return -ENOMEM;
+>  	pc = devm_kzalloc(dev, sizeof(struct meson_pinctrl), GFP_KERNEL);
+>  	if (!pc)
+>  		return -ENOMEM;
 > diff --git a/drivers/pinctrl/meson/pinctrl-meson.h
 > b/drivers/pinctrl/meson/pinctrl-meson.h
 > index 40b56aff..16aab328 100644
@@ -475,10 +475,14 @@ Isn't it showing that you should use domains and mappings ?
 > +++ b/drivers/pinctrl/meson/pinctrl-meson.h
 > @@ -176,6 +176,7 @@ extern struct meson_pinctrl_data
 > meson_gxbb_periphs_pinctrl_data;
-> ?extern struct meson_pinctrl_data meson_gxbb_aobus_pinctrl_data;
-> ?extern struct meson_pinctrl_data meson_gxl_periphs_pinctrl_data;
-> ?extern struct meson_pinctrl_data meson_gxl_aobus_pinctrl_data;
+>  extern struct meson_pinctrl_data meson_gxbb_aobus_pinctrl_data;
+>  extern struct meson_pinctrl_data meson_gxl_periphs_pinctrl_data;
+>  extern struct meson_pinctrl_data meson_gxl_aobus_pinctrl_data;
 > +extern struct irq_chip *meson_pinctrl_irq_chip;
-> ?
-> ?struct meson_bank *meson_pinctrl_get_bank(const struct meson_pinctrl *pc,
-> ?					??unsigned int pin);
+>  
+>  struct meson_bank *meson_pinctrl_get_bank(const struct meson_pinctrl *pc,
+>  					  unsigned int pin);
+--
+To unsubscribe from this list: send the line "unsubscribe devicetree" in
+the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
+More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff --git a/a/content_digest b/N1/content_digest
index b4cdfa9..71d0556 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -1,9 +1,20 @@
  "ref\036164ed8-aa59-2a77-b7fc-9adce03a2fc1@gmail.com\0"
  "ref\0dc23b800-fe69-8143-6367-d3cd801cd6db@gmail.com\0"
- "From\0jbrunet@baylibre.com (Jerome Brunet)\0"
- "Subject\0[PATCH v2 6/6] pintrl: meson: add support for GPIO interrupts\0"
+ "ref\0dc23b800-fe69-8143-6367-d3cd801cd6db-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org\0"
+ "From\0Jerome Brunet <jbrunet-rdvid1DuHRBWk0Htik3J/w@public.gmane.org>\0"
+ "Subject\0Re: [PATCH v2 6/6] pintrl: meson: add support for GPIO interrupts\0"
  "Date\0Wed, 17 May 2017 01:07:52 +0200\0"
- "To\0linus-amlogic@lists.infradead.org\0"
+ "To\0Heiner Kallweit <hkallweit1-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>"
+  Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>
+  Marc Zyngier <marc.zyngier-5wv7dgnIgG8@public.gmane.org>
+  Linus Walleij <linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
+  Kevin Hilman <khilman-rdvid1DuHRBWk0Htik3J/w@public.gmane.org>
+ " Thomas Gleixner <tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>\0"
+ "Cc\0devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
+  linux-amlogic-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
+  linux-gpio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
+  thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org <thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
+ " Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>\0"
  "\00:1\0"
  "b\0"
  "On Fri, 2017-05-12 at 21:14 +0200, Heiner Kallweit wrote:\n"
@@ -13,40 +24,40 @@
  "> Note that IRQ_TYPE_EDGE_BOTH interrupts reserve two parent IRQ's,\n"
  "> one for each edge.\n"
  "> \n"
- "> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>\n"
+ "> Signed-off-by: Heiner Kallweit <hkallweit1-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>\n"
  "> ---\n"
  "> v2:\n"
  "> - make the GPIO IRQ controller a separate driver\n"
  "> - several smaller improvements\n"
  "> ---\n"
- "> ?drivers/pinctrl/Kconfig???????????????????|???1 +\n"
- "> ?drivers/pinctrl/meson/Makefile????????????|???2 +-\n"
- "> ?drivers/pinctrl/meson/pinctrl-meson-irq.c | 367\n"
+ "> \302\240drivers/pinctrl/Kconfig\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\240\302\2401 +\n"
+ "> \302\240drivers/pinctrl/meson/Makefile\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\240\302\2402 +-\n"
+ "> \302\240drivers/pinctrl/meson/pinctrl-meson-irq.c | 367\n"
  "> ++++++++++++++++++++++++++++++\n"
- "> ?drivers/pinctrl/meson/pinctrl-meson.c?????|???8 +-\n"
- "> ?drivers/pinctrl/meson/pinctrl-meson.h?????|???1 +\n"
- "> ?5 files changed, 377 insertions(+), 2 deletions(-)\n"
- "> ?create mode 100644 drivers/pinctrl/meson/pinctrl-meson-irq.c\n"
+ "> \302\240drivers/pinctrl/meson/pinctrl-meson.c\302\240\302\240\302\240\302\240\302\240|\302\240\302\240\302\2408 +-\n"
+ "> \302\240drivers/pinctrl/meson/pinctrl-meson.h\302\240\302\240\302\240\302\240\302\240|\302\240\302\240\302\2401 +\n"
+ "> \302\2405 files changed, 377 insertions(+), 2 deletions(-)\n"
+ "> \302\240create mode 100644 drivers/pinctrl/meson/pinctrl-meson-irq.c\n"
  "> \n"
  "> diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig\n"
  "> index 37af5e30..f8f401a0 100644\n"
  "> --- a/drivers/pinctrl/Kconfig\n"
  "> +++ b/drivers/pinctrl/Kconfig\n"
  "> @@ -153,6 +153,7 @@ config PINCTRL_MESON\n"
- "> ?\tselect PINCONF\n"
- "> ?\tselect GENERIC_PINCONF\n"
- "> ?\tselect GPIOLIB\n"
+ "> \302\240\tselect PINCONF\n"
+ "> \302\240\tselect GENERIC_PINCONF\n"
+ "> \302\240\tselect GPIOLIB\n"
  "> +\tselect GPIOLIB_IRQCHIP\n"
- "> ?\tselect OF_GPIO\n"
- "> ?\tselect REGMAP_MMIO\n"
- "> ?\n"
+ "> \302\240\tselect OF_GPIO\n"
+ "> \302\240\tselect REGMAP_MMIO\n"
+ "> \302\240\n"
  "> diff --git a/drivers/pinctrl/meson/Makefile b/drivers/pinctrl/meson/Makefile\n"
  "> index 27c5b512..827e416d 100644\n"
  "> --- a/drivers/pinctrl/meson/Makefile\n"
  "> +++ b/drivers/pinctrl/meson/Makefile\n"
  "> @@ -1,3 +1,3 @@\n"
- "> ?obj-y\t+= pinctrl-meson8.o pinctrl-meson8b.o\n"
- "> ?obj-y\t+= pinctrl-meson-gxbb.o pinctrl-meson-gxl.o\n"
+ "> \302\240obj-y\t+= pinctrl-meson8.o pinctrl-meson8b.o\n"
+ "> \302\240obj-y\t+= pinctrl-meson-gxbb.o pinctrl-meson-gxl.o\n"
  "> -obj-y\t+= pinctrl-meson.o\n"
  "> +obj-y\t+= pinctrl-meson.o pinctrl-meson-irq.o\n"
  "> diff --git a/drivers/pinctrl/meson/pinctrl-meson-irq.c\n"
@@ -59,8 +70,8 @@
  "> +/*\n"
  "> + * Amlogic Meson GPIO IRQ driver\n"
  "> + *\n"
- "> + * Copyright 2017 Heiner Kallweit <hkallweit1@gmail.com>\n"
- "> + * Based on a first version by Jerome Brunet <jbrunet@baylibre.com>\n"
+ "> + * Copyright 2017 Heiner Kallweit <hkallweit1-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>\n"
+ "> + * Based on a first version by Jerome Brunet <jbrunet-rdvid1DuHRBWk0Htik3J/w@public.gmane.org>\n"
  "> + *\n"
  "> + * This program is free software; you can redistribute it and/or\n"
  "> + * modify it under the terms of the GNU General Public License as\n"
@@ -159,21 +170,21 @@
  "> +\tint hwirq = meson_gpio_data_to_hwirq(gpio_irqdata);\n"
  "> +\n"
  "> +\t/*\n"
- "> +\t?* For some strange reason spurious interrupts created by the chip\n"
+ "> +\t\302\240* For some strange reason spurious interrupts created by the chip\n"
  "> when\n"
- "> +\t?* the interrupt source registers are written cause a deadlock here.\n"
- "> +\t?* generic_handle_irq calls handle_simple_irq which tries to get\n"
- "> +\t?* spinlock desc->lock. This interrupt handler is called whilst\n"
- "> +\t?* __setup_irq holds desc->lock.\n"
- "> +\t?* The deadlock means that both are running on the same CPU what\n"
+ "> +\t\302\240* the interrupt source registers are written cause a deadlock here.\n"
+ "> +\t\302\240* generic_handle_irq calls handle_simple_irq which tries to get\n"
+ "> +\t\302\240* spinlock desc->lock. This interrupt handler is called whilst\n"
+ "> +\t\302\240* __setup_irq holds desc->lock.\n"
+ "> +\t\302\240* The deadlock means that both are running on the same CPU what\n"
  "> should\n"
- "> +\t?* not happen as __setup_irq called raw_spin_lock_irqsave thus\n"
+ "> +\t\302\240* not happen as __setup_irq called raw_spin_lock_irqsave thus\n"
  "> disabling\n"
- "> +\t?* interrupts on this CPU.\n"
- "> +\t?* Work around this by ignoring interrupts in code protected by\n"
- "> +\t?* chip_bus_lock (__setup_irq/__free_irq for the respective GPIO\n"
+ "> +\t\302\240* interrupts on this CPU.\n"
+ "> +\t\302\240* Work around this by ignoring interrupts in code protected by\n"
+ "> +\t\302\240* chip_bus_lock (__setup_irq/__free_irq for the respective GPIO\n"
  "> hwirq).\n"
- "> +\t?*/\n"
+ "> +\t\302\240*/\n"
  "\n"
  "The explanation for this seems a bit weak. Even your comment say it does not\n"
  "make sense. I've never seen this 'spurious irq' during my test.\n"
@@ -189,7 +200,7 @@
  "> +}\n"
  "> +\n"
  "> +static int meson_gpio_alloc_irq_slot(struct irq_data *data, int num_slots,\n"
- "> +\t\t\t\t?????int *slots)\n"
+ "> +\t\t\t\t\302\240\302\240\302\240\302\240\302\240int *slots)\n"
  "> +{\n"
  "> +\tint i, cnt = 0;\n"
  "> +\n"
@@ -248,7 +259,7 @@
  "> +\tint shift = 8 * (idx % 4);\n"
  "> +\n"
  "> +\tregmap_update_bits(meson_gpio_irq_regmap, reg, 0xff << shift,\n"
- "> +\t\t\t???hwirq << shift);\n"
+ "> +\t\t\t\302\240\302\240\302\240hwirq << shift);\n"
  "> +}\n"
  "> +\n"
  "> +static void meson_gpio_irq_set_hwirq(struct irq_data *data, int hwirq)\n"
@@ -303,17 +314,17 @@
  "> +\t\tval |= REG_EDGE_POL_LOW(slots[0]);\n"
  "> +\n"
  "> +\tregmap_update_bits(meson_gpio_irq_regmap, REG_EDGE_POL,\n"
- "> +\t\t\t???REG_EDGE_POL_MASK(slots[0]), val);\n"
+ "> +\t\t\t\302\240\302\240\302\240REG_EDGE_POL_MASK(slots[0]), val);\n"
  "> +\n"
  "> +\t/*\n"
- "> +\t?* The chip can create an interrupt for either rising or falling edge\n"
- "> +\t?* only. Therefore use two interrupts in case of IRQ_TYPE_EDGE_BOTH,\n"
- "> +\t?* first for falling edge and second one for rising edge.\n"
- "> +\t?*/\n"
+ "> +\t\302\240* The chip can create an interrupt for either rising or falling edge\n"
+ "> +\t\302\240* only. Therefore use two interrupts in case of IRQ_TYPE_EDGE_BOTH,\n"
+ "> +\t\302\240* first for falling edge and second one for rising edge.\n"
+ "> +\t\302\240*/\n"
  "> +\tif (num_slots > 1) {\n"
  "> +\t\tval = REG_EDGE_POL_EDGE(slots[1]);\n"
  "> +\t\tregmap_update_bits(meson_gpio_irq_regmap, REG_EDGE_POL,\n"
- "> +\t\t\t\t???REG_EDGE_POL_MASK(slots[1]), val);\n"
+ "> +\t\t\t\t\302\240\302\240\302\240REG_EDGE_POL_MASK(slots[1]), val);\n"
  "> +\t}\n"
  "> +\n"
  "> +\tif (type & IRQ_TYPE_EDGE_BOTH)\n"
@@ -327,7 +338,7 @@
  "> +\t\tif (ret)\n"
  "> +\t\t\tbreak;\n"
  "> +\t\tret = request_irq(irq, meson_gpio_irq_handler, 0,\n"
- "> +\t\t\t\t??\"GPIO parent\", data);\n"
+ "> +\t\t\t\t\302\240\302\240\"GPIO parent\", data);\n"
  "It seems weird to use request_irq here. With the eventual reuqeste_irq in the\n"
  "consumer driver, wouldn't you end with to virq allocated for what is only on irq\n"
  "line really ?\n"
@@ -388,9 +399,9 @@
  "> +}\n"
  "> +\n"
  "> +static const struct regmap_config meson_gpio_regmap_config = {\n"
- "> +\t.reg_bits???????= 32,\n"
- "> +\t.reg_stride?????= 4,\n"
- "> +\t.val_bits???????= 32,\n"
+ "> +\t.reg_bits\302\240\302\240\302\240\302\240\302\240\302\240\302\240= 32,\n"
+ "> +\t.reg_stride\302\240\302\240\302\240\302\240\302\240= 4,\n"
+ "> +\t.val_bits\302\240\302\240\302\240\302\240\302\240\302\240\302\240= 32,\n"
  "> +\t.max_register\t= REG_FILTER_SEL,\n"
  "> +};\n"
  "> +\n"
@@ -446,36 +457,36 @@
  "> --- a/drivers/pinctrl/meson/pinctrl-meson.c\n"
  "> +++ b/drivers/pinctrl/meson/pinctrl-meson.c\n"
  "> @@ -62,6 +62,8 @@\n"
- "> ?#include \"../pinctrl-utils.h\"\n"
- "> ?#include \"pinctrl-meson.h\"\n"
- "> ?\n"
+ "> \302\240#include \"../pinctrl-utils.h\"\n"
+ "> \302\240#include \"pinctrl-meson.h\"\n"
+ "> \302\240\n"
  "> +struct irq_chip *meson_pinctrl_irq_chip;\n"
  "> +\n"
- "> ?/**\n"
- "> ? * meson_pinctrl_get_bank() - find the bank containing a given pin\n"
- "> ? *\n"
+ "> \302\240/**\n"
+ "> \302\240 * meson_pinctrl_get_bank() - find the bank containing a given pin\n"
+ "> \302\240 *\n"
  "> @@ -551,7 +553,8 @@ static int meson_gpiolib_register(struct meson_pinctrl\n"
  "> *pc)\n"
- "> ?\t\treturn ret;\n"
- "> ?\t}\n"
- "> ?\n"
+ "> \302\240\t\treturn ret;\n"
+ "> \302\240\t}\n"
+ "> \302\240\n"
  "> -\treturn 0;\n"
  "> +\treturn gpiochip_irqchip_add(&pc->chip, meson_pinctrl_irq_chip, 0,\n"
- "> +\t\t\t\t????handle_simple_irq, IRQ_TYPE_NONE);\n"
- "> ?}\n"
- "> ?\n"
- "> ?static struct regmap_config meson_regmap_config = {\n"
+ "> +\t\t\t\t\302\240\302\240\302\240\302\240handle_simple_irq, IRQ_TYPE_NONE);\n"
+ "> \302\240}\n"
+ "> \302\240\n"
+ "> \302\240static struct regmap_config meson_regmap_config = {\n"
  "> @@ -640,6 +643,9 @@ static int meson_pinctrl_probe(struct platform_device\n"
  "> *pdev)\n"
- "> ?\tstruct meson_pinctrl *pc;\n"
- "> ?\tint ret;\n"
- "> ?\n"
+ "> \302\240\tstruct meson_pinctrl *pc;\n"
+ "> \302\240\tint ret;\n"
+ "> \302\240\n"
  "> +\tif (!meson_pinctrl_irq_chip)\n"
  "> +\t\treturn -EPROBE_DEFER;\n"
  "> +\n"
- "> ?\tpc = devm_kzalloc(dev, sizeof(struct meson_pinctrl), GFP_KERNEL);\n"
- "> ?\tif (!pc)\n"
- "> ?\t\treturn -ENOMEM;\n"
+ "> \302\240\tpc = devm_kzalloc(dev, sizeof(struct meson_pinctrl), GFP_KERNEL);\n"
+ "> \302\240\tif (!pc)\n"
+ "> \302\240\t\treturn -ENOMEM;\n"
  "> diff --git a/drivers/pinctrl/meson/pinctrl-meson.h\n"
  "> b/drivers/pinctrl/meson/pinctrl-meson.h\n"
  "> index 40b56aff..16aab328 100644\n"
@@ -483,12 +494,16 @@
  "> +++ b/drivers/pinctrl/meson/pinctrl-meson.h\n"
  "> @@ -176,6 +176,7 @@ extern struct meson_pinctrl_data\n"
  "> meson_gxbb_periphs_pinctrl_data;\n"
- "> ?extern struct meson_pinctrl_data meson_gxbb_aobus_pinctrl_data;\n"
- "> ?extern struct meson_pinctrl_data meson_gxl_periphs_pinctrl_data;\n"
- "> ?extern struct meson_pinctrl_data meson_gxl_aobus_pinctrl_data;\n"
+ "> \302\240extern struct meson_pinctrl_data meson_gxbb_aobus_pinctrl_data;\n"
+ "> \302\240extern struct meson_pinctrl_data meson_gxl_periphs_pinctrl_data;\n"
+ "> \302\240extern struct meson_pinctrl_data meson_gxl_aobus_pinctrl_data;\n"
  "> +extern struct irq_chip *meson_pinctrl_irq_chip;\n"
- "> ?\n"
- "> ?struct meson_bank *meson_pinctrl_get_bank(const struct meson_pinctrl *pc,\n"
- "> ?\t\t\t\t\t??unsigned int pin);"
+ "> \302\240\n"
+ "> \302\240struct meson_bank *meson_pinctrl_get_bank(const struct meson_pinctrl *pc,\n"
+ "> \302\240\t\t\t\t\t\302\240\302\240unsigned int pin);\n"
+ "--\n"
+ "To unsubscribe from this list: send the line \"unsubscribe devicetree\" in\n"
+ "the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org\n"
+ More majordomo info at  http://vger.kernel.org/majordomo-info.html
 
-1645c3bcd58897ad460700caef2e04660cdc59cbf45a975831e46e1481f55578
+8822b1416477e61afb5e39c19029931bd2d97bd50bbd6a72b1b6bf801784c574

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.