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