Lines Matching defs:par

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