Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
vmwgfx_irq.c File Reference
#include <drm/drmP.h>
#include "vmwgfx_drv.h"

Go to the source code of this file.

Macros

#define VMW_FENCE_WRAP   (1 << 24)
 

Functions

irqreturn_t vmw_irq_handler (DRM_IRQ_ARGS)
 
void vmw_update_seqno (struct vmw_private *dev_priv, struct vmw_fifo_state *fifo_state)
 
bool vmw_seqno_passed (struct vmw_private *dev_priv, uint32_t seqno)
 
int vmw_fallback_wait (struct vmw_private *dev_priv, bool lazy, bool fifo_idle, uint32_t seqno, bool interruptible, unsigned long timeout)
 
void vmw_seqno_waiter_add (struct vmw_private *dev_priv)
 
void vmw_seqno_waiter_remove (struct vmw_private *dev_priv)
 
void vmw_goal_waiter_add (struct vmw_private *dev_priv)
 
void vmw_goal_waiter_remove (struct vmw_private *dev_priv)
 
int vmw_wait_seqno (struct vmw_private *dev_priv, bool lazy, uint32_t seqno, bool interruptible, unsigned long timeout)
 
void vmw_irq_preinstall (struct drm_device *dev)
 
int vmw_irq_postinstall (struct drm_device *dev)
 
void vmw_irq_uninstall (struct drm_device *dev)
 

Macro Definition Documentation

#define VMW_FENCE_WRAP   (1 << 24)

Definition at line 31 of file vmwgfx_irq.c.

Function Documentation

int vmw_fallback_wait ( struct vmw_private dev_priv,
bool  lazy,
bool  fifo_idle,
uint32_t  seqno,
bool  interruptible,
unsigned long  timeout 
)

Block command submission while waiting for idle.

FIXME: Use schedule_hr_timeout here for newer kernels and lower CPU utilization.

Definition at line 116 of file vmwgfx_irq.c.

void vmw_goal_waiter_add ( struct vmw_private dev_priv)

Definition at line 216 of file vmwgfx_irq.c.

void vmw_goal_waiter_remove ( struct vmw_private dev_priv)

Definition at line 232 of file vmwgfx_irq.c.

irqreturn_t vmw_irq_handler ( DRM_IRQ_ARGS  )

IRQs and wating - vmwgfx_irq.c

Definition at line 33 of file vmwgfx_irq.c.

int vmw_irq_postinstall ( struct drm_device dev)

Definition at line 305 of file vmwgfx_irq.c.

void vmw_irq_preinstall ( struct drm_device dev)

Definition at line 292 of file vmwgfx_irq.c.

void vmw_irq_uninstall ( struct drm_device dev)

Definition at line 310 of file vmwgfx_irq.c.

bool vmw_seqno_passed ( struct vmw_private dev_priv,
uint32_t  seqno 
)

Then check if the seqno is higher than what we've actually emitted. Then the fence is stale and signaled.

Definition at line 87 of file vmwgfx_irq.c.

void vmw_seqno_waiter_add ( struct vmw_private dev_priv)

Definition at line 185 of file vmwgfx_irq.c.

void vmw_seqno_waiter_remove ( struct vmw_private dev_priv)

Definition at line 201 of file vmwgfx_irq.c.

void vmw_update_seqno ( struct vmw_private dev_priv,
struct vmw_fifo_state fifo_state 
)

Definition at line 74 of file vmwgfx_irq.c.

int vmw_wait_seqno ( struct vmw_private dev_priv,
bool  lazy,
uint32_t  seqno,
bool  interruptible,
unsigned long  timeout 
)

Definition at line 246 of file vmwgfx_irq.c.