All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergey Shtylyov <s.shtylyov@omp.ru>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: "Andrew Lunn" <andrew@lunn.ch>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Vignesh Raghavendra" <vigneshr@ti.com>,
	"KVM list" <kvm@vger.kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	linux-iio@vger.kernel.org,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Amit Kucheria" <amitk@kernel.org>,
	"ALSA Development Mailing List" <alsa-devel@alsa-project.org>,
	"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
	"Guenter Roeck" <groeck@chromium.org>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"MTD Maling List" <linux-mtd@lists.infradead.org>,
	"Linux I2C" <linux-i2c@vger.kernel.org>,
	"Miquel Raynal" <miquel.raynal@bootlin.com>,
	linux-phy@lists.infradead.org,
	"Jiri Slaby" <jirislaby@kernel.org>,
	openipmi-developer@lists.sourceforge.net,
	"Khuong Dinh" <khuong@os.amperecomputing.com>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Matthias Schiffer" <matthias.schiffer@ew.tq-group.com>,
	"Joakim Zhang" <qiangqing.zhang@nxp.com>,
	"Kamal Dasu" <kdasu.kdev@gmail.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Lee Jones" <lee.jones@linaro.org>,
	"Bartosz Golaszewski" <brgl@bgdev.pl>,
	"Daniel Lezcano" <daniel.lezcano@linaro.org>,
	"Kishon Vijay Abraham I" <kishon@ti.com>,
	"Geert Uytterhoeven" <geert@linux-m68k.org>,
	"open list:SERIAL DRIVERS" <linux-serial@vger.kernel.org>,
	bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>,
	"Zhang Rui" <rui.zhang@intel.com>,
	"Linux PWM List" <linux-pwm@vger.kernel.org>,
	"Robert Richter" <rric@kernel.org>,
	"Saravanan Sekar" <sravanhome@gmail.com>,
	"Corey Minyard" <minyard@acm.org>,
	"Linux PM list" <linux-pm@vger.kernel.org>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"John Garry" <john.garry@huawei.com>,
	"Peter Korsgaard" <peter@korsgaard.com>,
	"William Breathitt Gray" <vilhelm.gray@gmail.com>,
	"Mark Gross" <markgross@kernel.org>,
	"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Borislav Petkov" <bp@alien8.de>,
	"Sebastian Reichel" <sre@kernel.org>,
	"Eric Auger" <eric.auger@redhat.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"Takashi Iwai" <tiwai@suse.com>,
	platform-driver-x86@vger.kernel.org,
	"Benson Leung" <bleung@chromium.org>,
	"Linux ARM" <linux-arm-kernel@lists.infradead.org>,
	linux-edac@vger.kernel.org, "Tony Luck" <tony.luck@intel.com>,
	"Mun Yew Tham" <mun.yew.tham@intel.com>,
	"Hans de Goede" <hdegoede@redhat.com>,
	netdev@vger.kernel.org,
	"Yoshihiro Shimoda" <yoshihiro.shimoda.uh@renesas.com>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Linux MMC List" <linux-mmc@vger.kernel.org>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	linux-spi <linux-spi@vger.kernel.org>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	"Vinod Koul" <vkoul@kernel.org>,
	"James Morse" <james.morse@arm.com>,
	"Zha Qipeng" <qipeng.zha@intel.com>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Richard Weinberger" <richard@nod.at>,
	"Niklas Söderlund" <niklas.soderlund@ragnatech.se>,
	linux-mediatek@lists.infradead.org,
	"Brian Norris" <computersforpeace@gmail.com>,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH 1/2] platform: make platform_get_irq_optional() optional
Date: Tue, 18 Jan 2022 23:21:45 +0300	[thread overview]
Message-ID: <68d3bb7a-7572-7495-d295-e1d512ef509e@omp.ru> (raw)
In-Reply-To: <20220117084732.cdy2sash5hxp4lwo@pengutronix.de>

Hello!

On 1/17/22 11:47 AM, Uwe Kleine-König wrote:

[...]
>>>>>>>>> To me it sounds much more logical for the driver to check if an
>>>>>>>>> optional irq is non-zero (available) or zero (not available), than to
>>>>>>>>> sprinkle around checks for -ENXIO. In addition, you have to remember
>>>>>>>>> that this one returns -ENXIO, while other APIs use -ENOENT or -ENOSYS
>>>>>>>>> (or some other error code) to indicate absence. I thought not having
>>>>>>>>> to care about the actual error code was the main reason behind the
>>>>>>>>> introduction of the *_optional() APIs.
>>>>>>>
>>>>>>>> No, the main benefit of gpiod_get_optional() (and clk_get_optional()) is
>>>>>>>> that you can handle an absent GPIO (or clk) as if it were available.
>>>>>>
>>>>>>    Hm, I've just looked at these and must note that they match 1:1 with
>>>>>> platform_get_irq_optional(). Unfortunately, we can't however behave the
>>>>>> same way in request_irq() -- because it has to support IRQ0 for the sake
>>>>>> of i8253 drivers in arch/...
>>>>>
>>>>> Let me reformulate your statement to the IMHO equivalent:
>>>>>
>>>>> 	If you set aside the differences between
>>>>> 	platform_get_irq_optional() and gpiod_get_optional(),
>>>>
>>>>    Sorry, I should make it clear this is actually the diff between a would-be
>>>> platform_get_irq_optional() after my patch, not the current code...
>>>
>>> The similarity is that with your patch both gpiod_get_optional() and
>>> platform_get_irq_optional() return NULL and 0 on not-found. The relevant
>>> difference however is that for a gpiod NULL is a dummy value, while for
>>> irqs it's not. So the similarity is only syntactically, but not
>>> semantically.
>>
>>    I have noting to say here, rather than optional IRQ could well have a different
>> meaning than for clk/gpio/etc.
>>
>> [...]
>>>>> However for an interupt this cannot work. You will always have to check
>>>>> if the irq is actually there or not because if it's not you cannot just
>>>>> ignore that. So there is no benefit of an optional irq.
>>>>>
>>>>> Leaving error message reporting aside, the introduction of
>>>>> platform_get_irq_optional() allows to change
>>>>>
>>>>> 	irq = platform_get_irq(...);
>>>>> 	if (irq < 0 && irq != -ENXIO) {
>>>>> 		return irq;
>>>>> 	} else if (irq >= 0) {
>>>>
>>>>    Rather (irq > 0) actually, IRQ0 is considered invalid (but still returned).
>>>
>>> This is a topic I don't feel strong for, so I'm sloppy here. If changing
>>> this is all that is needed to convince you of my point ...
>>
>>    Note that we should absolutely (and first of all) stop returning 0 from platform_get_irq()
>> on a "real" IRQ0. Handling that "still good" zero absolutely doesn't scale e.g. for the subsystems
>> (like libata) which take 0 as an indication that the polling mode should be used... We can't afford
>> to be sloppy here. ;-)
> 
> Then maybe do that really first?

   I'm doing it first already:

https://lore.kernel.org/all/5e001ec1-d3f1-bcb8-7f30-a6301fd9930c@omp.ru/

   This series is atop of the above patch...

> I didn't recheck, but is this what the
> driver changes in your patch is about?

   Partly, yes. We can afford to play with the meaning of 0 after the above patch.

> After some more thoughts I wonder if your focus isn't to align
> platform_get_irq_optional to (clk|gpiod|regulator)_get_optional, but to
> simplify return code checking. Because with your change we have:
> 
>  - < 0 -> error
>  - == 0 -> no irq
>  - > 0 -> irq

   Mainly, yes. That's why the code examples were given in the description.

> For my part I'd say this doesn't justify the change, but at least I
> could better life with the reasoning. If you start at:
> 
> 	irq = platform_get_irq_optional(...)
> 	if (irq < 0 && irq != -ENXIO)
> 		return irq
> 	else if (irq > 0)
> 		setup_irq(irq);
> 	else
> 		setup_polling()
> 
> I'd change that to
> 
> 	irq = platform_get_irq_optional(...)
> 	if (irq > 0) /* or >= 0 ? */

   Not >= 0, no...

> 		setup_irq(irq)
> 	else if (irq == -ENXIO)
> 		setup_polling()
> 	else
> 		return irq
> 
> This still has to mention -ENXIO, but this is ok and checking for 0 just
> hardcodes a different return value.

   I think comparing with 0 is simpler (and shorter) than with -ENXIO, if you
consider the RISC CPUs, like e.g. MIPS...

> Anyhow, I think if you still want to change platform_get_irq_optional
> you should add a few patches converting some drivers which demonstrates
> the improvement for the callers.

   Mhm, I did include all the drivers where the IRQ checks have to be modified,
not sure what else you want me to touch...

> Best regards
> Uwe

MBR, Sergey

WARNING: multiple messages have this Message-ID (diff)
From: Sergey Shtylyov <s.shtylyov@omp.ru>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: "Andrew Lunn" <andrew@lunn.ch>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Vignesh Raghavendra" <vigneshr@ti.com>,
	"KVM list" <kvm@vger.kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	linux-iio@vger.kernel.org,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Amit Kucheria" <amitk@kernel.org>,
	"ALSA Development Mailing List" <alsa-devel@alsa-project.org>,
	"Jaroslav Kysela" <perex@perex.cz>,
	"Guenter Roeck" <groeck@chromium.org>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"MTD Maling List" <linux-mtd@lists.infradead.org>,
	"Linux I2C" <linux-i2c@vger.kernel.org>,
	"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	"Miquel Raynal" <miquel.raynal@bootlin.com>,
	linux-phy@lists.infradead.org, netdev@vger.kernel.org,
	linux-spi <linux-spi@vger.kernel.org>,
	"Jiri Slaby" <jirislaby@kernel.org>,
	"Khuong Dinh" <khuong@os.amperecomputing.com>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Matthias Schiffer" <matthias.schiffer@ew.tq-group.com>,
	"Kamal Dasu" <kdasu.kdev@gmail.com>,
	"Lee Jones" <lee.jones@linaro.org>,
	"Bartosz Golaszewski" <brgl@bgdev.pl>,
	"Daniel Lezcano" <daniel.lezcano@linaro.org>,
	"Kishon Vijay Abraham I" <kishon@ti.com>,
	"Geert Uytterhoeven" <geert@linux-m68k.org>,
	"open list:SERIAL DRIVERS" <linux-serial@vger.kernel.org>,
	bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>,
	"Zhang Rui" <rui.zhang@intel.com>,
	platform-driver-x86@vger.kernel.org,
	"Linux PWM List" <linux-pwm@vger.kernel.org>,
	"Robert Richter" <rric@kernel.org>,
	"Saravanan Sekar" <sravanhome@gmail.com>,
	"Corey Minyard" <minyard@acm.org>,
	"Linux PM list" <linux-pm@vger.kernel.org>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"John Garry" <john.garry@huawei.com>,
	"Takashi Iwai" <tiwai@suse.com>,
	"Peter Korsgaard" <peter@korsgaard.com>,
	"William Breathitt Gray" <vilhelm.gray@gmail.com>,
	"Mark Gross" <markgross@kernel.org>,
	"Hans de Goede" <hdegoede@redhat.com>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Borislav Petkov" <bp@alien8.de>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	openipmi-developer@lists.sourceforge.net,
	"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
	"Benson Leung" <bleung@chromium.org>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Linux ARM" <linux-arm-kernel@lists.infradead.org>,
	linux-edac@vger.kernel.org, "Tony Luck" <tony.luck@intel.com>,
	"Richard Weinberger" <richard@nod.at>,
	"Mun Yew Tham" <mun.yew.tham@intel.com>,
	"Eric Auger" <eric.auger@redhat.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Yoshihiro Shimoda" <yoshihiro.shimoda.uh@renesas.com>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Linux MMC List" <linux-mmc@vger.kernel.org>,
	"Joakim Zhang" <qiangqing.zhang@nxp.com>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	"Vinod Koul" <vkoul@kernel.org>,
	"James Morse" <james.morse@arm.com>,
	"Zha Qipeng" <qipeng.zha@intel.com>,
	"Sebastian Reichel" <sre@kernel.org>,
	"Niklas Söderlund" <niklas.soderlund@ragnatech.se>,
	linux-mediatek@lists.infradead.org,
	"Brian Norris" <computersforpeace@gmail.com>,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH 1/2] platform: make platform_get_irq_optional() optional
Date: Tue, 18 Jan 2022 23:21:45 +0300	[thread overview]
Message-ID: <68d3bb7a-7572-7495-d295-e1d512ef509e@omp.ru> (raw)
In-Reply-To: <20220117084732.cdy2sash5hxp4lwo@pengutronix.de>

Hello!

On 1/17/22 11:47 AM, Uwe Kleine-König wrote:

[...]
>>>>>>>>> To me it sounds much more logical for the driver to check if an
>>>>>>>>> optional irq is non-zero (available) or zero (not available), than to
>>>>>>>>> sprinkle around checks for -ENXIO. In addition, you have to remember
>>>>>>>>> that this one returns -ENXIO, while other APIs use -ENOENT or -ENOSYS
>>>>>>>>> (or some other error code) to indicate absence. I thought not having
>>>>>>>>> to care about the actual error code was the main reason behind the
>>>>>>>>> introduction of the *_optional() APIs.
>>>>>>>
>>>>>>>> No, the main benefit of gpiod_get_optional() (and clk_get_optional()) is
>>>>>>>> that you can handle an absent GPIO (or clk) as if it were available.
>>>>>>
>>>>>>    Hm, I've just looked at these and must note that they match 1:1 with
>>>>>> platform_get_irq_optional(). Unfortunately, we can't however behave the
>>>>>> same way in request_irq() -- because it has to support IRQ0 for the sake
>>>>>> of i8253 drivers in arch/...
>>>>>
>>>>> Let me reformulate your statement to the IMHO equivalent:
>>>>>
>>>>> 	If you set aside the differences between
>>>>> 	platform_get_irq_optional() and gpiod_get_optional(),
>>>>
>>>>    Sorry, I should make it clear this is actually the diff between a would-be
>>>> platform_get_irq_optional() after my patch, not the current code...
>>>
>>> The similarity is that with your patch both gpiod_get_optional() and
>>> platform_get_irq_optional() return NULL and 0 on not-found. The relevant
>>> difference however is that for a gpiod NULL is a dummy value, while for
>>> irqs it's not. So the similarity is only syntactically, but not
>>> semantically.
>>
>>    I have noting to say here, rather than optional IRQ could well have a different
>> meaning than for clk/gpio/etc.
>>
>> [...]
>>>>> However for an interupt this cannot work. You will always have to check
>>>>> if the irq is actually there or not because if it's not you cannot just
>>>>> ignore that. So there is no benefit of an optional irq.
>>>>>
>>>>> Leaving error message reporting aside, the introduction of
>>>>> platform_get_irq_optional() allows to change
>>>>>
>>>>> 	irq = platform_get_irq(...);
>>>>> 	if (irq < 0 && irq != -ENXIO) {
>>>>> 		return irq;
>>>>> 	} else if (irq >= 0) {
>>>>
>>>>    Rather (irq > 0) actually, IRQ0 is considered invalid (but still returned).
>>>
>>> This is a topic I don't feel strong for, so I'm sloppy here. If changing
>>> this is all that is needed to convince you of my point ...
>>
>>    Note that we should absolutely (and first of all) stop returning 0 from platform_get_irq()
>> on a "real" IRQ0. Handling that "still good" zero absolutely doesn't scale e.g. for the subsystems
>> (like libata) which take 0 as an indication that the polling mode should be used... We can't afford
>> to be sloppy here. ;-)
> 
> Then maybe do that really first?

   I'm doing it first already:

https://lore.kernel.org/all/5e001ec1-d3f1-bcb8-7f30-a6301fd9930c@omp.ru/

   This series is atop of the above patch...

> I didn't recheck, but is this what the
> driver changes in your patch is about?

   Partly, yes. We can afford to play with the meaning of 0 after the above patch.

> After some more thoughts I wonder if your focus isn't to align
> platform_get_irq_optional to (clk|gpiod|regulator)_get_optional, but to
> simplify return code checking. Because with your change we have:
> 
>  - < 0 -> error
>  - == 0 -> no irq
>  - > 0 -> irq

   Mainly, yes. That's why the code examples were given in the description.

> For my part I'd say this doesn't justify the change, but at least I
> could better life with the reasoning. If you start at:
> 
> 	irq = platform_get_irq_optional(...)
> 	if (irq < 0 && irq != -ENXIO)
> 		return irq
> 	else if (irq > 0)
> 		setup_irq(irq);
> 	else
> 		setup_polling()
> 
> I'd change that to
> 
> 	irq = platform_get_irq_optional(...)
> 	if (irq > 0) /* or >= 0 ? */

   Not >= 0, no...

> 		setup_irq(irq)
> 	else if (irq == -ENXIO)
> 		setup_polling()
> 	else
> 		return irq
> 
> This still has to mention -ENXIO, but this is ok and checking for 0 just
> hardcodes a different return value.

   I think comparing with 0 is simpler (and shorter) than with -ENXIO, if you
consider the RISC CPUs, like e.g. MIPS...

> Anyhow, I think if you still want to change platform_get_irq_optional
> you should add a few patches converting some drivers which demonstrates
> the improvement for the callers.

   Mhm, I did include all the drivers where the IRQ checks have to be modified,
not sure what else you want me to touch...

> Best regards
> Uwe

MBR, Sergey

WARNING: multiple messages have this Message-ID (diff)
From: Sergey Shtylyov <s.shtylyov@omp.ru>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: "Andrew Lunn" <andrew@lunn.ch>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Vignesh Raghavendra" <vigneshr@ti.com>,
	"KVM list" <kvm@vger.kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	linux-iio@vger.kernel.org,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Amit Kucheria" <amitk@kernel.org>,
	"ALSA Development Mailing List" <alsa-devel@alsa-project.org>,
	"Jaroslav Kysela" <perex@perex.cz>,
	"Guenter Roeck" <groeck@chromium.org>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"MTD Maling List" <linux-mtd@lists.infradead.org>,
	"Linux I2C" <linux-i2c@vger.kernel.org>,
	"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	"Miquel Raynal" <miquel.raynal@bootlin.com>,
	linux-phy@lists.infradead.org, netdev@vger.kernel.org,
	linux-spi <linux-spi@vger.kernel.org>,
	"Jiri Slaby" <jirislaby@kernel.org>,
	"Khuong Dinh" <khuong@os.amperecomputing.com>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Matthias Schiffer" <matthias.schiffer@ew.tq-group.com>,
	"Kamal Dasu" <kdasu.kdev@gmail.com>,
	"Lee Jones" <lee.jones@linaro.org>,
	"Bartosz Golaszewski" <brgl@bgdev.pl>,
	"Daniel Lezcano" <daniel.lezcano@linaro.org>,
	"Kishon Vijay Abraham I" <kishon@ti.com>,
	"Geert Uytterhoeven" <geert@linux-m68k.org>,
	"open list:SERIAL DRIVERS" <linux-serial@vger.kernel.org>,
	bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>,
	"Zhang Rui" <rui.zhang@intel.com>,
	platform-driver-x86@vger.kernel.org,
	"Linux PWM List" <linux-pwm@vger.kernel.org>,
	"Robert Richter" <rric@kernel.org>,
	"Saravanan Sekar" <sravanhome@gmail.com>,
	"Corey Minyard" <minyard@acm.org>,
	"Linux PM list" <linux-pm@vger.kernel.org>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"John Garry" <john.garry@huawei.com>,
	"Takashi Iwai" <tiwai@suse.com>,
	"Peter Korsgaard" <peter@korsgaard.com>,
	"William Breathitt Gray" <vilhelm.gray@gmail.com>,
	"Mark Gross" <markgross@kernel.org>,
	"Hans de Goede" <hdegoede@redhat.com>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Borislav Petkov" <bp@alien8.de>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	openipmi-developer@lists.sourceforge.net,
	"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
	"Benson Leung" <bleung@chromium.org>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Linux ARM" <linux-arm-kernel@lists.infradead.org>,
	linux-edac@vger.kernel.org, "Tony Luck" <tony.luck@intel.com>,
	"Richard Weinberger" <richard@nod.at>,
	"Mun Yew Tham" <mun.yew.tham@intel.com>,
	"Eric Auger" <eric.auger@redhat.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Yoshihiro Shimoda" <yoshihiro.shimoda.uh@renesas.com>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Linux MMC List" <linux-mmc@vger.kernel.org>,
	"Joakim Zhang" <qiangqing.zhang@nxp.com>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	"Vinod Koul" <vkoul@kernel.org>,
	"James Morse" <james.morse@arm.com>,
	"Zha Qipeng" <qipeng.zha@intel.com>,
	"Sebastian Reichel" <sre@kernel.org>,
	"Niklas Söderlund" <niklas.soderlund@ragnatech.se>,
	linux-mediatek@lists.infradead.org,
	"Brian Norris" <computersforpeace@gmail.com>,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH 1/2] platform: make platform_get_irq_optional() optional
Date: Tue, 18 Jan 2022 23:21:45 +0300	[thread overview]
Message-ID: <68d3bb7a-7572-7495-d295-e1d512ef509e@omp.ru> (raw)
In-Reply-To: <20220117084732.cdy2sash5hxp4lwo@pengutronix.de>

Hello!

On 1/17/22 11:47 AM, Uwe Kleine-König wrote:

[...]
>>>>>>>>> To me it sounds much more logical for the driver to check if an
>>>>>>>>> optional irq is non-zero (available) or zero (not available), than to
>>>>>>>>> sprinkle around checks for -ENXIO. In addition, you have to remember
>>>>>>>>> that this one returns -ENXIO, while other APIs use -ENOENT or -ENOSYS
>>>>>>>>> (or some other error code) to indicate absence. I thought not having
>>>>>>>>> to care about the actual error code was the main reason behind the
>>>>>>>>> introduction of the *_optional() APIs.
>>>>>>>
>>>>>>>> No, the main benefit of gpiod_get_optional() (and clk_get_optional()) is
>>>>>>>> that you can handle an absent GPIO (or clk) as if it were available.
>>>>>>
>>>>>>    Hm, I've just looked at these and must note that they match 1:1 with
>>>>>> platform_get_irq_optional(). Unfortunately, we can't however behave the
>>>>>> same way in request_irq() -- because it has to support IRQ0 for the sake
>>>>>> of i8253 drivers in arch/...
>>>>>
>>>>> Let me reformulate your statement to the IMHO equivalent:
>>>>>
>>>>> 	If you set aside the differences between
>>>>> 	platform_get_irq_optional() and gpiod_get_optional(),
>>>>
>>>>    Sorry, I should make it clear this is actually the diff between a would-be
>>>> platform_get_irq_optional() after my patch, not the current code...
>>>
>>> The similarity is that with your patch both gpiod_get_optional() and
>>> platform_get_irq_optional() return NULL and 0 on not-found. The relevant
>>> difference however is that for a gpiod NULL is a dummy value, while for
>>> irqs it's not. So the similarity is only syntactically, but not
>>> semantically.
>>
>>    I have noting to say here, rather than optional IRQ could well have a different
>> meaning than for clk/gpio/etc.
>>
>> [...]
>>>>> However for an interupt this cannot work. You will always have to check
>>>>> if the irq is actually there or not because if it's not you cannot just
>>>>> ignore that. So there is no benefit of an optional irq.
>>>>>
>>>>> Leaving error message reporting aside, the introduction of
>>>>> platform_get_irq_optional() allows to change
>>>>>
>>>>> 	irq = platform_get_irq(...);
>>>>> 	if (irq < 0 && irq != -ENXIO) {
>>>>> 		return irq;
>>>>> 	} else if (irq >= 0) {
>>>>
>>>>    Rather (irq > 0) actually, IRQ0 is considered invalid (but still returned).
>>>
>>> This is a topic I don't feel strong for, so I'm sloppy here. If changing
>>> this is all that is needed to convince you of my point ...
>>
>>    Note that we should absolutely (and first of all) stop returning 0 from platform_get_irq()
>> on a "real" IRQ0. Handling that "still good" zero absolutely doesn't scale e.g. for the subsystems
>> (like libata) which take 0 as an indication that the polling mode should be used... We can't afford
>> to be sloppy here. ;-)
> 
> Then maybe do that really first?

   I'm doing it first already:

https://lore.kernel.org/all/5e001ec1-d3f1-bcb8-7f30-a6301fd9930c@omp.ru/

   This series is atop of the above patch...

> I didn't recheck, but is this what the
> driver changes in your patch is about?

   Partly, yes. We can afford to play with the meaning of 0 after the above patch.

> After some more thoughts I wonder if your focus isn't to align
> platform_get_irq_optional to (clk|gpiod|regulator)_get_optional, but to
> simplify return code checking. Because with your change we have:
> 
>  - < 0 -> error
>  - == 0 -> no irq
>  - > 0 -> irq

   Mainly, yes. That's why the code examples were given in the description.

> For my part I'd say this doesn't justify the change, but at least I
> could better life with the reasoning. If you start at:
> 
> 	irq = platform_get_irq_optional(...)
> 	if (irq < 0 && irq != -ENXIO)
> 		return irq
> 	else if (irq > 0)
> 		setup_irq(irq);
> 	else
> 		setup_polling()
> 
> I'd change that to
> 
> 	irq = platform_get_irq_optional(...)
> 	if (irq > 0) /* or >= 0 ? */

   Not >= 0, no...

> 		setup_irq(irq)
> 	else if (irq == -ENXIO)
> 		setup_polling()
> 	else
> 		return irq
> 
> This still has to mention -ENXIO, but this is ok and checking for 0 just
> hardcodes a different return value.

   I think comparing with 0 is simpler (and shorter) than with -ENXIO, if you
consider the RISC CPUs, like e.g. MIPS...

> Anyhow, I think if you still want to change platform_get_irq_optional
> you should add a few patches converting some drivers which demonstrates
> the improvement for the callers.

   Mhm, I did include all the drivers where the IRQ checks have to be modified,
not sure what else you want me to touch...

> Best regards
> Uwe

MBR, Sergey

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

WARNING: multiple messages have this Message-ID (diff)
From: Sergey Shtylyov <s.shtylyov@omp.ru>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: "Andrew Lunn" <andrew@lunn.ch>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Vignesh Raghavendra" <vigneshr@ti.com>,
	"KVM list" <kvm@vger.kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	linux-iio@vger.kernel.org,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Amit Kucheria" <amitk@kernel.org>,
	"ALSA Development Mailing List" <alsa-devel@alsa-project.org>,
	"Jaroslav Kysela" <perex@perex.cz>,
	"Guenter Roeck" <groeck@chromium.org>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"MTD Maling List" <linux-mtd@lists.infradead.org>,
	"Linux I2C" <linux-i2c@vger.kernel.org>,
	"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	"Miquel Raynal" <miquel.raynal@bootlin.com>,
	linux-phy@lists.infradead.org, netdev@vger.kernel.org,
	linux-spi <linux-spi@vger.kernel.org>,
	"Jiri Slaby" <jirislaby@kernel.org>,
	"Khuong Dinh" <khuong@os.amperecomputing.com>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Matthias Schiffer" <matthias.schiffer@ew.tq-group.com>,
	"Kamal Dasu" <kdasu.kdev@gmail.com>,
	"Lee Jones" <lee.jones@linaro.org>,
	"Bartosz Golaszewski" <brgl@bgdev.pl>,
	"Daniel Lezcano" <daniel.lezcano@linaro.org>,
	"Kishon Vijay Abraham I" <kishon@ti.com>,
	"Geert Uytterhoeven" <geert@linux-m68k.org>,
	"open list:SERIAL DRIVERS" <linux-serial@vger.kernel.org>,
	bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>,
	"Zhang Rui" <rui.zhang@intel.com>,
	platform-driver-x86@vger.kernel.org,
	"Linux PWM List" <linux-pwm@vger.kernel.org>,
	"Robert Richter" <rric@kernel.org>,
	"Saravanan Sekar" <sravanhome@gmail.com>,
	"Corey Minyard" <minyard@acm.org>,
	"Linux PM list" <linux-pm@vger.kernel.org>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"John Garry" <john.garry@huawei.com>,
	"Takashi Iwai" <tiwai@suse.com>,
	"Peter Korsgaard" <peter@korsgaard.com>,
	"William Breathitt Gray" <vilhelm.gray@gmail.com>,
	"Mark Gross" <markgross@kernel.org>,
	"Hans de Goede" <hdegoede@redhat.com>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Borislav Petkov" <bp@alien8.de>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	openipmi-developer@lists.sourceforge.net,
	"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
	"Benson Leung" <bleung@chromium.org>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Linux ARM" <linux-arm-kernel@lists.infradead.org>,
	linux-edac@vger.kernel.org, "Tony Luck" <tony.luck@intel.com>,
	"Richard Weinberger" <richard@nod.at>,
	"Mun Yew Tham" <mun.yew.tham@intel.com>,
	"Eric Auger" <eric.auger@redhat.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Yoshihiro Shimoda" <yoshihiro.shimoda.uh@renesas.com>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Linux MMC List" <linux-mmc@vger.kernel.org>,
	"Joakim Zhang" <qiangqing.zhang@nxp.com>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	"Vinod Koul" <vkoul@kernel.org>,
	"James Morse" <james.morse@arm.com>,
	"Zha Qipeng" <qipeng.zha@intel.com>,
	"Sebastian Reichel" <sre@kernel.org>,
	"Niklas Söderlund" <niklas.soderlund@ragnatech.se>,
	linux-mediatek@lists.infradead.org,
	"Brian Norris" <computersforpeace@gmail.com>,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH 1/2] platform: make platform_get_irq_optional() optional
Date: Tue, 18 Jan 2022 23:21:45 +0300	[thread overview]
Message-ID: <68d3bb7a-7572-7495-d295-e1d512ef509e@omp.ru> (raw)
In-Reply-To: <20220117084732.cdy2sash5hxp4lwo@pengutronix.de>

Hello!

On 1/17/22 11:47 AM, Uwe Kleine-König wrote:

[...]
>>>>>>>>> To me it sounds much more logical for the driver to check if an
>>>>>>>>> optional irq is non-zero (available) or zero (not available), than to
>>>>>>>>> sprinkle around checks for -ENXIO. In addition, you have to remember
>>>>>>>>> that this one returns -ENXIO, while other APIs use -ENOENT or -ENOSYS
>>>>>>>>> (or some other error code) to indicate absence. I thought not having
>>>>>>>>> to care about the actual error code was the main reason behind the
>>>>>>>>> introduction of the *_optional() APIs.
>>>>>>>
>>>>>>>> No, the main benefit of gpiod_get_optional() (and clk_get_optional()) is
>>>>>>>> that you can handle an absent GPIO (or clk) as if it were available.
>>>>>>
>>>>>>    Hm, I've just looked at these and must note that they match 1:1 with
>>>>>> platform_get_irq_optional(). Unfortunately, we can't however behave the
>>>>>> same way in request_irq() -- because it has to support IRQ0 for the sake
>>>>>> of i8253 drivers in arch/...
>>>>>
>>>>> Let me reformulate your statement to the IMHO equivalent:
>>>>>
>>>>> 	If you set aside the differences between
>>>>> 	platform_get_irq_optional() and gpiod_get_optional(),
>>>>
>>>>    Sorry, I should make it clear this is actually the diff between a would-be
>>>> platform_get_irq_optional() after my patch, not the current code...
>>>
>>> The similarity is that with your patch both gpiod_get_optional() and
>>> platform_get_irq_optional() return NULL and 0 on not-found. The relevant
>>> difference however is that for a gpiod NULL is a dummy value, while for
>>> irqs it's not. So the similarity is only syntactically, but not
>>> semantically.
>>
>>    I have noting to say here, rather than optional IRQ could well have a different
>> meaning than for clk/gpio/etc.
>>
>> [...]
>>>>> However for an interupt this cannot work. You will always have to check
>>>>> if the irq is actually there or not because if it's not you cannot just
>>>>> ignore that. So there is no benefit of an optional irq.
>>>>>
>>>>> Leaving error message reporting aside, the introduction of
>>>>> platform_get_irq_optional() allows to change
>>>>>
>>>>> 	irq = platform_get_irq(...);
>>>>> 	if (irq < 0 && irq != -ENXIO) {
>>>>> 		return irq;
>>>>> 	} else if (irq >= 0) {
>>>>
>>>>    Rather (irq > 0) actually, IRQ0 is considered invalid (but still returned).
>>>
>>> This is a topic I don't feel strong for, so I'm sloppy here. If changing
>>> this is all that is needed to convince you of my point ...
>>
>>    Note that we should absolutely (and first of all) stop returning 0 from platform_get_irq()
>> on a "real" IRQ0. Handling that "still good" zero absolutely doesn't scale e.g. for the subsystems
>> (like libata) which take 0 as an indication that the polling mode should be used... We can't afford
>> to be sloppy here. ;-)
> 
> Then maybe do that really first?

   I'm doing it first already:

https://lore.kernel.org/all/5e001ec1-d3f1-bcb8-7f30-a6301fd9930c@omp.ru/

   This series is atop of the above patch...

> I didn't recheck, but is this what the
> driver changes in your patch is about?

   Partly, yes. We can afford to play with the meaning of 0 after the above patch.

> After some more thoughts I wonder if your focus isn't to align
> platform_get_irq_optional to (clk|gpiod|regulator)_get_optional, but to
> simplify return code checking. Because with your change we have:
> 
>  - < 0 -> error
>  - == 0 -> no irq
>  - > 0 -> irq

   Mainly, yes. That's why the code examples were given in the description.

> For my part I'd say this doesn't justify the change, but at least I
> could better life with the reasoning. If you start at:
> 
> 	irq = platform_get_irq_optional(...)
> 	if (irq < 0 && irq != -ENXIO)
> 		return irq
> 	else if (irq > 0)
> 		setup_irq(irq);
> 	else
> 		setup_polling()
> 
> I'd change that to
> 
> 	irq = platform_get_irq_optional(...)
> 	if (irq > 0) /* or >= 0 ? */

   Not >= 0, no...

> 		setup_irq(irq)
> 	else if (irq == -ENXIO)
> 		setup_polling()
> 	else
> 		return irq
> 
> This still has to mention -ENXIO, but this is ok and checking for 0 just
> hardcodes a different return value.

   I think comparing with 0 is simpler (and shorter) than with -ENXIO, if you
consider the RISC CPUs, like e.g. MIPS...

> Anyhow, I think if you still want to change platform_get_irq_optional
> you should add a few patches converting some drivers which demonstrates
> the improvement for the callers.

   Mhm, I did include all the drivers where the IRQ checks have to be modified,
not sure what else you want me to touch...

> Best regards
> Uwe

MBR, Sergey

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

WARNING: multiple messages have this Message-ID (diff)
From: Sergey Shtylyov <s.shtylyov@omp.ru>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: "Andrew Lunn" <andrew@lunn.ch>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Vignesh Raghavendra" <vigneshr@ti.com>,
	"KVM list" <kvm@vger.kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	linux-iio@vger.kernel.org,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Amit Kucheria" <amitk@kernel.org>,
	"ALSA Development Mailing List" <alsa-devel@alsa-project.org>,
	"Jaroslav Kysela" <perex@perex.cz>,
	"Guenter Roeck" <groeck@chromium.org>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"MTD Maling List" <linux-mtd@lists.infradead.org>,
	"Linux I2C" <linux-i2c@vger.kernel.org>,
	"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	"Miquel Raynal" <miquel.raynal@bootlin.com>,
	linux-phy@lists.infradead.org, netdev@vger.kernel.org,
	linux-spi <linux-spi@vger.kernel.org>,
	"Jiri Slaby" <jirislaby@kernel.org>,
	"Khuong Dinh" <khuong@os.amperecomputing.com>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Matthias Schiffer" <matthias.schiffer@ew.tq-group.com>,
	"Kamal Dasu" <kdasu.kdev@gmail.com>,
	"Lee Jones" <lee.jones@linaro.org>,
	"Bartosz Golaszewski" <brgl@bgdev.pl>,
	"Daniel Lezcano" <daniel.lezcano@linaro.org>,
	"Kishon Vijay Abraham I" <kishon@ti.com>,
	"Geert Uytterhoeven" <geert@linux-m68k.org>,
	"open list:SERIAL DRIVERS" <linux-serial@vger.kernel.org>,
	bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>,
	"Zhang Rui" <rui.zhang@intel.com>,
	platform-driver-x86@vger.kernel.org,
	"Linux PWM List" <linux-pwm@vger.kernel.org>,
	"Robert Richter" <rric@kernel.org>,
	"Saravanan Sekar" <sravanhome@gmail.com>,
	"Corey Minyard" <minyard@acm.org>,
	"Linux PM list" <linux-pm@vger.kernel.org>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"John Garry" <john.garry@huawei.com>,
	"Takashi Iwai" <tiwai@suse.com>,
	"Peter Korsgaard" <peter@korsgaard.com>,
	"William Breathitt Gray" <vilhelm.gray@gmail.com>,
	"Mark Gross" <markgross@kernel.org>,
	"Hans de Goede" <hdegoede@redhat.com>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Borislav Petkov" <bp@alien8.de>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	openipmi-developer@lists.sourceforge.net,
	"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
	"Benson Leung" <bleung@chromium.org>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Linux ARM" <linux-arm-kernel@lists.infradead.org>,
	linux-edac@vger.kernel.org, "Tony Luck" <tony.luck@intel.com>,
	"Richard Weinberger" <richard@nod.at>,
	"Mun Yew Tham" <mun.yew.tham@intel.com>,
	"Eric Auger" <eric.auger@redhat.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Yoshihiro Shimoda" <yoshihiro.shimoda.uh@renesas.com>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Linux MMC List" <linux-mmc@vger.kernel.org>,
	"Joakim Zhang" <qiangqing.zhang@nxp.com>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	"Vinod Koul" <vkoul@kernel.org>,
	"James Morse" <james.morse@arm.com>,
	"Zha Qipeng" <qipeng.zha@intel.com>,
	"Sebastian Reichel" <sre@kernel.org>,
	"Niklas Söderlund" <niklas.soderlund@ragnatech.se>,
	linux-mediatek@lists.infradead.org,
	"Brian Norris" <computersforpeace@gmail.com>,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH 1/2] platform: make platform_get_irq_optional() optional
Date: Tue, 18 Jan 2022 23:21:45 +0300	[thread overview]
Message-ID: <68d3bb7a-7572-7495-d295-e1d512ef509e@omp.ru> (raw)
In-Reply-To: <20220117084732.cdy2sash5hxp4lwo@pengutronix.de>

Hello!

On 1/17/22 11:47 AM, Uwe Kleine-König wrote:

[...]
>>>>>>>>> To me it sounds much more logical for the driver to check if an
>>>>>>>>> optional irq is non-zero (available) or zero (not available), than to
>>>>>>>>> sprinkle around checks for -ENXIO. In addition, you have to remember
>>>>>>>>> that this one returns -ENXIO, while other APIs use -ENOENT or -ENOSYS
>>>>>>>>> (or some other error code) to indicate absence. I thought not having
>>>>>>>>> to care about the actual error code was the main reason behind the
>>>>>>>>> introduction of the *_optional() APIs.
>>>>>>>
>>>>>>>> No, the main benefit of gpiod_get_optional() (and clk_get_optional()) is
>>>>>>>> that you can handle an absent GPIO (or clk) as if it were available.
>>>>>>
>>>>>>    Hm, I've just looked at these and must note that they match 1:1 with
>>>>>> platform_get_irq_optional(). Unfortunately, we can't however behave the
>>>>>> same way in request_irq() -- because it has to support IRQ0 for the sake
>>>>>> of i8253 drivers in arch/...
>>>>>
>>>>> Let me reformulate your statement to the IMHO equivalent:
>>>>>
>>>>> 	If you set aside the differences between
>>>>> 	platform_get_irq_optional() and gpiod_get_optional(),
>>>>
>>>>    Sorry, I should make it clear this is actually the diff between a would-be
>>>> platform_get_irq_optional() after my patch, not the current code...
>>>
>>> The similarity is that with your patch both gpiod_get_optional() and
>>> platform_get_irq_optional() return NULL and 0 on not-found. The relevant
>>> difference however is that for a gpiod NULL is a dummy value, while for
>>> irqs it's not. So the similarity is only syntactically, but not
>>> semantically.
>>
>>    I have noting to say here, rather than optional IRQ could well have a different
>> meaning than for clk/gpio/etc.
>>
>> [...]
>>>>> However for an interupt this cannot work. You will always have to check
>>>>> if the irq is actually there or not because if it's not you cannot just
>>>>> ignore that. So there is no benefit of an optional irq.
>>>>>
>>>>> Leaving error message reporting aside, the introduction of
>>>>> platform_get_irq_optional() allows to change
>>>>>
>>>>> 	irq = platform_get_irq(...);
>>>>> 	if (irq < 0 && irq != -ENXIO) {
>>>>> 		return irq;
>>>>> 	} else if (irq >= 0) {
>>>>
>>>>    Rather (irq > 0) actually, IRQ0 is considered invalid (but still returned).
>>>
>>> This is a topic I don't feel strong for, so I'm sloppy here. If changing
>>> this is all that is needed to convince you of my point ...
>>
>>    Note that we should absolutely (and first of all) stop returning 0 from platform_get_irq()
>> on a "real" IRQ0. Handling that "still good" zero absolutely doesn't scale e.g. for the subsystems
>> (like libata) which take 0 as an indication that the polling mode should be used... We can't afford
>> to be sloppy here. ;-)
> 
> Then maybe do that really first?

   I'm doing it first already:

https://lore.kernel.org/all/5e001ec1-d3f1-bcb8-7f30-a6301fd9930c@omp.ru/

   This series is atop of the above patch...

> I didn't recheck, but is this what the
> driver changes in your patch is about?

   Partly, yes. We can afford to play with the meaning of 0 after the above patch.

> After some more thoughts I wonder if your focus isn't to align
> platform_get_irq_optional to (clk|gpiod|regulator)_get_optional, but to
> simplify return code checking. Because with your change we have:
> 
>  - < 0 -> error
>  - == 0 -> no irq
>  - > 0 -> irq

   Mainly, yes. That's why the code examples were given in the description.

> For my part I'd say this doesn't justify the change, but at least I
> could better life with the reasoning. If you start at:
> 
> 	irq = platform_get_irq_optional(...)
> 	if (irq < 0 && irq != -ENXIO)
> 		return irq
> 	else if (irq > 0)
> 		setup_irq(irq);
> 	else
> 		setup_polling()
> 
> I'd change that to
> 
> 	irq = platform_get_irq_optional(...)
> 	if (irq > 0) /* or >= 0 ? */

   Not >= 0, no...

> 		setup_irq(irq)
> 	else if (irq == -ENXIO)
> 		setup_polling()
> 	else
> 		return irq
> 
> This still has to mention -ENXIO, but this is ok and checking for 0 just
> hardcodes a different return value.

   I think comparing with 0 is simpler (and shorter) than with -ENXIO, if you
consider the RISC CPUs, like e.g. MIPS...

> Anyhow, I think if you still want to change platform_get_irq_optional
> you should add a few patches converting some drivers which demonstrates
> the improvement for the callers.

   Mhm, I did include all the drivers where the IRQ checks have to be modified,
not sure what else you want me to touch...

> Best regards
> Uwe

MBR, Sergey

-- 
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy

  reply	other threads:[~2022-01-20  7:10 UTC|newest]

Thread overview: 466+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20220110195449.12448-1-s.shtylyov@omp.ru>
2022-01-10 19:54 ` [PATCH 1/2] platform: make platform_get_irq_optional() optional Sergey Shtylyov
2022-01-10 19:54   ` Sergey Shtylyov
2022-01-10 19:54   ` Sergey Shtylyov
2022-01-10 19:54   ` Sergey Shtylyov
2022-01-10 19:54   ` Sergey Shtylyov
2022-01-10 20:10   ` Uwe Kleine-König
2022-01-10 20:10     ` Uwe Kleine-König
2022-01-10 20:10     ` Uwe Kleine-König
2022-01-10 20:10     ` Uwe Kleine-König
2022-01-10 20:10     ` Uwe Kleine-König
2022-01-10 21:07     ` Andy Shevchenko
2022-01-10 21:07       ` Andy Shevchenko
2022-01-10 21:07       ` Andy Shevchenko
2022-01-10 21:07       ` Andy Shevchenko
2022-01-10 21:07       ` Andy Shevchenko
2022-01-10 21:44       ` Uwe Kleine-König
2022-01-10 21:44         ` Uwe Kleine-König
2022-01-10 21:44         ` Uwe Kleine-König
2022-01-10 21:44         ` Uwe Kleine-König
2022-01-10 21:44         ` Uwe Kleine-König
2022-01-10 21:18     ` Andrew Lunn
2022-01-10 21:18       ` Andrew Lunn
2022-01-10 21:18       ` Andrew Lunn
2022-01-10 21:18       ` Andrew Lunn
2022-01-10 21:18       ` Andrew Lunn
2022-01-12  8:33       ` Geert Uytterhoeven
2022-01-12  8:33         ` Geert Uytterhoeven
2022-01-12  8:33         ` Geert Uytterhoeven
2022-01-12  8:33         ` Geert Uytterhoeven
2022-01-12  8:33         ` Geert Uytterhoeven
2022-01-12  8:50         ` Uwe Kleine-König
2022-01-12  8:50           ` Uwe Kleine-König
2022-01-12  8:50           ` Uwe Kleine-König
2022-01-12  8:50           ` Uwe Kleine-König
2022-01-12  8:50           ` Uwe Kleine-König
2022-01-12 10:27           ` Geert Uytterhoeven
2022-01-12 10:27             ` Geert Uytterhoeven
2022-01-12 10:27             ` Geert Uytterhoeven
2022-01-12 10:27             ` Geert Uytterhoeven
2022-01-12 10:27             ` Geert Uytterhoeven
2022-01-12 12:27             ` Andy Shevchenko
2022-01-12 12:27               ` Andy Shevchenko
2022-01-12 12:27               ` Andy Shevchenko
2022-01-12 12:27               ` Andy Shevchenko
2022-01-12 12:27               ` Andy Shevchenko
2022-01-12 13:38             ` Andrew Lunn
2022-01-12 13:38               ` Andrew Lunn
2022-01-12 13:38               ` Andrew Lunn
2022-01-12 13:38               ` Andrew Lunn
2022-01-12 13:38               ` Andrew Lunn
2022-01-12 13:51               ` Andy Shevchenko
2022-01-12 13:51                 ` Andy Shevchenko
2022-01-12 13:51                 ` Andy Shevchenko
2022-01-12 13:51                 ` Andy Shevchenko
2022-01-12 13:51                 ` Andy Shevchenko
2022-01-12 13:54               ` Geert Uytterhoeven
2022-01-12 13:54                 ` Geert Uytterhoeven
2022-01-12 13:54                 ` Geert Uytterhoeven
2022-01-12 13:54                 ` Geert Uytterhoeven
2022-01-12 13:54                 ` Geert Uytterhoeven
2022-01-12 14:41                 ` Rafael J. Wysocki
2022-01-12 14:41                   ` Rafael J. Wysocki
2022-01-12 14:41                   ` Rafael J. Wysocki
2022-01-12 14:41                   ` Rafael J. Wysocki
2022-01-12 14:41                   ` Rafael J. Wysocki
2022-01-12 15:05                   ` Sergey Shtylyov
2022-01-12 15:05                     ` Sergey Shtylyov
2022-01-12 15:05                     ` Sergey Shtylyov
2022-01-12 15:05                     ` Sergey Shtylyov
2022-01-12 15:05                     ` Sergey Shtylyov
2022-01-12 15:13                     ` Hans de Goede
2022-01-12 15:13                       ` Hans de Goede
2022-01-12 15:13                       ` Hans de Goede
2022-01-12 15:13                       ` Hans de Goede
2022-01-12 15:13                       ` Hans de Goede
2022-01-12 15:48                       ` Rafael J. Wysocki
2022-01-12 15:48                         ` Rafael J. Wysocki
2022-01-12 15:48                         ` Rafael J. Wysocki
2022-01-12 15:48                         ` Rafael J. Wysocki
2022-01-12 15:48                         ` Rafael J. Wysocki
2022-01-12 16:21                   ` Andy Shevchenko
2022-01-12 16:21                     ` Andy Shevchenko
2022-01-12 16:21                     ` Andy Shevchenko
2022-01-12 16:21                     ` Andy Shevchenko
2022-01-12 16:21                     ` Andy Shevchenko
2022-01-12 21:31             ` Uwe Kleine-König
2022-01-12 21:31               ` Uwe Kleine-König
2022-01-12 21:31               ` Uwe Kleine-König
2022-01-12 21:31               ` Uwe Kleine-König
2022-01-12 21:31               ` Uwe Kleine-König
2022-01-12 21:45               ` Mark Brown
2022-01-12 21:45                 ` Mark Brown
2022-01-12 21:45                 ` Mark Brown
2022-01-12 21:45                 ` Mark Brown
2022-01-12 21:45                 ` Mark Brown
2022-01-13 11:08                 ` Uwe Kleine-König
2022-01-13 11:08                   ` Uwe Kleine-König
2022-01-13 11:08                   ` Uwe Kleine-König
2022-01-13 11:08                   ` Uwe Kleine-König
2022-01-13 11:08                   ` Uwe Kleine-König
2022-01-13 14:45                   ` Mark Brown
2022-01-13 14:45                     ` Mark Brown
2022-01-13 14:45                     ` Mark Brown
2022-01-13 14:45                     ` Mark Brown
2022-01-13 14:45                     ` Mark Brown
2022-01-13 19:43                     ` [PATCH] driver core: platform: Rename platform_get_irq_optional() to platform_get_irq_silent() Uwe Kleine-König
2022-01-13 19:43                       ` Uwe Kleine-König
2022-01-13 19:43                       ` Uwe Kleine-König
2022-01-13 19:43                       ` Uwe Kleine-König
2022-01-13 19:43                       ` Uwe Kleine-König
2022-01-13 20:17                       ` Mark Brown
2022-01-13 20:17                         ` Mark Brown
2022-01-13 20:17                         ` Mark Brown
2022-01-13 20:17                         ` Mark Brown
2022-01-13 20:17                         ` Mark Brown
2022-01-13 20:57                         ` Sergey Shtylyov
2022-01-13 20:57                           ` Sergey Shtylyov
2022-01-13 20:57                           ` Sergey Shtylyov
2022-01-13 20:57                           ` Sergey Shtylyov
2022-01-13 20:57                           ` Sergey Shtylyov
2022-01-13 22:43                           ` Uwe Kleine-König
2022-01-13 22:43                             ` Uwe Kleine-König
2022-01-13 22:43                             ` Uwe Kleine-König
2022-01-13 22:43                             ` Uwe Kleine-König
2022-01-13 22:43                             ` Uwe Kleine-König
2022-01-14  9:58                             ` Geert Uytterhoeven
2022-01-14  9:58                               ` Geert Uytterhoeven
2022-01-14  9:58                               ` Geert Uytterhoeven
2022-01-14  9:58                               ` Geert Uytterhoeven
2022-01-14  9:58                               ` Geert Uytterhoeven
2022-01-15 15:21                               ` Uwe Kleine-König
2022-01-15 15:21                                 ` Uwe Kleine-König
2022-01-15 15:21                                 ` Uwe Kleine-König
2022-01-15 15:21                                 ` Uwe Kleine-König
2022-01-15 15:21                                 ` Uwe Kleine-König
2022-01-15 21:06                                 ` Sergey Shtylyov
2022-01-15 21:06                                   ` Sergey Shtylyov
2022-01-15 21:06                                   ` Sergey Shtylyov
2022-01-15 21:06                                   ` Sergey Shtylyov
2022-01-15 21:06                                   ` Sergey Shtylyov
2022-01-14 11:34                           ` Sergey Shtylyov
2022-01-14 11:34                             ` Sergey Shtylyov
2022-01-14 11:34                             ` Sergey Shtylyov
2022-01-14 11:34                             ` Sergey Shtylyov
2022-01-14 11:34                             ` Sergey Shtylyov
2022-01-13 20:31                       ` Guenter Roeck
2022-01-13 20:31                         ` Guenter Roeck
2022-01-13 20:31                         ` Guenter Roeck
2022-01-13 20:31                         ` Guenter Roeck
2022-01-13 20:31                         ` Guenter Roeck
2022-01-13 21:42                       ` Florian Fainelli
2022-01-13 21:42                         ` Florian Fainelli
2022-01-13 21:42                         ` Florian Fainelli
2022-01-13 21:42                         ` Florian Fainelli
2022-01-13 21:42                         ` Florian Fainelli
2022-01-13 23:06                         ` Uwe Kleine-König
2022-01-13 23:06                           ` Uwe Kleine-König
2022-01-13 23:06                           ` Uwe Kleine-König
2022-01-13 23:06                           ` Uwe Kleine-König
2022-01-13 23:06                           ` Uwe Kleine-König
2022-01-14 17:55                         ` Sergey Shtylyov
2022-01-14 17:55                           ` Sergey Shtylyov
2022-01-14 17:55                           ` Sergey Shtylyov
2022-01-14 17:55                           ` Sergey Shtylyov
2022-01-14 17:55                           ` Sergey Shtylyov
2022-01-15 13:55                           ` Uwe Kleine-König
2022-01-15 13:55                             ` Uwe Kleine-König
2022-01-15 13:55                             ` Uwe Kleine-König
2022-01-15 13:55                             ` Uwe Kleine-König
2022-01-15 13:55                             ` Uwe Kleine-König
2022-01-19 18:36                             ` Andy Shevchenko
2022-01-19 18:36                               ` Andy Shevchenko
2022-01-19 18:36                               ` Andy Shevchenko
2022-01-19 18:36                               ` Andy Shevchenko
2022-01-19 18:36                               ` Andy Shevchenko
2022-01-19 19:44                               ` Sergey Shtylyov
2022-01-19 19:44                                 ` Sergey Shtylyov
2022-01-19 19:44                                 ` Sergey Shtylyov
2022-01-19 19:44                                 ` Sergey Shtylyov
2022-01-19 19:44                                 ` Sergey Shtylyov
2022-01-19 18:40                             ` Andy Shevchenko
2022-01-19 18:40                               ` Andy Shevchenko
2022-01-19 18:40                               ` Andy Shevchenko
2022-01-19 18:40                               ` Andy Shevchenko
2022-01-19 18:40                               ` Andy Shevchenko
2022-01-14  6:57                       ` Peter Korsgaard
2022-01-14  6:57                         ` Peter Korsgaard
2022-01-14  6:57                         ` Peter Korsgaard
2022-01-14  6:57                         ` Peter Korsgaard
2022-01-14  6:57                         ` Peter Korsgaard
2022-01-14 13:04                       ` Andy Shevchenko
2022-01-14 13:04                         ` Andy Shevchenko
2022-01-14 13:04                         ` Andy Shevchenko
2022-01-14 13:04                         ` Andy Shevchenko
2022-01-14 13:04                         ` Andy Shevchenko
2022-01-15 15:45                         ` Uwe Kleine-König
2022-01-15 15:45                           ` Uwe Kleine-König
2022-01-15 15:45                           ` Uwe Kleine-König
2022-01-15 15:45                           ` Uwe Kleine-König
2022-01-15 15:45                           ` Uwe Kleine-König
2022-01-19 18:51                           ` Andy Shevchenko
2022-01-19 18:51                             ` Andy Shevchenko
2022-01-19 18:51                             ` Andy Shevchenko
2022-01-19 18:51                             ` Andy Shevchenko
2022-01-19 18:51                             ` Andy Shevchenko
2022-01-19 19:47                             ` Sergey Shtylyov
2022-01-19 19:47                               ` Sergey Shtylyov
2022-01-19 19:47                               ` Sergey Shtylyov
2022-01-19 19:47                               ` Sergey Shtylyov
2022-01-19 19:47                               ` Sergey Shtylyov
2022-01-19 20:55                               ` Andy Shevchenko
2022-01-19 20:55                                 ` Andy Shevchenko
2022-01-19 20:55                                 ` Andy Shevchenko
2022-01-19 20:55                                 ` Andy Shevchenko
2022-01-19 20:55                                 ` Andy Shevchenko
2022-01-20  7:57                             ` Uwe Kleine-König
2022-01-20  7:57                               ` Uwe Kleine-König
2022-01-20  7:57                               ` Uwe Kleine-König
2022-01-20  7:57                               ` Uwe Kleine-König
2022-01-24 15:01                               ` Andy Shevchenko
2022-01-24 15:01                                 ` Andy Shevchenko
2022-01-24 15:01                                 ` Andy Shevchenko
2022-01-24 15:01                                 ` Andy Shevchenko
2022-01-24 15:01                                 ` Andy Shevchenko
2022-01-24 21:02                                 ` Sergey Shtylyov
2022-01-24 21:02                                   ` Sergey Shtylyov
2022-01-24 21:02                                   ` Sergey Shtylyov
2022-01-24 21:02                                   ` Sergey Shtylyov
2022-01-24 21:02                                   ` Sergey Shtylyov
2022-01-25  8:25                                   ` Geert Uytterhoeven
2022-01-25  8:25                                     ` Geert Uytterhoeven
2022-01-25  8:25                                     ` Geert Uytterhoeven
2022-01-25  8:25                                     ` Geert Uytterhoeven
2022-01-25  8:25                                     ` Geert Uytterhoeven
2022-01-25 12:56                                     ` Matthias Schiffer
2022-01-25 12:56                                       ` Matthias Schiffer
2022-01-25 12:56                                       ` Matthias Schiffer
2022-01-25 12:56                                       ` Matthias Schiffer
2022-01-25 12:56                                       ` Matthias Schiffer
2022-01-25 14:01                                       ` Andy Shevchenko
2022-01-25 14:01                                         ` Andy Shevchenko
2022-01-25 14:01                                         ` Andy Shevchenko
2022-01-25 14:01                                         ` Andy Shevchenko
2022-01-25 14:01                                         ` Andy Shevchenko
2022-01-14 19:45                       ` Sergey Shtylyov
2022-01-14 19:45                         ` Sergey Shtylyov
2022-01-14 19:45                         ` Sergey Shtylyov
2022-01-14 19:45                         ` Sergey Shtylyov
2022-01-14 19:45                         ` Sergey Shtylyov
2022-01-14 20:29                         ` Uwe Kleine-König
2022-01-14 20:29                           ` Uwe Kleine-König
2022-01-14 20:29                           ` Uwe Kleine-König
2022-01-14 20:29                           ` Uwe Kleine-König
2022-01-14 20:29                           ` Uwe Kleine-König
2022-01-15 13:08                           ` Sergey Shtylyov
2022-01-15 13:08                             ` Sergey Shtylyov
2022-01-15 13:08                             ` Sergey Shtylyov
2022-01-15 13:08                             ` Sergey Shtylyov
2022-01-15 13:08                             ` Sergey Shtylyov
2022-01-19 18:52                         ` Andy Shevchenko
2022-01-19 18:52                           ` Andy Shevchenko
2022-01-19 18:52                           ` Andy Shevchenko
2022-01-19 18:52                           ` Andy Shevchenko
2022-01-19 18:52                           ` Andy Shevchenko
2022-01-13 20:35                 ` [PATCH 1/2] platform: make platform_get_irq_optional() optional Sergey Shtylyov
2022-01-13 20:35                   ` Sergey Shtylyov
2022-01-13 20:35                   ` Sergey Shtylyov
2022-01-13 20:35                   ` Sergey Shtylyov
2022-01-13 20:35                   ` Sergey Shtylyov
2022-01-14  9:25                   ` Uwe Kleine-König
2022-01-14  9:25                     ` Uwe Kleine-König
2022-01-14  9:25                     ` Uwe Kleine-König
2022-01-14  9:25                     ` Uwe Kleine-König
2022-01-14  9:25                     ` Uwe Kleine-König
2022-01-14  9:39                     ` Geert Uytterhoeven
2022-01-14  9:39                       ` Geert Uytterhoeven
2022-01-14  9:39                       ` Geert Uytterhoeven
2022-01-14  9:39                       ` Geert Uytterhoeven
2022-01-14  9:39                       ` Geert Uytterhoeven
2022-01-14 19:14                     ` Sergey Shtylyov
2022-01-14 19:14                       ` Sergey Shtylyov
2022-01-14 19:14                       ` Sergey Shtylyov
2022-01-14 19:14                       ` Sergey Shtylyov
2022-01-14 19:14                       ` Sergey Shtylyov
2022-01-14 20:22                       ` Uwe Kleine-König
2022-01-14 20:22                         ` Uwe Kleine-König
2022-01-14 20:22                         ` Uwe Kleine-König
2022-01-14 20:22                         ` Uwe Kleine-König
2022-01-14 20:22                         ` Uwe Kleine-König
2022-01-15 20:22                         ` Sergey Shtylyov
2022-01-15 20:22                           ` Sergey Shtylyov
2022-01-15 20:22                           ` Sergey Shtylyov
2022-01-15 20:22                           ` Sergey Shtylyov
2022-01-15 20:22                           ` Sergey Shtylyov
2022-01-17  8:41                           ` Geert Uytterhoeven
2022-01-17  8:41                             ` Geert Uytterhoeven
2022-01-17  8:41                             ` Geert Uytterhoeven
2022-01-17  8:41                             ` Geert Uytterhoeven
2022-01-17  8:41                             ` Geert Uytterhoeven
2022-01-17  9:24                             ` Uwe Kleine-König
2022-01-17  9:24                               ` Uwe Kleine-König
2022-01-17  9:24                               ` Uwe Kleine-König
2022-01-17  9:24                               ` Uwe Kleine-König
2022-01-17  9:24                               ` Uwe Kleine-König
2022-01-17 10:35                               ` Geert Uytterhoeven
2022-01-17 10:35                                 ` Geert Uytterhoeven
2022-01-17 10:35                                 ` Geert Uytterhoeven
2022-01-17 10:35                                 ` Geert Uytterhoeven
2022-01-17 10:35                                 ` Geert Uytterhoeven
2022-01-17 11:49                                 ` Uwe Kleine-König
2022-01-17 11:49                                   ` Uwe Kleine-König
2022-01-17 11:49                                   ` Uwe Kleine-König
2022-01-17 11:49                                   ` Uwe Kleine-König
2022-01-17 11:49                                   ` Uwe Kleine-König
2022-01-17 13:08                                   ` Geert Uytterhoeven
2022-01-17 13:08                                     ` Geert Uytterhoeven
2022-01-17 13:08                                     ` Geert Uytterhoeven
2022-01-17 13:08                                     ` Geert Uytterhoeven
2022-01-17 13:08                                     ` Geert Uytterhoeven
2022-01-17 17:06                                     ` Uwe Kleine-König
2022-01-17 17:06                                       ` Uwe Kleine-König
2022-01-17 17:06                                       ` Uwe Kleine-König
2022-01-17 17:06                                       ` Uwe Kleine-König
2022-01-17 17:06                                       ` Uwe Kleine-König
2022-01-18  8:25                                       ` Geert Uytterhoeven
2022-01-18  8:25                                         ` Geert Uytterhoeven
2022-01-18  8:25                                         ` Geert Uytterhoeven
2022-01-18  8:25                                         ` Geert Uytterhoeven
2022-01-18  8:25                                         ` Geert Uytterhoeven
2022-01-18  9:09                                         ` Uwe Kleine-König
2022-01-18  9:09                                           ` Uwe Kleine-König
2022-01-18  9:09                                           ` Uwe Kleine-König
2022-01-18  9:09                                           ` Uwe Kleine-König
2022-01-18  9:09                                           ` Uwe Kleine-König
2022-01-18  9:37                                           ` Geert Uytterhoeven
2022-01-18  9:37                                             ` Geert Uytterhoeven
2022-01-18  9:37                                             ` Geert Uytterhoeven
2022-01-18  9:37                                             ` Geert Uytterhoeven
2022-01-18  9:37                                             ` Geert Uytterhoeven
2022-01-18 12:08                                             ` Uwe Kleine-König
2022-01-18 12:08                                               ` Uwe Kleine-König
2022-01-18 12:08                                               ` Uwe Kleine-König
2022-01-18 12:08                                               ` Uwe Kleine-König
2022-01-18 12:08                                               ` Uwe Kleine-König
2022-01-18 12:49                                               ` Geert Uytterhoeven
2022-01-18 12:49                                                 ` Geert Uytterhoeven
2022-01-18 12:49                                                 ` Geert Uytterhoeven
2022-01-18 12:49                                                 ` Geert Uytterhoeven
2022-01-18 12:49                                                 ` Geert Uytterhoeven
2022-01-18 14:29                                                 ` Uwe Kleine-König
2022-01-18 14:29                                                   ` Uwe Kleine-König
2022-01-18 14:29                                                   ` Uwe Kleine-König
2022-01-18 14:29                                                   ` Uwe Kleine-König
2022-01-18 14:29                                                   ` Uwe Kleine-König
2022-01-19 16:12                                                   ` Sergey Shtylyov
2022-01-19 16:12                                                     ` Sergey Shtylyov
2022-01-19 16:12                                                     ` Sergey Shtylyov
2022-01-19 16:12                                                     ` Sergey Shtylyov
2022-01-19 16:12                                                     ` Sergey Shtylyov
2022-01-19 18:29                                                     ` Sergey Shtylyov
2022-01-19 18:29                                                       ` Sergey Shtylyov
2022-01-19 18:29                                                       ` Sergey Shtylyov
2022-01-19 18:29                                                       ` Sergey Shtylyov
2022-01-19 18:29                                                       ` Sergey Shtylyov
2022-01-20 11:27                                     ` Sergey Shtylyov
2022-01-20 11:27                                       ` Sergey Shtylyov
2022-01-20 11:27                                       ` Sergey Shtylyov
2022-01-20 11:27                                       ` Sergey Shtylyov
2022-01-16 18:15                         ` Sergey Shtylyov
2022-01-16 18:15                           ` Sergey Shtylyov
2022-01-16 18:15                           ` Sergey Shtylyov
2022-01-16 18:15                           ` Sergey Shtylyov
2022-01-16 18:15                           ` Sergey Shtylyov
2022-01-17  8:47                           ` Uwe Kleine-König
2022-01-17  8:47                             ` Uwe Kleine-König
2022-01-17  8:47                             ` Uwe Kleine-König
2022-01-17  8:47                             ` Uwe Kleine-König
2022-01-17  8:47                             ` Uwe Kleine-König
2022-01-18 20:21                             ` Sergey Shtylyov [this message]
2022-01-18 20:21                               ` Sergey Shtylyov
2022-01-18 20:21                               ` Sergey Shtylyov
2022-01-18 20:21                               ` Sergey Shtylyov
2022-01-18 20:21                               ` Sergey Shtylyov
2022-01-18 22:26                               ` Uwe Kleine-König
2022-01-18 22:26                                 ` Uwe Kleine-König
2022-01-18 22:26                                 ` Uwe Kleine-König
2022-01-18 22:26                                 ` Uwe Kleine-König
2022-01-18 22:26                                 ` Uwe Kleine-König
2022-01-19 15:34                                 ` Sergey Shtylyov
2022-01-19 15:34                                   ` Sergey Shtylyov
2022-01-19 15:34                                   ` Sergey Shtylyov
2022-01-19 15:34                                   ` Sergey Shtylyov
2022-01-19 15:34                                   ` Sergey Shtylyov
2022-01-19 18:58                             ` Andy Shevchenko
2022-01-19 18:58                               ` Andy Shevchenko
2022-01-19 18:58                               ` Andy Shevchenko
2022-01-19 18:58                               ` Andy Shevchenko
2022-01-19 18:58                               ` Andy Shevchenko
2022-01-19 19:49                               ` Sergey Shtylyov
2022-01-19 19:49                                 ` Sergey Shtylyov
2022-01-19 19:49                                 ` Sergey Shtylyov
2022-01-19 19:49                                 ` Sergey Shtylyov
2022-01-19 19:49                                 ` Sergey Shtylyov
2022-01-14 18:46                   ` Sergey Shtylyov
2022-01-14 18:46                     ` Sergey Shtylyov
2022-01-14 18:46                     ` Sergey Shtylyov
2022-01-14 18:46                     ` Sergey Shtylyov
2022-01-14 18:46                     ` Sergey Shtylyov
2022-01-15 18:36   ` [PATCH 1/2] platform: make platform_get_irq_optional() optional (summary) Uwe Kleine-König
2022-01-15 18:36     ` Uwe Kleine-König
2022-01-15 18:36     ` Uwe Kleine-König
2022-01-15 18:36     ` Uwe Kleine-König
2022-01-15 18:36     ` Uwe Kleine-König
2022-01-16 14:19     ` Greg Kroah-Hartman
2022-01-16 14:19       ` Greg Kroah-Hartman
2022-01-16 14:19       ` Greg Kroah-Hartman
2022-01-16 14:19       ` Greg Kroah-Hartman
2022-01-16 14:19       ` Greg Kroah-Hartman
2022-01-18  9:18       ` Uwe Kleine-König
2022-01-18  9:18         ` Uwe Kleine-König
2022-01-18  9:18         ` Uwe Kleine-König
2022-01-18  9:18         ` Uwe Kleine-König
2022-01-18  9:18         ` Uwe Kleine-König
2022-01-18  9:32         ` Greg Kroah-Hartman
2022-01-18  9:32           ` Greg Kroah-Hartman
2022-01-18  9:32           ` Greg Kroah-Hartman
2022-01-18  9:32           ` Greg Kroah-Hartman
2022-01-18  9:32           ` Greg Kroah-Hartman
2022-01-19 10:56         ` Sergey Shtylyov
2022-01-19 10:56           ` Sergey Shtylyov
2022-01-19 10:56           ` Sergey Shtylyov
2022-01-19 10:56           ` Sergey Shtylyov
2022-01-19 10:56           ` Sergey Shtylyov
2022-01-19 11:33           ` Uwe Kleine-König
2022-01-19 11:33             ` Uwe Kleine-König
2022-01-19 11:33             ` Uwe Kleine-König
2022-01-19 11:33             ` Uwe Kleine-König
2022-01-19 11:33             ` Uwe Kleine-König
2022-01-19 11:42             ` Sergey Shtylyov
2022-01-19 11:42               ` Sergey Shtylyov
2022-01-19 11:42               ` Sergey Shtylyov
2022-01-19 11:42               ` Sergey Shtylyov
2022-01-19 11:42               ` Sergey Shtylyov
2022-01-19 19:06     ` Andy Shevchenko
2022-01-19 19:06       ` Andy Shevchenko
2022-01-19 19:06       ` Andy Shevchenko
2022-01-19 19:06       ` Andy Shevchenko
2022-01-19 19:06       ` Andy Shevchenko
2022-01-17 11:57   ` [PATCH 1/2] platform: make platform_get_irq_optional() optional Sergey Shtylyov
2022-01-17 11:57     ` Sergey Shtylyov
2022-01-17 11:57     ` Sergey Shtylyov
2022-01-17 11:57     ` Sergey Shtylyov
2022-01-17 11:57     ` Sergey Shtylyov
2022-01-19 15:02     ` Uwe Kleine-König
2022-01-19 15:02       ` Uwe Kleine-König
2022-01-19 15:02       ` Uwe Kleine-König
2022-01-19 15:02       ` Uwe Kleine-König
2022-01-19 15:02       ` Uwe Kleine-König
2022-01-19 15:50       ` Sergey Shtylyov
2022-01-19 15:50         ` Sergey Shtylyov
2022-01-19 15:50         ` Sergey Shtylyov
2022-01-19 15:50         ` Sergey Shtylyov
2022-01-19 15:50         ` Sergey Shtylyov
2022-01-10 19:54 ` [PATCH 2/2] platform: make platform_get_irq_byname_optional() optional Sergey Shtylyov
2022-01-10 19:54   ` Sergey Shtylyov
2022-01-10 19:54   ` Sergey Shtylyov

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=68d3bb7a-7572-7495-d295-e1d512ef509e@omp.ru \
    --to=s.shtylyov@omp.ru \
    --cc=alex.williamson@redhat.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=amitk@kernel.org \
    --cc=andrew@lunn.ch \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=bleung@chromium.org \
    --cc=bp@alien8.de \
    --cc=brgl@bgdev.pl \
    --cc=broonie@kernel.org \
    --cc=cohuck@redhat.com \
    --cc=computersforpeace@gmail.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=davem@davemloft.net \
    --cc=eric.auger@redhat.com \
    --cc=f.fainelli@gmail.com \
    --cc=geert@linux-m68k.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=groeck@chromium.org \
    --cc=hdegoede@redhat.com \
    --cc=james.morse@arm.com \
    --cc=jirislaby@kernel.org \
    --cc=john.garry@huawei.com \
    --cc=kdasu.kdev@gmail.com \
    --cc=kernel@pengutronix.de \
    --cc=khuong@os.amperecomputing.com \
    --cc=kishon@ti.com \
    --cc=kuba@kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=lee.jones@linaro.org \
    --cc=lgirdwood@gmail.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-edac@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-phy@lists.infradead.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=markgross@kernel.org \
    --cc=matthias.bgg@gmail.com \
    --cc=matthias.schiffer@ew.tq-group.com \
    --cc=mchehab@kernel.org \
    --cc=minyard@acm.org \
    --cc=miquel.raynal@bootlin.com \
    --cc=mun.yew.tham@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=niklas.soderlund@ragnatech.se \
    --cc=openipmi-developer@lists.sourceforge.net \
    --cc=peter@korsgaard.com \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=qiangqing.zhang@nxp.com \
    --cc=qipeng.zha@intel.com \
    --cc=rafael@kernel.org \
    --cc=richard@nod.at \
    --cc=rric@kernel.org \
    --cc=rui.zhang@intel.com \
    --cc=sravanhome@gmail.com \
    --cc=sre@kernel.org \
    --cc=thierry.reding@gmail.com \
    --cc=tiwai@suse.com \
    --cc=tony.luck@intel.com \
    --cc=u.kleine-koenig@pengutronix.de \
    --cc=ulf.hansson@linaro.org \
    --cc=vigneshr@ti.com \
    --cc=vilhelm.gray@gmail.com \
    --cc=vkoul@kernel.org \
    --cc=yoshihiro.shimoda.uh@renesas.com \
    /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.