Lines Matching refs:par

451 static void set_memclock(struct pm2fb_par *par, u32 clk)  in set_memclock()  argument
456 switch (par->type) { in set_memclock()
459 WAIT_FIFO(par, 12); in set_memclock()
460 pm2_WR(par, PM2VR_RD_INDEX_HIGH, PM2VI_RD_MCLK_CONTROL >> 8); in set_memclock()
461 pm2v_RDAC_WR(par, PM2VI_RD_MCLK_CONTROL, 0); in set_memclock()
462 pm2v_RDAC_WR(par, PM2VI_RD_MCLK_PRESCALE, m); in set_memclock()
463 pm2v_RDAC_WR(par, PM2VI_RD_MCLK_FEEDBACK, n); in set_memclock()
464 pm2v_RDAC_WR(par, PM2VI_RD_MCLK_POSTSCALE, p); in set_memclock()
465 pm2v_RDAC_WR(par, PM2VI_RD_MCLK_CONTROL, 1); in set_memclock()
468 if (pm2v_RDAC_RD(par, PM2VI_RD_MCLK_CONTROL) & 2) in set_memclock()
470 pm2_WR(par, PM2VR_RD_INDEX_HIGH, 0); in set_memclock()
474 WAIT_FIFO(par, 10); in set_memclock()
475 pm2_RDAC_WR(par, PM2I_RD_MEMORY_CLOCK_3, 6); in set_memclock()
476 pm2_RDAC_WR(par, PM2I_RD_MEMORY_CLOCK_1, m); in set_memclock()
477 pm2_RDAC_WR(par, PM2I_RD_MEMORY_CLOCK_2, n); in set_memclock()
478 pm2_RDAC_WR(par, PM2I_RD_MEMORY_CLOCK_3, 8|p); in set_memclock()
479 pm2_RDAC_RD(par, PM2I_RD_MEMORY_CLOCK_STATUS); in set_memclock()
482 if (pm2_RD(par, PM2R_RD_INDEXED_DATA) & PM2F_PLL_LOCKED) in set_memclock()
488 static void set_pixclock(struct pm2fb_par *par, u32 clk) in set_pixclock() argument
493 switch (par->type) { in set_pixclock()
496 WAIT_FIFO(par, 10); in set_pixclock()
497 pm2_RDAC_WR(par, PM2I_RD_PIXEL_CLOCK_A3, 0); in set_pixclock()
498 pm2_RDAC_WR(par, PM2I_RD_PIXEL_CLOCK_A1, m); in set_pixclock()
499 pm2_RDAC_WR(par, PM2I_RD_PIXEL_CLOCK_A2, n); in set_pixclock()
500 pm2_RDAC_WR(par, PM2I_RD_PIXEL_CLOCK_A3, 8|p); in set_pixclock()
501 pm2_RDAC_RD(par, PM2I_RD_PIXEL_CLOCK_STATUS); in set_pixclock()
504 if (pm2_RD(par, PM2R_RD_INDEXED_DATA) & PM2F_PLL_LOCKED) in set_pixclock()
509 WAIT_FIFO(par, 8); in set_pixclock()
510 pm2_WR(par, PM2VR_RD_INDEX_HIGH, PM2VI_RD_CLK0_PRESCALE >> 8); in set_pixclock()
511 pm2v_RDAC_WR(par, PM2VI_RD_CLK0_PRESCALE, m); in set_pixclock()
512 pm2v_RDAC_WR(par, PM2VI_RD_CLK0_FEEDBACK, n); in set_pixclock()
513 pm2v_RDAC_WR(par, PM2VI_RD_CLK0_POSTSCALE, p); in set_pixclock()
514 pm2_WR(par, PM2VR_RD_INDEX_HIGH, 0); in set_pixclock()
689 struct pm2fb_par *par = info->par; in pm2fb_set_par() local
707 reset_card(par); in pm2fb_set_par()
708 reset_config(par); in pm2fb_set_par()
709 clear_palette(par); in pm2fb_set_par()
710 if (par->memclock) in pm2fb_set_par()
711 set_memclock(par, par->memclock); in pm2fb_set_par()
714 data64 = depth > 8 || par->type == PM2_TYPE_PERMEDIA2V; in pm2fb_set_par()
764 par->video = video; in pm2fb_set_par()
774 if (par->type == PM2_TYPE_PERMEDIA2V) { in pm2fb_set_par()
775 WAIT_FIFO(par, 1); in pm2fb_set_par()
776 pm2_WR(par, PM2VR_RD_INDEX_HIGH, 0); in pm2fb_set_par()
779 set_aperture(par, depth); in pm2fb_set_par()
782 WAIT_FIFO(par, 19); in pm2fb_set_par()
785 pm2_WR(par, PM2R_FB_READ_PIXEL, 0); in pm2fb_set_par()
789 pm2_WR(par, PM2R_FB_READ_PIXEL, 1); in pm2fb_set_par()
797 pm2_WR(par, PM2R_FB_READ_PIXEL, 2); in pm2fb_set_par()
805 pm2_WR(par, PM2R_FB_READ_PIXEL, 4); in pm2fb_set_par()
813 pm2_WR(par, PM2R_FB_WRITE_MODE, PM2F_FB_WRITE_ENABLE); in pm2fb_set_par()
814 pm2_WR(par, PM2R_FB_READ_MODE, partprod(xres)); in pm2fb_set_par()
815 pm2_WR(par, PM2R_LB_READ_MODE, partprod(xres)); in pm2fb_set_par()
816 pm2_WR(par, PM2R_TEXTURE_MAP_FORMAT, txtmap | partprod(xres)); in pm2fb_set_par()
817 pm2_WR(par, PM2R_H_TOTAL, htotal); in pm2fb_set_par()
818 pm2_WR(par, PM2R_HS_START, hsstart); in pm2fb_set_par()
819 pm2_WR(par, PM2R_HS_END, hsend); in pm2fb_set_par()
820 pm2_WR(par, PM2R_HG_END, hbend); in pm2fb_set_par()
821 pm2_WR(par, PM2R_HB_END, hbend); in pm2fb_set_par()
822 pm2_WR(par, PM2R_V_TOTAL, vtotal); in pm2fb_set_par()
823 pm2_WR(par, PM2R_VS_START, vsstart); in pm2fb_set_par()
824 pm2_WR(par, PM2R_VS_END, vsend); in pm2fb_set_par()
825 pm2_WR(par, PM2R_VB_END, vbend); in pm2fb_set_par()
826 pm2_WR(par, PM2R_SCREEN_STRIDE, stride); in pm2fb_set_par()
828 pm2_WR(par, PM2R_WINDOW_ORIGIN, 0); in pm2fb_set_par()
829 pm2_WR(par, PM2R_SCREEN_SIZE, (height << 16) | width); in pm2fb_set_par()
830 pm2_WR(par, PM2R_SCISSOR_MODE, PM2F_SCREEN_SCISSOR_ENABLE); in pm2fb_set_par()
832 pm2_WR(par, PM2R_SCREEN_BASE, base); in pm2fb_set_par()
834 set_video(par, video); in pm2fb_set_par()
835 WAIT_FIFO(par, 10); in pm2fb_set_par()
836 switch (par->type) { in pm2fb_set_par()
838 pm2_RDAC_WR(par, PM2I_RD_COLOR_MODE, clrmode); in pm2fb_set_par()
839 pm2_RDAC_WR(par, PM2I_RD_COLOR_KEY_CONTROL, in pm2fb_set_par()
843 pm2v_RDAC_WR(par, PM2VI_RD_DAC_CONTROL, 0); in pm2fb_set_par()
844 pm2v_RDAC_WR(par, PM2VI_RD_PIXEL_SIZE, pixsize); in pm2fb_set_par()
845 pm2v_RDAC_WR(par, PM2VI_RD_COLOR_FORMAT, clrformat); in pm2fb_set_par()
846 pm2v_RDAC_WR(par, PM2VI_RD_MISC_CONTROL, misc); in pm2fb_set_par()
847 pm2v_RDAC_WR(par, PM2VI_RD_OVERLAY_KEY, 0); in pm2fb_set_par()
850 set_pixclock(par, pixclock); in pm2fb_set_par()
875 struct pm2fb_par *par = info->par; in pm2fb_setcolreg() local
949 par->palette[regno] = v; in pm2fb_setcolreg()
954 set_color(par, regno, red, green, blue); in pm2fb_setcolreg()
974 struct pm2fb_par *p = info->par; in pm2fb_pan_display()
1004 struct pm2fb_par *par = info->par; in pm2fb_blank() local
1005 u32 video = par->video; in pm2fb_blank()
1031 set_video(par, video); in pm2fb_blank()
1037 struct pm2fb_par *par = info->par; in pm2fb_sync() local
1039 WAIT_FIFO(par, 1); in pm2fb_sync()
1040 pm2_WR(par, PM2R_SYNC, 0); in pm2fb_sync()
1043 while (pm2_RD(par, PM2R_OUT_FIFO_WORDS) == 0) in pm2fb_sync()
1045 } while (pm2_RD(par, PM2R_OUT_FIFO) != PM2TAG(PM2R_SYNC)); in pm2fb_sync()
1053 struct pm2fb_par *par = info->par; in pm2fb_fillrect() local
1086 WAIT_FIFO(par, 3); in pm2fb_fillrect()
1087 pm2_WR(par, PM2R_CONFIG, PM2F_CONFIG_FB_WRITE_ENABLE); in pm2fb_fillrect()
1088 pm2_WR(par, PM2R_RECTANGLE_ORIGIN, (modded.dy << 16) | modded.dx); in pm2fb_fillrect()
1089 pm2_WR(par, PM2R_RECTANGLE_SIZE, (modded.height << 16) | modded.width); in pm2fb_fillrect()
1091 WAIT_FIFO(par, 2); in pm2fb_fillrect()
1092 pm2_WR(par, PM2R_FB_BLOCK_COLOR, color); in pm2fb_fillrect()
1094 pm2_WR(par, PM2R_RENDER, in pm2fb_fillrect()
1097 WAIT_FIFO(par, 4); in pm2fb_fillrect()
1098 pm2_WR(par, PM2R_COLOR_DDA_MODE, 1); in pm2fb_fillrect()
1099 pm2_WR(par, PM2R_CONSTANT_COLOR, color); in pm2fb_fillrect()
1101 pm2_WR(par, PM2R_RENDER, in pm2fb_fillrect()
1104 pm2_WR(par, PM2R_COLOR_DDA_MODE, 0); in pm2fb_fillrect()
1111 struct pm2fb_par *par = info->par; in pm2fb_copyarea() local
1141 WAIT_FIFO(par, 5); in pm2fb_copyarea()
1142 pm2_WR(par, PM2R_CONFIG, PM2F_CONFIG_FB_WRITE_ENABLE | in pm2fb_copyarea()
1144 pm2_WR(par, PM2R_FB_SOURCE_DELTA, in pm2fb_copyarea()
1147 pm2_WR(par, PM2R_RECTANGLE_ORIGIN, (modded.dy << 16) | modded.dx); in pm2fb_copyarea()
1148 pm2_WR(par, PM2R_RECTANGLE_SIZE, (modded.height << 16) | modded.width); in pm2fb_copyarea()
1150 pm2_WR(par, PM2R_RENDER, PM2F_RENDER_RECTANGLE | in pm2fb_copyarea()
1157 struct pm2fb_par *par = info->par; in pm2fb_imageblit() local
1181 fgx = par->palette[image->fg_color]; in pm2fb_imageblit()
1182 bgx = par->palette[image->bg_color]; in pm2fb_imageblit()
1194 WAIT_FIFO(par, 13); in pm2fb_imageblit()
1195 pm2_WR(par, PM2R_FB_READ_MODE, partprod(xres)); in pm2fb_imageblit()
1196 pm2_WR(par, PM2R_SCISSOR_MIN_XY, in pm2fb_imageblit()
1198 pm2_WR(par, PM2R_SCISSOR_MAX_XY, in pm2fb_imageblit()
1201 pm2_WR(par, PM2R_SCISSOR_MODE, 1); in pm2fb_imageblit()
1203 pm2_WR(par, PM2R_LOGICAL_OP_MODE, (0x3 << 1) | 1); in pm2fb_imageblit()
1204 pm2_WR(par, PM2R_RECTANGLE_ORIGIN, in pm2fb_imageblit()
1206 pm2_WR(par, PM2R_RECTANGLE_SIZE, in pm2fb_imageblit()
1210 pm2_WR(par, PM2R_COLOR_DDA_MODE, 1); in pm2fb_imageblit()
1212 pm2_WR(par, PM2R_CONSTANT_COLOR, bgx); in pm2fb_imageblit()
1213 pm2_WR(par, PM2R_RENDER, in pm2fb_imageblit()
1217 pm2_WR(par, PM2R_RASTERIZER_MODE, raster_mode | (1 << 9)); in pm2fb_imageblit()
1218 pm2_WR(par, PM2R_CONSTANT_COLOR, fgx); in pm2fb_imageblit()
1219 pm2_WR(par, PM2R_RENDER, in pm2fb_imageblit()
1224 pm2_WR(par, PM2R_COLOR_DDA_MODE, 0); in pm2fb_imageblit()
1226 pm2_WR(par, PM2R_FB_BLOCK_COLOR, bgx); in pm2fb_imageblit()
1227 pm2_WR(par, PM2R_RENDER, in pm2fb_imageblit()
1231 pm2_WR(par, PM2R_RASTERIZER_MODE, raster_mode); in pm2fb_imageblit()
1232 pm2_WR(par, PM2R_FB_BLOCK_COLOR, fgx); in pm2fb_imageblit()
1233 pm2_WR(par, PM2R_RENDER, in pm2fb_imageblit()
1244 WAIT_FIFO(par, width); in pm2fb_imageblit()
1246 pm2_WR(par, PM2R_BIT_MASK_PATTERN, *src); in pm2fb_imageblit()
1250 WAIT_FIFO(par, 3); in pm2fb_imageblit()
1251 pm2_WR(par, PM2R_RASTERIZER_MODE, 0); in pm2fb_imageblit()
1252 pm2_WR(par, PM2R_COLOR_DDA_MODE, 0); in pm2fb_imageblit()
1253 pm2_WR(par, PM2R_SCISSOR_MODE, 0); in pm2fb_imageblit()
1266 struct pm2fb_par *par = info->par; in pm2vfb_cursor() local
1274 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_MODE, mode); in pm2vfb_cursor()
1278 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_X_LOW, x & 0xff); in pm2vfb_cursor()
1279 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_X_HIGH, (x >> 8) & 0xf); in pm2vfb_cursor()
1280 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_Y_LOW, y & 0xff); in pm2vfb_cursor()
1281 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_Y_HIGH, (y >> 8) & 0xf); in pm2vfb_cursor()
1292 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_X_HOT, in pm2vfb_cursor()
1294 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_Y_HOT, in pm2vfb_cursor()
1304 pm2_WR(par, PM2VR_RD_INDEX_HIGH, PM2VI_RD_CURSOR_PALETTE >> 8); in pm2vfb_cursor()
1305 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_PALETTE + 0, in pm2vfb_cursor()
1307 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_PALETTE + 1, in pm2vfb_cursor()
1309 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_PALETTE + 2, in pm2vfb_cursor()
1312 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_PALETTE + 3, in pm2vfb_cursor()
1314 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_PALETTE + 4, in pm2vfb_cursor()
1316 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_PALETTE + 5, in pm2vfb_cursor()
1318 pm2_WR(par, PM2VR_RD_INDEX_HIGH, 0); in pm2vfb_cursor()
1331 pm2_WR(par, PM2VR_RD_INDEX_HIGH, pos >> 8); in pm2vfb_cursor()
1339 pm2v_RDAC_WR(par, pos++, in pm2vfb_cursor()
1343 pm2v_RDAC_WR(par, pos++, in pm2vfb_cursor()
1350 pm2v_RDAC_WR(par, pos++, 0); in pm2vfb_cursor()
1351 pm2v_RDAC_WR(par, pos++, 0); in pm2vfb_cursor()
1356 pm2_WR(par, PM2VR_RD_INDEX_HIGH, pos >> 8); in pm2vfb_cursor()
1357 pm2v_RDAC_WR(par, pos++, 0); in pm2vfb_cursor()
1360 pm2_WR(par, PM2VR_RD_INDEX_HIGH, 0); in pm2vfb_cursor()
1367 struct pm2fb_par *par = info->par; in pm2fb_cursor() local
1379 if (par->type == PM2_TYPE_PERMEDIA2V) in pm2fb_cursor()
1386 pm2_RDAC_WR(par, PM2I_RD_CURSOR_CONTROL, mode); in pm2fb_cursor()
1400 WAIT_FIFO(par, 4); in pm2fb_cursor()
1401 pm2_WR(par, PM2R_RD_CURSOR_X_LSB, x & 0xff); in pm2fb_cursor()
1402 pm2_WR(par, PM2R_RD_CURSOR_X_MSB, (x >> 8) & 0x7); in pm2fb_cursor()
1403 pm2_WR(par, PM2R_RD_CURSOR_Y_LSB, y & 0xff); in pm2fb_cursor()
1404 pm2_WR(par, PM2R_RD_CURSOR_Y_MSB, (y >> 8) & 0x7); in pm2fb_cursor()
1411 WAIT_FIFO(par, 7); in pm2fb_cursor()
1412 pm2_WR(par, PM2R_RD_CURSOR_COLOR_ADDRESS, 1); in pm2fb_cursor()
1413 pm2_WR(par, PM2R_RD_CURSOR_COLOR_DATA, in pm2fb_cursor()
1415 pm2_WR(par, PM2R_RD_CURSOR_COLOR_DATA, in pm2fb_cursor()
1417 pm2_WR(par, PM2R_RD_CURSOR_COLOR_DATA, in pm2fb_cursor()
1420 pm2_WR(par, PM2R_RD_CURSOR_COLOR_DATA, in pm2fb_cursor()
1422 pm2_WR(par, PM2R_RD_CURSOR_COLOR_DATA, in pm2fb_cursor()
1424 pm2_WR(par, PM2R_RD_CURSOR_COLOR_DATA, in pm2fb_cursor()
1433 WAIT_FIFO(par, 1); in pm2fb_cursor()
1434 pm2_WR(par, PM2R_RD_PALETTE_WRITE_ADDRESS, 0); in pm2fb_cursor()
1440 WAIT_FIFO(par, 8); in pm2fb_cursor()
1447 pm2_WR(par, PM2R_RD_CURSOR_DATA, data); in pm2fb_cursor()
1452 pm2_WR(par, PM2R_RD_CURSOR_DATA, 0); in pm2fb_cursor()
1456 WAIT_FIFO(par, 8); in pm2fb_cursor()
1458 pm2_WR(par, PM2R_RD_CURSOR_DATA, 0); in pm2fb_cursor()
1466 WAIT_FIFO(par, 8); in pm2fb_cursor()
1469 pm2_WR(par, PM2R_RD_CURSOR_DATA, *mask); in pm2fb_cursor()
1473 pm2_WR(par, PM2R_RD_CURSOR_DATA, 0); in pm2fb_cursor()
1477 WAIT_FIFO(par, 8); in pm2fb_cursor()
1479 pm2_WR(par, PM2R_RD_CURSOR_DATA, 0); in pm2fb_cursor()
1534 default_par = info->par; in pm2fb_probe()
1733 struct pm2fb_par *par = info->par; in pm2fb_remove() local
1738 if (par->mtrr_handle >= 0) in pm2fb_remove()
1739 mtrr_del(par->mtrr_handle, info->fix.smem_start, in pm2fb_remove()
1744 iounmap(par->v_regs); in pm2fb_remove()