[Public] Reviewed-by: Guchun Chen <guchun.chen@xxxxxxx> Regards, Guchun > -----Original Message----- > From: SHANMUGAM, SRINIVASAN <SRINIVASAN.SHANMUGAM@xxxxxxx> > Sent: Monday, July 31, 2023 7:58 PM > To: Koenig, Christian <Christian.Koenig@xxxxxxx>; Deucher, Alexander > <Alexander.Deucher@xxxxxxx>; Chen, Guchun <Guchun.Chen@xxxxxxx> > Cc: amd-gfx@xxxxxxxxxxxxxxxxxxxxx; SHANMUGAM, SRINIVASAN > <SRINIVASAN.SHANMUGAM@xxxxxxx>; Bert Karwatzki > <spasswolf@xxxxxx> > Subject: [PATCH] Revert "drm/amdgpu: Prefer dev_* variant over printk in > amdgpu_atpx_handler.c" > > Usage of container_of is wrong here. > struct acpi_device *adev = container_of(handle, struct acpi_device, handle) > > This reverts commit 7b19690805bbac72c82d9b9321f8130ad7898bb3. > > References: https://gitlab.freedesktop.org/drm/amd/-/issues/2744 > Cc: Guchun Chen <guchun.chen@xxxxxxx> > Cc: Christian König <christian.koenig@xxxxxxx> > Cc: Alex Deucher <alexander.deucher@xxxxxxx> > Cc: Bert Karwatzki <spasswolf@xxxxxx> > Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam@xxxxxxx> > --- > .../gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c | 35 +++++++------------ > 1 file changed, 12 insertions(+), 23 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c > index 6f241c574665..d6d986be906a 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c > @@ -74,29 +74,24 @@ struct atpx_mux { > u16 mux; > } __packed; > > -bool amdgpu_has_atpx(void) > -{ > +bool amdgpu_has_atpx(void) { > return amdgpu_atpx_priv.atpx_detected; } > > -bool amdgpu_has_atpx_dgpu_power_cntl(void) > -{ > +bool amdgpu_has_atpx_dgpu_power_cntl(void) { > return amdgpu_atpx_priv.atpx.functions.power_cntl; > } > > -bool amdgpu_is_atpx_hybrid(void) > -{ > +bool amdgpu_is_atpx_hybrid(void) { > return amdgpu_atpx_priv.atpx.is_hybrid; } > > -bool amdgpu_atpx_dgpu_req_power_for_displays(void) > -{ > +bool amdgpu_atpx_dgpu_req_power_for_displays(void) { > return amdgpu_atpx_priv.atpx.dgpu_req_power_for_displays; > } > > #if defined(CONFIG_ACPI) > -void *amdgpu_atpx_get_dhandle(void) > -{ > +void *amdgpu_atpx_get_dhandle(void) { > return amdgpu_atpx_priv.dhandle; > } > #endif > @@ -118,8 +113,6 @@ static union acpi_object > *amdgpu_atpx_call(acpi_handle handle, int function, > union acpi_object atpx_arg_elements[2]; > struct acpi_object_list atpx_arg; > struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; > - struct acpi_device *adev = container_of(handle, struct acpi_device, > handle); > - struct device *dev = &adev->dev; > > atpx_arg.count = 2; > atpx_arg.pointer = &atpx_arg_elements[0]; @@ -141,8 +134,8 @@ > static union acpi_object *amdgpu_atpx_call(acpi_handle handle, int function, > > /* Fail only if calling the method fails and ATPX is supported */ > if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) { > - dev_err(dev, "failed to evaluate ATPX got %s\n", > - acpi_format_exception(status)); > + printk("failed to evaluate ATPX got %s\n", > + acpi_format_exception(status)); > kfree(buffer.pointer); > return NULL; > } > @@ -183,8 +176,6 @@ static void amdgpu_atpx_parse_functions(struct > amdgpu_atpx_functions *f, u32 mas static int amdgpu_atpx_validate(struct > amdgpu_atpx *atpx) { > u32 valid_bits = 0; > - struct acpi_device *adev = container_of(atpx->handle, struct > acpi_device, handle); > - struct device *dev = &adev->dev; > > if (atpx->functions.px_params) { > union acpi_object *info; > @@ -199,7 +190,7 @@ static int amdgpu_atpx_validate(struct amdgpu_atpx > *atpx) > > size = *(u16 *) info->buffer.pointer; > if (size < 10) { > - dev_err(dev, "ATPX buffer is too small: %zu\n", size); > + printk("ATPX buffer is too small: %zu\n", size); > kfree(info); > return -EINVAL; > } > @@ -232,11 +223,11 @@ static int amdgpu_atpx_validate(struct > amdgpu_atpx *atpx) > atpx->is_hybrid = false; > if (valid_bits & ATPX_MS_HYBRID_GFX_SUPPORTED) { > if (amdgpu_atpx_priv.quirks & > AMDGPU_PX_QUIRK_FORCE_ATPX) { > - dev_info(dev, "ATPX Hybrid Graphics, forcing to > ATPX\n"); > + printk("ATPX Hybrid Graphics, forcing to ATPX\n"); > atpx->functions.power_cntl = true; > atpx->is_hybrid = false; > } else { > - dev_info(dev, "ATPX Hybrid Graphics\n"); > + printk("ATPX Hybrid Graphics\n"); > /* > * Disable legacy PM methods only when pcie port > PM is usable, > * otherwise the device might fail to power off or > power on. > @@ -269,8 +260,6 @@ static int amdgpu_atpx_verify_interface(struct > amdgpu_atpx *atpx) > struct atpx_verify_interface output; > size_t size; > int err = 0; > - struct acpi_device *adev = container_of(atpx->handle, struct > acpi_device, handle); > - struct device *dev = &adev->dev; > > info = amdgpu_atpx_call(atpx->handle, > ATPX_FUNCTION_VERIFY_INTERFACE, NULL); > if (!info) > @@ -289,8 +278,8 @@ static int amdgpu_atpx_verify_interface(struct > amdgpu_atpx *atpx) > memcpy(&output, info->buffer.pointer, size); > > /* TODO: check version? */ > - dev_info(dev, "ATPX version %u, functions 0x%08x\n", > - output.version, output.function_bits); > + printk("ATPX version %u, functions 0x%08x\n", > + output.version, output.function_bits); > > amdgpu_atpx_parse_functions(&atpx->functions, > output.function_bits); > > -- > 2.25.1