summaryrefslogtreecommitdiffstats
path: root/vidix
diff options
context:
space:
mode:
authornick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-01-06 17:10:27 +0000
committernick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-01-06 17:10:27 +0000
commit9764478ac51c7509fb9726eafeb4ad94be49233e (patch)
treed14ba7010b77796187e700b7f3c1b7ea1812e3ec /vidix
parentd35b5e9752c44768cdd26fe426f9d6bf4a2b960e (diff)
downloadmpv-9764478ac51c7509fb9726eafeb4ad94be49233e.tar.bz2
mpv-9764478ac51c7509fb9726eafeb4ad94be49233e.tar.xz
IO space is memory mapped (no in(out)port required)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4013 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'vidix')
-rw-r--r--vidix/drivers/radeon_vid.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/vidix/drivers/radeon_vid.c b/vidix/drivers/radeon_vid.c
index 8ffe383cf5..a4897866b6 100644
--- a/vidix/drivers/radeon_vid.c
+++ b/vidix/drivers/radeon_vid.c
@@ -198,10 +198,13 @@ static void * radeon_mem_base = 0;
static int32_t radeon_overlay_off = 0;
static uint32_t radeon_ram_size = 0;
-#define INREG8(addr) INPORT8((uint32_t)(radeon_mmio_base)+addr)
-#define OUTREG8(addr,val) OUTPORT8((uint32_t)(radeon_mmio_base)+addr,val)
-#define INREG(addr) INPORT((uint32_t)(radeon_mmio_base)+addr)
-#define OUTREG(addr,val) OUTPORT((uint32_t)(radeon_mmio_base)+addr,val)
+#define GETREG(TYPE,PTR,OFFZ) (*((volatile TYPE*)((PTR)+(OFFZ))))
+#define SETREG(TYPE,PTR,OFFZ,VAL) (*((volatile TYPE*)((PTR)+(OFFZ))))=VAL
+
+#define INREG8(addr) GETREG(uint8_t,(uint32_t)(radeon_mmio_base),addr)
+#define OUTREG8(addr,val) SETREG(uint8_t,(uint32_t)(radeon_mmio_base),addr,val)
+#define INREG(addr) GETREG(uint32_t,(uint32_t)(radeon_mmio_base),addr)
+#define OUTREG(addr,val) SETREG(uint32_t,(uint32_t)(radeon_mmio_base),addr,val)
#define OUTREGP(addr,val,mask) \
do { \
unsigned int _tmp = INREG(addr); \
@@ -660,8 +663,12 @@ int vixProbe( int verbose )
int vixInit( void )
{
- if(!probed) return EINTR;
- if((radeon_mmio_base = map_phys_mem(pci_info.base2,0x7FFF))==(void *)-1) return ENOMEM;
+ if(!probed)
+ {
+ printf(RADEON_MSG" Driver was not probed but is being initializing\n");
+ return EINTR;
+ }
+ if((radeon_mmio_base = map_phys_mem(pci_info.base2,0xFFFF))==(void *)-1) return ENOMEM;
radeon_ram_size = INREG(CONFIG_MEMSIZE);
/* mem size is bits [28:0], mask off the rest. Range: from 1Mb up to 512 Mb */
radeon_ram_size &= CONFIG_MEMSIZE_MASK;