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: