• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/video/intelfb/

Lines Matching refs:dinfo

67 int intelfbhw_get_chipset(struct pci_dev *pdev, struct intelfb_info *dinfo)
70 if (!pdev || !dinfo)
75 dinfo->name = "Intel(R) 830M";
76 dinfo->chipset = INTEL_830M;
77 dinfo->mobile = 1;
78 dinfo->pll_index = PLLS_I8xx;
81 dinfo->name = "Intel(R) 845G";
82 dinfo->chipset = INTEL_845G;
83 dinfo->mobile = 0;
84 dinfo->pll_index = PLLS_I8xx;
87 dinfo->mobile = 1;
88 dinfo->name = "Intel(R) 854";
89 dinfo->chipset = INTEL_854;
93 dinfo->mobile = 1;
94 dinfo->pll_index = PLLS_I8xx;
99 dinfo->name = "Intel(R) 855GME";
100 dinfo->chipset = INTEL_855GME;
103 dinfo->name = "Intel(R) 855GM";
104 dinfo->chipset = INTEL_855GM;
107 dinfo->name = "Intel(R) 852GME";
108 dinfo->chipset = INTEL_852GME;
111 dinfo->name = "Intel(R) 852GM";
112 dinfo->chipset = INTEL_852GM;
115 dinfo->name = "Intel(R) 852GM/855GM";
116 dinfo->chipset = INTEL_85XGM;
121 dinfo->name = "Intel(R) 865G";
122 dinfo->chipset = INTEL_865G;
123 dinfo->mobile = 0;
124 dinfo->pll_index = PLLS_I8xx;
127 dinfo->name = "Intel(R) 915G";
128 dinfo->chipset = INTEL_915G;
129 dinfo->mobile = 0;
130 dinfo->pll_index = PLLS_I9xx;
133 dinfo->name = "Intel(R) 915GM";
134 dinfo->chipset = INTEL_915GM;
135 dinfo->mobile = 1;
136 dinfo->pll_index = PLLS_I9xx;
139 dinfo->name = "Intel(R) 945G";
140 dinfo->chipset = INTEL_945G;
141 dinfo->mobile = 0;
142 dinfo->pll_index = PLLS_I9xx;
145 dinfo->name = "Intel(R) 945GM";
146 dinfo->chipset = INTEL_945GM;
147 dinfo->mobile = 1;
148 dinfo->pll_index = PLLS_I9xx;
151 dinfo->name = "Intel(R) 945GME";
152 dinfo->chipset = INTEL_945GME;
153 dinfo->mobile = 1;
154 dinfo->pll_index = PLLS_I9xx;
157 dinfo->name = "Intel(R) 965G";
158 dinfo->chipset = INTEL_965G;
159 dinfo->mobile = 0;
160 dinfo->pll_index = PLLS_I9xx;
163 dinfo->name = "Intel(R) 965GM";
164 dinfo->chipset = INTEL_965GM;
165 dinfo->mobile = 1;
166 dinfo->pll_index = PLLS_I9xx;
280 int intelfbhw_check_non_crt(struct intelfb_info *dinfo)
311 int intelfbhw_validate_mode(struct intelfb_info *dinfo,
327 if (tmp > dinfo->fb.size) {
330 BtoKB(tmp), BtoKB(dinfo->fb.size));
383 struct intelfb_info *dinfo = GET_DINFO(info);
397 offset = (yoffset * dinfo->pitch) +
400 offset += dinfo->fb.offset << 12;
402 dinfo->vsync.pan_offset = offset;
404 !intelfbhw_enable_irq(dinfo))
405 dinfo->vsync.pan_display = 1;
407 dinfo->vsync.pan_display = 0;
417 struct intelfb_info *dinfo = GET_DINFO(info);
437 DBG_MSG("cursor_on is %d\n", dinfo->cursor_on);
439 if (dinfo->cursor_on) {
441 intelfbhw_cursor_hide(dinfo);
443 intelfbhw_cursor_show(dinfo);
444 dinfo->cursor_on = 1;
446 dinfo->cursor_blanked = blank;
497 void intelfbhw_setcolreg(struct intelfb_info *dinfo, unsigned regno,
501 u32 palette_reg = (dinfo->pipe == PIPE_A) ?
516 int intelfbhw_read_hw_state(struct intelfb_info *dinfo,
525 if (!hw || !dinfo)
675 static void intelfbhw_get_p1p2(struct intelfb_info *dinfo, int dpll,
680 if (IS_I9XX(dinfo)) {
703 void intelfbhw_print_hw_state(struct intelfb_info *dinfo,
708 int index = dinfo->pll_index;
722 intelfbhw_get_p1p2(dinfo, hw->vga_pd, &p1, &p2);
733 intelfbhw_get_p1p2(dinfo, hw->vga_pd, &p1, &p2);
750 intelfbhw_get_p1p2(dinfo, hw->dpll_a, &p1, &p2);
761 intelfbhw_get_p1p2(dinfo, hw->dpll_a, &p1, &p2);
1028 int intelfbhw_mode_to_hw(struct intelfb_info *dinfo,
1103 if (calc_pll_params(dinfo->pll_index, clock_target, &m1, &m2,
1125 if (IS_I9XX(dinfo)) {
1237 hw->disp_a_stride = dinfo->pitch;
1243 hw->disp_a_base += dinfo->fb.offset << 12;
1246 stride_alignment = IS_I9XX(dinfo) ? STRIDE_ALIGNMENT_I9XX :
1266 int intelfbhw_program_mode(struct intelfb_info *dinfo,
1289 dinfo->pipe = intelfbhw_active_pipe(hw);
1291 if (dinfo->pipe == PIPE_B) {
1418 switch (dinfo->info->var.vmode & (FB_VMODE_INTERLACED |
1439 if (dinfo->pdev->device == PCI_DEVICE_ID_INTEL_830M) {
1471 static void refresh_ring(struct intelfb_info *dinfo);
1472 static void reset_state(struct intelfb_info *dinfo);
1473 static void do_flush(struct intelfb_info *dinfo);
1475 static u32 get_ring_space(struct intelfb_info *dinfo)
1479 if (dinfo->ring_tail >= dinfo->ring_head)
1480 ring_space = dinfo->ring.size -
1481 (dinfo->ring_tail - dinfo->ring_head);
1483 ring_space = dinfo->ring_head - dinfo->ring_tail;
1493 static int wait_ring(struct intelfb_info *dinfo, int n)
1504 while (dinfo->ring_space < n) {
1505 dinfo->ring_head = INREG(PRI_RING_HEAD) & RING_HEAD_MASK;
1506 dinfo->ring_space = get_ring_space(dinfo);
1508 if (dinfo->ring_head != last_head) {
1510 last_head = dinfo->ring_head;
1516 reset_state(dinfo);
1517 refresh_ring(dinfo);
1518 do_flush(dinfo);
1523 dinfo->ring_space, n);
1526 dinfo->ring_lockup = 1;
1535 static void do_flush(struct intelfb_info *dinfo)
1543 void intelfbhw_do_sync(struct intelfb_info *dinfo)
1549 if (!dinfo->accel)
1557 do_flush(dinfo);
1558 wait_ring(dinfo, dinfo->ring.size - RING_MIN_FREE);
1559 dinfo->ring_space = dinfo->ring.size - RING_MIN_FREE;
1562 static void refresh_ring(struct intelfb_info *dinfo)
1568 dinfo->ring_head = INREG(PRI_RING_HEAD) & RING_HEAD_MASK;
1569 dinfo->ring_tail = INREG(PRI_RING_TAIL) & RING_TAIL_MASK;
1570 dinfo->ring_space = get_ring_space(dinfo);
1573 static void reset_state(struct intelfb_info *dinfo)
1591 refresh_ring(dinfo);
1592 intelfbhw_do_sync(dinfo);
1603 void intelfbhw_2d_stop(struct intelfb_info *dinfo)
1607 dinfo->accel, dinfo->ring_active);
1610 if (!dinfo->accel)
1613 dinfo->ring_active = 0;
1614 reset_state(dinfo);
1622 void intelfbhw_2d_start(struct intelfb_info *dinfo)
1626 dinfo->accel, dinfo->ring_active);
1629 if (!dinfo->accel)
1637 OUTREG(PRI_RING_START, dinfo->ring.physical & RING_START_MASK);
1639 ((dinfo->ring.size - GTT_PAGE_SIZE) & RING_LENGTH_MASK) |
1641 refresh_ring(dinfo);
1642 dinfo->ring_active = 1;
1646 void intelfbhw_do_fillrect(struct intelfb_info *dinfo, u32 x, u32 y, u32 w,
1657 br09 = dinfo->fb_start + (y * pitch + x * (bpp / 8));
1685 DBG_MSG("ring = 0x%08x, 0x%08x (%d)\n", dinfo->ring_head,
1686 dinfo->ring_tail, dinfo->ring_space);
1691 intelfbhw_do_bitblt(struct intelfb_info *dinfo, u32 curx, u32 cury,
1702 br09 = dinfo->fb_start;
1704 br12 = dinfo->fb_start;
1736 int intelfbhw_do_drawglyph(struct intelfb_info *dinfo, u32 fg, u32 bg, u32 w,
1773 br09 = dinfo->fb_start;
1825 void intelfbhw_cursor_init(struct intelfb_info *dinfo)
1833 if (dinfo->mobile || IS_I9XX(dinfo)) {
1834 if (!dinfo->cursor.physical)
1842 OUTREG(CURSOR_A_BASEADDR, dinfo->cursor.physical);
1849 OUTREG(CURSOR_A_BASEADDR, dinfo->cursor.offset << 12);
1856 void intelfbhw_cursor_hide(struct intelfb_info *dinfo)
1864 dinfo->cursor_on = 0;
1865 if (dinfo->mobile || IS_I9XX(dinfo)) {
1866 if (!dinfo->cursor.physical)
1873 OUTREG(CURSOR_A_BASEADDR, dinfo->cursor.physical);
1881 void intelfbhw_cursor_show(struct intelfb_info *dinfo)
1889 dinfo->cursor_on = 1;
1891 if (dinfo->cursor_blanked)
1894 if (dinfo->mobile || IS_I9XX(dinfo)) {
1895 if (!dinfo->cursor.physical)
1902 OUTREG(CURSOR_A_BASEADDR, dinfo->cursor.physical);
1910 void intelfbhw_cursor_setpos(struct intelfb_info *dinfo, int x, int y)
1928 if (IS_I9XX(dinfo))
1929 OUTREG(CURSOR_A_BASEADDR, dinfo->cursor.physical);
1932 void intelfbhw_cursor_setcolor(struct intelfb_info *dinfo, u32 bg, u32 fg)
1944 void intelfbhw_cursor_load(struct intelfb_info *dinfo, int width, int height,
1947 u8 __iomem *addr = (u8 __iomem *)dinfo->cursor.virtual;
1955 if (!dinfo->cursor.virtual)
1973 void intelfbhw_cursor_reset(struct intelfb_info *dinfo)
1975 u8 __iomem *addr = (u8 __iomem *)dinfo->cursor.virtual;
1982 if (!dinfo->cursor.virtual)
1997 struct intelfb_info *dinfo = dev_id;
1999 spin_lock(&dinfo->int_lock);
2002 if (dinfo->info->var.vmode & FB_VMODE_INTERLACED)
2008 spin_unlock(&dinfo->int_lock);
2016 if (dinfo->vsync.pan_display) {
2017 dinfo->vsync.pan_display = 0;
2018 OUTREG(DSPABASE, dinfo->vsync.pan_offset);
2021 dinfo->vsync.count++;
2022 wake_up_interruptible(&dinfo->vsync.wait);
2024 spin_unlock(&dinfo->int_lock);
2029 int intelfbhw_enable_irq(struct intelfb_info *dinfo)
2032 if (!test_and_set_bit(0, &dinfo->irq_flags)) {
2033 if (request_irq(dinfo->pdev->irq, intelfbhw_irq, IRQF_SHARED,
2034 "intelfb", dinfo)) {
2035 clear_bit(0, &dinfo->irq_flags);
2039 spin_lock_irq(&dinfo->int_lock);
2043 spin_lock_irq(&dinfo->int_lock);
2045 if (dinfo->info->var.vmode & FB_VMODE_INTERLACED)
2054 spin_unlock_irq(&dinfo->int_lock);
2058 void intelfbhw_disable_irq(struct intelfb_info *dinfo)
2060 if (test_and_clear_bit(0, &dinfo->irq_flags)) {
2061 if (dinfo->vsync.pan_display) {
2062 dinfo->vsync.pan_display = 0;
2063 OUTREG(DSPABASE, dinfo->vsync.pan_offset);
2065 spin_lock_irq(&dinfo->int_lock);
2071 spin_unlock_irq(&dinfo->int_lock);
2073 free_irq(dinfo->pdev->irq, dinfo);
2077 int intelfbhw_wait_for_vsync(struct intelfb_info *dinfo, u32 pipe)
2085 vsync = &dinfo->vsync;
2091 ret = intelfbhw_enable_irq(dinfo);