diff options
author | r80085 <thomas.peng@freescale.com> | 2010-07-19 18:00:16 -0500 |
---|---|---|
committer | Justin Waters <justin.waters@timesys.com> | 2010-12-17 12:10:52 -0500 |
commit | d93d51e0de7f8162e7fa4185872cad8ac11ae530 (patch) | |
tree | 0249648af8a697fe044c81589eee0f6dcde90bc7 /drivers/mxc/amd-gpu/platform/hal/MX51 | |
parent | ee7ed985bb53ccba77007393c8be2d14c8a2cdf2 (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.h | 2 | ||||
-rw-r--r-- | drivers/mxc/amd-gpu/platform/hal/MX51/linux/gsl_hal.c | 10 |
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); } |