Lines Matching defs:par
275 struct uvesafb_par *par = info->par;
283 var->yres_virtual = (par->ypan) ?
315 static int uvesafb_vbe_find_mode(struct uvesafb_par *par,
320 for (i = 0; i < par->vbe_modes_cnt; i++) {
321 h = abs(par->vbe_modes[i].x_res - xres) +
322 abs(par->vbe_modes[i].y_res - yres) +
323 abs(depth - par->vbe_modes[i].depth);
332 if (h < d || (h == d && par->vbe_modes[i].depth > depth)) {
340 par->vbe_modes[match].depth != depth)
352 static u8 *uvesafb_vbe_state_save(struct uvesafb_par *par)
358 if (!par->vbe_state_size)
361 state = kmalloc(par->vbe_state_size, GFP_KERNEL);
375 task->t.buf_len = par->vbe_state_size;
390 static void uvesafb_vbe_state_restore(struct uvesafb_par *par, u8 *state_buf)
405 task->t.buf_len = par->vbe_state_size;
418 struct uvesafb_par *par)
425 task->buf = &par->vbe_ib;
426 strncpy(par->vbe_ib.vbe_signature, "VBE2", 4);
435 if (par->vbe_ib.vbe_version < 0x0200) {
440 if (!par->vbe_ib.mode_list_ptr) {
452 if (par->vbe_ib.oem_vendor_name_ptr)
454 ((char *)task->buf) + par->vbe_ib.oem_vendor_name_ptr);
456 if (par->vbe_ib.oem_product_name_ptr)
458 ((char *)task->buf) + par->vbe_ib.oem_product_name_ptr);
460 if (par->vbe_ib.oem_product_rev_ptr)
462 ((char *)task->buf) + par->vbe_ib.oem_product_rev_ptr);
464 if (par->vbe_ib.oem_string_ptr)
466 ((char *)task->buf) + par->vbe_ib.oem_string_ptr);
469 (par->vbe_ib.vbe_version & 0xff00) >> 8,
470 par->vbe_ib.vbe_version & 0xff);
476 struct uvesafb_par *par)
481 par->vbe_modes_cnt = 0;
484 mode = (u16 *) (((u8 *)&par->vbe_ib) + par->vbe_ib.mode_list_ptr);
486 par->vbe_modes_cnt++;
490 par->vbe_modes = kcalloc(par->vbe_modes_cnt,
493 if (!par->vbe_modes)
497 mode = (u16 *) (((u8 *)&par->vbe_ib) + par->vbe_ib.mode_list_ptr);
506 task->buf = par->vbe_modes + off;
513 par->vbe_modes_cnt--;
529 par->vbe_modes_cnt--;
543 if (par->vbe_modes_cnt > 0)
555 struct uvesafb_par *par)
565 par->pmi_setpal = par->ypan = 0;
567 par->pmi_base = (u16 *)phys_to_virt(((u32)task->t.regs.es << 4)
569 par->pmi_start = (u8 *)par->pmi_base + par->pmi_base[1];
570 par->pmi_pal = (u8 *)par->pmi_base + par->pmi_base[2];
574 par->pmi_start, par->pmi_pal);
576 if (par->pmi_base[3]) {
578 for (i = par->pmi_base[3]/2;
579 par->pmi_base[i] != 0xffff; i++)
580 pr_cont(" %x", par->pmi_base[i]);
583 if (par->pmi_base[i] != 0xffff) {
585 par->ypan = par->pmi_setpal = 0;
606 if (uvesafb_vbe_find_mode(info->par, mode->xres, mode->yres, 8,
615 struct uvesafb_par *par = info->par;
618 if (noedid || par->vbe_ib.vbe_version < 0x0300)
677 struct uvesafb_par *par = info->par;
689 par->nocrtc = 1;
709 par->nocrtc = 0;
721 for (i = 0; i < par->vbe_modes_cnt; i++) {
726 mode = &par->vbe_modes[i];
754 struct uvesafb_par *par)
774 par->vbe_state_size = 0;
778 par->vbe_state_size = 64 * (task->t.regs.ebx & 0xffff);
784 struct uvesafb_par *par = info->par;
791 err = uvesafb_vbe_getinfo(task, par);
795 err = uvesafb_vbe_getmodes(task, par);
799 par->nocrtc = nocrtc;
801 par->pmi_setpal = pmi_setpal;
802 par->ypan = ypan;
804 if (par->pmi_setpal || par->ypan) {
806 par->pmi_setpal = par->ypan = 0;
809 uvesafb_vbe_getpmi(task, par);
814 par->pmi_setpal = par->ypan = 0;
819 uvesafb_vbe_getstatesize(task, par);
830 struct uvesafb_par *par = info->par;
835 for (i = 0; i < par->vbe_modes_cnt; i++) {
836 if (par->vbe_modes[i].mode_id == vbemode) {
839 &par->vbe_modes[modeid]);
891 modeid = par->vbe_modes[0].mode_id;
893 &par->vbe_modes[modeid]);
902 modeid = uvesafb_vbe_find_mode(par, info->var.xres, info->var.yres,
908 uvesafb_setup_var(&info->var, info, &par->vbe_modes[modeid]);
915 if (par->vbe_ib.vbe_version < 0x0300 || par->nocrtc)
927 struct uvesafb_par *par = info->par;
928 int i = par->mode_idx;
941 if (i >= 0 && i < par->vbe_modes_cnt &&
942 par->vbe_modes[i].mode_attr & VBE_MODE_VGACOMPAT) {
951 else if (par->pmi_setpal) {
960 "S" (&par->pmi_pal)); /* ESI */
1082 struct uvesafb_par *par = info->par;
1090 if (par->pmi_start) {
1098 "D" (&par->pmi_start)); /* EDI */
1109 struct uvesafb_par *par = info->par;
1111 if (par->vbe_ib.capabilities & VBE_CAP_VGACOMPAT) {
1165 struct uvesafb_par *par = info->par;
1166 int cnt = atomic_read(&par->ref_count);
1169 if (!cnt && par->vbe_state_size) {
1170 buf = uvesafb_vbe_state_save(par);
1175 par->vbe_state_orig = buf;
1179 atomic_inc(&par->ref_count);
1186 struct uvesafb_par *par = info->par;
1187 int cnt = atomic_read(&par->ref_count);
1207 uvesafb_vbe_state_restore(par, par->vbe_state_orig);
1209 atomic_dec(&par->ref_count);
1216 struct uvesafb_par *par = info->par;
1226 i = uvesafb_vbe_find_mode(par, info->var.xres, info->var.yres, depth,
1229 mode = &par->vbe_modes[i];
1240 if (par->vbe_ib.vbe_version >= 0x0300 && !par->nocrtc &&
1269 memcpy(&par->crtc, crtc, sizeof(*crtc));
1271 memset(&par->crtc, 0, sizeof(*crtc));
1275 task->buf = &par->crtc;
1298 par->mode_idx = i;
1301 if (par->vbe_ib.capabilities & VBE_CAP_CAN_SWITCH_DAC &&
1331 struct uvesafb_par *par = info->par;
1340 if (par->vbe_ib.vbe_version < 0x0300) {
1366 struct uvesafb_par *par = info->par;
1379 match = uvesafb_vbe_find_mode(par, var->xres, var->yres, depth,
1384 mode = &par->vbe_modes[match];
1397 !(par->vbe_modes[match].mode_attr & 0x100))
1401 !(par->vbe_modes[match].mode_attr & 0x200))
1407 var->yres_virtual = (par->ypan) ?
1433 struct uvesafb_par *par = info->par;
1436 info->pseudo_palette = ((u8 *)info->par + sizeof(struct uvesafb_par));
1438 info->fix.ypanstep = par->ypan ? 1 : 0;
1439 info->fix.ywrapstep = (par->ypan > 1) ? 1 : 0;
1450 for (i = 0; i < par->vbe_modes_cnt; i++) {
1451 h = par->vbe_modes[i].bytes_per_scan_line *
1452 par->vbe_modes[i].y_res;
1470 size_total = par->vbe_ib.total_memory * 65536;
1499 if (par->ypan && info->var.yres_virtual > info->var.yres) {
1501 (par->ypan > 1) ? "ywrap" : "ypan",
1506 par->ypan = 0;
1510 (par->ypan ? FBINFO_HWACCEL_YPAN : 0);
1512 if (!par->ypan)
1518 struct uvesafb_par *par = info->par;
1535 par->mtrr_handle = rc;
1548 struct uvesafb_par *par = info->par;
1550 return snprintf(buf, PAGE_SIZE, "%.4x\n", par->vbe_ib.vbe_version);
1559 struct uvesafb_par *par = info->par;
1562 for (i = 0; i < par->vbe_modes_cnt && ret < PAGE_SIZE; i++) {
1565 par->vbe_modes[i].x_res, par->vbe_modes[i].y_res,
1566 par->vbe_modes[i].depth, par->vbe_modes[i].mode_id);
1578 struct uvesafb_par *par = info->par;
1580 if (par->vbe_ib.oem_vendor_name_ptr)
1582 (&par->vbe_ib) + par->vbe_ib.oem_vendor_name_ptr);
1593 struct uvesafb_par *par = info->par;
1595 if (par->vbe_ib.oem_product_name_ptr)
1597 (&par->vbe_ib) + par->vbe_ib.oem_product_name_ptr);
1608 struct uvesafb_par *par = info->par;
1610 if (par->vbe_ib.oem_product_rev_ptr)
1612 (&par->vbe_ib) + par->vbe_ib.oem_product_rev_ptr);
1623 struct uvesafb_par *par = info->par;
1625 if (par->vbe_ib.oem_string_ptr)
1627 (char *)(&par->vbe_ib) + par->vbe_ib.oem_string_ptr);
1638 struct uvesafb_par *par = info->par;
1640 return snprintf(buf, PAGE_SIZE, "%d\n", par->nocrtc);
1647 struct uvesafb_par *par = info->par;
1651 par->nocrtc = 0;
1653 par->nocrtc = 1;
1681 struct uvesafb_par *par;
1684 info = framebuffer_alloc(sizeof(*par) + sizeof(u32) * 256, &dev->dev);
1688 par = info->par;
1703 mode = &par->vbe_modes[i];
1747 info->fix.smem_len / 1024, par->vbe_ib.total_memory * 64);
1759 arch_phys_wc_del(par->mtrr_handle);
1769 kfree(par->vbe_modes);
1780 struct uvesafb_par *par = info->par;
1786 arch_phys_wc_del(par->mtrr_handle);
1791 kfree(par->vbe_modes);
1792 kfree(par->vbe_state_orig);
1793 kfree(par->vbe_state_saved);