Lines Matching +full:0 +full:xf0ffffff

118 } while (0)
125 } while (0)
144 0, /* EXT_VERT_STRETCH */
278 640, 480, 640, 480, 0, 0, 8, 0,
279 {0, 8, 0}, {0, 8, 0}, {0, 8, 0}, {0, 0, 0},
280 0, 0, -1, -1, 0, 39722, 48, 16, 33, 10, 96, 2,
281 0, FB_VMODE_NONINTERLACED
287 0, FB_VMODE_NONINTERLACED
326 module_param_named(vmode, default_vmode, int, 0);
328 module_param_named(cmode, default_cmode, int, 0);
333 static unsigned int mach64_count = 0;
334 static unsigned long phys_vmembase[FB_MAX] = { 0, };
335 static unsigned long phys_size[FB_MAX] = { 0, };
336 static unsigned long phys_guiregbase[FB_MAX] = { 0, };
378 { PCI_CHIP_MACH64GX, "ATI888GX00 (Mach64 GX)", 135, 50, 50, 0, ATI_CHIP_88800GX },
379 { PCI_CHIP_MACH64CX, "ATI888CX00 (Mach64 CX)", 135, 50, 50, 0, ATI_CHIP_88800CX },
383 { PCI_CHIP_MACH64CT, "ATI264CT (Mach64 CT)", 135, 60, 60, 0, ATI_CHIP_264CT },
384 { PCI_CHIP_MACH64ET, "ATI264ET (Mach64 ET)", 135, 60, 60, 0, ATI_CHIP_264ET },
387 { PCI_CHIP_MACH64LT, "ATI264LT (Mach64 LT)", 135, 63, 63, 0, ATI_CHIP_264LT },
439 (info->fix.smem_len == 0x800000 || in aty_fudge_framebuffer_len()
440 (par->bus_type == ISA && info->fix.smem_len == 0x400000))) in aty_fudge_framebuffer_len()
452 for (i = (int)ARRAY_SIZE(aty_chips) - 1; i >= 0; i--) in correct_chipset()
456 if (i < 0) in correct_chipset()
473 if (type != 0x00d7) in correct_chipset()
477 if (type != 0x0057) in correct_chipset()
483 switch (rev & 0x07) { in correct_chipset()
484 case 0x00: in correct_chipset()
485 switch (rev & 0xc0) { in correct_chipset()
486 case 0x00: in correct_chipset()
494 case 0x40: in correct_chipset()
504 case 0x01: in correct_chipset()
512 case 0x02: in correct_chipset()
523 switch (rev & 0x07) { in correct_chipset()
524 case 0x01: in correct_chipset()
532 case 0x02: in correct_chipset()
545 PRINTKI("%s [0x%04x rev 0x%02x]\n", name, type, rev); in correct_chipset()
546 return 0; in correct_chipset()
588 par->pll.ct.xres = 0; in atyfb_get_pixclock()
589 if (par->lcd_table != 0) { in atyfb_get_pixclock()
610 aty_st_le32(GP_IO, 0x31003100, par); /* drive outputs high */ in read_aty_sense()
612 aty_st_le32(GP_IO, 0, par); /* turn off outputs */ in read_aty_sense()
615 sense = ((i & 0x3000) >> 3) | (i & 0x100); in read_aty_sense()
618 aty_st_le32(GP_IO, 0x20000000, par); /* drive A low */ in read_aty_sense()
621 sense |= ((i & 0x1000) >> 7) | ((i & 0x100) >> 4); in read_aty_sense()
622 aty_st_le32(GP_IO, 0x20002000, par); /* drive A high again */ in read_aty_sense()
625 aty_st_le32(GP_IO, 0x10000000, par); /* drive B low */ in read_aty_sense()
628 sense |= ((i & 0x2000) >> 10) | ((i & 0x100) >> 6); in read_aty_sense()
629 aty_st_le32(GP_IO, 0x10001000, par); /* drive B high again */ in read_aty_sense()
632 aty_st_le32(GP_IO, 0x01000000, par); /* drive C low */ in read_aty_sense()
634 sense |= (aty_ld_le32(GP_IO, par) & 0x3000) >> 12; in read_aty_sense()
635 aty_st_le32(GP_IO, 0, par); /* turn off outputs */ in read_aty_sense()
650 if (par->lcd_table != 0) { in aty_get_crtc()
679 if (par->lcd_table != 0) { in aty_get_crtc()
697 if (par->lcd_table != 0) { in aty_set_crtc()
720 ((((crtc->h_tot_disp >> 16) & 0xff) + 1) << 3), in aty_set_crtc()
721 (((crtc->v_tot_disp >> 16) & 0x7ff) + 1), in aty_set_crtc()
722 (crtc->h_sync_strt_wid & 0x200000) ? 'N' : 'P', in aty_set_crtc()
723 (crtc->v_sync_strt_wid & 0x200000) ? 'N' : 'P', in aty_set_crtc()
742 #if 0 in aty_set_crtc()
749 if (par->lcd_table != 0) { in aty_set_crtc()
755 ((((crtc->shadow_h_tot_disp >> 16) & 0xff) + 1) << 3), in aty_set_crtc()
756 (((crtc->shadow_v_tot_disp >> 16) & 0x7ff) + 1), in aty_set_crtc()
757 (crtc->shadow_h_sync_strt_wid & 0x200000) ? 'N' : 'P', in aty_set_crtc()
758 (crtc->shadow_v_sync_strt_wid & 0x200000) ? 'N' : 'P'); in aty_set_crtc()
876 h_sync_pol = sync & FB_SYNC_HOR_HIGH_ACT ? 0 : 1; in aty_var_to_crtc()
877 v_sync_pol = sync & FB_SYNC_VERT_HIGH_ACT ? 0 : 1; in aty_var_to_crtc()
893 if (par->lcd_table != 0) { in aty_var_to_crtc()
905 crtc->lcd_config_panel = aty_ld_lcd(CNFG_PANEL, par) | 0x4000; in aty_var_to_crtc()
936 if ((par->lcd_table != 0) && (crtc->lcd_gen_cntl & LCD_ON)) { in aty_var_to_crtc()
938 /* bpp -> bytespp, 1,4 -> 0; 8 -> 2; 15,16 -> 1; 24 -> 6; 32 -> 5 in aty_var_to_crtc()
939 const u8 DFP_h_sync_dly_LT[] = { 0, 2, 1, 6, 5 }; in aty_var_to_crtc()
940 const u8 ADD_to_strt_wid_and_dly_LT_DAC[] = { 0, 5, 6, 9, 9, 12, 12 }; */ in aty_var_to_crtc()
978 FAIL_MAX("h_disp too large", h_disp, 0xff); in aty_var_to_crtc()
979 FAIL_MAX("h_sync_strt too large", h_sync_strt, 0x1ff); in aty_var_to_crtc()
980 /*FAIL_MAX("h_sync_wid too large", h_sync_wid, 0x1f);*/ in aty_var_to_crtc()
981 if (h_sync_wid > 0x1f) in aty_var_to_crtc()
982 h_sync_wid = 0x1f; in aty_var_to_crtc()
983 FAIL_MAX("h_total too large", h_total, 0x1ff); in aty_var_to_crtc()
998 FAIL_MAX("v_disp too large", v_disp, 0x7ff); in aty_var_to_crtc()
999 FAIL_MAX("v_sync_stsrt too large", v_sync_strt, 0x7ff); in aty_var_to_crtc()
1000 /*FAIL_MAX("v_sync_wid too large", v_sync_wid, 0x1f);*/ in aty_var_to_crtc()
1001 if (v_sync_wid > 0x1f) in aty_var_to_crtc()
1002 v_sync_wid = 0x1f; in aty_var_to_crtc()
1003 FAIL_MAX("v_total too large", v_total, 0x7ff); in aty_var_to_crtc()
1005 c_sync = sync & FB_SYNC_COMP_HIGH_ACT ? CRTC_CSYNC_EN : 0; in aty_var_to_crtc()
1016 crtc->vline_crnt_vline = 0; in aty_var_to_crtc()
1019 crtc->h_sync_strt_wid = (h_sync_strt & 0xff) | (h_sync_dly << 8) | in aty_var_to_crtc()
1020 ((h_sync_strt & 0x100) << 4) | (h_sync_wid << 16) | in aty_var_to_crtc()
1037 if (par->lcd_table != 0) { in aty_var_to_crtc()
1087 while (--Index >= 0) { in aty_var_to_crtc()
1097 if ((horz_stretch_loop >= 0) && !BestRemainder) { in aty_var_to_crtc()
1098 int horz_stretch_ratio = 0, Accumulator = 0; in aty_var_to_crtc()
1103 while (--Index >= 0) { in aty_var_to_crtc()
1104 if (Accumulator > 0) in aty_var_to_crtc()
1115 break; /* Out of the do { ... } while (0) */ in aty_var_to_crtc()
1121 } while (0); in aty_var_to_crtc()
1136 crtc->vert_stretching = 0; in aty_var_to_crtc()
1153 return 0; in aty_var_to_crtc()
1166 h_total = crtc->h_tot_disp & 0x1ff; in aty_crtc_to_var()
1167 h_disp = (crtc->h_tot_disp >> 16) & 0xff; in aty_crtc_to_var()
1168 h_sync_strt = (crtc->h_sync_strt_wid & 0xff) | ((crtc->h_sync_strt_wid >> 4) & 0x100); in aty_crtc_to_var()
1169 h_sync_dly = (crtc->h_sync_strt_wid >> 8) & 0x7; in aty_crtc_to_var()
1170 h_sync_wid = (crtc->h_sync_strt_wid >> 16) & 0x1f; in aty_crtc_to_var()
1171 h_sync_pol = (crtc->h_sync_strt_wid >> 21) & 0x1; in aty_crtc_to_var()
1172 v_total = crtc->v_tot_disp & 0x7ff; in aty_crtc_to_var()
1173 v_disp = (crtc->v_tot_disp >> 16) & 0x7ff; in aty_crtc_to_var()
1174 v_sync_strt = crtc->v_sync_strt_wid & 0x7ff; in aty_crtc_to_var()
1175 v_sync_wid = (crtc->v_sync_strt_wid >> 16) & 0x1f; in aty_crtc_to_var()
1176 v_sync_pol = (crtc->v_sync_strt_wid >> 21) & 0x1; in aty_crtc_to_var()
1177 c_sync = crtc->gen_cntl & CRTC_CSYNC_EN ? 1 : 0; in aty_crtc_to_var()
1191 sync = (h_sync_pol ? 0 : FB_SYNC_HOR_HIGH_ACT) | in aty_crtc_to_var()
1192 (v_sync_pol ? 0 : FB_SYNC_VERT_HIGH_ACT) | in aty_crtc_to_var()
1193 (c_sync ? FB_SYNC_COMP_HIGH_ACT : 0); in aty_crtc_to_var()
1198 var->red.offset = 0; in aty_crtc_to_var()
1200 var->green.offset = 0; in aty_crtc_to_var()
1202 var->blue.offset = 0; in aty_crtc_to_var()
1204 var->transp.offset = 0; in aty_crtc_to_var()
1205 var->transp.length = 0; in aty_crtc_to_var()
1213 var->blue.offset = 0; in aty_crtc_to_var()
1215 var->transp.offset = 0; in aty_crtc_to_var()
1216 var->transp.length = 0; in aty_crtc_to_var()
1224 var->blue.offset = 0; in aty_crtc_to_var()
1226 var->transp.offset = 0; in aty_crtc_to_var()
1227 var->transp.length = 0; in aty_crtc_to_var()
1235 var->blue.offset = 0; in aty_crtc_to_var()
1237 var->transp.offset = 0; in aty_crtc_to_var()
1238 var->transp.length = 0; in aty_crtc_to_var()
1246 var->blue.offset = 0; in aty_crtc_to_var()
1287 return 0; in aty_crtc_to_var()
1303 return 0; in atyfb_set_par()
1311 if (pixclock == 0) { in atyfb_set_par()
1343 pixclock_in_ps = 0; in atyfb_set_par()
1345 if (0 == pixclock_in_ps) { in atyfb_set_par()
1346 PRINTKE("ALERT ops->pll_to_var get 0\n"); in atyfb_set_par()
1350 memset(&debug, 0, sizeof(debug)); in atyfb_set_par()
1396 tmp = aty_ld_le32(MEM_CNTL, par) & 0xf0ffffff; in atyfb_set_par()
1399 tmp |= 0x02000000; in atyfb_set_par()
1402 tmp |= 0x03000000; in atyfb_set_par()
1405 tmp |= 0x06000000; in atyfb_set_par()
1410 tmp = aty_ld_le32(MEM_CNTL, par) & 0xf00fffff; in atyfb_set_par()
1416 tmp |= 0x00000000; in atyfb_set_par()
1419 tmp |= 0x04000000; in atyfb_set_par()
1422 tmp |= 0x08000000; in atyfb_set_par()
1426 aty_st_le32(DAC_CNTL, 0x87010184, par); in atyfb_set_par()
1427 aty_st_le32(BUS_CNTL, 0x680000f9, par); in atyfb_set_par()
1429 aty_st_le32(DAC_CNTL, 0x87010184, par); in atyfb_set_par()
1430 aty_st_le32(BUS_CNTL, 0x680000f9, par); in atyfb_set_par()
1432 aty_st_le32(DAC_CNTL, 0x80010102, par); in atyfb_set_par()
1433 aty_st_le32(BUS_CNTL, 0x7b33a040 | (par->aux_start ? BUS_APER_REG_DIS : 0), par); in atyfb_set_par()
1436 aty_st_le32(DAC_CNTL, 0x86010102, par); in atyfb_set_par()
1437 aty_st_le32(BUS_CNTL, 0x7b23a040 | (par->aux_start ? BUS_APER_REG_DIS : 0), par); in atyfb_set_par()
1438 aty_st_le32(EXT_MEM_CNTL, aty_ld_le32(EXT_MEM_CNTL, par) | 0x5000001, par); in atyfb_set_par()
1442 aty_st_8(DAC_MASK, 0xff, par); in atyfb_set_par()
1456 (((par->crtc.h_tot_disp >> 16) & 0xff) + 1) * 8, in atyfb_set_par()
1457 ((par->crtc.v_tot_disp >> 16) & 0x7ff) + 1, in atyfb_set_par()
1467 base = 0x2000; in atyfb_set_par()
1469 for (i = 0; i < 256; i = i+4) { in atyfb_set_par()
1470 if (i % 16 == 0) { in atyfb_set_par()
1472 printk("debug atyfb: 0x%04X: ", base + i); in atyfb_set_par()
1480 base = 0x00; in atyfb_set_par()
1482 for (i = 0; i < 64; i++) { in atyfb_set_par()
1483 if (i % 16 == 0) { in atyfb_set_par()
1485 printk("debug atyfb: 0x%02X: ", base + i); in atyfb_set_par()
1487 if (i % 4 == 0) in atyfb_set_par()
1495 if (par->lcd_table != 0) { in atyfb_set_par()
1497 base = 0x00; in atyfb_set_par()
1500 for (i = 0; i <= POWER_MANAGEMENT; i++) { in atyfb_set_par()
1503 pr_cont("\ndebug atyfb: 0x%04X: ", in atyfb_set_par()
1508 for (i = 0; i < 64; i++) { in atyfb_set_par()
1509 if (i % 4 == 0) in atyfb_set_par()
1510 pr_cont("\ndebug atyfb: 0x%02X: ", in atyfb_set_par()
1520 return 0; in atyfb_set_par()
1539 if (pixclock == 0) { in atyfb_check_var()
1553 info->var.accel_flags = 0; in atyfb_check_var()
1557 return 0; in atyfb_check_var()
1584 par->mmaped = 0; in atyfb_open()
1587 return 0; in atyfb_open()
1593 int handled = 0; in aty_irq()
1606 par->vblank.pan_display = 0; in aty_irq()
1622 if (!test_and_set_bit(0, &par->irq_flags)) { in aty_enable_irq()
1624 clear_bit(0, &par->irq_flags); in aty_enable_irq()
1647 return 0; in aty_enable_irq()
1654 if (test_and_clear_bit(0, &par->irq_flags)) { in aty_disable_irq()
1656 par->vblank.pan_display = 0; in aty_disable_irq()
1667 return 0; in aty_disable_irq()
1678 return 0; in atyfb_release()
1685 return 0; in atyfb_release()
1690 par->mmaped = 0; in atyfb_release()
1718 return 0; in atyfb_release()
1733 xres = (((par->crtc.h_tot_disp >> 16) & 0xff) + 1) * 8; in atyfb_pan_display()
1734 yres = ((par->crtc.v_tot_disp >> 16) & 0x7ff) + 1; in atyfb_pan_display()
1745 return 0; in atyfb_pan_display()
1748 if ((var->activate & FB_ACTIVATE_VBL) && !aty_enable_irq(par, 0)) { in atyfb_pan_display()
1751 par->vblank.pan_display = 0; in atyfb_pan_display()
1755 return 0; in atyfb_pan_display()
1765 case 0: in aty_waitforvblank()
1772 ret = aty_enable_irq(par, 0); in aty_waitforvblank()
1779 if (ret < 0) in aty_waitforvblank()
1781 if (ret == 0) { in aty_waitforvblank()
1786 return 0; in aty_waitforvblank()
1791 #define ATYIO_CLKR 0x41545900 /* ATY\00 */
1792 #define ATYIO_CLKW 0x41545901 /* ATY\01 */
1803 u32 dsp_xclks_per_row; /* 0-16383 */
1804 u32 dsp_loop_latency; /* 0-15 */
1805 u32 dsp_precision; /* 0-7 */
1806 u32 dsp_on; /* 0-2047 */
1807 u32 dsp_off; /* 0-2047 */
1810 #define ATYIO_FEATR 0x41545902 /* ATY\02 */
1811 #define ATYIO_FEATW 0x41545903 /* ATY\03 */
1849 struct atyclk clk = { 0 }; in atyfb_ioctl()
1861 clk.dsp_xclks_per_row = dsp_config & 0x3fff; in atyfb_ioctl()
1862 clk.dsp_loop_latency = (dsp_config >> 16) & 0xf; in atyfb_ioctl()
1864 clk.dsp_off = dsp_on_off & 0x7ff; in atyfb_ioctl()
1865 clk.dsp_on = (dsp_on_off >> 16) & 0x7ff; in atyfb_ioctl()
1887 pll->ct.dsp_config = (clk.dsp_xclks_per_row & 0x3fff) | in atyfb_ioctl()
1888 ((clk.dsp_loop_latency & 0xf) << 16) | in atyfb_ioctl()
1890 pll->ct.dsp_on_off = (clk.dsp_off & 0x7ff) | in atyfb_ioctl()
1891 ((clk.dsp_on & 0x7ff) << 16); in atyfb_ioctl()
1909 return 0; in atyfb_ioctl()
1918 return 0; in atyfb_sync()
1925 unsigned int size, page, map_size = 0; in atyfb_mmap()
1926 unsigned long map_offset = 0; in atyfb_mmap()
1933 if (vma->vm_pgoff > (~0UL >> PAGE_SHIFT)) in atyfb_mmap()
1941 if (((vma->vm_pgoff == 0) && (size == info->fix.smem_len)) || in atyfb_mmap()
1943 off += 0x8000000000000000UL; in atyfb_mmap()
1948 for (page = 0; page < size;) { in atyfb_mmap()
1949 map_size = 0; in atyfb_mmap()
1950 for (i = 0; par->mmap_map[i].size; i++) { in atyfb_mmap()
1986 return 0; in atyfb_mmap()
2024 if ((--timeout) == 0) in aty_power_mgmt()
2043 if ((--timeout) == 0) in aty_power_mgmt()
2045 } while ((pm & PWR_MGT_STATUS_MASK) != 0); in aty_power_mgmt()
2049 return timeout ? 0 : -EIO; in aty_power_mgmt()
2060 return 0; in atyfb_pci_suspend_late()
2085 par->asleep = 0; in atyfb_pci_suspend_late()
2086 par->lock_blank = 0; in atyfb_pci_suspend_late()
2088 fb_set_suspend(info, 0); in atyfb_pci_suspend_late()
2098 return 0; in atyfb_pci_suspend_late()
2137 return 0; in atyfb_pci_resume()
2150 aty_power_mgmt(0, par); in atyfb_pci_resume()
2155 par->asleep = 0; in atyfb_pci_resume()
2161 fb_set_suspend(info, 0); in atyfb_pci_resume()
2164 par->lock_blank = 0; in atyfb_pci_resume()
2171 return 0; in atyfb_pci_resume()
2189 #define MAX_LEVEL 0xFF
2200 if (atylevel < 0) in aty_bl_get_level_brightness()
2201 atylevel = 0; in aty_bl_get_level_brightness()
2216 level = 0; in aty_bl_update_status()
2221 if (level > 0) { in aty_bl_update_status()
2226 reg |= (aty_bl_get_level_brightness(par, 0) << BIAS_MOD_LEVEL_SHIFT); in aty_bl_update_status()
2230 return 0; in aty_bl_update_status()
2251 memset(&props, 0, sizeof(struct backlight_properties)); in aty_bl_init()
2263 fb_bl_default_curve(info, 0, in aty_bl_init()
2264 0x3F * FB_BACKLIGHT_MAX / MAX_LEVEL, in aty_bl_init()
2265 0xFF * FB_BACKLIGHT_MAX / MAX_LEVEL); in aty_bl_init()
2309 for (i = 0; i < size; i++) { in aty_calc_mem_refresh()
2328 if (par->lcd_table != 0 && (aty_ld_lcd(LCD_GEN_CNTL, par) & LCD_ON)) { in atyfb_get_timings_from_lcd()
2342 ret = 0; in atyfb_get_timings_from_lcd()
2353 int gtb_memsize, has_var = 0; in aty_init()
2365 par->bus_type = (stat0 >> 0) & 0x07; in aty_init()
2366 par->ram_type = (stat0 >> 3) & 0x07; in aty_init()
2369 dac_type = (aty_ld_le32(DAC_CNTL, par) >> 16) & 0x07; in aty_init()
2372 dac_type = (stat0 >> 9) & 0x07; in aty_init()
2373 if (dac_type == 0x07) in aty_init()
2376 dac_subtype = (aty_ld_8(SCRATCH_REG1 + 1, par) & 0xF0) | dac_type; in aty_init()
2423 par->ram_type = (aty_ld_le32(CNFG_STAT0, par) & 0x07); in aty_init()
2471 if (diff1 < 0) in aty_init()
2473 if (diff2 < 0) in aty_init()
2491 /* 0xF used instead of MEM_SIZE_ALIAS */ in aty_init()
2492 switch (par->mem_cntl & 0xF) { in aty_init()
2494 info->fix.smem_len = 0x80000; in aty_init()
2497 info->fix.smem_len = 0x100000; in aty_init()
2500 info->fix.smem_len = 0x200000; in aty_init()
2503 info->fix.smem_len = 0x400000; in aty_init()
2506 info->fix.smem_len = 0x600000; in aty_init()
2509 info->fix.smem_len = 0x800000; in aty_init()
2512 info->fix.smem_len = 0x80000; in aty_init()
2516 info->fix.smem_len = 0x80000; in aty_init()
2519 info->fix.smem_len = 0x100000; in aty_init()
2522 info->fix.smem_len = 0x200000; in aty_init()
2525 info->fix.smem_len = 0x400000; in aty_init()
2528 info->fix.smem_len = 0x600000; in aty_init()
2531 info->fix.smem_len = 0x800000; in aty_init()
2534 info->fix.smem_len = 0x80000; in aty_init()
2538 if (aty_ld_le32(CNFG_STAT1, par) & 0x40000000) in aty_init()
2539 info->fix.smem_len += 0x400000; in aty_init()
2544 par->mem_cntl &= ~(gtb_memsize ? 0xF : MEM_SIZE_ALIAS); in aty_init()
2545 if (info->fix.smem_len <= 0x80000) in aty_init()
2547 else if (info->fix.smem_len <= 0x100000) in aty_init()
2549 else if (info->fix.smem_len <= 0x200000) in aty_init()
2551 else if (info->fix.smem_len <= 0x400000) in aty_init()
2553 else if (info->fix.smem_len <= 0x600000) in aty_init()
2561 * Reg Block 0 (CT-compatible block) is at mmio_start in aty_init()
2562 * Reg Block 1 (multimedia extensions) is at mmio_start - 0x400 in aty_init()
2565 info->fix.mmio_len = 0x400; in aty_init()
2568 info->fix.mmio_len = 0x400; in aty_init()
2571 info->fix.mmio_start -= 0x400; in aty_init()
2572 info->fix.mmio_len = 0x800; in aty_init()
2575 info->fix.mmio_start -= 0x400; in aty_init()
2576 info->fix.mmio_len = 0x800; in aty_init()
2581 info->fix.smem_len == 0x80000 ? 512 : (info->fix.smem_len>>20), in aty_init()
2582 info->fix.smem_len == 0x80000 ? 'K' : 'M', ramname, xtal, in aty_init()
2604 for (i = 0; i < 40; i++) in aty_init()
2658 memset(&var, 0, sizeof(var)); in aty_init()
2685 if (default_vmode <= 0 || default_vmode > VMODE_MAX) in aty_init()
2702 if (mode && fb_find_mode(&var, info, mode, NULL, 0, &defmode, 8)) in aty_init()
2739 ret = fb_alloc_cmap(&info->cmap, 256, 0); in aty_init()
2740 if (ret < 0) in aty_init()
2744 if (ret < 0) { in aty_init()
2753 return 0; in aty_init()
2774 vmembase = simple_strtoul(p, NULL, 0); in store_video_par()
2777 size = simple_strtoul(p, NULL, 0); in store_video_par()
2780 guiregbase = simple_strtoul(p, NULL, 0); in store_video_par()
2787 return 0; in store_video_par()
2790 phys_vmembase[m64_num] = 0; in store_video_par()
2805 return 0; in atyfb_blank()
2817 gen_cntl &= ~0x400004c; in atyfb_blank()
2822 gen_cntl |= 0x4000040; in atyfb_blank()
2825 gen_cntl |= 0x4000048; in atyfb_blank()
2828 gen_cntl |= 0x4000044; in atyfb_blank()
2831 gen_cntl |= 0x400004c; in atyfb_blank()
2845 return 0; in atyfb_blank()
2860 * entries in the var structure). Return != 0 for invalid regno.
2876 return 0; in atyfb_setcolreg()
2909 i = aty_ld_8(DAC_CNTL, par) & 0xfc; in atyfb_setcolreg()
2911 i |= 0x2; /* DAC_CNTL | 0x2 turns off the extra brightness for gt */ in atyfb_setcolreg()
2913 aty_st_8(DAC_MASK, 0xff, par); in atyfb_setcolreg()
2926 for (i = 0; i < 8; i++) in atyfb_setcolreg()
2932 return 0; in atyfb_setcolreg()
2950 par->ati_regbase = (void *)addr + 0x7ffc00UL; in atyfb_setup_sparc()
2951 info->fix.mmio_start = addr + 0x7ffc00UL; in atyfb_setup_sparc()
2956 info->screen_base = (char *) (addr + 0x800000UL); in atyfb_setup_sparc()
2957 info->fix.smem_start = addr + 0x800000UL; in atyfb_setup_sparc()
2963 for (i = 0; i < 6 && pdev->resource[i].start; i++) in atyfb_setup_sparc()
2973 for (i = 0, j = 2; i < 6 && pdev->resource[i].start; i++) { in atyfb_setup_sparc()
2997 par->mmap_map[j].voff = (pbase + 0x10000000) & PAGE_MASK; in atyfb_setup_sparc()
3010 par->mmap_map[j].voff = (pbase + 0x800000) & PAGE_MASK; in atyfb_setup_sparc()
3011 par->mmap_map[j].poff = (base + 0x800000) & PAGE_MASK; in atyfb_setup_sparc()
3012 par->mmap_map[j].size = 0x800000; in atyfb_setup_sparc()
3015 size -= 0x800000; in atyfb_setup_sparc()
3038 switch (mem & 0x0f) { in atyfb_setup_sparc()
3040 mem = (mem & ~(0x0f)) | 2; in atyfb_setup_sparc()
3043 mem = (mem & ~(0x0f)) | 3; in atyfb_setup_sparc()
3046 mem = (mem & ~(0x0f)) | 4; in atyfb_setup_sparc()
3049 mem = (mem & ~(0x0f)) | 5; in atyfb_setup_sparc()
3055 mem &= ~(0x00700000); in atyfb_setup_sparc()
3057 mem &= ~(0xcf80e000); /* Turn off all undocumented bits. */ in atyfb_setup_sparc()
3073 var->xoffset = var->yoffset = 0; in atyfb_setup_sparc()
3089 for (i = 0; i < 16; i++) in atyfb_setup_sparc()
3132 return 0; in atyfb_setup_sparc()
3152 /* Address of driver information table is at offset 0x78. */ in aty_init_lcd()
3153 driv_inf_tab = bios_base + *((u16 *)(bios_base+0x78)); in aty_init_lcd()
3157 if ((sig == 0x54504c24) || /* Rage LT pro */ in aty_init_lcd()
3158 (sig == 0x544d5224) || /* Rage mobility */ in aty_init_lcd()
3159 (sig == 0x54435824) || /* Rage XC */ in aty_init_lcd()
3160 (sig == 0x544c5824)) { /* Rage XL */ in aty_init_lcd()
3163 par->lcd_table = 0; in aty_init_lcd()
3164 if (lcd_ofs != 0) in aty_init_lcd()
3168 if (par->lcd_table != 0) { in aty_init_lcd()
3189 model[23] = 0; in aty_init_lcd()
3204 case 0: in aty_init_lcd()
3223 if (tech == 0 || tech == 2) { in aty_init_lcd()
3225 case 0: in aty_init_lcd()
3239 case 0: in aty_init_lcd()
3265 refresh_rates_buf[0] = 0; in aty_init_lcd()
3268 f = 0; in aty_init_lcd()
3269 for (i = 0; i < 16; i++) { in aty_init_lcd()
3271 if (f == 0) { in aty_init_lcd()
3283 default_refresh_rate = (*(u8 *)(par->lcd_table+61) & 0xf0) >> 4; in aty_init_lcd()
3300 while (*lcdmodeptr != 0) { in aty_init_lcd()
3305 mwidth = *((u16 *)(modeptr+0)); in aty_init_lcd()
3339 if (*lcdmodeptr == 0) { in aty_init_lcd()
3375 rom_addr = 0xc0000 + ((aty_ld_le32(SCRATCH_REG1, par) & 0x7f) << 11); in init_from_bios()
3376 bios_base = (unsigned long)ioremap(rom_addr, 0x10000); in init_from_bios()
3378 /* The BIOS starts with 0xaa55. */ in init_from_bios()
3379 if (*((u16 *)bios_base) == 0xaa55) { in init_from_bios()
3389 rom_table_offset = (u16)(bios_ptr[0x48] | (bios_ptr[0x49] << 8)); in init_from_bios()
3412 ret = 0; in init_from_bios()
3430 int ret = 0; in atyfb_setup_generic()
3432 raddr = addr + 0x7ff000UL; in atyfb_setup_generic()
3447 par->ati_regbase = ioremap_uc(info->fix.mmio_start, 0x1000); in atyfb_setup_generic()
3451 info->fix.mmio_start += par->aux_start ? 0x400 : 0xc00; in atyfb_setup_generic()
3452 par->ati_regbase += par->aux_start ? 0x400 : 0xc00; in atyfb_setup_generic()
3465 addr += 0x800000; in atyfb_setup_generic()
3482 info->fix.smem_len = 0x800000; in atyfb_setup_generic()
3502 par->clk_wr_offset = (inb(R_GENMO) & 0x0CU) >> 2; in atyfb_setup_generic()
3504 par->clk_wr_offset = aty_ld_8(CLOCK_CNTL, par) & 0x03U; in atyfb_setup_generic()
3509 return 0; in atyfb_setup_generic()
3539 rp = &pdev->resource[0]; in atyfb_pci_probe()
3587 par->mmap_map[0].voff = 0x8000000000000000UL; in atyfb_pci_probe()
3588 par->mmap_map[0].poff = (unsigned long) info->screen_base & PAGE_MASK; in atyfb_pci_probe()
3589 par->mmap_map[0].size = info->fix.smem_len; in atyfb_pci_probe()
3590 par->mmap_map[0].prot_mask = _PAGE_CACHE; in atyfb_pci_probe()
3591 par->mmap_map[0].prot_flag = _PAGE_E; in atyfb_pci_probe()
3592 par->mmap_map[1].voff = par->mmap_map[0].voff + info->fix.smem_len; in atyfb_pci_probe()
3604 return 0; in atyfb_pci_probe()
3635 int num_found = 0; in atyfb_atari_probe()
3637 for (m64_num = 0; m64_num < mach64_count; m64_num++) { in atyfb_atari_probe()
3662 par->ati_regbase = ioremap(phys_guiregbase[m64_num], 0x10000) + in atyfb_atari_probe()
3663 0xFC00ul; in atyfb_atari_probe()
3666 aty_st_le32(CLOCK_CNTL, 0x12345678, par); in atyfb_atari_probe()
3669 switch (clock_r & 0x003F) { in atyfb_atari_probe()
3670 case 0x12: in atyfb_atari_probe()
3673 case 0x34: in atyfb_atari_probe()
3676 case 0x16: in atyfb_atari_probe()
3679 case 0x38: in atyfb_atari_probe()
3680 par->clk_wr_offset = 0; /* Panther 1 ISA Adapter (Gerald) */ in atyfb_atari_probe()
3686 case 0x00d7: in atyfb_atari_probe()
3689 case 0x0057: in atyfb_atari_probe()
3705 return num_found ? 0 : -ENXIO; in atyfb_atari_probe()
3835 return 0; in atyfb_setup()
3843 vram = simple_strtoul(this_opt + 5, NULL, 0); in atyfb_setup()
3845 pll = simple_strtoul(this_opt + 4, NULL, 0); in atyfb_setup()
3847 mclk = simple_strtoul(this_opt + 5, NULL, 0); in atyfb_setup()
3849 xclk = simple_strtoul(this_opt+5, NULL, 0); in atyfb_setup()
3851 comp_sync = simple_strtoul(this_opt+10, NULL, 0); in atyfb_setup()
3853 backlight = simple_strtoul(this_opt+10, NULL, 0); in atyfb_setup()
3857 simple_strtoul(this_opt + 6, NULL, 0); in atyfb_setup()
3858 if (vmode > 0 && vmode <= VMODE_MAX) in atyfb_setup()
3862 simple_strtoul(this_opt + 6, NULL, 0); in atyfb_setup()
3864 case 0: in atyfb_setup()
3898 return 0; in atyfb_setup()
3978 return 0; in atyfb_init()
3996 module_param(noaccel, bool, 0);
3998 module_param(vram, int, 0);
4000 module_param(pll, int, 0);
4002 module_param(mclk, int, 0);
4004 module_param(xclk, int, 0);
4006 module_param(comp_sync, int, 0);
4007 MODULE_PARM_DESC(comp_sync, "Set composite sync signal to low (0) or high (1)");
4008 module_param(mode, charp, 0);
4010 module_param(nomtrr, bool, 0);