pm2fb - Permedia 2V memory clock setting
PATCH 1/1 pm2fb - Permedia 2V memory clock setting
Permedia 2V uses its own registers to set a memory clock. The patch adds these registers and uses them in the set_memclock() function.
---
----------------------------------------------------
Konkurs - Szukaj konkretów i wygrywaj nagrody!
Czekają na Ciebie telewizory, odtwarzacze DVD, płyty, książki i inne!
Zobacz: http://klik.wp.pl/?adr=http%3A%2F%2Fszukaj.wp.pl%2Fkonkurs%2F&sid=1102
drivers/video/pm2fb.c +37 -15
@@ -462,21 +464,43 @@ static void set_memclock(struct pm2fb_paint i;unsigned char m, n, p; -pm2_mnp (clk, &m, &n, &p); -WAIT_FIFO (par,10 ); -pm2_RDAC_WR (par,PM2I_RD_MEMORY_CLOCK_3 ,6 ); -wmb (); -pm2_RDAC_WR (par,PM2I_RD_MEMORY_CLOCK_1 , m); -pm2_RDAC_WR (par,PM2I_RD_MEMORY_CLOCK_2 , n); -wmb (); -pm2_RDAC_WR (par,PM2I_RD_MEMORY_CLOCK_3 ,8 |p); -wmb (); -pm2_RDAC_RD (par,PM2I_RD_MEMORY_CLOCK_STATUS ); -rmb (); -for (i =256 ; - i && !(pm2_RD (par,PM2R_RD_INDEXED_DATA ) &PM2F_PLL_LOCKED ); - i--) - ; +switch (par->type) { +case PM2_TYPE_PERMEDIA2V : +pm2v_mnp (clk/2 , &m, &n, &p); +WAIT_FIFO (par,8 ); +pm2_WR (par,PM2VR_RD_INDEX_HIGH ,PM2VI_RD_MCLK_CONTROL >>8 ); +pm2v_RDAC_WR (par,PM2VI_RD_MCLK_CONTROL ,0 ); +wmb (); +pm2v_RDAC_WR (par,PM2VI_RD_MCLK_PRESCALE , m); +pm2v_RDAC_WR (par,PM2VI_RD_MCLK_FEEDBACK , n); +pm2v_RDAC_WR (par,PM2VI_RD_MCLK_POSTSCALE , p); +wmb (); +pm2v_RDAC_WR (par,PM2VI_RD_MCLK_CONTROL ,1 ); +rmb (); +for (i =256 ; + i && !(pm2_RDAC_RD (par,PM2VI_RD_MCLK_CONTROL ) &2 ); + i--) + ; +pm2_WR (par,PM2VR_RD_INDEX_HIGH ,0 ); +break ; +case PM2_TYPE_PERMEDIA2 : +pm2_mnp (clk, &m, &n, &p); +WAIT_FIFO (par,10 ); +pm2_RDAC_WR (par,PM2I_RD_MEMORY_CLOCK_3 ,6 ); +wmb (); +pm2_RDAC_WR (par,PM2I_RD_MEMORY_CLOCK_1 , m); +pm2_RDAC_WR (par,PM2I_RD_MEMORY_CLOCK_2 , n); +wmb (); +pm2_RDAC_WR (par,PM2I_RD_MEMORY_CLOCK_3 ,8 |p); +wmb (); +pm2_RDAC_RD (par,PM2I_RD_MEMORY_CLOCK_STATUS ); +rmb (); +for (i =256 ; + i && !(pm2_RD (par,PM2R_RD_INDEXED_DATA ) &PM2F_PLL_LOCKED ); + i--) + ; +break ; + } }static void set_pixclock (struct pm2fb_par * par,u32 clk)
include/video/permedia2.h +4 -0
@@ -154,6 +154,10 @@#define PM2VI_RD_CLK1_PRESCALE 0x204#define PM2VI_RD_CLK1_FEEDBACK 0x205#define PM2VI_RD_CLK1_POSTSCALE 0x206 +#define PM2VI_RD_MCLK_CONTROL 0x20D +#define PM2VI_RD_MCLK_PRESCALE 0x20E +#define PM2VI_RD_MCLK_FEEDBACK 0x20F +#define PM2VI_RD_MCLK_POSTSCALE 0x210#define PM2VI_RD_CURSOR_PALETTE 0x303#define PM2VI_RD_CURSOR_PATTERN 0x400
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Linux-fbdev-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-fbdev-devel