Message ID | 20241025193055.2235-3-mario.limonciello@amd.com |
---|---|
State | New |
Headers | show |
Series | Add support for binding ACPI platform profile to multiple drivers | expand |
Hi, On 25-Oct-24 9:30 PM, Mario Limonciello wrote: > To be able to reference the platform handler in remove, add > a pointer to `struct ssam_device`. > > Tested-by: Matthew Schwartz <matthew.schwartz@linux.dev> > Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> Thanks, patch looks good to me: Reviewed-by: Hans de Goede <hdegoede@redhat.com> Regards, Hans > --- > drivers/platform/surface/surface_platform_profile.c | 1 + > include/linux/surface_aggregator/device.h | 2 ++ > 2 files changed, 3 insertions(+) > > diff --git a/drivers/platform/surface/surface_platform_profile.c b/drivers/platform/surface/surface_platform_profile.c > index 61aa488a80eb5..958afd7bce223 100644 > --- a/drivers/platform/surface/surface_platform_profile.c > +++ b/drivers/platform/surface/surface_platform_profile.c > @@ -210,6 +210,7 @@ static int surface_platform_profile_probe(struct ssam_device *sdev) > return -ENOMEM; > > tpd->sdev = sdev; > + sdev->tpd = tpd; > > tpd->handler.name = "Surface Platform Profile"; > tpd->handler.profile_get = ssam_platform_profile_get; > diff --git a/include/linux/surface_aggregator/device.h b/include/linux/surface_aggregator/device.h > index 8cd8c38cf3f30..6a72b5bdc8782 100644 > --- a/include/linux/surface_aggregator/device.h > +++ b/include/linux/surface_aggregator/device.h > @@ -164,6 +164,7 @@ enum ssam_device_flags { > * @dev: Driver model representation of the device. > * @ctrl: SSAM controller managing this device. > * @uid: UID identifying the device. > + * @tpd: Platform profile device data. > * @flags: Device state flags, see &enum ssam_device_flags. > */ > struct ssam_device { > @@ -171,6 +172,7 @@ struct ssam_device { > struct ssam_controller *ctrl; > > struct ssam_device_uid uid; > + struct ssam_platform_profile_device *tpd; > > unsigned long flags; > };
On 10/25/24 9:30 PM, Mario Limonciello wrote: > To be able to reference the platform handler in remove, add > a pointer to `struct ssam_device`. > > Tested-by: Matthew Schwartz <matthew.schwartz@linux.dev> > Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> > --- > drivers/platform/surface/surface_platform_profile.c | 1 + > include/linux/surface_aggregator/device.h | 2 ++ > 2 files changed, 3 insertions(+) > > diff --git a/drivers/platform/surface/surface_platform_profile.c b/drivers/platform/surface/surface_platform_profile.c > index 61aa488a80eb5..958afd7bce223 100644 > --- a/drivers/platform/surface/surface_platform_profile.c > +++ b/drivers/platform/surface/surface_platform_profile.c > @@ -210,6 +210,7 @@ static int surface_platform_profile_probe(struct ssam_device *sdev) > return -ENOMEM; > > tpd->sdev = sdev; > + sdev->tpd = tpd; > > tpd->handler.name = "Surface Platform Profile"; > tpd->handler.profile_get = ssam_platform_profile_get; > diff --git a/include/linux/surface_aggregator/device.h b/include/linux/surface_aggregator/device.h > index 8cd8c38cf3f30..6a72b5bdc8782 100644 > --- a/include/linux/surface_aggregator/device.h > +++ b/include/linux/surface_aggregator/device.h > @@ -164,6 +164,7 @@ enum ssam_device_flags { > * @dev: Driver model representation of the device. > * @ctrl: SSAM controller managing this device. > * @uid: UID identifying the device. > + * @tpd: Platform profile device data. > * @flags: Device state flags, see &enum ssam_device_flags. > */ > struct ssam_device { > @@ -171,6 +172,7 @@ struct ssam_device { > struct ssam_controller *ctrl; > > struct ssam_device_uid uid; > + struct ssam_platform_profile_device *tpd; Do we really need to introduce a new field in the main SSAM device struct? I only had time for a brief look, but IIUC you could just use ssam_device_set_drvdata() and ssam_device_get_drvdata(). > unsigned long flags; > }; Best regards, Max
diff --git a/drivers/platform/surface/surface_platform_profile.c b/drivers/platform/surface/surface_platform_profile.c index 61aa488a80eb5..958afd7bce223 100644 --- a/drivers/platform/surface/surface_platform_profile.c +++ b/drivers/platform/surface/surface_platform_profile.c @@ -210,6 +210,7 @@ static int surface_platform_profile_probe(struct ssam_device *sdev) return -ENOMEM; tpd->sdev = sdev; + sdev->tpd = tpd; tpd->handler.name = "Surface Platform Profile"; tpd->handler.profile_get = ssam_platform_profile_get; diff --git a/include/linux/surface_aggregator/device.h b/include/linux/surface_aggregator/device.h index 8cd8c38cf3f30..6a72b5bdc8782 100644 --- a/include/linux/surface_aggregator/device.h +++ b/include/linux/surface_aggregator/device.h @@ -164,6 +164,7 @@ enum ssam_device_flags { * @dev: Driver model representation of the device. * @ctrl: SSAM controller managing this device. * @uid: UID identifying the device. + * @tpd: Platform profile device data. * @flags: Device state flags, see &enum ssam_device_flags. */ struct ssam_device { @@ -171,6 +172,7 @@ struct ssam_device { struct ssam_controller *ctrl; struct ssam_device_uid uid; + struct ssam_platform_profile_device *tpd; unsigned long flags; };