Re: [PATCH v3 2/4] i2c: piix4: Move SB800_PIIX4_FCH_PM_ADDR definition to amd_node.h

From: Mario Limonciello
Date: Sun Apr 13 2025 - 15:27:42 EST




On 4/13/25 03:44, Ingo Molnar wrote:

* Ingo Molnar <mingo@xxxxxxxxxx> wrote:


* Borislav Petkov <bp@xxxxxxxxx> wrote:

I was aiming more for a header which contains non-CPU defines -
i.e., platform. But the FCH is only one part of that platform. But
let's start with amd/fch.h - "amd/" subpath element would allow us
to trivially put other headers there too - and see where it gets
us. We can (and will) always refactor later if needed...

Yeah, agreed on opening the <asm/amd/> namespace for this.

Here's a tree that establishes <asm/amd/> and moves existing headers
there:

git://git.kernel.org/pub/scm/linux/kernel/git/mingo/tip.git WIP.x86/platform

Mario, could you base your series on top of this tree?


Sure.

One problem that I notice though is that by using <asm/amd/fch.h> that drivers/i2c/busses/i2c-piix4.c has some compile failures on non-x86.

This is the same problem that lkp robot raised for v3 when it was on <asm/amd_node.h>:

https://lore.kernel.org/linux-doc/20250410200202.2974062-1-superm1@xxxxxxxxxx/T/#mc33abfcdc434c85fbc94d03498759db631efcf53

What's the preferred way to handle it?

The three ways that immediately jump out to me:

1) Add '#if CONFIG_X86' around all related code.

2) Move applicable code to drivers/i2c/busses/i2c-amd-fch.c (similar to how we have i2c-amd-asf-plat.c) but modify drivers/i2c/busses/Makefile to only compile it for x86.

3) Idea two but also add a new Kconfig for CONFIG_I2C_AMD_FCH that depends on CONFIG_X86.

I am /leaning/ on the refactor with idea 3.

Thanks,

Ingo

===============>
Ingo Molnar (6):
x86/platform/amd: Move the <asm/amd-ibs.h> header to <asm/amd/ibs.h>
x86/platform/amd: Add standard header guards to <asm/amd/ibs.h>
x86/platform/amd: Move the <asm/amd_nb.h> header to <asm/amd/nb.h>
x86/platform/amd: Move the <asm/amd_hsmp.h> header to <asm/amd/hsmp.h>
x86/platform/amd: Clean up the <asm/amd/hsmp.h> header guards a bit
x86/platform/amd: Move the <asm/amd_node.h> header to <asm/amd/node.h>

Documentation/userspace-api/ioctl/ioctl-number.rst | 2 +-
MAINTAINERS | 6 +++---
arch/x86/events/amd/ibs.c | 2 +-
arch/x86/include/asm/{amd_hsmp.h => amd/hsmp.h} | 4 ++--
arch/x86/include/asm/{amd-ibs.h => amd/ibs.h} | 5 +++++
arch/x86/include/asm/{amd_nb.h => amd/nb.h} | 2 +-
arch/x86/include/asm/{amd_node.h => amd/node.h} | 0
arch/x86/kernel/amd_gart_64.c | 2 +-
arch/x86/kernel/amd_nb.c | 2 +-
arch/x86/kernel/amd_node.c | 2 +-
arch/x86/kernel/aperture_64.c | 2 +-
arch/x86/kernel/cpu/cacheinfo.c | 2 +-
arch/x86/kernel/cpu/mce/inject.c | 2 +-
arch/x86/mm/amdtopology.c | 2 +-
arch/x86/mm/numa.c | 2 +-
arch/x86/pci/amd_bus.c | 2 +-
arch/x86/pci/fixup.c | 2 +-
drivers/char/agp/amd64-agp.c | 2 +-
drivers/edac/amd64_edac.c | 4 ++--
drivers/hwmon/k10temp.c | 2 +-
drivers/platform/x86/amd/hsmp/acpi.c | 4 ++--
drivers/platform/x86/amd/hsmp/hsmp.c | 2 +-
drivers/platform/x86/amd/hsmp/plat.c | 4 ++--
drivers/platform/x86/amd/pmc/mp1_stb.c | 2 +-
drivers/platform/x86/amd/pmc/pmc.c | 2 +-
drivers/platform/x86/amd/pmf/core.c | 2 +-
drivers/pnp/quirks.c | 2 +-
drivers/ras/amd/atl/internal.h | 4 ++--
sound/soc/amd/acp/acp-rembrandt.c | 2 +-
sound/soc/amd/acp/acp63.c | 2 +-
sound/soc/amd/acp/acp70.c | 2 +-
sound/soc/sof/amd/acp.c | 2 +-
tools/perf/check-headers.sh | 2 +-
tools/perf/util/amd-sample-raw.c | 2 +-
34 files changed, 44 insertions(+), 39 deletions(-)
rename arch/x86/include/asm/{amd_hsmp.h => amd/hsmp.h} (91%)
rename arch/x86/include/asm/{amd-ibs.h => amd/ibs.h} (98%)
rename arch/x86/include/asm/{amd_nb.h => amd/nb.h} (98%)
rename arch/x86/include/asm/{amd_node.h => amd/node.h} (100%)