Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
radeon_kms.c File Reference
#include <drm/drmP.h>
#include "radeon.h"
#include <drm/radeon_drm.h>
#include "radeon_asic.h"
#include <linux/vga_switcheroo.h>
#include <linux/slab.h>

Go to the source code of this file.

Macros

#define KMS_INVALID_IOCTL(name)
 

Functions

int radeon_driver_unload_kms (struct drm_device *dev)
 
int radeon_driver_load_kms (struct drm_device *dev, unsigned long flags)
 
int radeon_info_ioctl (struct drm_device *dev, void *data, struct drm_file *filp)
 
int radeon_driver_firstopen_kms (struct drm_device *dev)
 
void radeon_driver_lastclose_kms (struct drm_device *dev)
 
int radeon_driver_open_kms (struct drm_device *dev, struct drm_file *file_priv)
 
void radeon_driver_postclose_kms (struct drm_device *dev, struct drm_file *file_priv)
 
void radeon_driver_preclose_kms (struct drm_device *dev, struct drm_file *file_priv)
 
u32 radeon_get_vblank_counter_kms (struct drm_device *dev, int crtc)
 
int radeon_enable_vblank_kms (struct drm_device *dev, int crtc)
 
void radeon_disable_vblank_kms (struct drm_device *dev, int crtc)
 
int radeon_get_vblank_timestamp_kms (struct drm_device *dev, int crtc, int *max_error, struct timeval *vblank_time, unsigned flags)
 
int radeon_dma_ioctl_kms (struct drm_device *dev, void *data, struct drm_file *file_priv)
 

Variables

struct drm_ioctl_desc radeon_ioctls_kms []
 
int radeon_max_kms_ioctl = DRM_ARRAY_SIZE(radeon_ioctls_kms)
 

Macro Definition Documentation

#define KMS_INVALID_IOCTL (   name)
Value:
int name(struct drm_device *dev, void *data, struct drm_file *file_priv)\
{ \
DRM_ERROR("invalid ioctl with kms %s\n", __func__); \
return -EINVAL; \
}

Definition at line 623 of file radeon_kms.c.

Function Documentation

void radeon_disable_vblank_kms ( struct drm_device dev,
int  crtc 
)

radeon_disable_vblank_kms - disable vblank interrupt

: drm dev pointer : crtc to disable vblank interrupt for

Disable the interrupt on the requested crtc (all asics).

Definition at line 562 of file radeon_kms.c.

int radeon_dma_ioctl_kms ( struct drm_device dev,
void data,
struct drm_file *  file_priv 
)

Definition at line 616 of file radeon_kms.c.

int radeon_driver_firstopen_kms ( struct drm_device dev)

radeon_driver_firstopen_kms - drm callback for first open

: drm dev pointer

Nothing to be done for KMS (all asics). Returns 0 on success.

Definition at line 387 of file radeon_kms.c.

void radeon_driver_lastclose_kms ( struct drm_device dev)

radeon_driver_firstopen_kms - drm callback for last close

: drm dev pointer

Switch vga switcheroo state after last close (all asics).

Definition at line 399 of file radeon_kms.c.

int radeon_driver_load_kms ( struct drm_device dev,
unsigned long  flags 
)

radeon_driver_load_kms - Main load function for KMS.

: drm dev pointer : device flags

This is the main load function for KMS (all asics). It calls radeon_device_init() to set up the non-display parts of the chip (asic init, CP, writeback, etc.), and radeon_modeset_init() to set up the display parts (crtcs, encoders, hotplug detect, etc.). Returns 0 on success, error on failure.

Definition at line 74 of file radeon_kms.c.

int radeon_driver_open_kms ( struct drm_device dev,
struct drm_file *  file_priv 
)

radeon_driver_open_kms - drm callback for open

: drm dev pointer : drm file

On device open, init vm on cayman+ (all asics). Returns 0 on success, error on failure.

Definition at line 413 of file radeon_kms.c.

void radeon_driver_postclose_kms ( struct drm_device dev,
struct drm_file *  file_priv 
)

radeon_driver_postclose_kms - drm callback for post close

: drm dev pointer : drm file

On device post close, tear down vm on cayman+ (all asics).

Definition at line 458 of file radeon_kms.c.

void radeon_driver_preclose_kms ( struct drm_device dev,
struct drm_file *  file_priv 
)

radeon_driver_preclose_kms - drm callback for pre close

: drm dev pointer : drm file

On device pre close, tear down hyperz and cmask filps on r1xx-r5xx (all asics).

Definition at line 493 of file radeon_kms.c.

int radeon_driver_unload_kms ( struct drm_device dev)

radeon_driver_unload_kms - Main unload function for KMS.

: drm dev pointer

This is the main unload function for KMS (all asics). It calls radeon_modeset_fini() to tear down the displays, and radeon_device_fini() to tear down the rest of the device (CP, writeback, etc.). Returns 0 on success.

Definition at line 47 of file radeon_kms.c.

int radeon_enable_vblank_kms ( struct drm_device dev,
int  crtc 
)

radeon_enable_vblank_kms - enable vblank interrupt

: drm dev pointer : crtc to enable vblank interrupt for

Enable the interrupt on the requested crtc (all asics). Returns 0 on success, -EINVAL on failure.

Definition at line 536 of file radeon_kms.c.

u32 radeon_get_vblank_counter_kms ( struct drm_device dev,
int  crtc 
)

radeon_get_vblank_counter_kms - get frame count

: drm dev pointer : crtc to get the frame count from

Gets the frame count on the requested crtc (all asics). Returns frame count on success, -EINVAL on failure.

Definition at line 515 of file radeon_kms.c.

int radeon_get_vblank_timestamp_kms ( struct drm_device dev,
int  crtc,
int max_error,
struct timeval vblank_time,
unsigned  flags 
)

radeon_get_vblank_timestamp_kms - get vblank timestamp

: drm dev pointer : crtc to get the timestamp for : max error : time value : flags passed to the driver

Gets the timestamp on the requested crtc based on the scanout position. (all asics). Returns postive status flags on success, negative error on failure.

Definition at line 591 of file radeon_kms.c.

int radeon_info_ioctl ( struct drm_device dev,
void data,
struct drm_file *  filp 
)

radeon_info_ioctl - answer a device specific request.

: radeon device pointer : request object : drm filp

This function is used to pass device specific parameters to the userspace drivers. Examples include: pci device id, pipeline parms, tiling params, etc. (all asics). Returns 0 on success, -EINVAL on failure.

Definition at line 174 of file radeon_kms.c.

Variable Documentation

struct drm_ioctl_desc radeon_ioctls_kms[]

Definition at line 662 of file radeon_kms.c.

int radeon_max_kms_ioctl = DRM_ARRAY_SIZE(radeon_ioctls_kms)

Definition at line 705 of file radeon_kms.c.