static unsigned long phys_guiregbase[FB_MAX] __initdata = { 0, };
#endif
+#ifdef CONFIG_FB_ATY_GX
static char m64n_gx[] __initdata = "mach64GX (ATI888GX00)";
static char m64n_cx[] __initdata = "mach64CX (ATI888CX00)";
+#endif /* CONFIG_FB_ATY_GX */
+#ifdef CONFIG_FB_ATY_CT
static char m64n_ct[] __initdata = "mach64CT (ATI264CT)";
static char m64n_et[] __initdata = "mach64ET (ATI264ET)";
static char m64n_vta3[] __initdata = "mach64VTA3 (ATI264VT)";
static char m64n_ltp_p[] __initdata = "3D RAGE LT PRO (PCI)";
static char m64n_mob_p[] __initdata = "3D RAGE Mobility (PCI)";
static char m64n_mob_a[] __initdata = "3D RAGE Mobility (AGP)";
-
+#endif /* CONFIG_FB_ATY_CT */
static struct {
u16 pci_id, chip_type;
};
static char ram_dram[] __initdata = "DRAM";
+#ifdef CONFIG_FB_ATY_GX
static char ram_vram[] __initdata = "VRAM";
+#endif /* CONFIG_FB_ATY_GX */
+#ifdef CONFIG_FB_ATY_CT
static char ram_edo[] __initdata = "EDO";
static char ram_sdram[] __initdata = "SDRAM";
static char ram_sgram[] __initdata = "SGRAM";
static char ram_wram[] __initdata = "WRAM";
static char ram_off[] __initdata = "OFF";
+#endif /* CONFIG_FB_ATY_CT */
static char ram_resv[] __initdata = "RESV";
static u32 pseudo_palette[17];
* Map the video memory (physical address given) to somewhere in the
* kernel address space.
*/
- info->screen_base =
- ioremap(phys_vmembase[m64_num], phys_size[m64_num]);
+ info->screen_base = (unsigned long)ioremap(phys_vmembase[m64_num],
+ phys_size[m64_num]);
info->fix.smem_start = info->screen_base; /* Fake! */
- par->ati_regbase =
- ioremap(phys_guiregbase[m64_num], 0x10000) + 0xFC00ul;
+ par->ati_regbase = (unsigned long)ioremap(phys_guiregbase[m64_num],
+ 0x10000) + 0xFC00ul;
info->fix.mmio_start = par->ati_regbase; /* Fake! */
aty_st_le32(CLOCK_CNTL, 0x12345678, info);
aty_st_8(DAC_CNTL, i, par);
aty_st_8(DAC_MASK, 0xff, par);
scale = (M64_HAS(INTEGRATED) && par->crtc.bpp == 16) ? 3 : 0;
+#ifdef CONFIG_ATARI
+ out_8(&par->aty_cmap_regs->windex, regno << scale);
+ out_8(&par->aty_cmap_regs->lut, red);
+ out_8(&par->aty_cmap_regs->lut, green);
+ out_8(&par->aty_cmap_regs->lut, blue);
+#else
writeb(regno << scale, &par->aty_cmap_regs->windex);
writeb(red, &par->aty_cmap_regs->lut);
writeb(green, &par->aty_cmap_regs->lut);
writeb(blue, &par->aty_cmap_regs->lut);
+#endif
if (regno < 16)
switch (par->crtc.bpp) {
case 16:
cli();
/* tell clut which address to fill */
- writeb(regno, &valkyrie_cmap_regs->addr);
+ nubus_writeb(regno, &valkyrie_cmap_regs->addr);
nop();
/* send one color channel at a time */
- writeb(red, &valkyrie_cmap_regs->lut);
+ nubus_writeb(red, &valkyrie_cmap_regs->lut);
nop();
- writeb(green, &valkyrie_cmap_regs->lut);
+ nubus_writeb(green, &valkyrie_cmap_regs->lut);
nop();
- writeb(blue, &valkyrie_cmap_regs->lut);
+ nubus_writeb(blue, &valkyrie_cmap_regs->lut);
restore_flags(flags);
int i;
/* Stab in the dark trying to reset the CLUT pointer */
- writel(0, &dafb_cmap_regs->reset);
+ nubus_writel(0, &dafb_cmap_regs->reset);
nop();
/* Loop until we get to the register we want */
for (i = 0; i < regno; i++) {
- writeb(palette[i].red >> 8, &dafb_cmap_regs->lut);
+ nubus_writeb(palette[i].red >> 8, &dafb_cmap_regs->lut);
nop();
- writeb(palette[i].green >> 8, &dafb_cmap_regs->lut);
+ nubus_writeb(palette[i].green >> 8, &dafb_cmap_regs->lut);
nop();
- writeb(palette[i].blue >> 8, &dafb_cmap_regs->lut);
+ nubus_writeb(palette[i].blue >> 8, &dafb_cmap_regs->lut);
nop();
}
}
- writeb(red, &dafb_cmap_regs->lut);
+ nubus_writeb(red, &dafb_cmap_regs->lut);
nop();
- writeb(green, &dafb_cmap_regs->lut);
+ nubus_writeb(green, &dafb_cmap_regs->lut);
nop();
- writeb(blue, &dafb_cmap_regs->lut);
+ nubus_writeb(blue, &dafb_cmap_regs->lut);
restore_flags(flags);
In 2bpp, the regnos are 0x3f, 0x7f, 0xbf, 0xff */
_regno = (regno<<(8 - info->var.bits_per_pixel)) | (0xFF >> info->var.vits_per_pixel);
- writeb(_regno, &v8_brazil_cmap_regs->addr); nop();
+ nubus_writeb(_regno, &v8_brazil_cmap_regs->addr); nop();
/* send one color channel at a time */
- writeb(_red, &v8_brazil_cmap_regs->lut); nop();
- writeb(_green, &v8_brazil_cmap_regs->lut); nop();
- writeb(_blue, &v8_brazil_cmap_regs->lut);
+ nubus_writeb(_red, &v8_brazil_cmap_regs->lut); nop();
+ nubus_writeb(_green, &v8_brazil_cmap_regs->lut); nop();
+ nubus_writeb(_blue, &v8_brazil_cmap_regs->lut);
restore_flags(flags);
_regno = regno + (256-(1 << info->var.bits_per_pixel));
/* reset clut? (VideoToolbox sez "not necessary") */
- writeb(0xFF, &rbv_cmap_regs->cntl); nop();
+ nubus_writeb(0xFF, &rbv_cmap_regs->cntl); nop();
/* tell clut which address to use. */
- writeb(_regno, &rbv_cmap_regs->addr); nop();
+ nubus_writeb(_regno, &rbv_cmap_regs->addr); nop();
/* send one color channel at a time. */
- writeb(_red, &rbv_cmap_regs->lut); nop();
- writeb(_green, &rbv_cmap_regs->lut); nop();
- writeb(_blue, &rbv_cmap_regs->lut);
+ nubus_writeb(_red, &rbv_cmap_regs->lut); nop();
+ nubus_writeb(_green, &rbv_cmap_regs->lut); nop();
+ nubus_writeb(_blue, &rbv_cmap_regs->lut);
restore_flags(flags);
/* done. */
cli();
/* the nop's are there to order writes. */
- writeb(_regno, &cmap_regs->addr); nop();
- writeb(_red, &cmap_regs->lut); nop();
- writeb(_green, &cmap_regs->lut); nop();
- writeb(_blue, &cmap_regs->lut);
+ nubus_writeb(_regno, &cmap_regs->addr); nop();
+ nubus_writeb(_red, &cmap_regs->lut); nop();
+ nubus_writeb(_green, &cmap_regs->lut); nop();
+ nubus_writeb(_blue, &cmap_regs->lut);
restore_flags(flags);
return 0;
save_flags(flags);
cli();
- writeb(_regno, &cmap_regs->addr); nop();
- writeb(_red, &cmap_regs->lut); nop();
- writeb(_green, &cmap_regs->lut); nop();
- writeb(_blue, &cmap_regs->lut);
+ nubus_writeb(_regno, &cmap_regs->addr); nop();
+ nubus_writeb(_red, &cmap_regs->lut); nop();
+ nubus_writeb(_green, &cmap_regs->lut); nop();
+ nubus_writeb(_blue, &cmap_regs->lut);
restore_flags(flags);
return 0;
save_flags(flags);
cli();
- writeb(regno, &cmap_regs->addr); nop();
- writeb(_red, &cmap_regs->lut); nop();
- writeb(_green, &cmap_regs->lut); nop();
- writeb(_blue, &cmap_regs->lut);
+ nubus_writeb(regno, &cmap_regs->addr); nop();
+ nubus_writeb(_red, &cmap_regs->lut); nop();
+ nubus_writeb(_green, &cmap_regs->lut); nop();
+ nubus_writeb(_blue, &cmap_regs->lut);
restore_flags(flags);
return 0;
/*
* Set the register address
*/
- writeb(regno, &civic_cmap_regs->addr); nop();
+ nubus_writeb(regno, &civic_cmap_regs->addr); nop();
/*
* Wait for VBL interrupt here;
* Grab a status word and do some checking;
* Then finally write the clut!
*/
- clut_status = readb(&civic_cmap_regs->status2);
+ clut_status = nubus_readb(&civic_cmap_regs->status2);
if ((clut_status & 0x0008) == 0)
{
#if 0
if ((clut_status & 0x000D) != 0)
{
- writeb(0x00, &civic_cmap_regs->lut); nop();
- writeb(0x00, &civic_cmap_regs->lut); nop();
+ nubus_writeb(0x00, &civic_cmap_regs->lut); nop();
+ nubus_writeb(0x00, &civic_cmap_regs->lut); nop();
}
#endif
- writeb( red, &civic_cmap_regs->lut); nop();
- writeb(green, &civic_cmap_regs->lut); nop();
- writeb( blue, &civic_cmap_regs->lut); nop();
- writeb( 0x00, &civic_cmap_regs->lut); nop();
+ nubus_writeb( red, &civic_cmap_regs->lut); nop();
+ nubus_writeb(green, &civic_cmap_regs->lut); nop();
+ nubus_writeb( blue, &civic_cmap_regs->lut); nop();
+ nubus_writeb( 0x00, &civic_cmap_regs->lut); nop();
}
else
{
unsigned char junk;
- junk = readb(&civic_cmap_regs->lut); nop();
- junk = readb(&civic_cmap_regs->lut); nop();
- junk = readb(&civic_cmap_regs->lut); nop();
- junk = readb(&civic_cmap_regs->lut); nop();
+ junk = nubus_readb(&civic_cmap_regs->lut); nop();
+ junk = nubus_readb(&civic_cmap_regs->lut); nop();
+ junk = nubus_readb(&civic_cmap_regs->lut); nop();
+ junk = nubus_readb(&civic_cmap_regs->lut); nop();
if ((clut_status & 0x000D) != 0)
{
- writeb(0x00, &civic_cmap_regs->lut); nop();
- writeb(0x00, &civic_cmap_regs->lut); nop();
+ nubus_writeb(0x00, &civic_cmap_regs->lut); nop();
+ nubus_writeb(0x00, &civic_cmap_regs->lut); nop();
}
- writeb( red, &civic_cmap_regs->lut); nop();
- writeb(green, &civic_cmap_regs->lut); nop();
- writeb( blue, &civic_cmap_regs->lut); nop();
- writeb( junk, &civic_cmap_regs->lut); nop();
+ nubus_writeb( red, &civic_cmap_regs->lut); nop();
+ nubus_writeb(green, &civic_cmap_regs->lut); nop();
+ nubus_writeb( blue, &civic_cmap_regs->lut); nop();
+ nubus_writeb( junk, &civic_cmap_regs->lut); nop();
}
restore_flags(flags);
macfb_fix.line_length = mac_bi_data.videorow;
macfb_fix.smem_len = macfb_fix.line_length * macfb_defined.yres;
/* Note: physical address (since 2.1.127) */
- macfb_fix.smem_start = (void*) mac_bi_data.videoaddr;
+ macfb_fix.smem_start = mac_bi_data.videoaddr;
/* This is actually redundant with the initial mappings.
However, there are some non-obvious aspects to the way
those mappings are set up, so this is in fact the safest
Mac */
fb_info.screen_base = ioremap(mac_bi_data.videoaddr, macfb_fix.smem_len);
- printk("macfb: framebuffer at 0x%p, mapped to 0x%p, size %dk\n",
+ printk("macfb: framebuffer at 0x%08lx, mapped to 0x%p, size %dk\n",
macfb_fix.smem_start, fb_info.screen_base, macfb_fix.smem_len/1024);
printk("macfb: mode is %dx%dx%d, linelength=%d\n",
macfb_defined.xres, macfb_defined.yres/, macfb_defined.bits_per_pixel, macfb_fix.line_length);