Lines Matching refs:crtc
443 struct aty128_crtc crtc; member
744 pitch_value = par->crtc.pitch; in aty128_init_engine()
745 if (par->crtc.bpp == 24) { in aty128_init_engine()
766 (depth_to_dst(par->crtc.depth) << 8) | in aty128_init_engine()
1028 static void aty128_set_crtc(const struct aty128_crtc *crtc, in aty128_set_crtc() argument
1031 aty_st_le32(CRTC_GEN_CNTL, crtc->gen_cntl); in aty128_set_crtc()
1032 aty_st_le32(CRTC_H_TOTAL_DISP, crtc->h_total); in aty128_set_crtc()
1033 aty_st_le32(CRTC_H_SYNC_STRT_WID, crtc->h_sync_strt_wid); in aty128_set_crtc()
1034 aty_st_le32(CRTC_V_TOTAL_DISP, crtc->v_total); in aty128_set_crtc()
1035 aty_st_le32(CRTC_V_SYNC_STRT_WID, crtc->v_sync_strt_wid); in aty128_set_crtc()
1036 aty_st_le32(CRTC_PITCH, crtc->pitch); in aty128_set_crtc()
1037 aty_st_le32(CRTC_OFFSET, crtc->offset); in aty128_set_crtc()
1038 aty_st_le32(CRTC_OFFSET_CNTL, crtc->offset_cntl); in aty128_set_crtc()
1045 struct aty128_crtc *crtc, in aty128_var_to_crtc() argument
1142 crtc->gen_cntl = 0x3000000L | c_sync | (dst << 8); in aty128_var_to_crtc()
1144 crtc->h_total = h_total | (h_disp << 16); in aty128_var_to_crtc()
1145 crtc->v_total = v_total | (v_disp << 16); in aty128_var_to_crtc()
1147 crtc->h_sync_strt_wid = h_sync_strt | (h_sync_wid << 16) | in aty128_var_to_crtc()
1149 crtc->v_sync_strt_wid = v_sync_strt | (v_sync_wid << 16) | in aty128_var_to_crtc()
1152 crtc->pitch = vxres >> 3; in aty128_var_to_crtc()
1154 crtc->offset = 0; in aty128_var_to_crtc()
1157 crtc->offset_cntl = 0x00010000; in aty128_var_to_crtc()
1159 crtc->offset_cntl = 0; in aty128_var_to_crtc()
1161 crtc->vxres = vxres; in aty128_var_to_crtc()
1162 crtc->vyres = vyres; in aty128_var_to_crtc()
1163 crtc->xoffset = xoffset; in aty128_var_to_crtc()
1164 crtc->yoffset = yoffset; in aty128_var_to_crtc()
1165 crtc->depth = depth; in aty128_var_to_crtc()
1166 crtc->bpp = bpp; in aty128_var_to_crtc()
1235 static int aty128_crtc_to_var(const struct aty128_crtc *crtc, in aty128_crtc_to_var() argument
1244 h_total = crtc->h_total & 0x1ff; in aty128_crtc_to_var()
1245 h_disp = (crtc->h_total >> 16) & 0xff; in aty128_crtc_to_var()
1246 h_sync_strt = (crtc->h_sync_strt_wid >> 3) & 0x1ff; in aty128_crtc_to_var()
1247 h_sync_dly = crtc->h_sync_strt_wid & 0x7; in aty128_crtc_to_var()
1248 h_sync_wid = (crtc->h_sync_strt_wid >> 16) & 0x3f; in aty128_crtc_to_var()
1249 h_sync_pol = (crtc->h_sync_strt_wid >> 23) & 0x1; in aty128_crtc_to_var()
1250 v_total = crtc->v_total & 0x7ff; in aty128_crtc_to_var()
1251 v_disp = (crtc->v_total >> 16) & 0x7ff; in aty128_crtc_to_var()
1252 v_sync_strt = crtc->v_sync_strt_wid & 0x7ff; in aty128_crtc_to_var()
1253 v_sync_wid = (crtc->v_sync_strt_wid >> 16) & 0x1f; in aty128_crtc_to_var()
1254 v_sync_pol = (crtc->v_sync_strt_wid >> 23) & 0x1; in aty128_crtc_to_var()
1255 c_sync = crtc->gen_cntl & CRTC_CSYNC_EN ? 1 : 0; in aty128_crtc_to_var()
1256 pix_width = crtc->gen_cntl & CRTC_PIX_WIDTH_MASK; in aty128_crtc_to_var()
1275 var->xres_virtual = crtc->vxres; in aty128_crtc_to_var()
1276 var->yres_virtual = crtc->vyres; in aty128_crtc_to_var()
1277 var->xoffset = crtc->xoffset; in aty128_crtc_to_var()
1278 var->yoffset = crtc->yoffset; in aty128_crtc_to_var()
1522 aty128_set_crtc(&par->crtc, par); in aty128fb_set_par()
1529 if (par->crtc.bpp == 32) in aty128fb_set_par()
1531 else if (par->crtc.bpp == 16) in aty128fb_set_par()
1538 info->fix.line_length = (par->crtc.vxres * par->crtc.bpp) >> 3; in aty128fb_set_par()
1539 info->fix.visual = par->crtc.bpp == 8 ? FB_VISUAL_PSEUDOCOLOR in aty128fb_set_par()
1551 (((par->crtc.h_total>>16) & 0xff)+1)*8, in aty128fb_set_par()
1552 ((par->crtc.v_total>>16) & 0x7ff)+1, in aty128fb_set_par()
1553 par->crtc.bpp, in aty128fb_set_par()
1554 par->crtc.vxres*par->crtc.bpp/8); in aty128fb_set_par()
1568 struct aty128_crtc crtc; in aty128_decode_var() local
1572 if ((err = aty128_var_to_crtc(var, &crtc, par))) in aty128_decode_var()
1578 if ((err = aty128_ddafifo(&fifo_reg, &pll, crtc.depth, par))) in aty128_decode_var()
1581 par->crtc = crtc; in aty128_decode_var()
1595 if ((err = aty128_crtc_to_var(&par->crtc, var))) in aty128_encode_var()
1637 xres = (((par->crtc.h_total >> 16) & 0xff) + 1) << 3; in aty128fb_pan_display()
1638 yres = ((par->crtc.v_total >> 16) & 0x7ff) + 1; in aty128fb_pan_display()
1643 if (xoffset+xres > par->crtc.vxres || yoffset+yres > par->crtc.vyres) in aty128fb_pan_display()
1646 par->crtc.xoffset = xoffset; in aty128fb_pan_display()
1647 par->crtc.yoffset = yoffset; in aty128fb_pan_display()
1649 offset = ((yoffset * par->crtc.vxres + xoffset) * (par->crtc.bpp >> 3)) in aty128fb_pan_display()
1652 if (par->crtc.bpp == 24) in aty128fb_pan_display()
2262 || (par->crtc.depth == 16 && regno > 63) in aty128fb_setcolreg()
2263 || (par->crtc.depth == 15 && regno > 31)) in aty128fb_setcolreg()
2274 switch (par->crtc.depth) { in aty128fb_setcolreg()
2291 if (par->crtc.depth == 16 && regno > 0) { in aty128fb_setcolreg()
2309 } else if (par->crtc.bpp == 16) in aty128fb_setcolreg()
2367 dstval = depth_to_dst(par->current_par.crtc.depth);