Lines Matching refs:par

444 static void set_memclock(struct pm2fb_par *par, u32 clk)  in set_memclock()  argument
449 switch (par->type) { in set_memclock()
452 WAIT_FIFO(par, 12); in set_memclock()
453 pm2_WR(par, PM2VR_RD_INDEX_HIGH, PM2VI_RD_MCLK_CONTROL >> 8); in set_memclock()
454 pm2v_RDAC_WR(par, PM2VI_RD_MCLK_CONTROL, 0); in set_memclock()
455 pm2v_RDAC_WR(par, PM2VI_RD_MCLK_PRESCALE, m); in set_memclock()
456 pm2v_RDAC_WR(par, PM2VI_RD_MCLK_FEEDBACK, n); in set_memclock()
457 pm2v_RDAC_WR(par, PM2VI_RD_MCLK_POSTSCALE, p); in set_memclock()
458 pm2v_RDAC_WR(par, PM2VI_RD_MCLK_CONTROL, 1); in set_memclock()
461 if (pm2v_RDAC_RD(par, PM2VI_RD_MCLK_CONTROL) & 2) in set_memclock()
463 pm2_WR(par, PM2VR_RD_INDEX_HIGH, 0); in set_memclock()
467 WAIT_FIFO(par, 10); in set_memclock()
468 pm2_RDAC_WR(par, PM2I_RD_MEMORY_CLOCK_3, 6); in set_memclock()
469 pm2_RDAC_WR(par, PM2I_RD_MEMORY_CLOCK_1, m); in set_memclock()
470 pm2_RDAC_WR(par, PM2I_RD_MEMORY_CLOCK_2, n); in set_memclock()
471 pm2_RDAC_WR(par, PM2I_RD_MEMORY_CLOCK_3, 8|p); in set_memclock()
472 pm2_RDAC_RD(par, PM2I_RD_MEMORY_CLOCK_STATUS); in set_memclock()
475 if (pm2_RD(par, PM2R_RD_INDEXED_DATA) & PM2F_PLL_LOCKED) in set_memclock()
481 static void set_pixclock(struct pm2fb_par *par, u32 clk) in set_pixclock() argument
486 switch (par->type) { in set_pixclock()
489 WAIT_FIFO(par, 10); in set_pixclock()
490 pm2_RDAC_WR(par, PM2I_RD_PIXEL_CLOCK_A3, 0); in set_pixclock()
491 pm2_RDAC_WR(par, PM2I_RD_PIXEL_CLOCK_A1, m); in set_pixclock()
492 pm2_RDAC_WR(par, PM2I_RD_PIXEL_CLOCK_A2, n); in set_pixclock()
493 pm2_RDAC_WR(par, PM2I_RD_PIXEL_CLOCK_A3, 8|p); in set_pixclock()
494 pm2_RDAC_RD(par, PM2I_RD_PIXEL_CLOCK_STATUS); in set_pixclock()
497 if (pm2_RD(par, PM2R_RD_INDEXED_DATA) & PM2F_PLL_LOCKED) in set_pixclock()
502 WAIT_FIFO(par, 8); in set_pixclock()
503 pm2_WR(par, PM2VR_RD_INDEX_HIGH, PM2VI_RD_CLK0_PRESCALE >> 8); in set_pixclock()
504 pm2v_RDAC_WR(par, PM2VI_RD_CLK0_PRESCALE, m); in set_pixclock()
505 pm2v_RDAC_WR(par, PM2VI_RD_CLK0_FEEDBACK, n); in set_pixclock()
506 pm2v_RDAC_WR(par, PM2VI_RD_CLK0_POSTSCALE, p); in set_pixclock()
507 pm2_WR(par, PM2VR_RD_INDEX_HIGH, 0); in set_pixclock()
682 struct pm2fb_par *par = info->par; in pm2fb_set_par() local
700 reset_card(par); in pm2fb_set_par()
701 reset_config(par); in pm2fb_set_par()
702 clear_palette(par); in pm2fb_set_par()
703 if (par->memclock) in pm2fb_set_par()
704 set_memclock(par, par->memclock); in pm2fb_set_par()
707 data64 = depth > 8 || par->type == PM2_TYPE_PERMEDIA2V; in pm2fb_set_par()
757 par->video = video; in pm2fb_set_par()
767 if (par->type == PM2_TYPE_PERMEDIA2V) { in pm2fb_set_par()
768 WAIT_FIFO(par, 1); in pm2fb_set_par()
769 pm2_WR(par, PM2VR_RD_INDEX_HIGH, 0); in pm2fb_set_par()
772 set_aperture(par, depth); in pm2fb_set_par()
775 WAIT_FIFO(par, 19); in pm2fb_set_par()
778 pm2_WR(par, PM2R_FB_READ_PIXEL, 0); in pm2fb_set_par()
782 pm2_WR(par, PM2R_FB_READ_PIXEL, 1); in pm2fb_set_par()
790 pm2_WR(par, PM2R_FB_READ_PIXEL, 2); in pm2fb_set_par()
798 pm2_WR(par, PM2R_FB_READ_PIXEL, 4); in pm2fb_set_par()
806 pm2_WR(par, PM2R_FB_WRITE_MODE, PM2F_FB_WRITE_ENABLE); in pm2fb_set_par()
807 pm2_WR(par, PM2R_FB_READ_MODE, partprod(xres)); in pm2fb_set_par()
808 pm2_WR(par, PM2R_LB_READ_MODE, partprod(xres)); in pm2fb_set_par()
809 pm2_WR(par, PM2R_TEXTURE_MAP_FORMAT, txtmap | partprod(xres)); in pm2fb_set_par()
810 pm2_WR(par, PM2R_H_TOTAL, htotal); in pm2fb_set_par()
811 pm2_WR(par, PM2R_HS_START, hsstart); in pm2fb_set_par()
812 pm2_WR(par, PM2R_HS_END, hsend); in pm2fb_set_par()
813 pm2_WR(par, PM2R_HG_END, hbend); in pm2fb_set_par()
814 pm2_WR(par, PM2R_HB_END, hbend); in pm2fb_set_par()
815 pm2_WR(par, PM2R_V_TOTAL, vtotal); in pm2fb_set_par()
816 pm2_WR(par, PM2R_VS_START, vsstart); in pm2fb_set_par()
817 pm2_WR(par, PM2R_VS_END, vsend); in pm2fb_set_par()
818 pm2_WR(par, PM2R_VB_END, vbend); in pm2fb_set_par()
819 pm2_WR(par, PM2R_SCREEN_STRIDE, stride); in pm2fb_set_par()
821 pm2_WR(par, PM2R_WINDOW_ORIGIN, 0); in pm2fb_set_par()
822 pm2_WR(par, PM2R_SCREEN_SIZE, (height << 16) | width); in pm2fb_set_par()
823 pm2_WR(par, PM2R_SCISSOR_MODE, PM2F_SCREEN_SCISSOR_ENABLE); in pm2fb_set_par()
825 pm2_WR(par, PM2R_SCREEN_BASE, base); in pm2fb_set_par()
827 set_video(par, video); in pm2fb_set_par()
828 WAIT_FIFO(par, 10); in pm2fb_set_par()
829 switch (par->type) { in pm2fb_set_par()
831 pm2_RDAC_WR(par, PM2I_RD_COLOR_MODE, clrmode); in pm2fb_set_par()
832 pm2_RDAC_WR(par, PM2I_RD_COLOR_KEY_CONTROL, in pm2fb_set_par()
836 pm2v_RDAC_WR(par, PM2VI_RD_DAC_CONTROL, 0); in pm2fb_set_par()
837 pm2v_RDAC_WR(par, PM2VI_RD_PIXEL_SIZE, pixsize); in pm2fb_set_par()
838 pm2v_RDAC_WR(par, PM2VI_RD_COLOR_FORMAT, clrformat); in pm2fb_set_par()
839 pm2v_RDAC_WR(par, PM2VI_RD_MISC_CONTROL, misc); in pm2fb_set_par()
840 pm2v_RDAC_WR(par, PM2VI_RD_OVERLAY_KEY, 0); in pm2fb_set_par()
843 set_pixclock(par, pixclock); in pm2fb_set_par()
868 struct pm2fb_par *par = info->par; in pm2fb_setcolreg() local
942 par->palette[regno] = v; in pm2fb_setcolreg()
947 set_color(par, regno, red, green, blue); in pm2fb_setcolreg()
967 struct pm2fb_par *p = info->par; in pm2fb_pan_display()
997 struct pm2fb_par *par = info->par; in pm2fb_blank() local
998 u32 video = par->video; in pm2fb_blank()
1024 set_video(par, video); in pm2fb_blank()
1030 struct pm2fb_par *par = info->par; in pm2fb_sync() local
1032 WAIT_FIFO(par, 1); in pm2fb_sync()
1033 pm2_WR(par, PM2R_SYNC, 0); in pm2fb_sync()
1036 while (pm2_RD(par, PM2R_OUT_FIFO_WORDS) == 0) in pm2fb_sync()
1038 } while (pm2_RD(par, PM2R_OUT_FIFO) != PM2TAG(PM2R_SYNC)); in pm2fb_sync()
1046 struct pm2fb_par *par = info->par; in pm2fb_fillrect() local
1079 WAIT_FIFO(par, 3); in pm2fb_fillrect()
1080 pm2_WR(par, PM2R_CONFIG, PM2F_CONFIG_FB_WRITE_ENABLE); in pm2fb_fillrect()
1081 pm2_WR(par, PM2R_RECTANGLE_ORIGIN, (modded.dy << 16) | modded.dx); in pm2fb_fillrect()
1082 pm2_WR(par, PM2R_RECTANGLE_SIZE, (modded.height << 16) | modded.width); in pm2fb_fillrect()
1084 WAIT_FIFO(par, 2); in pm2fb_fillrect()
1085 pm2_WR(par, PM2R_FB_BLOCK_COLOR, color); in pm2fb_fillrect()
1087 pm2_WR(par, PM2R_RENDER, in pm2fb_fillrect()
1090 WAIT_FIFO(par, 4); in pm2fb_fillrect()
1091 pm2_WR(par, PM2R_COLOR_DDA_MODE, 1); in pm2fb_fillrect()
1092 pm2_WR(par, PM2R_CONSTANT_COLOR, color); in pm2fb_fillrect()
1094 pm2_WR(par, PM2R_RENDER, in pm2fb_fillrect()
1097 pm2_WR(par, PM2R_COLOR_DDA_MODE, 0); in pm2fb_fillrect()
1104 struct pm2fb_par *par = info->par; in pm2fb_copyarea() local
1134 WAIT_FIFO(par, 5); in pm2fb_copyarea()
1135 pm2_WR(par, PM2R_CONFIG, PM2F_CONFIG_FB_WRITE_ENABLE | in pm2fb_copyarea()
1137 pm2_WR(par, PM2R_FB_SOURCE_DELTA, in pm2fb_copyarea()
1140 pm2_WR(par, PM2R_RECTANGLE_ORIGIN, (modded.dy << 16) | modded.dx); in pm2fb_copyarea()
1141 pm2_WR(par, PM2R_RECTANGLE_SIZE, (modded.height << 16) | modded.width); in pm2fb_copyarea()
1143 pm2_WR(par, PM2R_RENDER, PM2F_RENDER_RECTANGLE | in pm2fb_copyarea()
1150 struct pm2fb_par *par = info->par; in pm2fb_imageblit() local
1174 fgx = par->palette[image->fg_color]; in pm2fb_imageblit()
1175 bgx = par->palette[image->bg_color]; in pm2fb_imageblit()
1187 WAIT_FIFO(par, 13); in pm2fb_imageblit()
1188 pm2_WR(par, PM2R_FB_READ_MODE, partprod(xres)); in pm2fb_imageblit()
1189 pm2_WR(par, PM2R_SCISSOR_MIN_XY, in pm2fb_imageblit()
1191 pm2_WR(par, PM2R_SCISSOR_MAX_XY, in pm2fb_imageblit()
1194 pm2_WR(par, PM2R_SCISSOR_MODE, 1); in pm2fb_imageblit()
1196 pm2_WR(par, PM2R_LOGICAL_OP_MODE, (0x3 << 1) | 1); in pm2fb_imageblit()
1197 pm2_WR(par, PM2R_RECTANGLE_ORIGIN, in pm2fb_imageblit()
1199 pm2_WR(par, PM2R_RECTANGLE_SIZE, in pm2fb_imageblit()
1203 pm2_WR(par, PM2R_COLOR_DDA_MODE, 1); in pm2fb_imageblit()
1205 pm2_WR(par, PM2R_CONSTANT_COLOR, bgx); in pm2fb_imageblit()
1206 pm2_WR(par, PM2R_RENDER, in pm2fb_imageblit()
1210 pm2_WR(par, PM2R_RASTERIZER_MODE, raster_mode | (1 << 9)); in pm2fb_imageblit()
1211 pm2_WR(par, PM2R_CONSTANT_COLOR, fgx); in pm2fb_imageblit()
1212 pm2_WR(par, PM2R_RENDER, in pm2fb_imageblit()
1217 pm2_WR(par, PM2R_COLOR_DDA_MODE, 0); in pm2fb_imageblit()
1219 pm2_WR(par, PM2R_FB_BLOCK_COLOR, bgx); in pm2fb_imageblit()
1220 pm2_WR(par, PM2R_RENDER, in pm2fb_imageblit()
1224 pm2_WR(par, PM2R_RASTERIZER_MODE, raster_mode); in pm2fb_imageblit()
1225 pm2_WR(par, PM2R_FB_BLOCK_COLOR, fgx); in pm2fb_imageblit()
1226 pm2_WR(par, PM2R_RENDER, in pm2fb_imageblit()
1237 WAIT_FIFO(par, width); in pm2fb_imageblit()
1239 pm2_WR(par, PM2R_BIT_MASK_PATTERN, *src); in pm2fb_imageblit()
1243 WAIT_FIFO(par, 3); in pm2fb_imageblit()
1244 pm2_WR(par, PM2R_RASTERIZER_MODE, 0); in pm2fb_imageblit()
1245 pm2_WR(par, PM2R_COLOR_DDA_MODE, 0); in pm2fb_imageblit()
1246 pm2_WR(par, PM2R_SCISSOR_MODE, 0); in pm2fb_imageblit()
1259 struct pm2fb_par *par = info->par; in pm2vfb_cursor() local
1267 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_MODE, mode); in pm2vfb_cursor()
1271 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_X_LOW, x & 0xff); in pm2vfb_cursor()
1272 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_X_HIGH, (x >> 8) & 0xf); in pm2vfb_cursor()
1273 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_Y_LOW, y & 0xff); in pm2vfb_cursor()
1274 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_Y_HIGH, (y >> 8) & 0xf); in pm2vfb_cursor()
1285 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_X_HOT, in pm2vfb_cursor()
1287 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_Y_HOT, in pm2vfb_cursor()
1297 pm2_WR(par, PM2VR_RD_INDEX_HIGH, PM2VI_RD_CURSOR_PALETTE >> 8); in pm2vfb_cursor()
1298 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_PALETTE + 0, in pm2vfb_cursor()
1300 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_PALETTE + 1, in pm2vfb_cursor()
1302 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_PALETTE + 2, in pm2vfb_cursor()
1305 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_PALETTE + 3, in pm2vfb_cursor()
1307 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_PALETTE + 4, in pm2vfb_cursor()
1309 pm2v_RDAC_WR(par, PM2VI_RD_CURSOR_PALETTE + 5, in pm2vfb_cursor()
1311 pm2_WR(par, PM2VR_RD_INDEX_HIGH, 0); in pm2vfb_cursor()
1324 pm2_WR(par, PM2VR_RD_INDEX_HIGH, pos >> 8); in pm2vfb_cursor()
1332 pm2v_RDAC_WR(par, pos++, in pm2vfb_cursor()
1336 pm2v_RDAC_WR(par, pos++, in pm2vfb_cursor()
1343 pm2v_RDAC_WR(par, pos++, 0); in pm2vfb_cursor()
1344 pm2v_RDAC_WR(par, pos++, 0); in pm2vfb_cursor()
1349 pm2_WR(par, PM2VR_RD_INDEX_HIGH, pos >> 8); in pm2vfb_cursor()
1350 pm2v_RDAC_WR(par, pos++, 0); in pm2vfb_cursor()
1353 pm2_WR(par, PM2VR_RD_INDEX_HIGH, 0); in pm2vfb_cursor()
1360 struct pm2fb_par *par = info->par; in pm2fb_cursor() local
1372 if (par->type == PM2_TYPE_PERMEDIA2V) in pm2fb_cursor()
1379 pm2_RDAC_WR(par, PM2I_RD_CURSOR_CONTROL, mode); in pm2fb_cursor()
1393 WAIT_FIFO(par, 4); in pm2fb_cursor()
1394 pm2_WR(par, PM2R_RD_CURSOR_X_LSB, x & 0xff); in pm2fb_cursor()
1395 pm2_WR(par, PM2R_RD_CURSOR_X_MSB, (x >> 8) & 0x7); in pm2fb_cursor()
1396 pm2_WR(par, PM2R_RD_CURSOR_Y_LSB, y & 0xff); in pm2fb_cursor()
1397 pm2_WR(par, PM2R_RD_CURSOR_Y_MSB, (y >> 8) & 0x7); in pm2fb_cursor()
1404 WAIT_FIFO(par, 7); in pm2fb_cursor()
1405 pm2_WR(par, PM2R_RD_CURSOR_COLOR_ADDRESS, 1); in pm2fb_cursor()
1406 pm2_WR(par, PM2R_RD_CURSOR_COLOR_DATA, in pm2fb_cursor()
1408 pm2_WR(par, PM2R_RD_CURSOR_COLOR_DATA, in pm2fb_cursor()
1410 pm2_WR(par, PM2R_RD_CURSOR_COLOR_DATA, 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()
1426 WAIT_FIFO(par, 1); in pm2fb_cursor()
1427 pm2_WR(par, PM2R_RD_PALETTE_WRITE_ADDRESS, 0); in pm2fb_cursor()
1433 WAIT_FIFO(par, 8); in pm2fb_cursor()
1440 pm2_WR(par, PM2R_RD_CURSOR_DATA, data); in pm2fb_cursor()
1445 pm2_WR(par, PM2R_RD_CURSOR_DATA, 0); in pm2fb_cursor()
1449 WAIT_FIFO(par, 8); in pm2fb_cursor()
1451 pm2_WR(par, PM2R_RD_CURSOR_DATA, 0); in pm2fb_cursor()
1459 WAIT_FIFO(par, 8); in pm2fb_cursor()
1462 pm2_WR(par, PM2R_RD_CURSOR_DATA, *mask); in pm2fb_cursor()
1466 pm2_WR(par, PM2R_RD_CURSOR_DATA, 0); in pm2fb_cursor()
1470 WAIT_FIFO(par, 8); in pm2fb_cursor()
1472 pm2_WR(par, PM2R_RD_CURSOR_DATA, 0); in pm2fb_cursor()
1527 default_par = info->par; in pm2fb_probe()
1721 struct pm2fb_par *par = info->par; in pm2fb_remove() local
1724 arch_phys_wc_del(par->wc_cookie); in pm2fb_remove()
1727 iounmap(par->v_regs); in pm2fb_remove()