From: Imre Deak Date: Fri, 18 Nov 2011 14:38:03 +0000 (+0200) Subject: gfx: pvr: add sgx_save_registers_no_pwron X-Git-Tag: 2.1b_release~491 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=48957e8fb3ec02ed749594261f36327ba0be169d;p=kernel%2Fkernel-mfld-blackbay.git gfx: pvr: add sgx_save_registers_no_pwron Needed by the upcoming patch. Signed-off-by: Imre Deak Signed-off-by: Kirill A. Shutemov --- diff --git a/drivers/staging/mrst/pvr/pvr_debug_core.c b/drivers/staging/mrst/pvr/pvr_debug_core.c index 511fdf0..6914901 100644 --- a/drivers/staging/mrst/pvr/pvr_debug_core.c +++ b/drivers/staging/mrst/pvr/pvr_debug_core.c @@ -113,3 +113,31 @@ int sgx_trigger_reset(PVRSRV_DEVICE_NODE *dev_node) return r; } + +void sgx_save_registers_no_pwron(PVRSRV_DEVICE_NODE *dev_node, + struct sgx_registers *regs) +{ + int reg; + + for (reg = 0; reg < ARRAY_SIZE(regs->v); reg++) + regs->v[reg] = sgx_read_reg(dev_node, reg * 4); +} + +int sgx_save_registers(PVRSRV_DEVICE_NODE *dev_node, struct sgx_registers *regs) +{ + PVRSRV_ERROR err; + + err = PVRSRVSetDevicePowerStateKM(dev_node->sDevId.ui32DeviceIndex, + PVRSRV_DEV_POWER_STATE_ON, + KERNEL_ID, IMG_TRUE); + if (err != PVRSRV_OK) + return -EIO; + + sgx_save_registers_no_pwron(dev_node, regs); + + PVRSRVPowerUnlock(KERNEL_ID); + /* power down if no activity */ + SGXTestActivePowerEvent(dev_node, KERNEL_ID); + + return 0; +} diff --git a/drivers/staging/mrst/pvr/pvr_debug_core.h b/drivers/staging/mrst/pvr/pvr_debug_core.h index db399fd..4117056 100644 --- a/drivers/staging/mrst/pvr/pvr_debug_core.h +++ b/drivers/staging/mrst/pvr/pvr_debug_core.h @@ -20,5 +20,9 @@ int sgx_print_fw_trace_rec(char *buf, size_t buf_size, int sgx_save_fw_state(PVRSRV_DEVICE_NODE *dev_node, struct sgx_fw_state *state); void sgx_dump_fw_state(PVRSRV_DEVICE_NODE *dev_node); int sgx_trigger_reset(PVRSRV_DEVICE_NODE *dev_node); +void sgx_save_registers_no_pwron(PVRSRV_DEVICE_NODE *dev_node, + struct sgx_registers *regs); +int sgx_save_registers(PVRSRV_DEVICE_NODE *dev_node, + struct sgx_registers *regs); #endif