linux-next.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] pinctrl: Implicit inclusion fallout fixes
@ 2018-02-05 12:47 Thierry Reding
  2018-02-05 12:47 ` [PATCH 1/2] drm/rockchip: lvds: Explicitly include pinctrl headers Thierry Reding
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Thierry Reding @ 2018-02-05 12:47 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Linus Walleij, linux-gpio, linux-next, linux-kernel

From: Thierry Reding <treding@nvidia.com>

Hi Linus,

these are two patches to fix build errors I've run into that are fallout
from your removal of the pinctrl/devinfo.h include from device.h. I sure
can imagine that there are more like this, but these seem to be the
common ones, judging by my own build tests and the kernel-build-reports
mailing list.

I'm sending these to you directly because I think it makes sense for you
to apply these on top of 23c35f48f5fb ("pinctrl: remove include file
from <linux/device.h>") rather than have these go in through their
respective maintainer trees, so that the build gets fixed as quickly as
possible.

Thierry

Thierry Reding (2):
  drm/rockchip: lvds: Explicitly include pinctrl headers
  mmc: meson-gx-mmc: Explicitly include pinctr/consumer.h

 drivers/gpu/drm/rockchip/rockchip_lvds.c | 2 ++
 drivers/mmc/host/meson-gx-mmc.c          | 1 +
 2 files changed, 3 insertions(+)

-- 
2.15.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/2] drm/rockchip: lvds: Explicitly include pinctrl headers
  2018-02-05 12:47 [PATCH 0/2] pinctrl: Implicit inclusion fallout fixes Thierry Reding
@ 2018-02-05 12:47 ` Thierry Reding
  2018-02-05 12:47 ` [PATCH 2/2] mmc: meson-gx-mmc: Explicitly include pinctr/consumer.h Thierry Reding
  2018-02-05 12:54 ` [PATCH] net: mediatek: Explicitly include pinctrl headers Thierry Reding
  2 siblings, 0 replies; 9+ messages in thread
From: Thierry Reding @ 2018-02-05 12:47 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Linus Walleij, linux-gpio, linux-next, linux-kernel

From: Thierry Reding <treding@nvidia.com>

The Rockchip LVDS driver fails to build after commit 23c35f48f5fb
("pinctrl: remove include file from <linux/device.h>") because it relies
on the pinctrl/consumer.h and pinctrl/devinfo.h being pulled in by the
device.h header implicitly.

Include these headers explicitly to avoid the build failure.

Cc: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
 drivers/gpu/drm/rockchip/rockchip_lvds.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/rockchip/rockchip_lvds.c b/drivers/gpu/drm/rockchip/rockchip_lvds.c
index 84911bdc27d1..cd1e1d1edc1d 100644
--- a/drivers/gpu/drm/rockchip/rockchip_lvds.c
+++ b/drivers/gpu/drm/rockchip/rockchip_lvds.c
@@ -25,6 +25,8 @@
 #include <linux/clk.h>
 #include <linux/mfd/syscon.h>
 #include <linux/of_graph.h>
+#include <linux/pinctrl/consumer.h>
+#include <linux/pinctrl/devinfo.h>
 #include <linux/pm_runtime.h>
 #include <linux/regmap.h>
 #include <linux/reset.h>
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/2] mmc: meson-gx-mmc: Explicitly include pinctr/consumer.h
  2018-02-05 12:47 [PATCH 0/2] pinctrl: Implicit inclusion fallout fixes Thierry Reding
  2018-02-05 12:47 ` [PATCH 1/2] drm/rockchip: lvds: Explicitly include pinctrl headers Thierry Reding
@ 2018-02-05 12:47 ` Thierry Reding
  2018-02-05 12:54 ` [PATCH] net: mediatek: Explicitly include pinctrl headers Thierry Reding
  2 siblings, 0 replies; 9+ messages in thread
From: Thierry Reding @ 2018-02-05 12:47 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Linus Walleij, linux-gpio, linux-next, linux-kernel

From: Thierry Reding <treding@nvidia.com>

The Meson GX MMC driver fails to build after commit 23c35f48f5fb
("pinctrl: remove include file from <linux/device.h>") because it relies
on the pinctrl/consumer.h being pulled in by the device.h header
implicitly.

Include the header explicitly to avoid the build failure.

Cc: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
 drivers/mmc/host/meson-gx-mmc.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c
index 32a6a228cd12..22438ebfe4e6 100644
--- a/drivers/mmc/host/meson-gx-mmc.c
+++ b/drivers/mmc/host/meson-gx-mmc.c
@@ -37,6 +37,7 @@
 #include <linux/regulator/consumer.h>
 #include <linux/interrupt.h>
 #include <linux/bitfield.h>
+#include <linux/pinctrl/consumer.h>
 
 #define DRIVER_NAME "meson-gx-mmc"
 
-- 
2.15.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH] net: mediatek: Explicitly include pinctrl headers
  2018-02-05 12:47 [PATCH 0/2] pinctrl: Implicit inclusion fallout fixes Thierry Reding
  2018-02-05 12:47 ` [PATCH 1/2] drm/rockchip: lvds: Explicitly include pinctrl headers Thierry Reding
  2018-02-05 12:47 ` [PATCH 2/2] mmc: meson-gx-mmc: Explicitly include pinctr/consumer.h Thierry Reding
@ 2018-02-05 12:54 ` Thierry Reding
  2018-02-05 17:42   ` Linus Torvalds
  2 siblings, 1 reply; 9+ messages in thread
From: Thierry Reding @ 2018-02-05 12:54 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Linus Walleij, linux-gpio, linux-next, linux-kernel

From: Thierry Reding <treding@nvidia.com>

The Mediatek ethernet driver fails to build after commit 23c35f48f5fb
("pinctrl: remove include file from <linux/device.h>") because it relies
on the pinctrl/consumer.h and pinctrl/devinfo.h being pulled in by the
device.h header implicitly.

Include these headers explicitly to avoid the build failure.

Cc: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
 drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 29826dd15204..9e74c165f3ca 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -23,6 +23,8 @@
 #include <linux/reset.h>
 #include <linux/tcp.h>
 #include <linux/interrupt.h>
+#include <linux/pinctrl/consumer.h>
+#include <linux/pinctrl/devinfo.h>
 
 #include "mtk_eth_soc.h"
 
-- 
2.15.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH] net: mediatek: Explicitly include pinctrl headers
  2018-02-05 12:54 ` [PATCH] net: mediatek: Explicitly include pinctrl headers Thierry Reding
@ 2018-02-05 17:42   ` Linus Torvalds
  2018-02-05 17:59     ` Thierry Reding
  0 siblings, 1 reply; 9+ messages in thread
From: Linus Torvalds @ 2018-02-05 17:42 UTC (permalink / raw)
  To: Thierry Reding
  Cc: Linus Walleij, linux-gpio, linux-next, Linux Kernel Mailing List

On Mon, Feb 5, 2018 at 4:54 AM, Thierry Reding <thierry.reding@gmail.com> wrote:
>
> Include these headers explicitly to avoid the build failure.

I don't think you need to include *both*.

<linux/device.h> used to include just <linux/pinctrl/devinfo.h>.

I'll edit your patches to include just that.
<linux/pinctrl/consumer.h> will come in automatically through it.

             Linus

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] net: mediatek: Explicitly include pinctrl headers
  2018-02-05 17:42   ` Linus Torvalds
@ 2018-02-05 17:59     ` Thierry Reding
  2018-02-05 19:02       ` Linus Walleij
  0 siblings, 1 reply; 9+ messages in thread
From: Thierry Reding @ 2018-02-05 17:59 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Linus Walleij, linux-gpio, linux-next, Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 1721 bytes --]

On Mon, Feb 05, 2018 at 09:42:21AM -0800, Linus Torvalds wrote:
> On Mon, Feb 5, 2018 at 4:54 AM, Thierry Reding <thierry.reding@gmail.com> wrote:
> >
> > Include these headers explicitly to avoid the build failure.
> 
> I don't think you need to include *both*.
> 
> <linux/device.h> used to include just <linux/pinctrl/devinfo.h>.
> 
> I'll edit your patches to include just that.
> <linux/pinctrl/consumer.h> will come in automatically through it.

I was trying to avoid any implicit inclusion, but looking at
pinctrl/devinfo.h it has a comment right above the pinctrl/consumer.h
include that makes it clear that pinctrl/devinfo.h is the consumer of
pinctrl for the core, so I guess the implicit include is fine here.

I do question, though, if drivers have any business including this
pinctrl/devinfo.h in the first place. For the Mediatek ethernet it seems
like selecting the default state is redundant (the core should already
have taken care of that, and the driver never selects a different state
anywhere).

The same is true of drm/rockchip, which also only seems to select a
state which the pinctrl core should've selected by default already. See
arch/arm/boot/dts/rk3288.dtsi which sets up the "lcdc" state as the only
state for the LVDS output.

Anyway, I think going with the pinctrl/devinfo.h include only is fine
for now. If it turns out that the Mediatek ethernet and Rockchip LVDS
drivers can just omit the bits fiddling with struct dev_pin_info, we can
swap out the pinctrl/devinfo.h include for pinctrl/consumer.h at that
time.

LinusW: what are your thoughts on the struct dev_pin_info usage by these
drivers? Does their code seem redundant to you, too?

Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] net: mediatek: Explicitly include pinctrl headers
  2018-02-05 17:59     ` Thierry Reding
@ 2018-02-05 19:02       ` Linus Walleij
  2018-02-05 19:08         ` Thierry Reding
  0 siblings, 1 reply; 9+ messages in thread
From: Linus Walleij @ 2018-02-05 19:02 UTC (permalink / raw)
  To: Thierry Reding
  Cc: Linus Torvalds, linux-gpio, linux-next, Linux Kernel Mailing List

On Mon, Feb 5, 2018 at 6:59 PM, Thierry Reding <thierry.reding@gmail.com> wrote:

> Anyway, I think going with the pinctrl/devinfo.h include only is fine
> for now. If it turns out that the Mediatek ethernet and Rockchip LVDS
> drivers can just omit the bits fiddling with struct dev_pin_info, we can
> swap out the pinctrl/devinfo.h include for pinctrl/consumer.h at that
> time.
>
> LinusW: what are your thoughts on the struct dev_pin_info usage by these
> drivers? Does their code seem redundant to you, too?

I don't think they should use struct dev_pin_info at all,
that thing is for the device core only.

I like to think that <linux/pinctrl/consumer.h> is for drivers that
explicitly grab and control pin control states so this driver should
only include <linux/pinctrl/consumer.h>.

Torvalds: can you do it like that instead? Either way will
make the compile work again, we can also tidy it up later.
(i.e. I will grep for includes of pinctrl/dev_info.h and replace
it with consumer.h) at some point.

It wasn't pretty that these drivers were relying on implicit
#includes in the first place so either is anyway prettier than
what it used to look like.

In a way I kind of like this sideffect even if it broke some
compiles.

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] net: mediatek: Explicitly include pinctrl headers
  2018-02-05 19:02       ` Linus Walleij
@ 2018-02-05 19:08         ` Thierry Reding
  2018-02-05 23:03           ` Linus Walleij
  0 siblings, 1 reply; 9+ messages in thread
From: Thierry Reding @ 2018-02-05 19:08 UTC (permalink / raw)
  To: Linus Walleij
  Cc: Linus Torvalds, linux-gpio, linux-next, Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 1438 bytes --]

On Mon, Feb 05, 2018 at 08:02:40PM +0100, Linus Walleij wrote:
> On Mon, Feb 5, 2018 at 6:59 PM, Thierry Reding <thierry.reding@gmail.com> wrote:
> 
> > Anyway, I think going with the pinctrl/devinfo.h include only is fine
> > for now. If it turns out that the Mediatek ethernet and Rockchip LVDS
> > drivers can just omit the bits fiddling with struct dev_pin_info, we can
> > swap out the pinctrl/devinfo.h include for pinctrl/consumer.h at that
> > time.
> >
> > LinusW: what are your thoughts on the struct dev_pin_info usage by these
> > drivers? Does their code seem redundant to you, too?
> 
> I don't think they should use struct dev_pin_info at all,
> that thing is for the device core only.
> 
> I like to think that <linux/pinctrl/consumer.h> is for drivers that
> explicitly grab and control pin control states so this driver should
> only include <linux/pinctrl/consumer.h>.
> 
> Torvalds: can you do it like that instead? Either way will
> make the compile work again, we can also tidy it up later.
> (i.e. I will grep for includes of pinctrl/dev_info.h and replace
> it with consumer.h) at some point.

That won't work, unfortunately, because these drivers actually try to
dereference pointers to struct dev_pin_info and hence need that include
for the structure's definition. Those are the only two drivers I can see
that access this structure directly (other than the device core).

Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] net: mediatek: Explicitly include pinctrl headers
  2018-02-05 19:08         ` Thierry Reding
@ 2018-02-05 23:03           ` Linus Walleij
  0 siblings, 0 replies; 9+ messages in thread
From: Linus Walleij @ 2018-02-05 23:03 UTC (permalink / raw)
  To: Thierry Reding
  Cc: Linus Torvalds, linux-gpio, linux-next, Linux Kernel Mailing List

On Mon, Feb 5, 2018 at 8:08 PM, Thierry Reding <thierry.reding@gmail.com> wrote:
> On Mon, Feb 05, 2018 at 08:02:40PM +0100, Linus Walleij wrote:
>> On Mon, Feb 5, 2018 at 6:59 PM, Thierry Reding <thierry.reding@gmail.com> wrote:
>>
>> > Anyway, I think going with the pinctrl/devinfo.h include only is fine
>> > for now. If it turns out that the Mediatek ethernet and Rockchip LVDS
>> > drivers can just omit the bits fiddling with struct dev_pin_info, we can
>> > swap out the pinctrl/devinfo.h include for pinctrl/consumer.h at that
>> > time.
>> >
>> > LinusW: what are your thoughts on the struct dev_pin_info usage by these
>> > drivers? Does their code seem redundant to you, too?
>>
>> I don't think they should use struct dev_pin_info at all,
>> that thing is for the device core only.
>>
>> I like to think that <linux/pinctrl/consumer.h> is for drivers that
>> explicitly grab and control pin control states so this driver should
>> only include <linux/pinctrl/consumer.h>.
>>
>> Torvalds: can you do it like that instead? Either way will
>> make the compile work again, we can also tidy it up later.
>> (i.e. I will grep for includes of pinctrl/dev_info.h and replace
>> it with consumer.h) at some point.
>
> That won't work, unfortunately, because these drivers actually try to
> dereference pointers to struct dev_pin_info and hence need that include
> for the structure's definition. Those are the only two drivers I can see
> that access this structure directly (other than the device core).

Grrr OK I thought I was aiming for encapsulation here but then
what can I do, sigh.

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2018-02-05 23:03 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-05 12:47 [PATCH 0/2] pinctrl: Implicit inclusion fallout fixes Thierry Reding
2018-02-05 12:47 ` [PATCH 1/2] drm/rockchip: lvds: Explicitly include pinctrl headers Thierry Reding
2018-02-05 12:47 ` [PATCH 2/2] mmc: meson-gx-mmc: Explicitly include pinctr/consumer.h Thierry Reding
2018-02-05 12:54 ` [PATCH] net: mediatek: Explicitly include pinctrl headers Thierry Reding
2018-02-05 17:42   ` Linus Torvalds
2018-02-05 17:59     ` Thierry Reding
2018-02-05 19:02       ` Linus Walleij
2018-02-05 19:08         ` Thierry Reding
2018-02-05 23:03           ` Linus Walleij

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).