Commit 83ab7212 authored by Zhou, Jie's avatar Zhou, Jie Committed by Alexey Mednyy

ENGR00141400 GPU: Improve GPU clock gating

seperate interrupt handling and clk_enable for Z160 and Z430
Signed-off-by: default avatarZhou, Jie <b30303@freescale.com>
Signed-off-by: default avatarRichard Zhao <richard.zhao@freescale.com>
parent f825f804
......@@ -84,21 +84,11 @@ kgsl_intr_decode(gsl_device_t *device, gsl_intrblock_t block_id)
//----------------------------------------------------------------------------
KGSL_API void
kgsl_intr_isr()
kgsl_intr_isr(gsl_device_t *device)
{
gsl_deviceid_t device_id;
gsl_device_t *device;
// loop through the devices, and call device specific isr
for (device_id = (gsl_deviceid_t)(GSL_DEVICE_ANY + 1); device_id <= GSL_DEVICE_MAX; device_id++)
{
device = &gsl_driver.device[device_id-1]; // device_id is 1 based
if (device->intr.flags & GSL_FLAGS_INITIALIZED)
{
kgsl_device_active(device);
device->ftbl.intr_isr(device);
}
if (device->intr.flags & GSL_FLAGS_INITIALIZED) {
kgsl_device_active(device);
device->ftbl.intr_isr(device);
}
}
......
......@@ -120,7 +120,7 @@ KGSL_API int kgsl_sharedmem_fromhostpointer(gsl_deviceid_t device
////////////////////////////////////////////////////////////////////////////
// interrupt API
////////////////////////////////////////////////////////////////////////////
KGSL_API void kgsl_intr_isr(void);
KGSL_API void kgsl_intr_isr(gsl_device_t *device);
////////////////////////////////////////////////////////////////////////////
......
......@@ -751,13 +751,13 @@ static struct class *gsl_kmod_class;
static irqreturn_t z160_irq_handler(int irq, void *dev_id)
{
kgsl_intr_isr();
kgsl_intr_isr(&gsl_driver.device[GSL_DEVICE_G12-1]);
return IRQ_HANDLED;
}
static irqreturn_t z430_irq_handler(int irq, void *dev_id)
{
kgsl_intr_isr();
kgsl_intr_isr(&gsl_driver.device[GSL_DEVICE_YAMATO-1]);
return IRQ_HANDLED;
}
......
/*
* Copyright (C) 2010 Freescale Semiconductor, Inc. All Rights Reserved.
* Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved.
*/
/*
......@@ -85,7 +85,7 @@ static int _kgsl_device_active(gsl_device_t *dev, int all)
}
int kgsl_device_active(gsl_device_t *dev)
{
return _kgsl_device_active(dev, 1);
return _kgsl_device_active(dev, 0);
}
static void kgsl_device_inactive(unsigned long data)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment