aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0346-drm-amdgpu-add-atom-interfaces-for-CGS.patch
diff options
context:
space:
mode:
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.patch76
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
+