Skip to content

Commit

Permalink
Revert "drm/amdgpu: Prefer dev_* variant over printk in amdgpu_atpx_h…
Browse files Browse the repository at this point in the history
…andler.c"

Usage of container_of is wrong here.
struct acpi_device *adev = container_of(handle, struct acpi_device, handle)

This reverts commit b0bd0a9.

References: https://gitlab.freedesktop.org/drm/amd/-/issues/2744
Cc: Guchun Chen <guchun.chen@amd.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Bert Karwatzki <spasswolf@web.de>
Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
Reviewed-by: Guchun Chen <guchun.chen@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
  • Loading branch information
Srinivasan Shanmugam authored and Alex Deucher committed Aug 7, 2023
1 parent 30a56f3 commit a494a7c
Showing 1 changed file with 12 additions and 23 deletions.
35 changes: 12 additions & 23 deletions drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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];
Expand All @@ -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;
}
Expand Down Expand Up @@ -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;
Expand All @@ -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;
}
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -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)
Expand All @@ -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);

Expand Down

0 comments on commit a494a7c

Please sign in to comment.