On Mon, Jun 16, 2025 at 4:21 PM Mario Limonciello <[email protected]> wrote: > > From: Mario Limonciello <[email protected]> > > In order to discover whether a GPU is part of a dGPU or APU userspace has > to do some mental gymnastics or heuristics. Add a sysfs file that clearly > indicates to userspace.
You can already query this via the INFO IOCTL. What use case did you have in mind for this interface? Alex > > Signed-off-by: Mario Limonciello <[email protected]> > --- > drivers/gpu/drm/amd/pm/amdgpu_pm.c | 16 ++++++++++++++++ > drivers/gpu/drm/amd/pm/inc/amdgpu_pm.h | 1 + > 2 files changed, 17 insertions(+) > > diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c > b/drivers/gpu/drm/amd/pm/amdgpu_pm.c > index edd9895b46c02..4e4c77488e334 100644 > --- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c > +++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c > @@ -945,6 +945,21 @@ static ssize_t amdgpu_get_pp_features(struct device *dev, > return size; > } > > +/** > + * DOC: apu > + * > + * Represents whether GPU is on a dGPU (0) or APU (1) > + */ > +static ssize_t amdgpu_get_apu(struct device *dev, > + struct device_attribute *attr, > + char *buf) > +{ > + struct drm_device *ddev = dev_get_drvdata(dev); > + struct amdgpu_device *adev = drm_to_adev(ddev); > + > + return sysfs_emit(buf, "%d\n", adev->flags & AMD_IS_APU ? 1 : 0); > +} > + > /** > * DOC: pp_dpm_sclk pp_dpm_mclk pp_dpm_socclk pp_dpm_fclk pp_dpm_dcefclk > pp_dpm_pcie > * > @@ -2287,6 +2302,7 @@ static struct amdgpu_device_attr amdgpu_device_attrs[] > = { > .attr_update = ss_bias_attr_update), > AMDGPU_DEVICE_ATTR_RO(pm_metrics, > ATTR_FLAG_BASIC, > .attr_update = amdgpu_pm_metrics_attr_update), > + AMDGPU_DEVICE_ATTR_RO(apu, > ATTR_FLAG_BASIC), > }; > > static int default_attr_update(struct amdgpu_device *adev, struct > amdgpu_device_attr *attr, > diff --git a/drivers/gpu/drm/amd/pm/inc/amdgpu_pm.h > b/drivers/gpu/drm/amd/pm/inc/amdgpu_pm.h > index c12ced32f7808..ffd008c1e6ec2 100644 > --- a/drivers/gpu/drm/amd/pm/inc/amdgpu_pm.h > +++ b/drivers/gpu/drm/amd/pm/inc/amdgpu_pm.h > @@ -78,6 +78,7 @@ enum amdgpu_device_attr_id { > device_attr_id__smartshift_dgpu_power, > device_attr_id__smartshift_bias, > device_attr_id__pm_metrics, > + device_attr_id__apu, > device_attr_id__count, > }; > > -- > 2.43.0 >
