Hello, I have started working on getting the cirrusfb driver working for kernel 2.6 on m68k. I have an EGS Spectrum card in my Amiga to work with. This is my first attempt at debugging a Linux kernel driver (newbie driver debug questions warning). :) Observed Problems: a) When booting and targeting the kernel to video=clgen, there is garbage on the screen, like the horizontal sync is all wrong. b) Setting up the cirrusfb driver as a module and loading via the comamnd "modprobe cirrusfb" loads the module (according to syslog) and results in a blank screen. c) Loading with "modprobe cirrusfb mode:640x480" gives an error, as shown in the /var/log/syslog snippet below. d) The driver default string includes an "@60" which is not a documented parameter. Was this a change in 2.6 FB device API? Debugging steps: a) re-compiled cirrusfb.c adding a line to cirrusfb.h to turn on all the DPRINTK debugging. b) added additional debugging DPRINTK statements to the entry and exit of each function. c) Changed the DPRINTK macro to be KERN_INFO instead of KERN_DEBUG so that data shows up in /var/log/syslog. (didn't figure out to change the logging level to 8 without a reboot). d) Error exits also had DPRINTK lines added. Captured syslog output, annotation in [] by me. May 22 07:40:22 tag1amiga kernel: cirrusfb: Unknown parameter `800x600' [modprobe cirrusfb 800x600] May 22 07:40:34 tag1amiga kernel: cirrusfb: Unknown parameter `mode:640x480' [modprob cirrusfb mode:640x480] May 22 07:40:47 tag1amiga kernel: cirrusfb_init: ENTER: [modprobe cirrusfb] May 22 07:40:47 tag1amiga kernel: bus: 'zorro': add driver cirrusfb May 22 07:40:47 tag1amiga kernel: bus: 'zorro': driver_probe_device: matched device 05 with driver cirrusfb May 22 07:40:47 tag1amiga kernel: bus: 'zorro': really_probe: probing driver cirrusfb with device 05 May 22 07:40:47 tag1amiga kernel: cirrusfb_zorro_register: ENTER: May 22 07:40:47 tag1amiga kernel: cirrusfb: CL Spectrum board detected; <6> RAM (2 MB) at $800000, <6> REG at $ec0000 May 22 07:40:47 tag1amiga kernel: cirrusfb_zorro_register: Virtual address for board set to: $80ec0000 May 22 07:40:47 tag1amiga kernel: cirrusfb: Cirrus Logic chipset on Zorro bus May 22 07:40:47 tag1amiga kernel: cirrusfb_register: ENTER: May 22 07:40:47 tag1amiga kernel: cirrusfb: Driver for Cirrus Logic based graphic boards, v2.0-pre2 May 22 07:40:47 tag1amiga kernel: cirrusfb_set_fbinfo: ENTER: May 22 07:40:47 tag1amiga kernel: cirrusfb_set_fbinfo: EXIT : May 22 07:40:47 tag1amiga kernel: cirrusfb_register: (RAM start set to: 0x80800000) May 22 07:40:47 tag1amiga kernel: cirrusfb_register: driver init paramter: 640x480@60 [driver default init string] May 22 07:40:47 tag1amiga kernel: cirrusfb: ENTER: cirrusfb_check_var() May 22 07:40:47 tag1amiga kernel: cirrusfb: EXIT : cirrusfb_check_var() May 22 07:40:47 tag1amiga kernel: cirrusfb_decode_var: desired pixclock: 25175 kHz May 22 07:40:47 tag1amiga kernel: device: 'fb1': device_add May 22 07:40:47 tag1amiga kernel: cirrusfb_register: EXIT : May 22 07:40:47 tag1amiga kernel: cirrusfb_zorro_register: EXIT : May 22 07:40:47 tag1amiga kernel: driver: '05': driver_bound: bound to device 'cirrusfb' May 22 07:40:47 tag1amiga kernel: bus: 'zorro': really_probe: bound device 05 to driver cirrusfb May 22 07:40:47 tag1amiga kernel: cirrusfb_init: EXIT : May 22 07:40:59 tag1amiga kernel: bus: 'zorro': remove driver cirrusfb May 22 07:40:59 tag1amiga kernel: cirrusfb_zorro_unregister: cirrusfb: ENTER: cirrusfb_zorro_unregister() May 22 07:40:59 tag1amiga kernel: cirrusfb_cleanup: ENTER: May 22 07:40:59 tag1amiga kernel: switch_monitor: ENTER May 22 07:40:59 tag1amiga kernel: switch_monitor: EXIT [modprobe -r cirrusfb] May 22 07:40:59 tag1amiga kernel: device: 'fb1': device_unregister May 22 07:40:59 tag1amiga kernel: device: 'fb1': device_create_release May 22 07:40:59 tag1amiga kernel: Framebuffer unregistered May 22 07:40:59 tag1amiga kernel: cirrusfb_zorro_unmap: cirrusfb: ENTER: cirrusfb_zorro_unmap()<6>cirrusfb_zorro_unmap: cirrusfb: EXIT : cirrusfb_zorro_unmap()<6>cirrusfb_cleanup: EXIT : May 22 07:40:59 tag1amiga kernel: cirrusfb_zorro_unregister: cirrusfb: EXIT : cirrusfb_zorro_unregister() May 22 07:40:59 tag1amiga kernel: driver: 'cirrusfb': driver_release The Spectrum card switches the monitor to its output, but the display is blank. Is there a simple way to write to /dev/fb1 to get some text on that display? echo some text there >/dev/fb1 resuled in locking up the system requiring reset. Or, a command to switch the monitor back to the amifb: video? My next step is to re-compile my kernel with the driver resident, and see what the dmesg output will look like, but I am assuming something similar will result. The parameters do not seem to be processed by the cirrusfb, though, seem to be done by generic framebuffer code elsewhere. Suggestions? --Lance -- To unsubscribe from this list: send the line "unsubscribe linux-m68k" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html