summaryrefslogtreecommitdiffstats
path: root/vidix
diff options
context:
space:
mode:
authormichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-04-20 13:42:31 +0000
committermichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-04-20 13:42:31 +0000
commit291c078ade06953b423b2373d706680727d79eb9 (patch)
tree8c410452ea28ea4ef44d16167d930bccf59263f7 /vidix
parent90020a5f22ce4189c6bf7df8e73b2be8933da408 (diff)
downloadmpv-291c078ade06953b423b2373d706680727d79eb9.tar.bz2
mpv-291c078ade06953b423b2373d706680727d79eb9.tar.xz
antoher try, ecp reading like in gatos ...
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5732 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'vidix')
-rw-r--r--vidix/drivers/mach64_vid.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/vidix/drivers/mach64_vid.c b/vidix/drivers/mach64_vid.c
index 1f48c129ae..eb80e0ca30 100644
--- a/vidix/drivers/mach64_vid.c
+++ b/vidix/drivers/mach64_vid.c
@@ -145,11 +145,17 @@ static __inline__ int ATIGetMach64LCDReg(int _Index)
static __inline__ uint32_t INPLL(uint32_t addr)
{
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
+
/* write addr byte */
- OUTREG8(CLOCK_CNTL + 1, (addr << 2));
+ OUTREG8(CLOCK_CNTL + 1, in | (addr << 2));
/* read the register value */
- res = INREG(CLOCK_CNTL + 2);
+ res = INREG8(CLOCK_CNTL + 2);
return res;
}
@@ -257,7 +263,6 @@ static uint32_t mach64_get_yres( void )
static int mach64_get_vert_stretch(void)
{
int lcd_index;
- int lcd_gen_ctrl;
int vert_stretching;
int ext_vert_stretch;
int ret;
@@ -740,7 +745,7 @@ static int mach64_vid_init_video( vidix_playback_t *config )
v_inc>>=4; // convert 16.16 -> 20.12
v_inc/= dest_h;
- h_inc = (src_w << 12) / dest_w;
+ h_inc = (src_w << (12+ecp)) / dest_w;
/* keep everything in 16.16 */
config->offsets[0] = 0;
for(i=1; i<config->num_frames; i++)