The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: "Uwe Kleine-König (The Capable Hub)" <u.kleine-koenig@baylibre.com>
To: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Hans de Goede <hansg@kernel.org>,
	 platform-driver-x86@vger.kernel.org,
	LKML <linux-kernel@vger.kernel.org>,
	 Danilo Krummrich <dakr@kernel.org>
Subject: Re: [PATCH v3 09/16] platform/x86: x86-android-tablets: Add include defining struct dmi_system_id
Date: Tue, 30 Jun 2026 19:30:46 +0200	[thread overview]
Message-ID: <akP5FKsnsdzx8pMk@monoceros> (raw)
In-Reply-To: <32255bd6-4015-e945-2ee2-4bc3ca0c3a9c@linux.intel.com>

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

Hello Ilpo,

On Tue, Jun 30, 2026 at 05:58:54PM +0300, Ilpo Järvinen wrote:
> On Mon, 29 Jun 2026, Uwe Kleine-König (The Capable Hub) wrote:
> > On Mon, Jun 29, 2026 at 02:38:35PM +0300, Ilpo Järvinen wrote:
> > > On Sun, 28 Jun 2026, Uwe Kleine-König (The Capable Hub) wrote:
> > > 
> > > > Currently <linux/i2c.h> includes <linux/mod_devicetable.h> transitively
> > > > which ensures that struct dmi_system_id is defined in
> > > > drivers/platform/x86/x86-android-tablets/x86-android-tablets.h. However
> > > > this include in <linux/i2c.h> will be replaced by one for i2c_device_id
> > > > only. To ensure that dmi_system_id is available add the include for that
> > > > explicitly.
> > > > 
> > > > Acked-by: Danilo Krummrich <dakr@kernel.org>
> > > > Signed-off-by: Uwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com>
> > > > ---
> > > >  drivers/platform/x86/x86-android-tablets/x86-android-tablets.h | 1 +
> > > >  1 file changed, 1 insertion(+)
> > > > 
> > > > diff --git a/drivers/platform/x86/x86-android-tablets/x86-android-tablets.h b/drivers/platform/x86/x86-android-tablets/x86-android-tablets.h
> > > > index 2498390958ad..c756961ae5fd 100644
> > > > --- a/drivers/platform/x86/x86-android-tablets/x86-android-tablets.h
> > > > +++ b/drivers/platform/x86/x86-android-tablets/x86-android-tablets.h
> > > > @@ -13,6 +13,7 @@
> > > >  #include <linux/gpio/consumer.h>
> > > >  #include <linux/i2c.h>
> > > >  #include <linux/irqdomain_defs.h>
> > > > +#include <linux/device-id/dmi.h>
> > > >  #include <linux/spi/spi.h>
> > > >  
> > > >  struct gpio_desc;
> > > 
> > > Indirect include patchs are never a good idea as it always makes header 
> > > reorganizations minefield. So for this change,
> > > 
> > > Acked-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
> > > 
> > > 
> > > When it comes to the series, I certainly like the direction it goes very 
> > > much (never have been fan of mod_devicetable.h) but I'd have preferred 
> > > stepwise approach over trying to introduce it to some mid-rc.
> > 
> > The hurdle here is that at least the header part isn't easily
> > automateable.
> 
> Patch 1?

No, patch 15.

> > (Well it is, but the script that I have now to check all
> > .c files already takes longer than an hour to run. I guess it's not as
> > optimal as it could, but still.) And so getting this ready for inclusion
> > in next and keeping it up to date until the merge window opens is a
> > tough job.
> > 
> > The further downside is that each modification to one of the highly used
> > headers is expensive (in rebuild time) when these are merged one after
> > another (or when bisecting). So getting these changes in in one batch is
> > beneficial.
> > 
> > So while I agree with your preference, I don't think it's feasible.
> 
> While I understand keeping it up-to-date must be a pain, I'm not entirely 
> convinced by the rebuild time argument as it has been the status quo so 
> far too for anything touching mod_devicetable.h.

Yes. I don't know about others, but big rebuilds annoy me regularily.
And with another quest that involves touching most struct *_device_id
this really gets a pain. And just because "we" endured something in the
past, doesn't mean we shouldn't improve.

> If one commit would move all linux/device-id/* AND ADD them all into 
> mod_devicetable.h as includes, that's just one rebuild more (and one 
> rebuild will occur anyway whichever way you architect this).

Yes, one rebuild isn't possible to prevent. You're talking about patch
#1, right?

> Only if includes would be then removed one-by-one from mod_devicetable.h 
> (e.g. per subsystem basis), I can see it causing n rebuilds (+conflicts), 
> but they could be removed in bulk as well.

Removing those from mod_devicetable.h isn't part of the plan. But
replacing `#include <linux/mod_devicetable.h>` by `#include
<linux/device-id/of.h>` in <linux/of.h> triggers again many rebuilds
when done separately.
And then for <linux/pci.h> and again for <linux/platform_driver.h> and
.... That's why those are included here, too, to at least use the "one
rebuild needed" window for the high-impact follow up changes, and
trigger a rebuild only once (unless you happen to hit an inbetween
commit while bisecting).

> What you can achieve is preventing those "normal" mod_devicetable.h 
> changes enforcing rebuilds right after this has been applied, but that is 
> just the rebuilds as status quo would have without this series and no 
> more.

This is exactly the goal. I don't get the "just" part of your argument.
The point is that a modification to struct i2c_device_id should only
trigger a rebuild of i2c drivers, but not of pci, platform, spi and all
the others, too.

Best regards
Uwe

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

  reply	other threads:[~2026-06-30 17:30 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-28 21:58 [PATCH v3 00/16] mod_devicetable.h: Split into per subsystem headers Uwe Kleine-König (The Capable Hub)
2026-06-28 21:58 ` [PATCH v3 01/16] " Uwe Kleine-König (The Capable Hub)
2026-06-28 21:58 ` [PATCH v3 02/16] media: ti: vpe: #include <linux/platform_device.h> explicitly Uwe Kleine-König (The Capable Hub)
2026-06-29  5:42   ` Yemike Abhilash Chandra
2026-06-28 21:58 ` [PATCH v3 03/16] driver: core: Include headers for acpi_device_id and of_device_id for struct device_driver Uwe Kleine-König (The Capable Hub)
2026-06-29 13:43   ` Rafael J. Wysocki (Intel)
2026-06-28 21:58 ` [PATCH v3 04/16] driver core: platform: Include header for struct platform_device_id Uwe Kleine-König (The Capable Hub)
2026-06-28 21:58 ` [PATCH v3 05/16] usb: serial: Include <linux/usb.h> in <linux/usb/serial.h> Uwe Kleine-König (The Capable Hub)
2026-06-28 21:58 ` [PATCH v3 06/16] platform/x86: msi-ec: Ensure dmi_system_id is defined Uwe Kleine-König (The Capable Hub)
2026-06-29 11:39   ` Ilpo Järvinen
2026-06-28 21:58 ` [PATCH v3 07/16] of: Explicitly include <linux/types.h> and <linux/err.h> Uwe Kleine-König (The Capable Hub)
2026-06-28 21:58 ` [PATCH v3 08/16] i2c: Let i2c-core.h include <linux/i2c.h> Uwe Kleine-König (The Capable Hub)
2026-06-29  6:31   ` Wolfram Sang
2026-06-29 10:09     ` Uwe Kleine-König (The Capable Hub)
2026-06-28 21:58 ` [PATCH v3 09/16] platform/x86: x86-android-tablets: Add include defining struct dmi_system_id Uwe Kleine-König (The Capable Hub)
2026-06-29 11:38   ` Ilpo Järvinen
2026-06-29 13:36     ` Uwe Kleine-König (The Capable Hub)
2026-06-30 14:58       ` Ilpo Järvinen
2026-06-30 17:30         ` Uwe Kleine-König (The Capable Hub) [this message]
2026-06-30 18:07           ` Ilpo Järvinen
2026-06-28 21:58 ` [PATCH v3 10/16] platform/x86: int3472: " Uwe Kleine-König (The Capable Hub)
2026-06-29 12:18   ` Ilpo Järvinen
2026-06-28 21:58 ` [PATCH v3 11/16] usb: dwc2: Add include defining struct pci_device_id Uwe Kleine-König (The Capable Hub)
2026-06-28 21:58 ` [PATCH v3 12/16] ALSA: hda/core: Add include defining struct hda_device_id Uwe Kleine-König (The Capable Hub)
2026-06-28 21:58 ` [PATCH v3 13/16] LoongArch: KVM: Add include defining struct cpu_feature Uwe Kleine-König (The Capable Hub)
2026-06-29  2:20   ` Bibo Mao
2026-06-28 21:58 ` [PATCH v3 14/16] media: em28xx: Add include for struct usb_device_id Uwe Kleine-König (The Capable Hub)
2026-06-28 21:58 ` [PATCH v3 15/16] Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (headers) Uwe Kleine-König (The Capable Hub)
2026-06-28 21:58 ` [PATCH v3 16/16] Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) Uwe Kleine-König (The Capable Hub)
2026-06-30 19:37   ` Bjorn Helgaas
2026-06-29 23:58 ` [PATCH v3 00/16] mod_devicetable.h: Split into per subsystem headers Takashi Sakamoto
2026-06-30  6:04   ` Uwe Kleine-König (The Capable Hub)
2026-06-30 13:11     ` Takashi Sakamoto

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=akP5FKsnsdzx8pMk@monoceros \
    --to=u.kleine-koenig@baylibre.com \
    --cc=dakr@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hansg@kernel.org \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=torvalds@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox