diff options
Diffstat (limited to 'meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0346-drm-amdgpu-add-atom-interfaces-for-CGS.patch')
-rw-r--r-- | meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0346-drm-amdgpu-add-atom-interfaces-for-CGS.patch | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0346-drm-amdgpu-add-atom-interfaces-for-CGS.patch b/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0346-drm-amdgpu-add-atom-interfaces-for-CGS.patch new file mode 100644 index 00000000..d1a6e844 --- /dev/null +++ b/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0346-drm-amdgpu-add-atom-interfaces-for-CGS.patch @@ -0,0 +1,76 @@ +From 25da442779041e5fac7ceba552264fda55106e3f Mon Sep 17 00:00:00 2001 +From: Chunming Zhou <David1.Zhou@amd.com> +Date: Fri, 22 May 2015 12:14:04 -0400 +Subject: [PATCH 0346/1050] drm/amdgpu: add atom interfaces for CGS + +This implements the interface for atombios command +and data table access. + +Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com> +Signed-off-by: Chunming Zhou <David1.Zhou@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 28 ++++++++++++++++++++++------ + 1 file changed, 22 insertions(+), 6 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c +index 93fbf35..c1ee39e 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c +@@ -24,6 +24,7 @@ + #include <linux/pci.h> + #include "amdgpu.h" + #include "cgs_linux.h" ++#include "atom.h" + + struct amdgpu_cgs_device { + struct cgs_device base; +@@ -221,24 +222,39 @@ static const void *amdgpu_cgs_atom_get_data_table(void *cgs_device, + unsigned table, uint16_t *size, + uint8_t *frev, uint8_t *crev) + { +- /* TODO */ ++ CGS_FUNC_ADEV; ++ uint16_t data_start; ++ ++ if (amdgpu_atom_parse_data_header( ++ adev->mode_info.atom_context, table, size, ++ frev, crev, &data_start)) ++ return (uint8_t*)adev->mode_info.atom_context->bios + ++ data_start; ++ + return NULL; + } + + static int amdgpu_cgs_atom_get_cmd_table_revs(void *cgs_device, unsigned table, + uint8_t *frev, uint8_t *crev) + { +- /* TODO */ +- return 0; ++ CGS_FUNC_ADEV; ++ ++ if (amdgpu_atom_parse_cmd_header( ++ adev->mode_info.atom_context, table, ++ frev, crev)) ++ return 0; ++ ++ return -EINVAL; + } + + static int amdgpu_cgs_atom_exec_cmd_table(void *cgs_device, unsigned table, + void *args) + { +- /* TODO */ +- return 0; +-} ++ CGS_FUNC_ADEV; + ++ return amdgpu_atom_execute_table( ++ adev->mode_info.atom_context, table, args); ++} + + static int amdgpu_cgs_create_pm_request(void *cgs_device, cgs_handle_t *request) + { +-- +1.9.1 + |