# HG changeset patch # User michael # Date 1019525461 0 # Node ID d2aec12937f8cb363b679e489412ca6cd3a32f18 # Parent b584598afac9d7541b59437bc9bcd22293fae667 reading pll in 32-bit instead of 8-bit +1, +2 diff -r b584598afac9 -r d2aec12937f8 vidix/drivers/mach64_vid.c --- a/vidix/drivers/mach64_vid.c Mon Apr 22 22:34:37 2002 +0000 +++ b/vidix/drivers/mach64_vid.c Tue Apr 23 01:31:01 2002 +0000 @@ -147,20 +147,18 @@ uint32_t res; uint32_t in; - /* preserve unknown bits */ - in= INREG8(CLOCK_CNTL + 1); - if(__verbose>0)printf("[mach64] pll: %X\n", in); - in &= ~((PLL_WR_EN | PLL_ADDR)>>8); //clean some stuff + in= INREG(CLOCK_CNTL); + in &= ~((PLL_WR_EN | PLL_ADDR)); //clean some stuff + OUTREG(CLOCK_CNTL, in | (addr<<10)); - /* write addr byte */ - OUTREG8(CLOCK_CNTL + 1, in | (addr << 2)); /* read the register value */ - res = INREG8(CLOCK_CNTL + 2); + res = (INREG(CLOCK_CNTL)>>16)&0xFF; return res; } static __inline__ void OUTPLL(uint32_t addr,uint32_t val) { +//FIXME buggy but its not used /* write addr byte */ OUTREG8(CLOCK_CNTL + 1, (addr << 2) | PLL_WR_EN); /* write the register value */ @@ -737,6 +735,14 @@ dest_h = config->dest.h; besr.fourcc = config->fourcc; ecp = (INPLL(PLL_VCLK_CNTL) & PLL_ECP_DIV) >> 4; +#if 0 +{ +int i; +for(i=0; i<32; i++){ + printf("%X ", INPLL(i)); +} +} +#endif if(__verbose>0) printf("[mach64] ecp: %d\n", ecp); v_inc = src_h * mach64_get_vert_stretch();