All of lore.kernel.org
 help / color / mirror / Atom feed
From: khilman@baylibre.com (Kevin Hilman)
To: linus-amlogic@lists.infradead.org
Subject: [PATCH v6 2/9] irqchip: add Amlogic Meson GPIO irqchip driver
Date: Fri, 09 Jun 2017 16:30:07 -0700	[thread overview]
Message-ID: <m2tw3o4u4g.fsf@baylibre.com> (raw)
In-Reply-To: <702e4608-8592-41fe-b79c-fef985c49be7@gmail.com> (Heiner Kallweit's message of "Sat, 10 Jun 2017 00:30:14 +0200")

Heiner Kallweit <hkallweit1@gmail.com> writes:

> Am 09.06.2017 um 23:15 schrieb Kevin Hilman:
>> Jerome Brunet <jbrunet@baylibre.com> writes:
>> 
>>> On Thu, 2017-06-08 at 21:38 +0200, Heiner Kallweit wrote:
>>>> Add a driver supporting the GPIO interrupt controller on certain
>>>> Amlogic meson SoC's.
>>>>
>>>> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
>> 
>> [...]
>> 
>>>> +static unsigned int meson_irq_startup(struct irq_data *data)
>>>> +{
>>>> +	irq_chip_unmask_parent(data);
>>>> +	/*
>>>> +	 * An extra bit was added to allow having the same gpio hwirq twice
>>>> +	 * for handling IRQ_TYPE_EDGE_BOTH. Remove this bit to get the
>>>> +	 * gpio hwirq.
>>>> +	 */
>>>> +	meson_irq_set_hwirq(data, data->hwirq >> 1);
>>>
>>> Please keep in mind that any device can use this controller as irq parent.
>>> It has to make sense, even when not serving the gpio driver.
>>>
>>> This hack means that, in DT, we'd have to multiply by 2 the values given under
>>> section "22.3 GPIO interrupts" of the datasheet. This is an example Linux
>>> specific stuff in DT.
>>> It also means that the controller declares a lot more lines that it really has
>>> ... 
>>>
>>> This is all to accommodate your hack around IRQ_TYPE_BOTH and creating the
>>> mapping from the irq_set_type callback of the GPIO driver, which is still think
>>> should be dropped at this point.
>> 
>> +1
>> 
>> Please drop the hack for IRQ_TYPE_BOTH so we can reach agreement on the
>> basic design and functionality.  The gymnastics required to support this
>> hack (due to broken hardware) are getting in the way of getting basic
>> functionality merged.
>> 
> I haven't heard any feedback on the other proposal yet:
> Always reserve two parent irq's in the request_resources callback,
> then set_type is easy. How about this one?

The feedback is the same: let's consider that after getting the basics
reviewed, accepted and merged.

> Having max. 4 gpio irq's should be a fair price for a cleaner design.

Yuck, but better than no support for both _BOTH I guess.

But again, discussion of hacks for the hardware limitation is getting in
the way discussing and merging the basics.  Let's get the basics right
first, then add functionality.  

I understand it can be rather frustrating to give up features and/or
functionality for having something "clean", but unfortunately, that's
how the upstream linux kernel community has always worked.

Most maintainers prefer clean, well-designed and maintainable code that
comes in small, easily reviewable chunks over something that's difficult
to understand with hacks and workarounds.  Even if that means a limited
feature set initially.

Additional functionality (even if hacky) is much easier to review,
discuss and maintain *later* when it's on top of a starting point that
is clean.

Kevin

WARNING: multiple messages have this Message-ID (diff)
From: Kevin Hilman <khilman@baylibre.com>
To: Heiner Kallweit <hkallweit1@gmail.com>
Cc: Jerome Brunet <jbrunet@baylibre.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Marc Zyngier <marc.zyngier@arm.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Rob Herring <robh@kernel.org>,
	Neil Armstrong <narmstrong@baylibre.com>,
	devicetree@vger.kernel.org, linux-amlogic@lists.infradead.org,
	linux-gpio@vger.kernel.org,
	"thierry.reding@gmail.com" <thierry.reding@gmail.com>,
	Thierry Reding <treding@nvidia.com>
Subject: Re: [PATCH v6 2/9] irqchip: add Amlogic Meson GPIO irqchip driver
Date: Fri, 09 Jun 2017 16:30:07 -0700	[thread overview]
Message-ID: <m2tw3o4u4g.fsf@baylibre.com> (raw)
In-Reply-To: <702e4608-8592-41fe-b79c-fef985c49be7@gmail.com> (Heiner Kallweit's message of "Sat, 10 Jun 2017 00:30:14 +0200")

Heiner Kallweit <hkallweit1@gmail.com> writes:

> Am 09.06.2017 um 23:15 schrieb Kevin Hilman:
>> Jerome Brunet <jbrunet@baylibre.com> writes:
>> 
>>> On Thu, 2017-06-08 at 21:38 +0200, Heiner Kallweit wrote:
>>>> Add a driver supporting the GPIO interrupt controller on certain
>>>> Amlogic meson SoC's.
>>>>
>>>> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
>> 
>> [...]
>> 
>>>> +static unsigned int meson_irq_startup(struct irq_data *data)
>>>> +{
>>>> +	irq_chip_unmask_parent(data);
>>>> +	/*
>>>> +	 * An extra bit was added to allow having the same gpio hwirq twice
>>>> +	 * for handling IRQ_TYPE_EDGE_BOTH. Remove this bit to get the
>>>> +	 * gpio hwirq.
>>>> +	 */
>>>> +	meson_irq_set_hwirq(data, data->hwirq >> 1);
>>>
>>> Please keep in mind that any device can use this controller as irq parent.
>>> It has to make sense, even when not serving the gpio driver.
>>>
>>> This hack means that, in DT, we'd have to multiply by 2 the values given under
>>> section "22.3 GPIO interrupts" of the datasheet. This is an example Linux
>>> specific stuff in DT.
>>> It also means that the controller declares a lot more lines that it really has
>>> ... 
>>>
>>> This is all to accommodate your hack around IRQ_TYPE_BOTH and creating the
>>> mapping from the irq_set_type callback of the GPIO driver, which is still think
>>> should be dropped at this point.
>> 
>> +1
>> 
>> Please drop the hack for IRQ_TYPE_BOTH so we can reach agreement on the
>> basic design and functionality.  The gymnastics required to support this
>> hack (due to broken hardware) are getting in the way of getting basic
>> functionality merged.
>> 
> I haven't heard any feedback on the other proposal yet:
> Always reserve two parent irq's in the request_resources callback,
> then set_type is easy. How about this one?

The feedback is the same: let's consider that after getting the basics
reviewed, accepted and merged.

> Having max. 4 gpio irq's should be a fair price for a cleaner design.

Yuck, but better than no support for both _BOTH I guess.

But again, discussion of hacks for the hardware limitation is getting in
the way discussing and merging the basics.  Let's get the basics right
first, then add functionality.  

I understand it can be rather frustrating to give up features and/or
functionality for having something "clean", but unfortunately, that's
how the upstream linux kernel community has always worked.

Most maintainers prefer clean, well-designed and maintainable code that
comes in small, easily reviewable chunks over something that's difficult
to understand with hacks and workarounds.  Even if that means a limited
feature set initially.

Additional functionality (even if hacky) is much easier to review,
discuss and maintain *later* when it's on top of a starting point that
is clean.

Kevin

  reply	other threads:[~2017-06-09 23:30 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-08 19:14 [PATCH v6 0/9] pinctrl: meson: add support for GPIO IRQs Heiner Kallweit
2017-06-08 19:14 ` Heiner Kallweit
2017-06-08 19:37 ` [PATCH v6 1/9] pinctrl: meson: add interrupts to pinctrl data Heiner Kallweit
2017-06-08 19:37   ` Heiner Kallweit
2017-06-09  7:30   ` Linus Walleij
2017-06-09  7:30     ` Linus Walleij
2017-06-08 19:38 ` [PATCH v6 2/9] irqchip: add Amlogic Meson GPIO irqchip driver Heiner Kallweit
2017-06-08 19:38   ` Heiner Kallweit
2017-06-09  7:31   ` Linus Walleij
2017-06-09  7:31     ` Linus Walleij
2017-06-09  9:07   ` Jerome Brunet
2017-06-09  9:07     ` Jerome Brunet
2017-06-09 18:38     ` Heiner Kallweit
2017-06-09 18:38       ` Heiner Kallweit
2017-06-09 21:15     ` Kevin Hilman
2017-06-09 21:15       ` Kevin Hilman
2017-06-09 22:30       ` Heiner Kallweit
2017-06-09 22:30         ` Heiner Kallweit
2017-06-09 23:30         ` Kevin Hilman [this message]
2017-06-09 23:30           ` Kevin Hilman
2017-06-08 19:38 ` [PATCH v6 3/9] dt-bindings: add Amlogic Meson GPIO interrupt-controller DT binding documentation Heiner Kallweit
2017-06-08 19:38   ` Heiner Kallweit
2017-06-08 19:38 ` [PATCH v6 4/9] ARM: dts: meson: add GPIO interrupt-controller support Heiner Kallweit
2017-06-08 19:38   ` Heiner Kallweit
2017-06-08 19:39 ` [PATCH v6 5/9] ARM64: " Heiner Kallweit
2017-06-08 19:39   ` Heiner Kallweit
2017-06-08 19:39 ` [PATCH v6 6/9] pinctrl: meson: add support for GPIO interrupts Heiner Kallweit
2017-06-08 19:39   ` Heiner Kallweit
2017-06-09  9:06   ` Jerome Brunet
2017-06-09  9:06     ` Jerome Brunet
2017-06-09 18:09     ` Heiner Kallweit
2017-06-09 18:09       ` Heiner Kallweit
2017-06-08 19:39 ` [PATCH v6 7/9] pinctrl: meson: update DT binding documentation Heiner Kallweit
2017-06-08 19:39   ` Heiner Kallweit
2017-06-08 19:39 ` [PATCH v6 8/9] ARM: dts: meson: mark gpio controllers as interrupt controllers Heiner Kallweit
2017-06-08 19:39   ` Heiner Kallweit
2017-06-08 19:39 ` [PATCH v6 9/9] ARM64: " Heiner Kallweit
2017-06-08 19:39   ` Heiner Kallweit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2tw3o4u4g.fsf@baylibre.com \
    --to=khilman@baylibre.com \
    --cc=linus-amlogic@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.