X86 platform drivers
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: "Mario Limonciello" <mario.limonciello@amd.com>,
	"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
Cc: "open list:X86 PLATFORM DRIVERS"
	<platform-driver-x86@vger.kernel.org>,
	Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
Subject: Re: [PATCH] platform/x86/amd: Don't allow HSMP=y and PMC to be enabled together
Date: Mon, 15 Apr 2024 16:00:38 +0200	[thread overview]
Message-ID: <4170c053-85ca-40e4-91ca-bbaea8fb8e36@redhat.com> (raw)
In-Reply-To: <20240410141025.410-1-mario.limonciello@amd.com>

Hi Mario,

On 4/10/24 4:10 PM, Mario Limonciello wrote:
> If the HSMP driver is compiled into the kernel it can cause problems
> on systems that support PMC since it probes hardware it shouldn't.
> 
> Prevent users from compiling HSMP as built-in when PMC is enabled.
> 
> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2414
> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3285
> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>

Your commit message says "Prevent users from compiling HSMP as
built-in when PMC is enabled."

But what you are doing is preventing building PMC at all when
HSMP is builtin. Not sure if that is actually what you want,
but if it is then the commit msg needs some work.

Also I'm wondering how this actually fixes anything. Users
can still enable both as a module and then load both modules
at the same time?

So wouldn't it be better for both drivers to somehow see
the other driver is bound and then exit from probe() early on?

Typically how this works is that there is a "struct device"
representing the hw-block and then only one device driver
can be bound at the same time.

IIRC the PMC is somewhat special and does not really have
a "struct device" automatically instantiated for it by
the kernel. But there could still be some shared common
code which instantiates a platform_device for the pmc and
then both drivers could become platform drivers and the user
can switch between the 2 even if both are builtin by unbinding
one platform-driver through sysfs and then binding the other
through sysfs.

Regards,

Hans




> ---
>  drivers/platform/x86/amd/pmc/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/platform/x86/amd/pmc/Kconfig b/drivers/platform/x86/amd/pmc/Kconfig
> index 883c0a95ac0c..d734f6698f97 100644
> --- a/drivers/platform/x86/amd/pmc/Kconfig
> +++ b/drivers/platform/x86/amd/pmc/Kconfig
> @@ -7,6 +7,7 @@ config AMD_PMC
>  	tristate "AMD SoC PMC driver"
>  	depends on ACPI && PCI && RTC_CLASS && AMD_NB
>  	depends on SUSPEND
> +	depends on (AMD_HSMP = n) || (AMD_HSMP = m)
>  	select SERIO
>  	help
>  	  The driver provides support for AMD Power Management Controller


      parent reply	other threads:[~2024-04-15 14:00 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-10 14:10 [PATCH] platform/x86/amd: Don't allow HSMP=y and PMC to be enabled together Mario Limonciello
2024-04-10 16:37 ` Kuppuswamy Sathyanarayanan
2024-04-15 14:00 ` Hans de Goede [this message]

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=4170c053-85ca-40e4-91ca-bbaea8fb8e36@redhat.com \
    --to=hdegoede@redhat.com \
    --cc=Shyam-sundar.S-k@amd.com \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=mario.limonciello@amd.com \
    --cc=platform-driver-x86@vger.kernel.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