Commit d75ee3be authored by Alex Deucher's avatar Alex Deucher Committed by Dave Airlie

drm/radeon/kms: clean up some magic numbers

Signed-off-by: default avatarAlex Deucher <alexdeucher@gmail.com>
Signed-off-by: default avatarDave Airlie <airlied@gmail.com>
parent 9453d621
...@@ -1031,8 +1031,8 @@ int r100_cp_init(struct radeon_device *rdev, unsigned ring_size) ...@@ -1031,8 +1031,8 @@ int r100_cp_init(struct radeon_device *rdev, unsigned ring_size)
WREG32(RADEON_CP_CSQ_MODE, WREG32(RADEON_CP_CSQ_MODE,
REG_SET(RADEON_INDIRECT2_START, indirect2_start) | REG_SET(RADEON_INDIRECT2_START, indirect2_start) |
REG_SET(RADEON_INDIRECT1_START, indirect1_start)); REG_SET(RADEON_INDIRECT1_START, indirect1_start));
WREG32(0x718, 0); WREG32(RADEON_CP_RB_WPTR_DELAY, 0);
WREG32(0x744, 0x00004D4D); WREG32(RADEON_CP_CSQ_MODE, 0x00004D4D);
WREG32(RADEON_CP_CSQ_CNTL, RADEON_CSQ_PRIBM_INDBM); WREG32(RADEON_CP_CSQ_CNTL, RADEON_CSQ_PRIBM_INDBM);
radeon_ring_start(rdev); radeon_ring_start(rdev);
r = radeon_ring_test(rdev); r = radeon_ring_test(rdev);
...@@ -2347,10 +2347,10 @@ void r100_vga_set_state(struct radeon_device *rdev, bool state) ...@@ -2347,10 +2347,10 @@ void r100_vga_set_state(struct radeon_device *rdev, bool state)
temp = RREG32(RADEON_CONFIG_CNTL); temp = RREG32(RADEON_CONFIG_CNTL);
if (state == false) { if (state == false) {
temp &= ~(1<<8); temp &= ~RADEON_CFG_VGA_RAM_EN;
temp |= (1<<9); temp |= RADEON_CFG_VGA_IO_DIS;
} else { } else {
temp &= ~(1<<9); temp &= ~RADEON_CFG_VGA_IO_DIS;
} }
WREG32(RADEON_CONFIG_CNTL, temp); WREG32(RADEON_CONFIG_CNTL, temp);
} }
......
...@@ -69,6 +69,9 @@ void rv370_pcie_gart_tlb_flush(struct radeon_device *rdev) ...@@ -69,6 +69,9 @@ void rv370_pcie_gart_tlb_flush(struct radeon_device *rdev)
mb(); mb();
} }
#define R300_PTE_WRITEABLE (1 << 2)
#define R300_PTE_READABLE (1 << 3)
int rv370_pcie_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr) int rv370_pcie_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr)
{ {
void __iomem *ptr = (void *)rdev->gart.table.vram.ptr; void __iomem *ptr = (void *)rdev->gart.table.vram.ptr;
...@@ -78,7 +81,7 @@ int rv370_pcie_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr) ...@@ -78,7 +81,7 @@ int rv370_pcie_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr)
} }
addr = (lower_32_bits(addr) >> 8) | addr = (lower_32_bits(addr) >> 8) |
((upper_32_bits(addr) & 0xff) << 24) | ((upper_32_bits(addr) & 0xff) << 24) |
0xc; R300_PTE_WRITEABLE | R300_PTE_READABLE;
/* on x86 we want this to be CPU endian, on powerpc /* on x86 we want this to be CPU endian, on powerpc
* on powerpc without HW swappers, it'll get swapped on way * on powerpc without HW swappers, it'll get swapped on way
* into VRAM - so no need for cpu_to_le32 on VRAM tables */ * into VRAM - so no need for cpu_to_le32 on VRAM tables */
...@@ -135,7 +138,7 @@ int rv370_pcie_gart_enable(struct radeon_device *rdev) ...@@ -135,7 +138,7 @@ int rv370_pcie_gart_enable(struct radeon_device *rdev)
WREG32_PCIE(RADEON_PCIE_TX_DISCARD_RD_ADDR_LO, rdev->mc.vram_start); WREG32_PCIE(RADEON_PCIE_TX_DISCARD_RD_ADDR_LO, rdev->mc.vram_start);
WREG32_PCIE(RADEON_PCIE_TX_DISCARD_RD_ADDR_HI, 0); WREG32_PCIE(RADEON_PCIE_TX_DISCARD_RD_ADDR_HI, 0);
/* Clear error */ /* Clear error */
WREG32_PCIE(0x18, 0); WREG32_PCIE(RADEON_PCIE_TX_GART_ERROR, 0);
tmp = RREG32_PCIE(RADEON_PCIE_TX_GART_CNTL); tmp = RREG32_PCIE(RADEON_PCIE_TX_GART_CNTL);
tmp |= RADEON_PCIE_TX_GART_EN; tmp |= RADEON_PCIE_TX_GART_EN;
tmp |= RADEON_PCIE_TX_GART_UNMAPPED_ACCESS_DISCARD; tmp |= RADEON_PCIE_TX_GART_UNMAPPED_ACCESS_DISCARD;
......
...@@ -96,7 +96,7 @@ void r420_pipes_init(struct radeon_device *rdev) ...@@ -96,7 +96,7 @@ void r420_pipes_init(struct radeon_device *rdev)
"programming pipes. Bad things might happen.\n"); "programming pipes. Bad things might happen.\n");
} }
/* get max number of pipes */ /* get max number of pipes */
gb_pipe_select = RREG32(0x402C); gb_pipe_select = RREG32(R400_GB_PIPE_SELECT);
num_pipes = ((gb_pipe_select >> 12) & 3) + 1; num_pipes = ((gb_pipe_select >> 12) & 3) + 1;
/* SE chips have 1 pipe */ /* SE chips have 1 pipe */
......
...@@ -79,8 +79,8 @@ static void r520_gpu_init(struct radeon_device *rdev) ...@@ -79,8 +79,8 @@ static void r520_gpu_init(struct radeon_device *rdev)
WREG32(0x4128, 0xFF); WREG32(0x4128, 0xFF);
} }
r420_pipes_init(rdev); r420_pipes_init(rdev);
gb_pipe_select = RREG32(0x402C); gb_pipe_select = RREG32(R400_GB_PIPE_SELECT);
tmp = RREG32(0x170C); tmp = RREG32(R300_DST_PIPE_CONFIG);
pipe_select_current = (tmp >> 2) & 3; pipe_select_current = (tmp >> 2) & 3;
tmp = (1 << pipe_select_current) | tmp = (1 << pipe_select_current) |
(((gb_pipe_select >> 8) & 0xF) << 4); (((gb_pipe_select >> 8) & 0xF) << 4);
......
...@@ -375,6 +375,8 @@ ...@@ -375,6 +375,8 @@
#define RADEON_CONFIG_APER_SIZE 0x0108 #define RADEON_CONFIG_APER_SIZE 0x0108
#define RADEON_CONFIG_BONDS 0x00e8 #define RADEON_CONFIG_BONDS 0x00e8
#define RADEON_CONFIG_CNTL 0x00e0 #define RADEON_CONFIG_CNTL 0x00e0
# define RADEON_CFG_VGA_RAM_EN (1 << 8)
# define RADEON_CFG_VGA_IO_DIS (1 << 9)
# define RADEON_CFG_ATI_REV_A11 (0 << 16) # define RADEON_CFG_ATI_REV_A11 (0 << 16)
# define RADEON_CFG_ATI_REV_A12 (1 << 16) # define RADEON_CFG_ATI_REV_A12 (1 << 16)
# define RADEON_CFG_ATI_REV_A13 (2 << 16) # define RADEON_CFG_ATI_REV_A13 (2 << 16)
......
...@@ -203,6 +203,9 @@ void rs400_gart_fini(struct radeon_device *rdev) ...@@ -203,6 +203,9 @@ void rs400_gart_fini(struct radeon_device *rdev)
radeon_gart_table_ram_free(rdev); radeon_gart_table_ram_free(rdev);
} }
#define RS400_PTE_WRITEABLE (1 << 2)
#define RS400_PTE_READABLE (1 << 3)
int rs400_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr) int rs400_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr)
{ {
uint32_t entry; uint32_t entry;
...@@ -213,7 +216,7 @@ int rs400_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr) ...@@ -213,7 +216,7 @@ int rs400_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr)
entry = (lower_32_bits(addr) & PAGE_MASK) | entry = (lower_32_bits(addr) & PAGE_MASK) |
((upper_32_bits(addr) & 0xff) << 4) | ((upper_32_bits(addr) & 0xff) << 4) |
0xc; RS400_PTE_WRITEABLE | RS400_PTE_READABLE;
entry = cpu_to_le32(entry); entry = cpu_to_le32(entry);
rdev->gart.table.ram.ptr[i] = entry; rdev->gart.table.ram.ptr[i] = entry;
return 0; return 0;
...@@ -226,8 +229,8 @@ int rs400_mc_wait_for_idle(struct radeon_device *rdev) ...@@ -226,8 +229,8 @@ int rs400_mc_wait_for_idle(struct radeon_device *rdev)
for (i = 0; i < rdev->usec_timeout; i++) { for (i = 0; i < rdev->usec_timeout; i++) {
/* read MC_STATUS */ /* read MC_STATUS */
tmp = RREG32(0x0150); tmp = RREG32(RADEON_MC_STATUS);
if (tmp & (1 << 2)) { if (tmp & RADEON_MC_IDLE) {
return 0; return 0;
} }
DRM_UDELAY(1); DRM_UDELAY(1);
...@@ -241,7 +244,7 @@ void rs400_gpu_init(struct radeon_device *rdev) ...@@ -241,7 +244,7 @@ void rs400_gpu_init(struct radeon_device *rdev)
r420_pipes_init(rdev); r420_pipes_init(rdev);
if (rs400_mc_wait_for_idle(rdev)) { if (rs400_mc_wait_for_idle(rdev)) {
printk(KERN_WARNING "rs400: Failed to wait MC idle while " printk(KERN_WARNING "rs400: Failed to wait MC idle while "
"programming pipes. Bad things might happen. %08x\n", RREG32(0x150)); "programming pipes. Bad things might happen. %08x\n", RREG32(RADEON_MC_STATUS));
} }
} }
...@@ -300,9 +303,9 @@ static int rs400_debugfs_gart_info(struct seq_file *m, void *data) ...@@ -300,9 +303,9 @@ static int rs400_debugfs_gart_info(struct seq_file *m, void *data)
seq_printf(m, "MCCFG_AGP_BASE_2 0x%08x\n", tmp); seq_printf(m, "MCCFG_AGP_BASE_2 0x%08x\n", tmp);
tmp = RREG32_MC(RS690_MCCFG_AGP_LOCATION); tmp = RREG32_MC(RS690_MCCFG_AGP_LOCATION);
seq_printf(m, "MCCFG_AGP_LOCATION 0x%08x\n", tmp); seq_printf(m, "MCCFG_AGP_LOCATION 0x%08x\n", tmp);
tmp = RREG32_MC(0x100); tmp = RREG32_MC(RS690_MCCFG_FB_LOCATION);
seq_printf(m, "MCCFG_FB_LOCATION 0x%08x\n", tmp); seq_printf(m, "MCCFG_FB_LOCATION 0x%08x\n", tmp);
tmp = RREG32(0x134); tmp = RREG32(RS690_HDP_FB_LOCATION);
seq_printf(m, "HDP_FB_LOCATION 0x%08x\n", tmp); seq_printf(m, "HDP_FB_LOCATION 0x%08x\n", tmp);
} else { } else {
tmp = RREG32(RADEON_AGP_BASE); tmp = RREG32(RADEON_AGP_BASE);
......
...@@ -69,13 +69,13 @@ void rv515_ring_start(struct radeon_device *rdev) ...@@ -69,13 +69,13 @@ void rv515_ring_start(struct radeon_device *rdev)
ISYNC_CPSCRATCH_IDLEGUI); ISYNC_CPSCRATCH_IDLEGUI);
radeon_ring_write(rdev, PACKET0(WAIT_UNTIL, 0)); radeon_ring_write(rdev, PACKET0(WAIT_UNTIL, 0));
radeon_ring_write(rdev, WAIT_2D_IDLECLEAN | WAIT_3D_IDLECLEAN); radeon_ring_write(rdev, WAIT_2D_IDLECLEAN | WAIT_3D_IDLECLEAN);
radeon_ring_write(rdev, PACKET0(0x170C, 0)); radeon_ring_write(rdev, PACKET0(R300_DST_PIPE_CONFIG, 0));
radeon_ring_write(rdev, 1 << 31); radeon_ring_write(rdev, R300_PIPE_AUTO_CONFIG);
radeon_ring_write(rdev, PACKET0(GB_SELECT, 0)); radeon_ring_write(rdev, PACKET0(GB_SELECT, 0));
radeon_ring_write(rdev, 0); radeon_ring_write(rdev, 0);
radeon_ring_write(rdev, PACKET0(GB_ENABLE, 0)); radeon_ring_write(rdev, PACKET0(GB_ENABLE, 0));
radeon_ring_write(rdev, 0); radeon_ring_write(rdev, 0);
radeon_ring_write(rdev, PACKET0(0x42C8, 0)); radeon_ring_write(rdev, PACKET0(R500_SU_REG_DEST, 0));
radeon_ring_write(rdev, (1 << rdev->num_gb_pipes) - 1); radeon_ring_write(rdev, (1 << rdev->num_gb_pipes) - 1);
radeon_ring_write(rdev, PACKET0(VAP_INDEX_OFFSET, 0)); radeon_ring_write(rdev, PACKET0(VAP_INDEX_OFFSET, 0));
radeon_ring_write(rdev, 0); radeon_ring_write(rdev, 0);
...@@ -153,8 +153,8 @@ void rv515_gpu_init(struct radeon_device *rdev) ...@@ -153,8 +153,8 @@ void rv515_gpu_init(struct radeon_device *rdev)
} }
rv515_vga_render_disable(rdev); rv515_vga_render_disable(rdev);
r420_pipes_init(rdev); r420_pipes_init(rdev);
gb_pipe_select = RREG32(0x402C); gb_pipe_select = RREG32(R400_GB_PIPE_SELECT);
tmp = RREG32(0x170C); tmp = RREG32(R300_DST_PIPE_CONFIG);
pipe_select_current = (tmp >> 2) & 3; pipe_select_current = (tmp >> 2) & 3;
tmp = (1 << pipe_select_current) | tmp = (1 << pipe_select_current) |
(((gb_pipe_select >> 8) & 0xF) << 4); (((gb_pipe_select >> 8) & 0xF) << 4);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment