Lines Matching refs:rinfo
289 static void radeon_unmap_ROM(struct radeonfb_info *rinfo, struct pci_dev *dev) in radeon_unmap_ROM() argument
291 if (!rinfo->bios_seg) in radeon_unmap_ROM()
293 pci_unmap_rom(dev, rinfo->bios_seg); in radeon_unmap_ROM()
296 static int radeon_map_ROM(struct radeonfb_info *rinfo, struct pci_dev *dev) in radeon_map_ROM() argument
319 pci_name(rinfo->pdev)); in radeon_map_ROM()
323 rinfo->bios_seg = rom; in radeon_map_ROM()
329 pci_name(rinfo->pdev), BIOS_IN16(0)); in radeon_map_ROM()
361 "incorrect: %08x\n", pci_name(rinfo->pdev), BIOS_IN32(dptr)); in radeon_map_ROM()
381 rinfo->fp_bios_start = BIOS_IN16(0x48); in radeon_map_ROM()
385 rinfo->bios_seg = NULL; in radeon_map_ROM()
386 radeon_unmap_ROM(rinfo, dev); in radeon_map_ROM()
391 static int radeon_find_mem_vbios(struct radeonfb_info *rinfo) in radeon_find_mem_vbios() argument
414 rinfo->bios_seg = rom_base; in radeon_find_mem_vbios()
415 rinfo->fp_bios_start = BIOS_IN16(0x48); in radeon_find_mem_vbios()
426 static int radeon_read_xtal_OF(struct radeonfb_info *rinfo) in radeon_read_xtal_OF() argument
428 struct device_node *dp = rinfo->of_node; in radeon_read_xtal_OF()
439 rinfo->pll.ref_clk = (*val) / 10; in radeon_read_xtal_OF()
443 rinfo->pll.sclk = (*val) / 10; in radeon_read_xtal_OF()
447 rinfo->pll.mclk = (*val) / 10; in radeon_read_xtal_OF()
456 static int radeon_probe_pll_params(struct radeonfb_info *rinfo) in radeon_probe_pll_params() argument
529 radeon_pll_errata_after_index(rinfo); in radeon_probe_pll_params()
583 rinfo->pll.ref_clk = xtal; in radeon_probe_pll_params()
584 rinfo->pll.ref_div = ref_div; in radeon_probe_pll_params()
585 rinfo->pll.sclk = sclk; in radeon_probe_pll_params()
586 rinfo->pll.mclk = mclk; in radeon_probe_pll_params()
594 static void radeon_get_pllinfo(struct radeonfb_info *rinfo) in radeon_get_pllinfo() argument
601 switch (rinfo->chipset) { in radeon_get_pllinfo()
604 rinfo->pll.ppll_max = 35000; in radeon_get_pllinfo()
605 rinfo->pll.ppll_min = 12000; in radeon_get_pllinfo()
606 rinfo->pll.mclk = 23000; in radeon_get_pllinfo()
607 rinfo->pll.sclk = 23000; in radeon_get_pllinfo()
608 rinfo->pll.ref_clk = 2700; in radeon_get_pllinfo()
615 rinfo->pll.ppll_max = 35000; in radeon_get_pllinfo()
616 rinfo->pll.ppll_min = 12000; in radeon_get_pllinfo()
617 rinfo->pll.mclk = 27500; in radeon_get_pllinfo()
618 rinfo->pll.sclk = 27500; in radeon_get_pllinfo()
619 rinfo->pll.ref_clk = 2700; in radeon_get_pllinfo()
625 rinfo->pll.ppll_max = 35000; in radeon_get_pllinfo()
626 rinfo->pll.ppll_min = 12000; in radeon_get_pllinfo()
627 rinfo->pll.mclk = 25000; in radeon_get_pllinfo()
628 rinfo->pll.sclk = 25000; in radeon_get_pllinfo()
629 rinfo->pll.ref_clk = 2700; in radeon_get_pllinfo()
635 rinfo->pll.ppll_max = 40000; in radeon_get_pllinfo()
636 rinfo->pll.ppll_min = 20000; in radeon_get_pllinfo()
637 rinfo->pll.mclk = 27000; in radeon_get_pllinfo()
638 rinfo->pll.sclk = 27000; in radeon_get_pllinfo()
639 rinfo->pll.ref_clk = 2700; in radeon_get_pllinfo()
646 rinfo->pll.ppll_max = 35000; in radeon_get_pllinfo()
647 rinfo->pll.ppll_min = 12000; in radeon_get_pllinfo()
648 rinfo->pll.mclk = 16600; in radeon_get_pllinfo()
649 rinfo->pll.sclk = 16600; in radeon_get_pllinfo()
650 rinfo->pll.ref_clk = 2700; in radeon_get_pllinfo()
653 rinfo->pll.ref_div = INPLL(PPLL_REF_DIV) & PPLL_REF_DIV_MASK; in radeon_get_pllinfo()
660 if (!force_measure_pll && radeon_read_xtal_OF(rinfo) == 0) { in radeon_get_pllinfo()
670 if (!force_measure_pll && rinfo->bios_seg) { in radeon_get_pllinfo()
671 u16 pll_info_block = BIOS_IN16(rinfo->fp_bios_start + 0x30); in radeon_get_pllinfo()
673 rinfo->pll.sclk = BIOS_IN16(pll_info_block + 0x08); in radeon_get_pllinfo()
674 rinfo->pll.mclk = BIOS_IN16(pll_info_block + 0x0a); in radeon_get_pllinfo()
675 rinfo->pll.ref_clk = BIOS_IN16(pll_info_block + 0x0e); in radeon_get_pllinfo()
676 rinfo->pll.ref_div = BIOS_IN16(pll_info_block + 0x10); in radeon_get_pllinfo()
677 rinfo->pll.ppll_min = BIOS_IN32(pll_info_block + 0x12); in radeon_get_pllinfo()
678 rinfo->pll.ppll_max = BIOS_IN32(pll_info_block + 0x16); in radeon_get_pllinfo()
688 if (radeon_probe_pll_params(rinfo) == 0) { in radeon_get_pllinfo()
704 if (rinfo->pll.mclk == 0) in radeon_get_pllinfo()
705 rinfo->pll.mclk = 20000; in radeon_get_pllinfo()
706 if (rinfo->pll.sclk == 0) in radeon_get_pllinfo()
707 rinfo->pll.sclk = 20000; in radeon_get_pllinfo()
710 rinfo->pll.ref_clk / 100, rinfo->pll.ref_clk % 100, in radeon_get_pllinfo()
711 rinfo->pll.ref_div, in radeon_get_pllinfo()
712 rinfo->pll.mclk / 100, rinfo->pll.mclk % 100, in radeon_get_pllinfo()
713 rinfo->pll.sclk / 100, rinfo->pll.sclk % 100); in radeon_get_pllinfo()
714 printk("radeonfb: PLL min %d max %d\n", rinfo->pll.ppll_min, rinfo->pll.ppll_max); in radeon_get_pllinfo()
719 struct radeonfb_info *rinfo = info->par; in radeonfb_check_var() local
724 if (radeon_match_mode(rinfo, &v, var)) in radeonfb_check_var()
808 if (rinfo->info->flags & FBINFO_HWACCEL_DISABLED) { in radeonfb_check_var()
816 if (((v.xres_virtual * v.yres_virtual * nom) / den) > rinfo->mapped_vram) in radeonfb_check_var()
841 struct radeonfb_info *rinfo = info->par; in radeonfb_pan_display() local
847 if (rinfo->asleep) in radeonfb_pan_display()
860 struct radeonfb_info *rinfo = info->par; in radeonfb_ioctl() local
872 if (!rinfo->is_mobility) in radeonfb_ioctl()
909 if (!rinfo->is_mobility) in radeonfb_ioctl()
929 int radeon_screen_blank(struct radeonfb_info *rinfo, int blank, int mode_switch) in radeon_screen_blank() argument
935 if (rinfo->lock_blank) in radeon_screen_blank()
964 switch (rinfo->mon1_type) { in radeon_screen_blank()
976 del_timer_sync(&rinfo->lvds_timer); in radeon_screen_blank()
980 | LVDS_EN | (rinfo->init_state.lvds_gen_cntl in radeon_screen_blank()
987 rinfo->init_state.lvds_gen_cntl &= ~LVDS_STATE_MASK; in radeon_screen_blank()
988 rinfo->init_state.lvds_gen_cntl |= in radeon_screen_blank()
991 radeon_msleep(rinfo->panel_info.pwr_delay); in radeon_screen_blank()
995 rinfo->pending_lvds_gen_cntl = target_val; in radeon_screen_blank()
996 mod_timer(&rinfo->lvds_timer, in radeon_screen_blank()
998 msecs_to_jiffies(rinfo->panel_info.pwr_delay)); in radeon_screen_blank()
1013 if (rinfo->is_mobility || rinfo->is_IGP) in radeon_screen_blank()
1021 rinfo->pending_lvds_gen_cntl = val; in radeon_screen_blank()
1022 mod_timer(&rinfo->lvds_timer, in radeon_screen_blank()
1024 msecs_to_jiffies(rinfo->panel_info.pwr_delay)); in radeon_screen_blank()
1025 rinfo->init_state.lvds_gen_cntl &= ~LVDS_STATE_MASK; in radeon_screen_blank()
1026 rinfo->init_state.lvds_gen_cntl |= val & LVDS_STATE_MASK; in radeon_screen_blank()
1027 if (rinfo->is_mobility || rinfo->is_IGP) in radeon_screen_blank()
1042 struct radeonfb_info *rinfo = info->par; in radeonfb_blank() local
1044 if (rinfo->asleep) in radeonfb_blank()
1047 return radeon_screen_blank(rinfo, blank, 0); in radeonfb_blank()
1052 struct radeonfb_info *rinfo) in radeon_setcolreg() argument
1064 rinfo->palette[regno].red = red; in radeon_setcolreg()
1065 rinfo->palette[regno].green = green; in radeon_setcolreg()
1066 rinfo->palette[regno].blue = blue; in radeon_setcolreg()
1071 if (!rinfo->asleep) { in radeon_setcolreg()
1074 if (rinfo->bpp == 16) { in radeon_setcolreg()
1077 if (rinfo->depth == 16 && regno > 63) in radeon_setcolreg()
1079 if (rinfo->depth == 15 && regno > 31) in radeon_setcolreg()
1085 if (rinfo->depth == 16) { in radeon_setcolreg()
1088 (rinfo->palette[regno>>1].red << 16) | in radeon_setcolreg()
1090 (rinfo->palette[regno>>1].blue)); in radeon_setcolreg()
1091 green = rinfo->palette[regno<<1].green; in radeon_setcolreg()
1095 if (rinfo->depth != 16 || regno < 32) { in radeon_setcolreg()
1102 u32 *pal = rinfo->info->pseudo_palette; in radeon_setcolreg()
1103 switch (rinfo->depth) { in radeon_setcolreg()
1126 struct radeonfb_info *rinfo = info->par; in radeonfb_setcolreg() local
1130 if (!rinfo->asleep) { in radeonfb_setcolreg()
1131 if (rinfo->is_mobility) { in radeonfb_setcolreg()
1138 if (rinfo->has_CRTC2) { in radeonfb_setcolreg()
1145 rc = radeon_setcolreg (regno, red, green, blue, transp, rinfo); in radeonfb_setcolreg()
1147 if (!rinfo->asleep && rinfo->is_mobility) in radeonfb_setcolreg()
1155 struct radeonfb_info *rinfo = info->par; in radeonfb_setcmap() local
1160 if (!rinfo->asleep) { in radeonfb_setcmap()
1161 if (rinfo->is_mobility) { in radeonfb_setcmap()
1168 if (rinfo->has_CRTC2) { in radeonfb_setcmap()
1190 rinfo); in radeonfb_setcmap()
1195 if (!rinfo->asleep && rinfo->is_mobility) in radeonfb_setcmap()
1201 static void radeon_save_state (struct radeonfb_info *rinfo, in radeon_save_state() argument
1232 radeon_pll_errata_after_index(rinfo); in radeon_save_state()
1238 static void radeon_write_pll_regs(struct radeonfb_info *rinfo, struct radeon_regs *mode) in radeon_write_pll_regs() argument
1245 if (rinfo->is_mobility) { in radeon_write_pll_regs()
1262 radeon_pll_errata_after_index(rinfo); in radeon_write_pll_regs()
1263 radeon_pll_errata_after_data(rinfo); in radeon_write_pll_regs()
1280 radeon_pll_errata_after_index(rinfo); in radeon_write_pll_regs()
1281 radeon_pll_errata_after_data(rinfo); in radeon_write_pll_regs()
1284 if (IS_R300_VARIANT(rinfo) || in radeon_write_pll_regs()
1285 rinfo->family == CHIP_FAMILY_RS300 || in radeon_write_pll_regs()
1286 rinfo->family == CHIP_FAMILY_RS400 || in radeon_write_pll_regs()
1287 rinfo->family == CHIP_FAMILY_RS480) { in radeon_write_pll_regs()
1337 struct radeonfb_info *rinfo = (struct radeonfb_info *)data; in radeon_lvds_timer_func() local
1341 OUTREG(LVDS_GEN_CNTL, rinfo->pending_lvds_gen_cntl); in radeon_lvds_timer_func()
1348 void radeon_write_mode (struct radeonfb_info *rinfo, struct radeon_regs *mode, in radeon_write_mode() argument
1352 int primary_mon = PRIMARY_MONITOR(rinfo); in radeon_write_mode()
1358 radeon_screen_blank(rinfo, FB_BLANK_NORMAL, 0); in radeon_write_mode()
1385 radeon_write_pll_regs(rinfo, mode); in radeon_write_mode()
1401 radeon_screen_blank(rinfo, FB_BLANK_UNBLANK, 0); in radeon_write_mode()
1412 static void radeon_calc_pll_regs(struct radeonfb_info *rinfo, struct radeon_regs *regs, in radeon_calc_pll_regs() argument
1447 while (rinfo->has_CRTC2) { in radeon_calc_pll_regs()
1458 if (rinfo->family == CHIP_FAMILY_R200 || IS_R300_VARIANT(rinfo)) { in radeon_calc_pll_regs()
1480 if (freq > rinfo->pll.ppll_max) in radeon_calc_pll_regs()
1481 freq = rinfo->pll.ppll_max; in radeon_calc_pll_regs()
1482 if (freq*12 < rinfo->pll.ppll_min) in radeon_calc_pll_regs()
1483 freq = rinfo->pll.ppll_min / 12; in radeon_calc_pll_regs()
1485 freq, rinfo->pll.ppll_min, rinfo->pll.ppll_max); in radeon_calc_pll_regs()
1494 if (pll_output_freq >= rinfo->pll.ppll_min && in radeon_calc_pll_regs()
1495 pll_output_freq <= rinfo->pll.ppll_max) in radeon_calc_pll_regs()
1506 rinfo->pll.ref_div, rinfo->pll.ref_clk, in radeon_calc_pll_regs()
1516 rinfo->pll.ref_div, rinfo->pll.ref_clk, in radeon_calc_pll_regs()
1519 fb_div = round_div(rinfo->pll.ref_div*pll_output_freq, in radeon_calc_pll_regs()
1520 rinfo->pll.ref_clk); in radeon_calc_pll_regs()
1521 regs->ppll_ref_div = rinfo->pll.ref_div; in radeon_calc_pll_regs()
1531 struct radeonfb_info *rinfo = info->par; in radeonfb_set_par() local
1543 int primary_mon = PRIMARY_MONITOR(rinfo); in radeonfb_set_par()
1570 if (rinfo->panel_info.xres < mode->xres) in radeonfb_set_par()
1571 mode->xres = rinfo->panel_info.xres; in radeonfb_set_par()
1572 if (rinfo->panel_info.yres < mode->yres) in radeonfb_set_par()
1573 mode->yres = rinfo->panel_info.yres; in radeonfb_set_par()
1575 hTotal = mode->xres + rinfo->panel_info.hblank; in radeonfb_set_par()
1576 hSyncStart = mode->xres + rinfo->panel_info.hOver_plus; in radeonfb_set_par()
1577 hSyncEnd = hSyncStart + rinfo->panel_info.hSync_width; in radeonfb_set_par()
1579 vTotal = mode->yres + rinfo->panel_info.vblank; in radeonfb_set_par()
1580 vSyncStart = mode->yres + rinfo->panel_info.vOver_plus; in radeonfb_set_par()
1581 vSyncEnd = vSyncStart + rinfo->panel_info.vSync_width; in radeonfb_set_par()
1583 h_sync_pol = !rinfo->panel_info.hAct_high; in radeonfb_set_par()
1584 v_sync_pol = !rinfo->panel_info.vAct_high; in radeonfb_set_par()
1586 pixClock = 100000000 / rinfo->panel_info.clock; in radeonfb_set_par()
1588 if (rinfo->panel_info.use_bios_dividers) { in radeonfb_set_par()
1590 newmode->ppll_div_3 = rinfo->panel_info.fbk_divider | in radeonfb_set_par()
1591 (rinfo->panel_info.post_divider << 16); in radeonfb_set_par()
1592 newmode->ppll_ref_div = rinfo->panel_info.ref_divider; in radeonfb_set_par()
1634 newmode->crtc_more_cntl = rinfo->init_state.crtc_more_cntl; in radeonfb_set_par()
1666 rinfo->pitch = ((mode->xres_virtual * ((mode->bits_per_pixel + 1) / 8) + 0x3f) in radeonfb_set_par()
1670 newmode->crtc_pitch = (rinfo->pitch << 3) / ((mode->bits_per_pixel + 1) / 8); in radeonfb_set_par()
1714 rinfo->bpp = mode->bits_per_pixel; in radeonfb_set_par()
1715 rinfo->depth = depth; in radeonfb_set_par()
1725 radeon_calc_pll_regs(rinfo, newmode, freq); in radeonfb_set_par()
1727 newmode->vclk_ecp_cntl = rinfo->init_state.vclk_ecp_cntl; in radeonfb_set_par()
1732 if (mode->xres > rinfo->panel_info.xres) in radeonfb_set_par()
1733 mode->xres = rinfo->panel_info.xres; in radeonfb_set_par()
1734 if (mode->yres > rinfo->panel_info.yres) in radeonfb_set_par()
1735 mode->yres = rinfo->panel_info.yres; in radeonfb_set_par()
1737 newmode->fp_horz_stretch = (((rinfo->panel_info.xres / 8) - 1) in radeonfb_set_par()
1739 newmode->fp_vert_stretch = ((rinfo->panel_info.yres - 1) in radeonfb_set_par()
1742 if (mode->xres != rinfo->panel_info.xres) { in radeonfb_set_par()
1744 rinfo->panel_info.xres); in radeonfb_set_par()
1755 if (mode->yres != rinfo->panel_info.yres) { in radeonfb_set_par()
1757 rinfo->panel_info.yres); in radeonfb_set_par()
1767 newmode->fp_gen_cntl = (rinfo->init_state.fp_gen_cntl & (u32) in radeonfb_set_par()
1781 if (IS_R300_VARIANT(rinfo) || in radeonfb_set_par()
1782 (rinfo->family == CHIP_FAMILY_R200)) { in radeonfb_set_par()
1791 newmode->lvds_gen_cntl = rinfo->init_state.lvds_gen_cntl; in radeonfb_set_par()
1792 newmode->lvds_pll_cntl = rinfo->init_state.lvds_pll_cntl; in radeonfb_set_par()
1793 newmode->tmds_crc = rinfo->init_state.tmds_crc; in radeonfb_set_par()
1794 newmode->tmds_transmitter_cntl = rinfo->init_state.tmds_transmitter_cntl; in radeonfb_set_par()
1804 if (IS_R300_VARIANT(rinfo) || in radeonfb_set_par()
1805 (rinfo->family == CHIP_FAMILY_R200) || !rinfo->has_CRTC2) in radeonfb_set_par()
1812 newmode->fp_crtc_h_total_disp = (((rinfo->panel_info.hblank / 8) & 0x3ff) | in radeonfb_set_par()
1814 newmode->fp_crtc_v_total_disp = (rinfo->panel_info.vblank & 0xffff) | in radeonfb_set_par()
1816 newmode->fp_h_sync_strt_wid = ((rinfo->panel_info.hOver_plus & 0x1fff) | in radeonfb_set_par()
1818 newmode->fp_v_sync_strt_wid = ((rinfo->panel_info.vOver_plus & 0xfff) | in radeonfb_set_par()
1823 if (!rinfo->asleep) { in radeonfb_set_par()
1824 memcpy(&rinfo->state, newmode, sizeof(*newmode)); in radeonfb_set_par()
1825 radeon_write_mode (rinfo, newmode, 0); in radeonfb_set_par()
1828 radeonfb_engine_init (rinfo); in radeonfb_set_par()
1832 info->fix.line_length = rinfo->pitch*64; in radeonfb_set_par()
1836 info->fix.visual = rinfo->depth == 8 ? FB_VISUAL_PSEUDOCOLOR in radeonfb_set_par()
1841 btext_update_display(rinfo->fb_base_phys, mode->xres, mode->yres, in radeonfb_set_par()
1842 rinfo->depth, info->fix.line_length); in radeonfb_set_par()
1866 static int radeon_set_fbinfo(struct radeonfb_info *rinfo) in radeon_set_fbinfo() argument
1868 struct fb_info *info = rinfo->info; in radeon_set_fbinfo()
1870 info->par = rinfo; in radeon_set_fbinfo()
1871 info->pseudo_palette = rinfo->pseudo_palette; in radeon_set_fbinfo()
1878 info->screen_base = rinfo->fb_base; in radeon_set_fbinfo()
1879 info->screen_size = rinfo->mapped_vram; in radeon_set_fbinfo()
1881 strlcpy(info->fix.id, rinfo->name, sizeof(info->fix.id)); in radeon_set_fbinfo()
1882 info->fix.smem_start = rinfo->fb_base_phys; in radeon_set_fbinfo()
1883 info->fix.smem_len = rinfo->video_ram; in radeon_set_fbinfo()
1890 info->fix.mmio_start = rinfo->mmio_base_phys; in radeon_set_fbinfo()
1915 static void fixup_memory_mappings(struct radeonfb_info *rinfo) in fixup_memory_mappings() argument
1923 if (rinfo->has_CRTC2) { in fixup_memory_mappings()
1941 rinfo->fb_local_base = aper_base; in fixup_memory_mappings()
1944 rinfo->fb_local_base = 0; in fixup_memory_mappings()
1965 if (rinfo->has_CRTC2) in fixup_memory_mappings()
1970 if (rinfo->has_CRTC2) in fixup_memory_mappings()
1979 if (rinfo->has_CRTC2) in fixup_memory_mappings()
1990 static void radeon_identify_vram(struct radeonfb_info *rinfo) in radeon_identify_vram() argument
1995 if ((rinfo->family == CHIP_FAMILY_RS100) || in radeon_identify_vram()
1996 (rinfo->family == CHIP_FAMILY_RS200) || in radeon_identify_vram()
1997 (rinfo->family == CHIP_FAMILY_RS300) || in radeon_identify_vram()
1998 (rinfo->family == CHIP_FAMILY_RC410) || in radeon_identify_vram()
1999 (rinfo->family == CHIP_FAMILY_RS400) || in radeon_identify_vram()
2000 (rinfo->family == CHIP_FAMILY_RS480) ) { in radeon_identify_vram()
2013 if ((rinfo->family == CHIP_FAMILY_RS100) || in radeon_identify_vram()
2014 (rinfo->family == CHIP_FAMILY_RS200)) { in radeon_identify_vram()
2026 rinfo->video_ram = tmp & CNFG_MEMSIZE_MASK; in radeon_identify_vram()
2032 if (rinfo->video_ram == 0) { in radeon_identify_vram()
2033 switch (rinfo->pdev->device) { in radeon_identify_vram()
2036 rinfo->video_ram = 8192 * 1024; in radeon_identify_vram()
2047 if (rinfo->is_IGP || (rinfo->family >= CHIP_FAMILY_R300) || in radeon_identify_vram()
2049 rinfo->vram_ddr = 1; in radeon_identify_vram()
2051 rinfo->vram_ddr = 0; in radeon_identify_vram()
2054 if (IS_R300_VARIANT(rinfo)) { in radeon_identify_vram()
2057 case 0: rinfo->vram_width = 64; break; in radeon_identify_vram()
2058 case 1: rinfo->vram_width = 128; break; in radeon_identify_vram()
2059 case 2: rinfo->vram_width = 256; break; in radeon_identify_vram()
2060 default: rinfo->vram_width = 128; break; in radeon_identify_vram()
2062 } else if ((rinfo->family == CHIP_FAMILY_RV100) || in radeon_identify_vram()
2063 (rinfo->family == CHIP_FAMILY_RS100) || in radeon_identify_vram()
2064 (rinfo->family == CHIP_FAMILY_RS200)){ in radeon_identify_vram()
2066 rinfo->vram_width = 32; in radeon_identify_vram()
2068 rinfo->vram_width = 64; in radeon_identify_vram()
2071 rinfo->vram_width = 128; in radeon_identify_vram()
2073 rinfo->vram_width = 64; in radeon_identify_vram()
2081 pci_name(rinfo->pdev), in radeon_identify_vram()
2082 rinfo->video_ram / 1024, in radeon_identify_vram()
2083 rinfo->vram_ddr ? "DDR" : "SDRAM", in radeon_identify_vram()
2084 rinfo->vram_width); in radeon_identify_vram()
2104 struct radeonfb_info *rinfo = info->par; in radeon_show_edid1() local
2106 return radeon_show_one_edid(buf, off, count, rinfo->mon1_EDID); in radeon_show_edid1()
2117 struct radeonfb_info *rinfo = info->par; in radeon_show_edid2() local
2119 return radeon_show_one_edid(buf, off, count, rinfo->mon2_EDID); in radeon_show_edid2()
2145 struct radeonfb_info *rinfo; in radeonfb_pci_register() local
2167 rinfo = info->par; in radeonfb_pci_register()
2168 rinfo->info = info; in radeonfb_pci_register()
2169 rinfo->pdev = pdev; in radeonfb_pci_register()
2171 spin_lock_init(&rinfo->reg_lock); in radeonfb_pci_register()
2172 init_timer(&rinfo->lvds_timer); in radeonfb_pci_register()
2173 rinfo->lvds_timer.function = radeon_lvds_timer_func; in radeonfb_pci_register()
2174 rinfo->lvds_timer.data = (unsigned long)rinfo; in radeonfb_pci_register()
2179 snprintf(rinfo->name, sizeof(rinfo->name), in radeonfb_pci_register()
2182 snprintf(rinfo->name, sizeof(rinfo->name), in radeonfb_pci_register()
2185 rinfo->family = ent->driver_data & CHIP_FAMILY_MASK; in radeonfb_pci_register()
2186 rinfo->chipset = pdev->device; in radeonfb_pci_register()
2187 rinfo->has_CRTC2 = (ent->driver_data & CHIP_HAS_CRTC2) != 0; in radeonfb_pci_register()
2188 rinfo->is_mobility = (ent->driver_data & CHIP_IS_MOBILITY) != 0; in radeonfb_pci_register()
2189 rinfo->is_IGP = (ent->driver_data & CHIP_IS_IGP) != 0; in radeonfb_pci_register()
2192 rinfo->fb_base_phys = pci_resource_start (pdev, 0); in radeonfb_pci_register()
2193 rinfo->mmio_base_phys = pci_resource_start (pdev, 2); in radeonfb_pci_register()
2199 pci_name(rinfo->pdev)); in radeonfb_pci_register()
2206 pci_name(rinfo->pdev)); in radeonfb_pci_register()
2211 rinfo->mmio_base = ioremap(rinfo->mmio_base_phys, RADEON_REGSIZE); in radeonfb_pci_register()
2212 if (!rinfo->mmio_base) { in radeonfb_pci_register()
2214 pci_name(rinfo->pdev)); in radeonfb_pci_register()
2219 rinfo->fb_local_base = INREG(MC_FB_LOCATION) << 16; in radeonfb_pci_register()
2224 rinfo->errata = 0; in radeonfb_pci_register()
2225 if (rinfo->family == CHIP_FAMILY_R300 && in radeonfb_pci_register()
2228 rinfo->errata |= CHIP_ERRATA_R300_CG; in radeonfb_pci_register()
2230 if (rinfo->family == CHIP_FAMILY_RV200 || in radeonfb_pci_register()
2231 rinfo->family == CHIP_FAMILY_RS200) in radeonfb_pci_register()
2232 rinfo->errata |= CHIP_ERRATA_PLL_DUMMYREADS; in radeonfb_pci_register()
2234 if (rinfo->family == CHIP_FAMILY_RV100 || in radeonfb_pci_register()
2235 rinfo->family == CHIP_FAMILY_RS100 || in radeonfb_pci_register()
2236 rinfo->family == CHIP_FAMILY_RS200) in radeonfb_pci_register()
2237 rinfo->errata |= CHIP_ERRATA_PLL_DELAY; in radeonfb_pci_register()
2243 rinfo->of_node = pci_device_to_OF_node(pdev); in radeonfb_pci_register()
2244 if (rinfo->of_node == NULL) in radeonfb_pci_register()
2246 pci_name(rinfo->pdev)); in radeonfb_pci_register()
2254 fixup_memory_mappings(rinfo); in radeonfb_pci_register()
2258 radeon_identify_vram(rinfo); in radeonfb_pci_register()
2260 rinfo->mapped_vram = min_t(unsigned long, MAX_MAPPED_VRAM, rinfo->video_ram); in radeonfb_pci_register()
2263 rinfo->fb_base = ioremap (rinfo->fb_base_phys, in radeonfb_pci_register()
2264 rinfo->mapped_vram); in radeonfb_pci_register()
2265 } while (rinfo->fb_base == NULL && in radeonfb_pci_register()
2266 ((rinfo->mapped_vram /= 2) >= MIN_MAPPED_VRAM)); in radeonfb_pci_register()
2268 if (rinfo->fb_base == NULL) { in radeonfb_pci_register()
2270 pci_name(rinfo->pdev)); in radeonfb_pci_register()
2275 pr_debug("radeonfb (%s): mapped %ldk videoram\n", pci_name(rinfo->pdev), in radeonfb_pci_register()
2276 rinfo->mapped_vram/1024); in radeonfb_pci_register()
2289 if (!rinfo->is_mobility) in radeonfb_pci_register()
2290 radeon_map_ROM(rinfo, pdev); in radeonfb_pci_register()
2299 if (rinfo->bios_seg == NULL) in radeonfb_pci_register()
2300 radeon_find_mem_vbios(rinfo); in radeonfb_pci_register()
2306 if (rinfo->bios_seg == NULL && rinfo->is_mobility) in radeonfb_pci_register()
2307 radeon_map_ROM(rinfo, pdev); in radeonfb_pci_register()
2310 radeon_get_pllinfo(rinfo); in radeonfb_pci_register()
2314 radeon_create_i2c_busses(rinfo); in radeonfb_pci_register()
2318 radeon_set_fbinfo (rinfo); in radeonfb_pci_register()
2321 radeon_probe_screens(rinfo, monitor_layout, ignore_edid); in radeonfb_pci_register()
2324 radeon_check_modes(rinfo, mode_option); in radeonfb_pci_register()
2327 if (rinfo->mon1_EDID) in radeonfb_pci_register()
2328 err |= sysfs_create_bin_file(&rinfo->pdev->dev.kobj, in radeonfb_pci_register()
2330 if (rinfo->mon2_EDID) in radeonfb_pci_register()
2331 err |= sysfs_create_bin_file(&rinfo->pdev->dev.kobj, in radeonfb_pci_register()
2340 radeon_save_state (rinfo, &rinfo->init_state); in radeonfb_pci_register()
2341 memcpy(&rinfo->state, &rinfo->init_state, sizeof(struct radeon_regs)); in radeonfb_pci_register()
2348 radeonfb_pm_init(rinfo, rinfo->is_mobility ? 1 : -1, ignore_devlist, force_sleep); in radeonfb_pci_register()
2350 radeonfb_pm_init(rinfo, default_dynclk, ignore_devlist, force_sleep); in radeonfb_pci_register()
2358 pci_name(rinfo->pdev)); in radeonfb_pci_register()
2363 rinfo->mtrr_hdl = nomtrr ? -1 : mtrr_add(rinfo->fb_base_phys, in radeonfb_pci_register()
2364 rinfo->video_ram, in radeonfb_pci_register()
2369 radeonfb_bl_init(rinfo); in radeonfb_pci_register()
2371 printk ("radeonfb (%s): %s\n", pci_name(rinfo->pdev), rinfo->name); in radeonfb_pci_register()
2373 if (rinfo->bios_seg) in radeonfb_pci_register()
2374 radeon_unmap_ROM(rinfo, pdev); in radeonfb_pci_register()
2379 iounmap(rinfo->fb_base); in radeonfb_pci_register()
2381 kfree(rinfo->mon1_EDID); in radeonfb_pci_register()
2382 kfree(rinfo->mon2_EDID); in radeonfb_pci_register()
2383 if (rinfo->mon1_modedb) in radeonfb_pci_register()
2384 fb_destroy_modedb(rinfo->mon1_modedb); in radeonfb_pci_register()
2387 radeon_delete_i2c_busses(rinfo); in radeonfb_pci_register()
2389 if (rinfo->bios_seg) in radeonfb_pci_register()
2390 radeon_unmap_ROM(rinfo, pdev); in radeonfb_pci_register()
2391 iounmap(rinfo->mmio_base); in radeonfb_pci_register()
2408 struct radeonfb_info *rinfo = info->par; in radeonfb_pci_unregister() local
2410 if (!rinfo) in radeonfb_pci_unregister()
2413 radeonfb_pm_exit(rinfo); in radeonfb_pci_unregister()
2415 if (rinfo->mon1_EDID) in radeonfb_pci_unregister()
2416 sysfs_remove_bin_file(&rinfo->pdev->dev.kobj, &edid1_attr); in radeonfb_pci_unregister()
2417 if (rinfo->mon2_EDID) in radeonfb_pci_unregister()
2418 sysfs_remove_bin_file(&rinfo->pdev->dev.kobj, &edid2_attr); in radeonfb_pci_unregister()
2427 radeon_write_mode (rinfo, &rinfo->init_state, 1); in radeonfb_pci_unregister()
2430 del_timer_sync(&rinfo->lvds_timer); in radeonfb_pci_unregister()
2433 if (rinfo->mtrr_hdl >= 0) in radeonfb_pci_unregister()
2434 mtrr_del(rinfo->mtrr_hdl, 0, 0); in radeonfb_pci_unregister()
2439 radeonfb_bl_exit(rinfo); in radeonfb_pci_unregister()
2441 iounmap(rinfo->mmio_base); in radeonfb_pci_unregister()
2442 iounmap(rinfo->fb_base); in radeonfb_pci_unregister()
2447 kfree(rinfo->mon1_EDID); in radeonfb_pci_unregister()
2448 kfree(rinfo->mon2_EDID); in radeonfb_pci_unregister()
2449 if (rinfo->mon1_modedb) in radeonfb_pci_unregister()
2450 fb_destroy_modedb(rinfo->mon1_modedb); in radeonfb_pci_unregister()
2452 radeon_delete_i2c_busses(rinfo); in radeonfb_pci_unregister()