* Finally we pass KERNEL_ID again to take and release the lock.
* Yay!
*/
- HWRecoveryResetSGX(node, 0, TIMER_ID);
+ HWRecoveryResetSGX(node);
SGXTestActivePowerEvent(node, KERNEL_ID);
exit:
SGXOSTimerInit(struct PVRSRV_DEVICE_NODE *psDeviceNode);
void SGXOSTimerDeInit(struct timer_work_data *data);
-void HWRecoveryResetSGX(struct PVRSRV_DEVICE_NODE *psDeviceNode,
- u32 ui32Component, u32 ui32CallerID);
+void HWRecoveryResetSGX(struct PVRSRV_DEVICE_NODE *psDeviceNode);
void SGXReset(struct PVRSRV_SGXDEV_INFO *psDevInfo, u32 ui32PDUMPFlags);
enum PVRSRV_ERROR SGXInitialise(struct PVRSRV_SGXDEV_INFO *psDevInfo,
}
/* Should be called with pvr_lock held */
-void HWRecoveryResetSGX(struct PVRSRV_DEVICE_NODE *psDeviceNode,
- u32 ui32Component, u32 ui32CallerID)
+void HWRecoveryResetSGX(struct PVRSRV_DEVICE_NODE *psDeviceNode)
{
enum PVRSRV_ERROR eError;
struct PVRSRV_SGXDEV_INFO *psDevInfo =
psDevInfo->psSGXHostCtl;
u32 l;
- PVR_UNREFERENCED_PARAMETER(ui32Component);
-
BUG_ON(!pvr_is_locked());
l = readl(&psSGXHostCtl->ui32InterruptClearFlags);
l++;
writel(l, &psSGXHostCtl->ui32HostDetectedLockups);
- /* Note: This will release the lock when done */
- HWRecoveryResetSGX(psDeviceNode, 0, TIMER_ID);
+ HWRecoveryResetSGX(psDeviceNode);
}
queue_delayed_work(data->work_queue, &data->work,
l2 = readl(&psSGXHostCtl->ui32InterruptClearFlags);
if ((l1 & PVRSRV_USSE_EDM_INTERRUPT_HWR) &&
!(l2 & PVRSRV_USSE_EDM_INTERRUPT_HWR))
- HWRecoveryResetSGX(psDeviceNode, 0, ISR_ID);
+ HWRecoveryResetSGX(psDeviceNode);
if (psDeviceNode->bReProcessDeviceCommandComplete)
SGXScheduleProcessQueuesKM(psDeviceNode);