Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
evergreen.c File Reference
#include <linux/firmware.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <drm/drmP.h>
#include "radeon.h"
#include "radeon_asic.h"
#include <drm/radeon_drm.h>
#include "evergreend.h"
#include "atom.h"
#include "avivod.h"
#include "evergreen_reg.h"
#include "evergreen_blit_shaders.h"

Go to the source code of this file.

Data Structures

struct  evergreen_wm_params
 

Macros

#define EVERGREEN_PFP_UCODE_SIZE   1120
 
#define EVERGREEN_PM4_UCODE_SIZE   1376
 

Functions

void evergreen_fini (struct radeon_device *rdev)
 
void evergreen_pcie_gen2_enable (struct radeon_device *rdev)
 
void cayman_cp_int_cntl_setup (struct radeon_device *rdev, int ring, u32 cp_int_cntl)
 
void evergreen_tiling_fields (unsigned tiling_flags, unsigned *bankw, unsigned *bankh, unsigned *mtaspect, unsigned *tile_split)
 
void evergreen_fix_pci_max_read_req_size (struct radeon_device *rdev)
 
void dce4_wait_for_vblank (struct radeon_device *rdev, int crtc)
 
void evergreen_pre_page_flip (struct radeon_device *rdev, int crtc)
 
void evergreen_post_page_flip (struct radeon_device *rdev, int crtc)
 
u32 evergreen_page_flip (struct radeon_device *rdev, int crtc_id, u64 crtc_base)
 
int evergreen_get_temp (struct radeon_device *rdev)
 
int sumo_get_temp (struct radeon_device *rdev)
 
void sumo_pm_init_profile (struct radeon_device *rdev)
 
void btc_pm_init_profile (struct radeon_device *rdev)
 
void evergreen_pm_misc (struct radeon_device *rdev)
 
void evergreen_pm_prepare (struct radeon_device *rdev)
 
void evergreen_pm_finish (struct radeon_device *rdev)
 
bool evergreen_hpd_sense (struct radeon_device *rdev, enum radeon_hpd_id hpd)
 
void evergreen_hpd_set_polarity (struct radeon_device *rdev, enum radeon_hpd_id hpd)
 
void evergreen_hpd_init (struct radeon_device *rdev)
 
void evergreen_hpd_fini (struct radeon_device *rdev)
 
u32 evergreen_get_number_of_dram_channels (struct radeon_device *rdev)
 
void evergreen_bandwidth_update (struct radeon_device *rdev)
 
int evergreen_mc_wait_for_idle (struct radeon_device *rdev)
 
void evergreen_pcie_gart_tlb_flush (struct radeon_device *rdev)
 
void evergreen_mc_stop (struct radeon_device *rdev, struct evergreen_mc_save *save)
 
void evergreen_mc_resume (struct radeon_device *rdev, struct evergreen_mc_save *save)
 
void evergreen_mc_program (struct radeon_device *rdev)
 
void evergreen_ring_ib_execute (struct radeon_device *rdev, struct radeon_ib *ib)
 
int evergreen_mc_init (struct radeon_device *rdev)
 
bool evergreen_gpu_is_lockup (struct radeon_device *rdev, struct radeon_ring *ring)
 
int evergreen_asic_reset (struct radeon_device *rdev)
 
u32 evergreen_get_vblank_counter (struct radeon_device *rdev, int crtc)
 
void evergreen_disable_interrupt_state (struct radeon_device *rdev)
 
int evergreen_irq_set (struct radeon_device *rdev)
 
void evergreen_irq_suspend (struct radeon_device *rdev)
 
int evergreen_irq_process (struct radeon_device *rdev)
 
int evergreen_resume (struct radeon_device *rdev)
 
int evergreen_suspend (struct radeon_device *rdev)
 
int evergreen_init (struct radeon_device *rdev)
 

Macro Definition Documentation

#define EVERGREEN_PFP_UCODE_SIZE   1120

Definition at line 37 of file evergreen.c.

#define EVERGREEN_PM4_UCODE_SIZE   1376

Definition at line 38 of file evergreen.c.

Function Documentation

void btc_pm_init_profile ( struct radeon_device rdev)

btc_pm_init_profile - Initialize power profiles callback.

: radeon_device pointer

Initialize the power states used in profile mode (BTC, cayman). Used for profile mode only.

Definition at line 333 of file evergreen.c.

void cayman_cp_int_cntl_setup ( struct radeon_device rdev,
int  ring,
u32  cp_int_cntl 
)

Definition at line 827 of file ni.c.

void dce4_wait_for_vblank ( struct radeon_device rdev,
int  crtc 
)

dce4_wait_for_vblank - vblank wait asic callback.

: radeon_device pointer : crtc to wait for vblank on

Wait for vblank on the requested crtc (evergreen+).

Definition at line 116 of file evergreen.c.

int evergreen_asic_reset ( struct radeon_device rdev)

Definition at line 2382 of file evergreen.c.

void evergreen_bandwidth_update ( struct radeon_device rdev)

evergreen_bandwidth_update - update display watermarks callback.

: radeon_device pointer

Update the display watermarks based on the requested mode(s) (evergreen+).

Definition at line 1105 of file evergreen.c.

void evergreen_disable_interrupt_state ( struct radeon_device rdev)

Definition at line 2397 of file evergreen.c.

void evergreen_fini ( struct radeon_device rdev)

Definition at line 3391 of file evergreen.c.

void evergreen_fix_pci_max_read_req_size ( struct radeon_device rdev)

Definition at line 87 of file evergreen.c.

u32 evergreen_get_number_of_dram_channels ( struct radeon_device rdev)

Definition at line 745 of file evergreen.c.

int evergreen_get_temp ( struct radeon_device rdev)

Definition at line 218 of file evergreen.c.

u32 evergreen_get_vblank_counter ( struct radeon_device rdev,
int  crtc 
)

Definition at line 2389 of file evergreen.c.

bool evergreen_gpu_is_lockup ( struct radeon_device rdev,
struct radeon_ring ring 
)

Definition at line 2289 of file evergreen.c.

void evergreen_hpd_fini ( struct radeon_device rdev)

evergreen_hpd_fini - hpd tear down callback.

: radeon_device pointer

Tear down the hpd pins used by the card (evergreen+). Disable the hpd interrupts.

Definition at line 634 of file evergreen.c.

void evergreen_hpd_init ( struct radeon_device rdev)

evergreen_hpd_init - hpd setup callback.

: radeon_device pointer

Setup the hpd pins used by the card (evergreen+). Enable the pin, set the polarity, and enable the hpd interrupts.

Definition at line 588 of file evergreen.c.

bool evergreen_hpd_sense ( struct radeon_device rdev,
enum radeon_hpd_id  hpd 
)

evergreen_hpd_sense - hpd sense callback.

: radeon_device pointer : hpd (hotplug detect) pin

Checks if a digital monitor is connected (evergreen+). Returns true if connected, false if not connected.

Definition at line 476 of file evergreen.c.

void evergreen_hpd_set_polarity ( struct radeon_device rdev,
enum radeon_hpd_id  hpd 
)

evergreen_hpd_set_polarity - hpd set polarity callback.

: radeon_device pointer : hpd (hotplug detect) pin

Set the polarity of the hpd pin (evergreen+).

Definition at line 520 of file evergreen.c.

int evergreen_init ( struct radeon_device rdev)

Definition at line 3294 of file evergreen.c.

int evergreen_irq_process ( struct radeon_device rdev)

Definition at line 2807 of file evergreen.c.

int evergreen_irq_set ( struct radeon_device rdev)

Definition at line 2451 of file evergreen.c.

void evergreen_irq_suspend ( struct radeon_device rdev)

Definition at line 2777 of file evergreen.c.

int evergreen_mc_init ( struct radeon_device rdev)

Definition at line 2230 of file evergreen.c.

void evergreen_mc_program ( struct radeon_device rdev)

Definition at line 1402 of file evergreen.c.

void evergreen_mc_resume ( struct radeon_device rdev,
struct evergreen_mc_save save 
)

Definition at line 1350 of file evergreen.c.

void evergreen_mc_stop ( struct radeon_device rdev,
struct evergreen_mc_save save 
)

Definition at line 1296 of file evergreen.c.

int evergreen_mc_wait_for_idle ( struct radeon_device rdev)

evergreen_mc_wait_for_idle - wait for MC idle callback.

: radeon_device pointer

Wait for the MC (memory controller) to be idle. (evergreen+). Returns 0 if the MC is idle, -1 if not.

Definition at line 1137 of file evergreen.c.

u32 evergreen_page_flip ( struct radeon_device rdev,
int  crtc_id,
u64  crtc_base 
)

evergreen_page_flip - pageflip callback.

: radeon_device pointer : crtc to cleanup pageflip on : new address of the crtc (GPU MC address)

Does the actual pageflip (evergreen+). During vblank we take the crtc lock and wait for the update_pending bit to go high, when it does, we release the lock, and allow the double buffered update to take place. Returns the current update pending status.

Definition at line 180 of file evergreen.c.

void evergreen_pcie_gart_tlb_flush ( struct radeon_device rdev)

Definition at line 1155 of file evergreen.c.

void evergreen_pcie_gen2_enable ( struct radeon_device rdev)

Definition at line 3411 of file evergreen.c.

void evergreen_pm_finish ( struct radeon_device rdev)

evergreen_pm_finish - post-power state change callback.

: radeon_device pointer

Clean up after a power state change (evergreen+).

Definition at line 449 of file evergreen.c.

void evergreen_pm_misc ( struct radeon_device rdev)

evergreen_pm_misc - set additional pm hw parameters callback.

: radeon_device pointer

Set non-clock parameters associated with a power state (voltage, etc.) (evergreen+).

Definition at line 390 of file evergreen.c.

void evergreen_pm_prepare ( struct radeon_device rdev)

evergreen_pm_prepare - pre-power state change callback.

: radeon_device pointer

Prepare for a power state change (evergreen+).

Definition at line 424 of file evergreen.c.

void evergreen_post_page_flip ( struct radeon_device rdev,
int  crtc 
)

evergreen_post_page_flip - pos-pageflip callback.

: radeon_device pointer : crtc to cleanup pageflip on

Post-pageflip callback (evergreen+). Disables the pageflip irq (vblank irq).

Definition at line 161 of file evergreen.c.

void evergreen_pre_page_flip ( struct radeon_device rdev,
int  crtc 
)

radeon_irq_kms_pflip_irq_get - pre-pageflip callback.

: radeon_device pointer : crtc to prepare for pageflip on

Pre-pageflip callback (evergreen+). Enables the pageflip irq (vblank irq).

Definition at line 146 of file evergreen.c.

int evergreen_resume ( struct radeon_device rdev)

Definition at line 3246 of file evergreen.c.

void evergreen_ring_ib_execute ( struct radeon_device rdev,
struct radeon_ib ib 
)

Definition at line 1482 of file evergreen.c.

int evergreen_suspend ( struct radeon_device rdev)

Definition at line 3274 of file evergreen.c.

void evergreen_tiling_fields ( unsigned  tiling_flags,
unsigned *  bankw,
unsigned *  bankh,
unsigned *  mtaspect,
unsigned *  tile_split 
)

Definition at line 56 of file evergreen.c.

int sumo_get_temp ( struct radeon_device rdev)

Definition at line 256 of file evergreen.c.

void sumo_pm_init_profile ( struct radeon_device rdev)

sumo_pm_init_profile - Initialize power profiles callback.

: radeon_device pointer

Initialize the power states used in profile mode (sumo, trinity, SI). Used for profile mode only.

Definition at line 273 of file evergreen.c.