[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

2.3.99pre7-8 experiences



Greetings,

An on-and-off effort since yesterday finally got 2.3.99pre7-8 to boot
this morning, the attached patch was necessary.

Why am I building 2.3?  The main reason is that it will finally support
my Cirrus-Logic-based MacPicasso 540 video card.  So let's start with
that.

   * clgenfb doesn't start on PPC, it oopses in vga16_init (after
     guessing the board has 32 MB RAM when it has 4).  I've sent the
     ksymoops output to linux-fbdev, so the author is aware of the
     problem.  Built as a module, insmod hangs the system with the same
     message, minus the oops.  (For some reason I can't figure out, gcc
     gave me a parse error on the LINUX_VERSION_CODE #ifs, so I had to
     make them #if 0 and #if 1.)
   * atyfb still doesn't support Xfb with accels properly, same problems
     as 2.2.  A new one: xscreensaver reports: "X SERVER BUG: 1152x864
     viewport at 289,-291 is impossible"
   * The ide-pmac.c, mac_keyb.c, pmac_setup.c and ppc_ksyms.c patch
     hunks correct minor oversights, configuration permutations not
     anticipated by the authors.
   * include/asm-ppc/string.h needs those function prototypes, since
     include/linux/string.h doesn't provide them when __HAVE_ARCH_* is
     defined.  Contrary to my post yesterday, those __HAVE_ARCH_* flags
     are necessary to prevent lib/string.c from conflicting with
     arch/ppc/lib/string.S.
   * The dmasound_awacs hunk is from Ani Joshi; built as a module it
     can't install without nvram, so drivers/sound/Config.in should make
     Mac DMA sound depend on CONFIG_NVRAM.  (I don't know if that will
     make sound work, it's building with nvram at home now, I'll test it
     tonight.)
   * SCSI generic on MESH seems to be broken in the same way as it is in
     2.2.  (Is there an egcs .deb somewhere, or gcc272, or will I have
     to wait for the next compiler release in woody?  It's annoying to
     have SCSI generic broken on Debian PPC because of a compiler
     problem.)
   * The big showstopper for me is that PPP doesn't work.  Chat dials
     just fine, but as soon as it sends the password to my ISP, the
     connection goes down.  In /var/log/messages, chat indicates it's
     sent the password, pppd prints "Serial connection established." and
     then exits with SIGHUP.
   * A GNOME session from gdm kills X when I move the mouse during
     ssh-password-gnome, but this may be a sound issue, I'll test with
     working dmasound later (hopefully).

So, that's what I know...  I'll report again tonight after testing sound
with nvram built in.

-Adam P.

--- drivers/ide/ide-pmac.c.bak	Tue May  9 12:11:32 2000
+++ drivers/ide/ide-pmac.c	Tue May  9 12:12:57 2000
@@ -402,11 +402,11 @@
 				feature_clear(np, FEATURE_IDE0_reset);
 				break;
 			    case 1:
-				feature_set(np, FEATURE_Mediabay_IDE_reset);
+				feature_set(np, FEATURE_IDE1_reset);
 				mdelay(10);
- 				feature_set(np, FEATURE_Mediabay_IDE_enable);
+ 				feature_set(np, FEATURE_IDE1_enable);
 				mdelay(10);
-				feature_clear(np, FEATURE_Mediabay_IDE_reset);
+				feature_clear(np, FEATURE_IDE1_reset);
 				break;
 			    case 2:
 			    	/* This one exists only for KL, I don't know about any
--- drivers/sound/dmasound/dmasound_awacs.c.bak	Tue May  9 19:04:34 2000
+++ drivers/sound/dmasound/dmasound_awacs.c	Tue May  9 19:11:06 2000
@@ -17,6 +17,7 @@
 #include <linux/adb.h>
 #include <linux/nvram.h>
 #include <linux/vt_kern.h>
+#include <linux/pmu.h>
 #include <linux/cuda.h>
 
 #include <asm/uaccess.h>
@@ -24,6 +25,8 @@
 #include <asm/machdep.h>
 #include <asm/io.h>
 #include <asm/dbdma.h>
+#include <asm/feature.h>
+#include <asm/irq.h>
 
 #include "awacs_defs.h"
 #include "dmasound.h"
@@ -1586,9 +1589,8 @@
 		case SOUND_MIXER_READ_DEVMASK:
 			data = SOUND_MASK_VOLUME | SOUND_MASK_SPEAKER
 				| SOUND_MASK_LINE | SOUND_MASK_MIC
-				| SOUND_MASK_CD | SOUND_MASK_RECLEV
-				| SOUND_MASK_ALTPCM
-				| SOUND_MASK_MONITOR;
+				| SOUND_MASK_CD | SOUND_MASK_ALTPCM
+				| SOUND_MASK_RECLEV;
 			return IOCTL_OUT(arg, data);
 		case SOUND_MIXER_READ_RECMASK:
 			data = SOUND_MASK_LINE | SOUND_MASK_MIC
--- drivers/macintosh/mac_keyb.c.bak	Tue May  9 20:33:07 2000
+++ drivers/macintosh/mac_keyb.c	Tue May  9 20:39:37 2000
@@ -586,7 +586,9 @@
 #endif /* CONFIG_ADBMOUSE */
 
 /* XXX Needs to get rid of this, see comments in pmu.c */
+#ifdef CONFIG_ADB_PMU
 extern int backlight_level;
+#endif
 
 static void
 buttons_input(unsigned char *data, int nb, struct pt_regs *regs, int autopoll)
@@ -627,7 +629,7 @@
 		/* brightness decrease */
 		case 0xa:
 			/* down event */
-#ifdef CONFIG_PPC
+#ifdef CONFIG_ADB_PMU
 			if ( data[1] == (data[1]&0xf) ) {
 				if (backlight_level > 2)
 					pmu_set_brightness(backlight_level-2);
@@ -639,7 +641,7 @@
 		/* brightness increase */
 		case 0x9:
 			/* down event */
-#ifdef CONFIG_PPC
+#ifdef CONFIG_ADB_PMU
 			if ( data[1] == (data[1]&0xf) ) {
 				if (backlight_level < 0x1e)
 					pmu_set_brightness(backlight_level+2);
--- arch/ppc/kernel/pmac_setup.c.bak	Tue May  9 21:50:32 2000
+++ arch/ppc/kernel/pmac_setup.c	Tue May  9 21:52:25 2000
@@ -506,7 +506,9 @@
 	struct adb_request req;
 #endif /* CONFIG_ADB_CUDA */
 
+#ifdef CONFIG_NVRAM
 	pmac_nvram_update();
+#endif
 	
 	switch (sys_ctrler) {
 #ifdef CONFIG_ADB_CUDA
@@ -533,7 +535,9 @@
 	struct adb_request req;
 #endif /* CONFIG_ADB_CUDA */
 
+#ifdef CONFIG_NVRAM
 	pmac_nvram_update();
+#endif
 	
 	switch (sys_ctrler) {
 #ifdef CONFIG_ADB_CUDA
--- drivers/video/clgenfb.c.bak	Tue May  9 22:24:03 2000
+++ drivers/video/clgenfb.c	Tue May  9 22:27:21 2000
@@ -78,7 +78,7 @@
  */
 
 /* enable debug output? */
-/* #define CLGEN_DEBUG 1 */
+#define CLGEN_DEBUG 1
 
 /* disable runtime assertions? */
 /* #define CLGEN_NDEBUG */
@@ -2526,7 +2526,7 @@
 	/* This is a best-guess for now */
 
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,13)
+#if 0
 
         *display = pdev->base_address[0];
         if ((*display & PCI_BASE_ADDRESS_SPACE) == PCI_BASE_ADDRESS_SPACE_IO) {
@@ -2648,7 +2648,7 @@
 		board_size = clgen_get_memsize (info->regs);
 	}
 
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,3,13)
+#if 1
 
 	if (!request_mem_region(board_addr, board_size, "clgenfb")) {
 		pci_write_config_word (pdev, PCI_COMMAND, tmp16);
@@ -2924,9 +2924,9 @@
 	switch_monitor (info, 0);
 
 	clgen_zorro_unmap (info);
-#else
+#elif defined(MODULE)
 	clgen_pci_unmap (info);
-#endif				/* CONFIG_ZORRO */
+#endif				/* CONFIG_ZORRO or MODULE */
 
 	unregister_framebuffer ((struct fb_info *) info);
 	printk ("Framebuffer unregistered\n");
--- include/asm-ppc/string.h.bak	Tue May  9 19:01:23 2000
+++ include/asm-ppc/string.h	Tue May  9 22:35:18 2000
@@ -2,16 +2,26 @@
 #define _PPC_STRING_H_
 
 #define __HAVE_ARCH_STRCPY
+extern char * strcpy(char *,const char *);
 #define __HAVE_ARCH_STRNCPY
+extern char * strncpy(char *,const char *, __kernel_size_t);
 #define __HAVE_ARCH_STRLEN
+extern __kernel_size_t strlen(const char *);
 #define __HAVE_ARCH_STRCMP
+extern int strcmp(const char *,const char *);
 #define __HAVE_ARCH_STRCAT
+extern char * strcat(char *, const char *);
 #define __HAVE_ARCH_MEMSET
+extern void * memset(void *,int,__kernel_size_t);
 #define __HAVE_ARCH_BCOPY
 #define __HAVE_ARCH_MEMCPY
+extern void * memcpy(void *,const void *,__kernel_size_t);
 #define __HAVE_ARCH_MEMMOVE
+extern void * memmove(void *,const void *,__kernel_size_t);
 #define __HAVE_ARCH_MEMCMP
+extern int memcmp(const void *,const void *,__kernel_size_t);
 #define __HAVE_ARCH_MEMCHR
+extern void * memchr(const void *,int,__kernel_size_t);
 
 extern int strcasecmp(const char *, const char *);
 extern int strncasecmp(const char *, const char *, int);
--- arch/ppc/kernel/ppc_ksyms.c.bak	Tue May  9 22:44:09 2000
+++ arch/ppc/kernel/ppc_ksyms.c	Tue May  9 22:45:29 2000
@@ -271,6 +271,7 @@
 #endif
 EXPORT_SYMBOL(down_read_failed);
 
+#if defined(CONFIG_XMON) || defined(CONFIG_KGDB)
 extern void (*debugger)(struct pt_regs *regs);
 extern int (*debugger_bpt)(struct pt_regs *regs);
 extern int (*debugger_sstep)(struct pt_regs *regs);
@@ -284,3 +285,4 @@
 EXPORT_SYMBOL(debugger_iabr_match);
 EXPORT_SYMBOL(debugger_dabr_match);
 EXPORT_SYMBOL(debugger_fault_handler);
+#endif

Reply to: