Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
radeon_irq_kms.c File Reference
#include <drm/drmP.h>
#include <drm/drm_crtc_helper.h>
#include <drm/radeon_drm.h>
#include "radeon_reg.h"
#include "radeon.h"
#include "atom.h"

Go to the source code of this file.

Macros

#define RADEON_WAIT_IDLE_TIMEOUT   200
 

Functions

irqreturn_t radeon_driver_irq_handler_kms (DRM_IRQ_ARGS)
 
void radeon_driver_irq_preinstall_kms (struct drm_device *dev)
 
int radeon_driver_irq_postinstall_kms (struct drm_device *dev)
 
void radeon_driver_irq_uninstall_kms (struct drm_device *dev)
 
int radeon_irq_kms_init (struct radeon_device *rdev)
 
void radeon_irq_kms_fini (struct radeon_device *rdev)
 
void radeon_irq_kms_sw_irq_get (struct radeon_device *rdev, int ring)
 
void radeon_irq_kms_sw_irq_put (struct radeon_device *rdev, int ring)
 
void radeon_irq_kms_pflip_irq_get (struct radeon_device *rdev, int crtc)
 
void radeon_irq_kms_pflip_irq_put (struct radeon_device *rdev, int crtc)
 
void radeon_irq_kms_enable_afmt (struct radeon_device *rdev, int block)
 
void radeon_irq_kms_disable_afmt (struct radeon_device *rdev, int block)
 
void radeon_irq_kms_enable_hpd (struct radeon_device *rdev, unsigned hpd_mask)
 
void radeon_irq_kms_disable_hpd (struct radeon_device *rdev, unsigned hpd_mask)
 

Macro Definition Documentation

#define RADEON_WAIT_IDLE_TIMEOUT   200

Definition at line 35 of file radeon_irq_kms.c.

Function Documentation

irqreturn_t radeon_driver_irq_handler_kms ( DRM_IRQ_ARGS  )

radeon_driver_irq_handler_kms - irq handler for KMS

: args

This is the irq handler for the radeon KMS driver (all asics). radeon_irq_process is a macro that points to the per-asic irq handler callback.

Definition at line 46 of file radeon_irq_kms.c.

int radeon_driver_irq_postinstall_kms ( struct drm_device dev)

radeon_driver_irq_postinstall_kms - drm irq preinstall callback

: drm dev pointer

Handles stuff to be done after enabling irqs (all asics). Returns 0 on success.

Definition at line 123 of file radeon_irq_kms.c.

void radeon_driver_irq_preinstall_kms ( struct drm_device dev)

radeon_driver_irq_preinstall_kms - drm irq preinstall callback

: drm dev pointer

Gets the hw ready to enable irqs (all asics). This function disables all interrupt sources on the GPU.

Definition at line 92 of file radeon_irq_kms.c.

void radeon_driver_irq_uninstall_kms ( struct drm_device dev)

radeon_driver_irq_uninstall_kms - drm irq uninstall callback

: drm dev pointer

This function disables all interrupt sources on the GPU (all asics).

Definition at line 136 of file radeon_irq_kms.c.

void radeon_irq_kms_disable_afmt ( struct radeon_device rdev,
int  block 
)

radeon_irq_kms_disable_afmt - disable audio format change interrupt

: radeon device pointer : afmt block whose interrupt you want to disable

Disables the afmt change interrupt for a specific afmt block (all asics).

Definition at line 418 of file radeon_irq_kms.c.

void radeon_irq_kms_disable_hpd ( struct radeon_device rdev,
unsigned  hpd_mask 
)

radeon_irq_kms_disable_hpd - disable hotplug detect interrupt

: radeon device pointer : mask of hpd pins you want to disable.

Disables the hotplug detect interrupt for a specific hpd pin (all asics).

Definition at line 456 of file radeon_irq_kms.c.

void radeon_irq_kms_enable_afmt ( struct radeon_device rdev,
int  block 
)

radeon_irq_kms_enable_afmt - enable audio format change interrupt

: radeon device pointer : afmt block whose interrupt you want to enable

Enables the afmt change interrupt for a specific afmt block (all asics).

Definition at line 399 of file radeon_irq_kms.c.

void radeon_irq_kms_enable_hpd ( struct radeon_device rdev,
unsigned  hpd_mask 
)

radeon_irq_kms_enable_hpd - enable hotplug detect interrupt

: radeon device pointer : mask of hpd pins you want to enable.

Enables the hotplug detect interrupt for a specific hpd pin (all asics).

Definition at line 436 of file radeon_irq_kms.c.

void radeon_irq_kms_fini ( struct radeon_device rdev)

radeon_irq_kms_fini - tear down driver interrrupt info

: radeon device pointer

Tears down the work irq handlers, vblank handlers, MSIs, etc. (all asics).

Definition at line 279 of file radeon_irq_kms.c.

int radeon_irq_kms_init ( struct radeon_device rdev)

radeon_irq_kms_init - init driver interrupt info

: radeon device pointer

Sets up the work irq handlers, vblank init, MSIs, etc. (all asics). Returns 0 for success, error for failure.

Definition at line 240 of file radeon_irq_kms.c.

void radeon_irq_kms_pflip_irq_get ( struct radeon_device rdev,
int  crtc 
)

radeon_irq_kms_pflip_irq_get - enable pageflip interrupt

: radeon device pointer : crtc whose interrupt you want to enable

Enables the pageflip interrupt for a specific crtc (all asics). For pageflips we use the vblank interrupt source.

Definition at line 348 of file radeon_irq_kms.c.

void radeon_irq_kms_pflip_irq_put ( struct radeon_device rdev,
int  crtc 
)

radeon_irq_kms_pflip_irq_put - disable pageflip interrupt

: radeon device pointer : crtc whose interrupt you want to disable

Disables the pageflip interrupt for a specific crtc (all asics). For pageflips we use the vblank interrupt source.

Definition at line 374 of file radeon_irq_kms.c.

void radeon_irq_kms_sw_irq_get ( struct radeon_device rdev,
int  ring 
)

radeon_irq_kms_sw_irq_get - enable software interrupt

: radeon device pointer : ring whose interrupt you want to enable

Enables the software interrupt for a specific ring (all asics). The software interrupt is generally used to signal a fence on a particular ring.

Definition at line 301 of file radeon_irq_kms.c.

void radeon_irq_kms_sw_irq_put ( struct radeon_device rdev,
int  ring 
)

radeon_irq_kms_sw_irq_put - disable software interrupt

: radeon device pointer : ring whose interrupt you want to disable

Disables the software interrupt for a specific ring (all asics). The software interrupt is generally used to signal a fence on a particular ring.

Definition at line 325 of file radeon_irq_kms.c.