2.3.24 patch and kernel for ppc
Ani Joshi
ajoshi at shell.unixbox.com
Wed Nov 3 03:06:11 EST 1999
attached you will find a patch against a vanilla (linus) 2.3.24
kernel, which should fix some of the outstanding problems with 2.3 on ppc.
You can also find the patch along with a 2.3.24 kernel at:
ftp://devel.linuxppc.org/users/ajoshi/
here's a rundown of whats in the patch:
o arch/ppc/defconfig:
somebody changed the default config to Gemini, so instead
of making it the normal pmac/chrp/prep which isn't all
that great, i made it simple pmac, since some of the
prep issues haven't been sorted out yet
o arch/ppc/kernel/pmac_setup.c
level2 cache flag for when printk'ing "Level 2 cache
enabled", which is printed where the machine has
l2 cache or not
o arch/ppc/kernel/setup.c
added the get_pvr() value for PowerPC 7400 (G4) which
*still* isn't in there (!)
o arch/ppc/kernel/pmac_support.c
some #ifdef's for CONFIG_ADB_PMU
o arch/ppc/kernel/ppc_ksyms.c
more #ifdefs for CONFIG_ADB_PMU
o arch/ppc/kernel/time.c
regressed Cort's timer_interrupt() changes mostly
becaue of paranoia, acutally i was really tired of
it panic'ing i regressed this, but the real bug was
this next one
o arch/ppc/mm/init.c
in freeing bootmem bitmap from available mem, size
should be boot_mapsize
o drivers/block/ide-pmac.c
many #ifdef CONFIG_PMAC_PBOOK's for all the
media_bay calls
o drivers/block/swim3.c
see ide-pmac.c
o drivers/net/pcnet32.c
kept it from probing VLB on ppc, which causes a panic
o drivers/video/aty128fb.c
#ifndef's around the non-OF and non-PPC functions
o drivers/video/chipsfb.c
fixed missing declarations for the vc_mode and fb_info
for xpmac compatibility
o fs/hfs/file.c
removed update_vm_cache() which is *still* in there (!)
and yes, doing simply this *does* work on my system,
no HFS problems at all so far
o include/linux/fb.h
added definition for FB_ACCEL_ATI_RAGE128
o drivers/block/swim3.c
see ide-pmac.c
o drivers/net/pcnet32.c
kept it from probing VLB on ppc, which causes a panic
o drivers/video/aty128fb.c
#ifndef's around the non-OF and non-PPC functions
o drivers/video/chipsfb.c
fixed missing declarations for the vc_mode and fb_info
for xpmac compatibility
o fs/hfs/file.c
removed update_vm_cache() which is *still* in there (!)
and yes, doing simply this *does* work on my system,
no HFS problems at all so far
o include/linux/fb.h
added definition for FB_ACCEL_ATI_RAGE128
also some stuff which i keep forgetting about and didn't feel like fixing
but should be addressed:
o drivers/macintosh/mediabay.c
this driver is only built if CONFIG_PMAC_PBOOK, yet
there are (redundant) #ifdef CONFIG_PMAC_PBOOK's in there
o arch/ppc/kernel/Makefile
why are the chrp, pmac, and gemini objects all used?
shouldn't it *only* be pmacs in there and then put 2
more ifeq($(CONFIG_CHRP),y)'s for the chrp and
gemini objs?
if anyone feels brave and wants to play with 2.3, please try the patch or
kernel and lemme know, thanks.
ani
-------------- next part --------------
diff -uNr linux.orig/arch/ppc/defconfig linux/arch/ppc/defconfig
--- linux.orig/arch/ppc/defconfig Mon Nov 1 19:48:23 1999
+++ linux/arch/ppc/defconfig Mon Nov 1 20:53:41 1999
@@ -21,14 +21,14 @@
# CONFIG_BSEIP is not set
# CONFIG_MBX is not set
# CONFIG_WINCEPT is not set
-# CONFIG_PMAC is not set
+CONFIG_PMAC=y
# CONFIG_PREP is not set
# CONFIG_CHRP is not set
# CONFIG_ALL_PPC is not set
-CONFIG_GEMINI=y
+# CONFIG_GEMINI is not set
# CONFIG_APUS is not set
# CONFIG_SMP is not set
-CONFIG_MACH_SPECIFIC=y
+# CONFIG_MACH_SPECIFIC is not set
CONFIG_6xx=y
#
@@ -36,7 +36,7 @@
#
CONFIG_EXPERIMENTAL=y
CONFIG_MODULES=y
-CONFIG_MODVERSIONS=y
+# CONFIG_MODVERSIONS is not set
CONFIG_KMOD=y
CONFIG_PCI=y
CONFIG_NET=y
@@ -47,15 +47,19 @@
CONFIG_KERNEL_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_PARPORT is not set
-# CONFIG_VGA_CONSOLE is not set
-# CONFIG_FB is not set
-# CONFIG_PMAC_PBOOK is not set
-# CONFIG_MAC_FLOPPY is not set
-# CONFIG_MAC_SERIAL is not set
-# CONFIG_ADB is not set
-# CONFIG_PROC_DEVICETREE is not set
+CONFIG_VGA_CONSOLE=y
+CONFIG_FB=y
+CONFIG_PMAC_PBOOK=y
+CONFIG_MAC_FLOPPY=y
+CONFIG_MAC_SERIAL=y
+CONFIG_ADB=y
+CONFIG_ADB_CUDA=y
+CONFIG_ADB_MACIO=y
+CONFIG_ADB_PMU=y
+CONFIG_ADB_KEYBOARD=y
+CONFIG_PROC_DEVICETREE=y
# CONFIG_TOTALMP is not set
-# CONFIG_BOOTX_TEXT is not set
+CONFIG_BOOTX_TEXT=y
# CONFIG_MOTOROLA_HOTSWAP is not set
#
@@ -67,7 +71,17 @@
# Block devices
#
# CONFIG_BLK_DEV_FD is not set
-# CONFIG_BLK_DEV_IDE is not set
+CONFIG_BLK_DEV_IDE=y
+# CONFIG_BLK_DEV_HD_IDE is not set
+CONFIG_BLK_DEV_IDEDISK=y
+# CONFIG_DEDISK_MULTI_MODE is not set
+CONFIG_BLK_DEV_IDECD=y
+CONFIG_BLK_DEV_SL82C105=y
+CONFIG_BLK_DEV_IDE_PMAC=y
+CONFIG_BLK_DEV_IDEDMA_PMAC=y
+CONFIG_IDEDMA_PMAC_AUTO=y
+CONFIG_BLK_DEV_LOOP=y
+
#
# Please see Documentation/ide.txt for help/info on IDE drives
@@ -147,7 +161,7 @@
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
-# CONFIG_CHR_DEV_ST is not set
+CONFIG_CHR_DEV_ST=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SR_VENDOR=y
# CONFIG_CHR_DEV_SG is not set
@@ -167,7 +181,11 @@
# CONFIG_SCSI_AHA152X is not set
# CONFIG_SCSI_AHA1542 is not set
# CONFIG_SCSI_AHA1740 is not set
-# CONFIG_SCSI_AIC7XXX is not set
+CONFIG_SCSI_AIC7XXX=y
+# CONFIG_AIC7XXX_TCQ_ON_BY_DEFAULT is not set
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=8
+CONFIG_AIC7XXX_PROC_STATS=y
+CONFIG_AIC7XXX_RESET_DELAY=15
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_IN2000 is not set
@@ -210,8 +228,9 @@
# CONFIG_SCSI_U14_34F is not set
# CONFIG_SCSI_ULTRASTOR is not set
# CONFIG_SCSI_DEBUG is not set
-# CONFIG_SCSI_MESH is not set
-# CONFIG_SCSI_MAC53C94 is not set
+CONFIG_SCSI_MESH=y
+CONFIG_SCSI_MESG_SYNC_RATE=5
+CONFIG_SCSI_MAC53C94=y
#
# Network device support
@@ -231,8 +250,8 @@
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
-# CONFIG_MACE is not set
-# CONFIG_BMAC is not set
+CONFIG_MACE=y
+CONFIG_BMAC=y
CONFIG_NCR885E=y
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_LANCE is not set
@@ -242,12 +261,14 @@
# CONFIG_SIS900 is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_ACENIC is not set
-# CONFIG_NET_ISA is not set
+CONFIG_NET_ISA=y
+CONFIG_PCNET32=y
+CONFIG_DE4X5=y
# CONFIG_NET_EISA is not set
# CONFIG_NET_POCKET is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
-# CONFIG_PPP is not set
+CONFIG_PPP=y
# CONFIG_SLIP is not set
# CONFIG_NET_RADIO is not set
@@ -285,6 +306,23 @@
#
# Console drivers
#
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FB_OF=y
+CONFIG_FB_CONTROL=y
+CONFIG_FB_PLATINUM=y
+CONFIG_FB_VALKYRIE=y
+CONFIG_FB_IMSTT=y
+CONFIG_FB_CT65550=y
+CONFIG_FB_MATROX=y
+CONFIG_FB_ATY=y
+CONFIG_FBCON_ADVANCED=y
+CONFIG_FBCON_CFB8=y
+CONFIG_FBCON_CFB16=y
+CONFIG_FBCON_CFB24=y
+CONFIG_FBCON_CFB32=y
+CONFIG_FBCON_FONTS=y
+CONFIG_FONT_8x16=y
+CONFIG_FONT_SUN8x16=y
#
# Character devices
@@ -311,7 +349,7 @@
# CONFIG_PC110_PAD is not set
# CONFIG_QIC02_TAPE is not set
# CONFIG_WATCHDOG is not set
-# CONFIG_NVRAM is not set
+CONFIG_NVRAM=y
# CONFIG_RTC is not set
#
@@ -350,7 +388,7 @@
# Filesystems
#
# CONFIG_QUOTA is not set
-# CONFIG_AUTOFS_FS is not set
+CONFIG_AUTOFS_FS=y
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
@@ -398,6 +436,8 @@
# Sound
#
# CONFIG_SOUND is not set
+CONFIG_SOUND=y
+CONFIG_DMASOUND=y
#
# Kernel hacking
diff -uNr linux.orig/arch/ppc/kernel/pmac_setup.c linux/arch/ppc/kernel/pmac_setup.c
--- linux.orig/arch/ppc/kernel/pmac_setup.c Sun Oct 24 16:43:51 1999
+++ linux/arch/ppc/kernel/pmac_setup.c Mon Nov 1 20:12:44 1999
@@ -96,6 +96,7 @@
int ppc_override_l2cr = 0;
int ppc_override_l2cr_value;
+int has_l2cache = 0;
extern char saved_command_line[];
@@ -146,6 +147,7 @@
get_property(np, "i-cache-size", NULL);
unsigned int *dc = (unsigned int *)
get_property(np, "d-cache-size", NULL);
+ has_l2cache = 1;
len += sprintf(buffer+len, "L2 cache\t:");
if (get_property(np, "cache-unified", NULL) != 0 && dc) {
len += sprintf(buffer+len, " %dK unified", *dc / 1024);
@@ -359,7 +361,8 @@
sysctrl_regs[4] |= 0x04000020;
else
sysctrl_regs[4] |= 0x04000000;
- printk(KERN_INFO "Level 2 cache enabled\n");
+ if(has_l2cache)
+ printk(KERN_INFO "Level 2 cache enabled\n");
}
}
}
diff -uNr linux.orig/arch/ppc/kernel/pmac_support.c linux/arch/ppc/kernel/pmac_support.c
--- linux.orig/arch/ppc/kernel/pmac_support.c Wed Oct 20 01:52:54 1999
+++ linux/arch/ppc/kernel/pmac_support.c Mon Nov 1 21:05:12 1999
@@ -61,11 +61,13 @@
switch (nvram_naddrs) {
case -1:
+#ifdef CONFIG_ADB_PMU
if (pmu_request(&req, NULL, 3, PMU_READ_NVRAM,
(addr >> 8) & 0xff, addr & 0xff))
break;
while (!req.complete)
pmu_poll();
+#endif
return req.reply[1];
case 1:
return nvram_data[(addr & (NVRAM_SIZE - 1)) * nvram_mult];
@@ -83,11 +85,13 @@
switch (nvram_naddrs) {
case -1:
+#ifdef CONFIG_ADB_PMU
if (pmu_request(&req, NULL, 4, PMU_WRITE_NVRAM,
(addr >> 8) & 0xff, addr & 0xff, val))
break;
while (!req.complete)
pmu_poll();
+#endif
break;
case 1:
nvram_data[(addr & (NVRAM_SIZE - 1)) * nvram_mult] = val;
diff -uNr linux.orig/arch/ppc/kernel/ppc_ksyms.c linux/arch/ppc/kernel/ppc_ksyms.c
--- linux.orig/arch/ppc/kernel/ppc_ksyms.c Sun Oct 24 16:43:51 1999
+++ linux/arch/ppc/kernel/ppc_ksyms.c Mon Nov 1 20:55:34 1999
@@ -209,8 +209,10 @@
EXPORT_SYMBOL(adb_register);
EXPORT_SYMBOL(cuda_request);
EXPORT_SYMBOL(cuda_poll);
+#ifdef CONFIG_ADB_PMU
EXPORT_SYMBOL(pmu_request);
EXPORT_SYMBOL(pmu_poll);
+#endif /* CONFIG_ADB_PMU */
#endif /* CONFIG_ADB */
#ifdef CONFIG_PMAC_PBOOK
EXPORT_SYMBOL(pmu_register_sleep_notifier);
diff -uNr linux.orig/arch/ppc/kernel/setup.c linux/arch/ppc/kernel/setup.c
--- linux.orig/arch/ppc/kernel/setup.c Mon Nov 1 19:48:23 1999
+++ linux/arch/ppc/kernel/setup.c Mon Nov 1 20:11:51 1999
@@ -245,6 +245,9 @@
case 10:
len += sprintf(len+buffer, "604ev5 (MachV)\n");
break;
+ case 12:
+ len += sprintf(len+buffer, "7400 (G4)\n");
+ break;
case 50:
len += sprintf(len+buffer, "821\n");
case 80:
diff -uNr linux.orig/arch/ppc/kernel/time.c linux/arch/ppc/kernel/time.c
--- linux.orig/arch/ppc/kernel/time.c Mon Nov 1 19:48:23 1999
+++ linux/arch/ppc/kernel/time.c Mon Nov 1 23:24:33 1999
@@ -95,42 +95,25 @@
}
#endif /* __SMP__ */
- dval = get_dec();
- /*
- * Wait for the decrementer to change, then jump
- * in and add decrementer_count to its value
- * (quickly, before it changes again!)
- */
- while ((d = get_dec()) == dval)
- ;
- /*
- * Don't play catchup between the call to time_init()
- * and sti() in init/main.c.
- *
- * This also means if we're delayed for > HZ
- * we lose those ticks. If we're delayed for > HZ
- * then we have something wrong anyway, though.
- *
- * -- Cort
- */
- if ( d < (-1*decrementer_count) )
- d = 0;
- set_dec(d + decrementer_count);
- if ( !smp_processor_id() )
- {
- do_timer(regs);
+ while ((dval = get_dec()) < 0) {
+ while ((d = get_dec()) == dval)
+ ;
+ set_dec(d + decrementer_count);
+ if (!smp_processor_id() )
/*
* update the rtc when needed
*/
- if ( (time_status & STA_UNSYNC) &&
- ((xtime.tv_sec > last_rtc_update + 60) ||
- (xtime.tv_sec < last_rtc_update)) )
{
- if (ppc_md.set_rtc_time(xtime.tv_sec) == 0)
- last_rtc_update = xtime.tv_sec;
- else
- /* do it again in 60 s */
- last_rtc_update = xtime.tv_sec;
+ do_timer(regs);
+ if ( (time_status & STA_UNSYNC) &&
+ ((xtime.tv_sec > last_rtc_update + 60) ||
+ (xtime.tv_sec < last_rtc_update)) )
+ {
+ if (ppc_md.set_rtc_time(xtime.tv_sec) == 0)
+ last_rtc_update = xtime.tv_sec;
+ else
+ last_rtc_update = xtime.tv_sec;
+ }
}
}
#ifdef __SMP__
diff -uNr linux.orig/arch/ppc/mm/init.c linux/arch/ppc/mm/init.c
--- linux.orig/arch/ppc/mm/init.c Mon Nov 1 19:48:24 1999
+++ linux/arch/ppc/mm/init.c Mon Nov 1 23:27:22 1999
@@ -205,7 +205,7 @@
if (!mem_init_done)
pte = (pte_t *) MMU_get_page();
else if ((pte = (pte_t *) __get_free_page(GFP_KERNEL)))
- clear_page(pte);
+ clear_page(pte);
if (pte) {
pmd_val(*pmd) = (unsigned long)pte;
return pte + offset;
@@ -1155,7 +1155,7 @@
__pa(end_of_DRAM) >> PAGE_SHIFT);
/* remove the bootmem bitmap from the available memory */
- remove_mem_piece(&phys_avail, start, boot_mapsize, 1);
+ remove_mem_piece(&phys_avail, start, start + boot_mapsize, 1);
/* add everything in phys_avail into the bootmem map */
for (i = 0; i < phys_avail.n_regions; ++i)
free_bootmem(phys_avail.regions[i].address,
diff -uNr linux.orig/drivers/block/ide-pmac.c linux/drivers/block/ide-pmac.c
--- linux.orig/drivers/block/ide-pmac.c Sun Oct 24 16:43:52 1999
+++ linux/drivers/block/ide-pmac.c Mon Nov 1 20:03:07 1999
@@ -85,6 +85,7 @@
return;
}
+#ifdef CONFIG_PMAC_PBOOK
/* we check only for -EINVAL meaning that we have found a matching
bay but with the wrong device type */
i = check_media_bay_by_base(data_port, MB_CD);
@@ -92,6 +93,7 @@
hw->io_ports[IDE_DATA_OFFSET] = 0;
return;
}
+#endif
for (i = 0; i < 8; ++i)
hw->io_ports[i] = data_port + i * 0x10;
@@ -200,10 +202,12 @@
pmac_ide_irq[i] = irq;
pmac_ide_node[i] = np;
+#ifdef CONFIG_PMAC_PBOOK
if (np->parent && np->parent->name
&& strcasecmp(np->parent->name, "media-bay") == 0) {
media_bay_set_ide_infos(np->parent,base,irq,i);
} else
+#endif
feature_set(np, FEATURE_IDE_enable);
hwif = &ide_hwifs[i];
diff -uNr linux.orig/drivers/block/swim3.c linux/drivers/block/swim3.c
--- linux.orig/drivers/block/swim3.c Wed May 12 02:36:27 1999
+++ linux/drivers/block/swim3.c Mon Nov 1 20:00:50 1999
@@ -295,9 +295,11 @@
int i;
for(i=0;i<floppy_count;i++)
{
+#ifdef CONFIG_PMAC_PBOOK
if (floppy_states[i].media_bay &&
check_media_bay(floppy_states[i].media_bay, MB_FD))
continue;
+#endif
start_request(&floppy_states[i]);
}
sti();
@@ -827,8 +829,10 @@
fs = &floppy_states[devnum];
+#ifdef CONFIG_PMAC_PBOOK
if (fs->media_bay && check_media_bay(fs->media_bay, MB_FD))
return -ENXIO;
+#endif
switch (cmd) {
case FDEJECT:
@@ -860,8 +864,10 @@
sw = fs->swim3;
err = 0;
if (fs->ref_count == 0) {
+#ifdef CONFIG_PMAC_PBOOK
if (fs->media_bay && check_media_bay(fs->media_bay, MB_FD))
return -ENXIO;
+#endif
out_8(&sw->mode, 0x95);
out_8(&sw->control_bic, 0xff);
out_8(&sw->setup, S_IBM_DRIVE | S_FCLK_DIV2);
@@ -976,8 +982,10 @@
fs = &floppy_states[devnum];
+#ifdef CONFIG_PMAC_PBOOK
if (fs->media_bay && check_media_bay(fs->media_bay, MB_FD))
return -ENXIO;
+#endif
sw = fs->swim3;
grab_drive(fs, revalidating, 0);
diff -uNr linux.orig/drivers/net/pcnet32.c linux/drivers/net/pcnet32.c
--- linux.orig/drivers/net/pcnet32.c Wed Oct 20 01:52:17 1999
+++ linux/drivers/net/pcnet32.c Mon Nov 1 20:04:14 1999
@@ -488,7 +488,8 @@
}
} else
#endif /* defined(CONFIG_PCI) */
-
+
+#ifndef __powerpc__
/* now look for PCnet32 VLB cards */
for (port = pcnet32_portlist; *port; port++) {
unsigned long ioaddr = *port;
@@ -501,6 +502,7 @@
cards_found++;
}
}
+#endif
return cards_found ? 0: ENODEV;
}
diff -uNr linux.orig/drivers/video/aty128fb.c linux/drivers/video/aty128fb.c
--- linux.orig/drivers/video/aty128fb.c Sun Oct 24 16:43:59 1999
+++ linux/drivers/video/aty128fb.c Mon Nov 1 20:10:41 1999
@@ -257,10 +257,14 @@
static int aty128_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
u_int transp, struct fb_info *info);
static void do_install_cmap(int con, struct fb_info *info);
+#ifndef CONFIG_FB_OF
static void aty128pci_probe(void);
+#endif
+#ifndef CONFIG_PPC
static int aty128find_ROM(struct fb_info_aty128 *info);
-static void aty128_timings(struct fb_info_aty128 *info);
static void aty128_get_pllinfo(struct fb_info_aty128 *info);
+#endif
+static void aty128_timings(struct fb_info_aty128 *info);
static void aty128_reset_engine(const struct fb_info_aty128 *info);
static void aty128_flush_pixel_cache(const struct fb_info_aty128 *info);
static void wait_for_fifo(u16 entries, const struct fb_info_aty128 *info);
@@ -1595,6 +1599,7 @@
}
+#ifndef CONFIG_FB_OF
void
aty128pci_probe(void)
{
@@ -1681,8 +1686,9 @@
}
}
}
+#endif /* ! CONFIG_FB_OF */
-
+#ifndef CONFIG_PPC
static int
aty128find_ROM(struct fb_info_aty128 *info)
{
@@ -1799,6 +1805,7 @@
DBG("L aty128get_pllinfo");
return;
}
+#endif /* ! CONFIG_PPC */
#ifdef CONFIG_FB_OF
diff -uNr linux.orig/drivers/video/chipsfb.c linux/drivers/video/chipsfb.c
--- linux.orig/drivers/video/chipsfb.c Sun Oct 24 16:43:59 1999
+++ linux/drivers/video/chipsfb.c Mon Nov 1 22:03:24 1999
@@ -109,6 +109,11 @@
};
#endif
+#if defined(CONFIG_FB_COMPAT_XPMAC)
+extern struct vc_mode display_info;
+extern struct fb_info *console_fb_info;
+#endif
+
/*
* Exported functions
*/
@@ -417,7 +422,7 @@
disp->visual = fix->visual;
disp->var = *var;
-#if (defined(CONFIG_PMAC_PBOOK) || defined(CONFIG_FB_COMPAT_XPMAC))
+#if defined(CONFIG_FB_COMPAT_XPMAC)
display_info.depth = bpp;
display_info.pitch = fix->line_length;
#endif
@@ -634,7 +639,7 @@
chips_hw_init(p);
-#ifdef CONFIG_FB_COMPAT_XPMAC
+#if defined(CONFIG_FB_COMPAT_XPMAC)
if (!console_fb_info) {
display_info.height = p->var.yres;
display_info.width = p->var.xres;
diff -uNr linux.orig/fs/hfs/file.c linux/fs/hfs/file.c
--- linux.orig/fs/hfs/file.c Sun Jun 27 13:10:41 1999
+++ linux/fs/hfs/file.c Mon Nov 1 20:11:09 1999
@@ -498,7 +498,6 @@
written = -EFAULT;
break;
}
- update_vm_cache(inode,pos,p,c);
pos += c;
written += c;
buf += c;
diff -uNr linux.orig/include/linux/fb.h linux/include/linux/fb.h
--- linux.orig/include/linux/fb.h Wed Oct 20 01:52:53 1999
+++ linux/include/linux/fb.h Mon Nov 1 21:33:47 1999
@@ -83,6 +83,7 @@
#define FB_ACCEL_NV5 29 /* nVidia RIVA TNT2 */
#define FB_ACCEL_CT_6555x 30 /* C&T 6555x */
#define FB_ACCEL_3DFX_BANSHEE 31 /* 3Dfx Banshee */
+#define FB_ACCEL_ATI_RAGE128 32 /* ATI Rage128 */
struct fb_fix_screeninfo {
char id[16]; /* identification string eg "TT Builtin" */
More information about the Linuxppc-dev
mailing list