Lines Matching refs:m2info

34 #define m2info (container_of(info, struct matroxfb_dh_fb_info, fbcon))  in matroxfb_dh_setcolreg()  macro
38 if (m2info->fbcon.var.grayscale) { in matroxfb_dh_setcolreg()
42 red = CNVT_TOHW(red, m2info->fbcon.var.red.length); in matroxfb_dh_setcolreg()
43 green = CNVT_TOHW(green, m2info->fbcon.var.green.length); in matroxfb_dh_setcolreg()
44 blue = CNVT_TOHW(blue, m2info->fbcon.var.blue.length); in matroxfb_dh_setcolreg()
45 transp = CNVT_TOHW(transp, m2info->fbcon.var.transp.length); in matroxfb_dh_setcolreg()
47 col = (red << m2info->fbcon.var.red.offset) | in matroxfb_dh_setcolreg()
48 (green << m2info->fbcon.var.green.offset) | in matroxfb_dh_setcolreg()
49 (blue << m2info->fbcon.var.blue.offset) | in matroxfb_dh_setcolreg()
50 (transp << m2info->fbcon.var.transp.offset); in matroxfb_dh_setcolreg()
52 switch (m2info->fbcon.var.bits_per_pixel) { in matroxfb_dh_setcolreg()
54 m2info->cmap[regno] = col | (col << 16); in matroxfb_dh_setcolreg()
57 m2info->cmap[regno] = col; in matroxfb_dh_setcolreg()
61 #undef m2info in matroxfb_dh_setcolreg()
64 static void matroxfb_dh_restore(struct matroxfb_dh_fb_info* m2info, in matroxfb_dh_restore() argument
70 struct matrox_fb_info *minfo = m2info->primary_dev; in matroxfb_dh_restore()
123 u_int32_t linelen = m2info->fbcon.var.xres_virtual * (m2info->fbcon.var.bits_per_pixel >> 3); in matroxfb_dh_restore()
129 m2info->interlaced = 1; in matroxfb_dh_restore()
132 m2info->interlaced = 0; in matroxfb_dh_restore()
161 static void matroxfb_dh_disable(struct matroxfb_dh_fb_info* m2info) { in matroxfb_dh_disable() argument
162 struct matrox_fb_info *minfo = m2info->primary_dev; in matroxfb_dh_disable()
168 static void matroxfb_dh_pan_var(struct matroxfb_dh_fb_info* m2info, in matroxfb_dh_pan_var() argument
173 struct matrox_fb_info *minfo = m2info->primary_dev; in matroxfb_dh_pan_var()
175 m2info->fbcon.var.xoffset = var->xoffset; in matroxfb_dh_pan_var()
176 m2info->fbcon.var.yoffset = var->yoffset; in matroxfb_dh_pan_var()
177 pixelsize = m2info->fbcon.var.bits_per_pixel >> 3; in matroxfb_dh_pan_var()
178 linelen = m2info->fbcon.var.xres_virtual * pixelsize; in matroxfb_dh_pan_var()
179 pos = m2info->fbcon.var.yoffset * linelen + m2info->fbcon.var.xoffset * pixelsize; in matroxfb_dh_pan_var()
180 pos += m2info->video.offbase; in matroxfb_dh_pan_var()
181 if (m2info->interlaced) { in matroxfb_dh_pan_var()
189 static int matroxfb_dh_decode_var(struct matroxfb_dh_fb_info* m2info, in matroxfb_dh_decode_var() argument
205 vramlen = m2info->video.len_usable; in matroxfb_dh_decode_var()
264 #define m2info (container_of(info, struct matroxfb_dh_fb_info, fbcon)) in matroxfb_dh_open() macro
265 struct matrox_fb_info *minfo = m2info->primary_dev; in matroxfb_dh_open()
279 #undef m2info in matroxfb_dh_open()
283 #define m2info (container_of(info, struct matroxfb_dh_fb_info, fbcon)) in matroxfb_dh_release() macro
285 struct matrox_fb_info *minfo = m2info->primary_dev; in matroxfb_dh_release()
291 #undef m2info in matroxfb_dh_release()
298 static void matroxfb_dh_init_fix(struct matroxfb_dh_fb_info *m2info) in matroxfb_dh_init_fix() argument
300 struct fb_fix_screeninfo *fix = &m2info->fbcon.fix; in matroxfb_dh_init_fix()
304 fix->smem_start = m2info->video.base; in matroxfb_dh_init_fix()
305 fix->smem_len = m2info->video.len_usable; in matroxfb_dh_init_fix()
309 fix->mmio_start = m2info->mmio.base; in matroxfb_dh_init_fix()
310 fix->mmio_len = m2info->mmio.len; in matroxfb_dh_init_fix()
315 #define m2info (container_of(info, struct matroxfb_dh_fb_info, fbcon)) in matroxfb_dh_check_var() macro
320 return matroxfb_dh_decode_var(m2info, var, &visual, &cmap_len, &mode); in matroxfb_dh_check_var()
321 #undef m2info in matroxfb_dh_check_var()
325 #define m2info (container_of(info, struct matroxfb_dh_fb_info, fbcon)) in matroxfb_dh_set_par() macro
331 struct matrox_fb_info *minfo = m2info->primary_dev; in matroxfb_dh_set_par()
333 if ((err = matroxfb_dh_decode_var(m2info, var, &visual, &cmap_len, &mode)) != 0) in matroxfb_dh_set_par()
337 m2info->fbcon.screen_base = vaddr_va(m2info->video.vbase); in matroxfb_dh_set_par()
338 m2info->fbcon.fix.visual = visual; in matroxfb_dh_set_par()
339 m2info->fbcon.fix.type = FB_TYPE_PACKED_PIXELS; in matroxfb_dh_set_par()
340 m2info->fbcon.fix.type_aux = 0; in matroxfb_dh_set_par()
341 m2info->fbcon.fix.line_length = (var->xres_virtual * var->bits_per_pixel) >> 3; in matroxfb_dh_set_par()
349 matroxfb_var2my(&m2info->fbcon.var, &mt); in matroxfb_dh_set_par()
354 …pos = (m2info->fbcon.var.yoffset * m2info->fbcon.var.xres_virtual + m2info->fbcon.var.xoffset) * m… in matroxfb_dh_set_par()
355 pos += m2info->video.offbase; in matroxfb_dh_set_par()
370 matroxfb_dh_restore(m2info, &mt, mode, pos); in matroxfb_dh_set_par()
372 matroxfb_dh_disable(m2info); in matroxfb_dh_set_par()
391 m2info->initialized = 1; in matroxfb_dh_set_par()
393 #undef m2info in matroxfb_dh_set_par()
397 #define m2info (container_of(info, struct matroxfb_dh_fb_info, fbcon)) in matroxfb_dh_pan_display() macro
398 matroxfb_dh_pan_var(m2info, var); in matroxfb_dh_pan_display()
400 #undef m2info in matroxfb_dh_pan_display()
403 static int matroxfb_dh_get_vblank(const struct matroxfb_dh_fb_info* m2info, struct fb_vblank* vblan… in matroxfb_dh_get_vblank() argument
404 struct matrox_fb_info *minfo = m2info->primary_dev; in matroxfb_dh_get_vblank()
412 if (vblank->vcount >= m2info->fbcon.var.yres) in matroxfb_dh_get_vblank()
427 #define m2info (container_of(info, struct matroxfb_dh_fb_info, fbcon)) in matroxfb_dh_ioctl() macro
428 struct matrox_fb_info *minfo = m2info->primary_dev; in matroxfb_dh_ioctl()
438 err = matroxfb_dh_get_vblank(m2info, &vblank); in matroxfb_dh_ioctl()
549 #undef m2info in matroxfb_dh_ioctl()
553 #define m2info (container_of(info, struct matroxfb_dh_fb_info, fbcon)) in matroxfb_dh_blank() macro
563 #undef m2info in matroxfb_dh_blank()
600 struct matroxfb_dh_fb_info *m2info) in matroxfb_dh_regit() argument
602 #define minfo (m2info->primary_dev) in matroxfb_dh_regit()
605 m2info->fbcon.fbops = &matroxfb_dh_ops; in matroxfb_dh_regit()
606 m2info->fbcon.flags = FBINFO_FLAG_DEFAULT; in matroxfb_dh_regit()
607 m2info->fbcon.flags |= FBINFO_HWACCEL_XPAN | in matroxfb_dh_regit()
609 m2info->fbcon.pseudo_palette = m2info->cmap; in matroxfb_dh_regit()
610 fb_alloc_cmap(&m2info->fbcon.cmap, 256, 1); in matroxfb_dh_regit()
618 m2info->video.offbase = minfo->video.len - mem; in matroxfb_dh_regit()
622 m2info->video.borrowed = mem; in matroxfb_dh_regit()
624 m2info->video.offbase = minfo->video.len_usable; in matroxfb_dh_regit()
626 m2info->video.base = minfo->video.base + m2info->video.offbase; in matroxfb_dh_regit()
627 m2info->video.len = m2info->video.len_usable = m2info->video.len_maximum = mem; in matroxfb_dh_regit()
628 m2info->video.vbase.vaddr = vaddr_va(minfo->video.vbase) + m2info->video.offbase; in matroxfb_dh_regit()
629 m2info->mmio.base = minfo->mmio.base; in matroxfb_dh_regit()
630 m2info->mmio.vbase = minfo->mmio.vbase; in matroxfb_dh_regit()
631 m2info->mmio.len = minfo->mmio.len; in matroxfb_dh_regit()
633 matroxfb_dh_init_fix(m2info); in matroxfb_dh_regit()
634 if (register_framebuffer(&m2info->fbcon)) { in matroxfb_dh_regit()
637 if (!m2info->initialized) in matroxfb_dh_regit()
638 fb_set_var(&m2info->fbcon, &matroxfb_dh_defined); in matroxfb_dh_regit()
641 minfo->crtc2.info = m2info; in matroxfb_dh_regit()
653 static int matroxfb_dh_registerfb(struct matroxfb_dh_fb_info* m2info) { in matroxfb_dh_registerfb() argument
654 #define minfo (m2info->primary_dev) in matroxfb_dh_registerfb()
655 if (matroxfb_dh_regit(minfo, m2info)) { in matroxfb_dh_registerfb()
660 minfo->fbcon.node, m2info->fbcon.node); in matroxfb_dh_registerfb()
661 m2info->fbcon_registered = 1; in matroxfb_dh_registerfb()
666 static void matroxfb_dh_deregisterfb(struct matroxfb_dh_fb_info* m2info) { in matroxfb_dh_deregisterfb() argument
667 #define minfo (m2info->primary_dev) in matroxfb_dh_deregisterfb()
668 if (m2info->fbcon_registered) { in matroxfb_dh_deregisterfb()
674 if (crtc2 == m2info) in matroxfb_dh_deregisterfb()
677 if (crtc2 != m2info) { in matroxfb_dh_deregisterfb()
679 crtc2, m2info); in matroxfb_dh_deregisterfb()
683 id = m2info->fbcon.node; in matroxfb_dh_deregisterfb()
684 unregister_framebuffer(&m2info->fbcon); in matroxfb_dh_deregisterfb()
686 minfo->video.len_usable += m2info->video.borrowed; in matroxfb_dh_deregisterfb()
688 m2info->fbcon_registered = 0; in matroxfb_dh_deregisterfb()
694 struct matroxfb_dh_fb_info* m2info; in matroxfb_crtc2_probe() local
699 m2info = kzalloc(sizeof(*m2info), GFP_KERNEL); in matroxfb_crtc2_probe()
700 if (!m2info) in matroxfb_crtc2_probe()
703 m2info->primary_dev = minfo; in matroxfb_crtc2_probe()
704 if (matroxfb_dh_registerfb(m2info)) { in matroxfb_crtc2_probe()
705 kfree(m2info); in matroxfb_crtc2_probe()
709 return m2info; in matroxfb_crtc2_probe()