summaryrefslogtreecommitdiff
path: root/drivers/mxc/amd-gpu/platform/hal/MX51
diff options
context:
space:
mode:
authorr80085 <thomas.peng@freescale.com>2010-07-19 18:00:16 -0500
committerJustin Waters <justin.waters@timesys.com>2010-12-17 12:10:52 -0500
commitd93d51e0de7f8162e7fa4185872cad8ac11ae530 (patch)
tree0249648af8a697fe044c81589eee0f6dcde90bc7 /drivers/mxc/amd-gpu/platform/hal/MX51
parentee7ed985bb53ccba77007393c8be2d14c8a2cdf2 (diff)
ENGR00125256 Integrate AMD Rc16/EA VG/GL fix to GPU kernel module
Fix the VG/GL issue in GPU kernel module when running VG/GL at the same time Signed-off-by: Gene Chouiniere <Gene.Chouiniere@amd.com> Signed-off-by: r80085 <thomas.peng@freescale.com> Acked-by: Rob Herring <r.herring@freescale.com>
Diffstat (limited to 'drivers/mxc/amd-gpu/platform/hal/MX51')
-rw-r--r--drivers/mxc/amd-gpu/platform/hal/MX51/gsl_buildconfig.h2
-rw-r--r--drivers/mxc/amd-gpu/platform/hal/MX51/linux/gsl_hal.c10
2 files changed, 7 insertions, 5 deletions
diff --git a/drivers/mxc/amd-gpu/platform/hal/MX51/gsl_buildconfig.h b/drivers/mxc/amd-gpu/platform/hal/MX51/gsl_buildconfig.h
index 4b1ff9445e83..82824f511d5e 100644
--- a/drivers/mxc/amd-gpu/platform/hal/MX51/gsl_buildconfig.h
+++ b/drivers/mxc/amd-gpu/platform/hal/MX51/gsl_buildconfig.h
@@ -32,7 +32,7 @@
#define GSL_BLD_YAMATO
#define GSL_BLD_G12
-//#define GSL_LOCKING_COURSEGRAIN
+#define GSL_LOCKING_COURSEGRAIN
#define GSL_STATS_MEM
#define GSL_STATS_RINGBUFFER
diff --git a/drivers/mxc/amd-gpu/platform/hal/MX51/linux/gsl_hal.c b/drivers/mxc/amd-gpu/platform/hal/MX51/linux/gsl_hal.c
index e39c2b4d6fba..965416b59ec1 100644
--- a/drivers/mxc/amd-gpu/platform/hal/MX51/linux/gsl_hal.c
+++ b/drivers/mxc/amd-gpu/platform/hal/MX51/linux/gsl_hal.c
@@ -462,18 +462,19 @@ kgsl_hal_getdevconfig(gsl_deviceid_t device_id, gsl_devconfig_t *config)
KGSLHAL_API gsl_chipid_t
kgsl_hal_getchipid(gsl_deviceid_t device_id)
{
+ gsl_device_t *device = &gsl_driver.device[device_id-1];
gsl_chipid_t chipid;
unsigned int coreid, majorid, minorid, patchid, revid;
// YDX
- kgsl_device_regread(device_id, mmRBBM_PERIPHID1, &coreid);
+ device->ftbl.device_regread(device, mmRBBM_PERIPHID1, &coreid);
coreid &= 0xF;
// 2.
- kgsl_device_regread(device_id, mmRBBM_PERIPHID2, &majorid);
+ device->ftbl.device_regread(device, mmRBBM_PERIPHID2, &majorid);
majorid = (majorid >> 4) & 0xF;
- kgsl_device_regread(device_id, mmRBBM_PATCH_RELEASE, &revid);
+ device->ftbl.device_regread(device, mmRBBM_PATCH_RELEASE, &revid);
// 2.
minorid = ((revid >> 0) & 0xFF); // this is a 16bit field, but extremely unlikely it would ever get this high
@@ -507,6 +508,7 @@ kgsl_hal_getplatformtype(char *platform)
KGSLHAL_API int
kgsl_hal_setpowerstate(gsl_deviceid_t device_id, int state, unsigned int value)
{
+ gsl_device_t *device = &gsl_driver.device[device_id-1];
struct clk *gpu_clk = 0;
struct clk *garb_clk = clk_get(0, "garb_clk");
struct clk *emi_garb_clk = clk_get(0, "emi_garb_clk");
@@ -542,7 +544,7 @@ kgsl_hal_setpowerstate(gsl_deviceid_t device_id, int state, unsigned int value)
case GSL_PWRFLAGS_CLK_OFF:
break;
case GSL_PWRFLAGS_POWER_OFF:
- if (kgsl_device_idle(device_id, GSL_TIMEOUT_DEFAULT) != GSL_SUCCESS)
+ if (device->ftbl.device_idle(device, GSL_TIMEOUT_DEFAULT) != GSL_SUCCESS)
{
return (GSL_FAILURE_DEVICEERROR);
}