Package: linux-2.6 Version: 2.6.26-26lenny3 Severity: wishlist File: linux-image-2.6.26
I created a patch for 2.6.26 which adds the software-based RF-switch to the kernel. I extracted the main parts of fsaa1655g.c (see bug #631664) and patched it against fujitsu-laptop.c. Now I can switch on my wifi. -- Package-specific info: ** Version: Linux version 2.6.26-2-686 (Debian 2.6.26-26lenny3) (da...@debian.org) (gcc version 4.1.3 20080704 (prerelease) (Debian 4.1.2-25)) #1 SMP Sat Jun 11 14:54:10 UTC 2011 ** Command line: root=/dev/hda2 ro single ** Not tainted ** Kernel log: [ 12.837998] ACPI: Lid Switch [LID] [ 12.868196] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001 [ 12.868265] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 12.868329] usb usb2: Product: OHCI Host Controller [ 12.868386] usb usb2: Manufacturer: Linux 2.6.26-2-686 ohci_hcd [ 12.868447] usb usb2: SerialNumber: 0000:00:13.1 [ 12.868654] ACPI: PCI Interrupt 0000:00:13.2[A] -> GSI 19 (level, low) -> IRQ 19 [ 12.868788] ehci_hcd 0000:00:13.2: EHCI Host Controller [ 12.868876] ehci_hcd 0000:00:13.2: new USB bus registered, assigned bus number 3 [ 12.869018] ehci_hcd 0000:00:13.2: irq 19, io mem 0xd0007000 [ 12.875073] ACPI: AC Adapter [ACAD] (on-line) [ 13.012059] usb 1-1: new low speed USB device using ohci_hcd and address 2 [ 13.032330] ACPI: Battery Slot [BAT0] (battery present) [ 13.032465] ehci_hcd 0000:00:13.2: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004 [ 13.032614] usb usb3: configuration #1 chosen from 1 choice [ 13.032704] hub 3-0:1.0: USB hub found [ 13.032773] hub 3-0:1.0: 8 ports detected [ 13.092068] hub 1-0:1.0: unable to enumerate USB device on port 1 [ 13.136187] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002 [ 13.136255] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 13.136323] usb usb3: Product: EHCI Host Controller [ 13.136380] usb usb3: Manufacturer: Linux 2.6.26-2-686 ehci_hcd [ 13.136438] usb usb3: SerialNumber: 0000:00:13.2 [ 13.137290] ACPI: PCI Interrupt 0000:00:14.2[A] -> GSI 16 (level, low) -> IRQ 16 [ 13.301415] ACPI: \_SB_.PCI0.IDE_.SECD.S_D0: found ejectable bay [ 13.301425] ACPI: \_SB_.PCI0.IDE_.SECD.S_D0: Adding notify handler [ 13.301474] ACPI: Bay [\_SB_.PCI0.IDE_.SECD.S_D0] Added [ 13.301538] ACPI: \_SB_.PCI0.IDE_.SECD.S_D1: found ejectable bay [ 13.301541] ACPI: \_SB_.PCI0.IDE_.SECD.S_D1: Adding notify handler [ 13.301569] ACPI: Bay [\_SB_.PCI0.IDE_.SECD.S_D1] Added [ 13.848056] usb 1-1: new low speed USB device using ohci_hcd and address 3 [ 14.053342] usb 1-1: configuration #1 chosen from 1 choice [ 14.055377] usb 1-1: New USB device found, idVendor=192f, idProduct=0416 [ 14.055440] usb 1-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0 [ 14.055499] usb 1-1: Product: USB Optical Mouse [ 14.669823] input: PC Speaker as /class/input/input4 [ 15.164334] input: PS/2 Mouse as /class/input/input5 [ 15.207961] input: AlpsPS/2 ALPS GlidePoint as /class/input/input6 [ 15.214042] ACPI: PCI Interrupt 0000:08:0b.0[A] -> GSI 16 (level, low) -> IRQ 16 [ 15.267037] ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[16] MMIO=[d0202000-d02027ff] Max Packet=[2048] IR/IT contexts=[4/8] [ 15.313703] 8139too Fast Ethernet driver 0.9.28 [ 15.476945] ACPI: PCI Interrupt 0000:08:0a.0[A] -> GSI 19 (level, low) -> IRQ 19 [ 15.536138] ssb: Sonics Silicon Backplane found on PCI device 0000:08:0a.0 [ 15.536281] ACPI: PCI Interrupt 0000:08:0d.0[A] -> GSI 17 (level, low) -> IRQ 17 [ 15.537987] eth0: RealTek RTL8139 at 0xa000, 00:40:ca:d8:f9:99, IRQ 17 [ 15.538049] eth0: Identified 8139 chip type 'RTL-8101' [ 16.361629] usbcore: registered new interface driver hiddev [ 16.365721] input: USB Optical Mouse as /class/input/input7 [ 16.396148] input,hidraw0: USB HID v1.11 Mouse [USB Optical Mouse] on usb-0000:00:13.0-1 [ 16.396429] usbcore: registered new interface driver usbhid [ 16.396487] usbhid: v2.6:USB HID core driver [ 16.748308] ieee1394: Host added: ID:BUS[0-00:1023] GUID[0040ca01371018ff] [ 17.123535] b43-phy0: Broadcom 4318 WLAN found [ 17.188614] phy0: Selected rate control algorithm 'pid' [ 17.354847] Broadcom 43xx driver loaded [ Features: PMLR, Firmware-ID: FW13 ] [ 18.187321] Adding 1028152k swap on /dev/hda3. Priority:-1 extents:1 across:1028152k [ 18.600308] EXT3 FS on hda2, internal journal [ 18.845450] loop: module loaded [ 19.140079] fuse init (API version 7.9) [ 52.644603] fsaa1655g: Radio turned ON [ 52.644603] fujitsu-laptop: driver 0.3 successfully loaded. [ 99.362272] fsaa1655g: Radio turned OFF [ 99.362323] fujitsu-laptop: driver unloaded. [ 175.576163] powernow-k8: Found 1 AMD Turion(tm) 64 Mobile Technology MT-32 processors (1 cpu cores) (version 2.20.00) [ 175.576204] powernow-k8: 0 : fid 0xa (1800 MHz), vid 0xa [ 175.576207] powernow-k8: 1 : fid 0x8 (1600 MHz), vid 0xc [ 175.576210] powernow-k8: 2 : fid 0x0 (800 MHz), vid 0x16 [ 177.362606] lp: driver loaded but no devices found [ 177.399912] ppdev: user-space parallel port driver [ 177.712041] Clocksource tsc unstable (delta = -186647067 ns) [ 178.411035] NET: Registered protocol family 10 [ 178.412133] lo: Disabled Privacy Extensions [ 184.189503] input: b43-phy0 as /class/input/input8 [ 184.276073] firmware: requesting b43/ucode5.fw [ 184.412454] firmware: requesting b43/pcm5.fw [ 184.548570] firmware: requesting b43/b0g0initvals5.fw [ 184.674123] firmware: requesting b43/b0g0bsinitvals5.fw [ 184.904052] b43-phy0: Loading firmware version 410.2160 (2007-05-26 15:32:10) [ 185.844389] Registered led device: b43-phy0::tx [ 185.844457] Registered led device: b43-phy0::rx [ 185.844519] Registered led device: b43-phy0::radio [ 185.844642] b43-phy0: Radio hardware status changed to DISABLED [ 185.908545] ADDRCONF(NETDEV_UP): wlan0: link is not ready [ 186.052881] eth0: link down [ 186.053160] ADDRCONF(NETDEV_UP): eth0: link is not ready [ 979.536353] fujitsu-laptop: driver 0.3 successfully loaded. [ 979.536388] fujitsu-laptop: Radio turned ON [ 980.000126] b43-phy0: Radio hardware status changed to ENABLED [ 1018.120053] b43-phy0: Radio turned on by software [ 1060.388290] wlan0: Initial auth_alg=0 [ 1060.388304] wlan0: authenticate with AP 00:23:69:85:ad:c5 [ 1060.389874] wlan0: RX authentication from 00:23:69:85:ad:c5 (alg=0 transaction=2 status=0) [ 1060.389882] wlan0: authenticated [ 1060.389889] wlan0: associate with AP 00:23:69:85:ad:c5 [ 1060.392525] wlan0: RX AssocResp from 00:23:69:85:ad:c5 (capab=0x431 status=0 aid=3) [ 1060.392532] wlan0: associated [ 1060.392553] wlan0: switched to short barker preamble (BSSID=00:23:69:85:ad:c5) [ 1060.393184] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready [ 1077.488037] wlan0: no IPv6 routers present [ 2306.248022] APIC error on CPU0: 00(40) ** Model information not available ** Loaded modules: Module Size Used by fujitsu_laptop 5132 0 rfkill_input 3520 0 ipv6 235396 10 ppdev 6468 0 parport_pc 22500 0 lp 8164 0 parport 31084 3 ppdev,parport_pc,lp powernow_k8 12036 0 cpufreq_userspace 3172 0 cpufreq_ondemand 6476 0 cpufreq_conservative 5960 0 cpufreq_powersave 1856 1 cpufreq_stats 3776 0 freq_table 4224 3 powernow_k8,cpufreq_ondemand,cpufreq_stats fuse 42908 3 sbp2 18572 0 loop 12748 0 arc4 1824 2 ecb 2624 2 crypto_blkcipher 15236 1 ecb b43 110716 0 rfkill 5652 3 rfkill_input,b43 rng_core 3940 1 b43 mac80211 139808 1 b43 cfg80211 21608 1 mac80211 led_class 3908 1 b43 input_polldev 3752 1 b43 joydev 8480 0 usbhid 35872 0 hid 33184 1 usbhid ff_memless 4392 1 usbhid ssb 33476 1 b43 pcmcia 29548 2 b43,ssb 8139too 20384 0 pcmcia_core 31892 3 b43,ssb,pcmcia ohci1394 24976 0 mii 4896 1 8139too firmware_class 6816 2 b43,pcmcia ieee1394 75832 2 sbp2,ohci1394 serio_raw 4740 0 psmouse 32336 0 pcspkr 2432 0 k8temp 4064 0 bay 4160 0 snd_hda_intel 325720 1 battery 10180 0 snd_pcm 62660 1 snd_hda_intel snd_seq 41456 0 snd_timer 17800 2 snd_pcm,snd_seq snd_seq_device 6380 1 snd_seq ac 4196 0 snd 45636 7 snd_hda_intel,snd_pcm,snd_seq,snd_timer,snd_seq_device button 6096 0 ide_cd_mod 27684 0 cdrom 30176 1 ide_cd_mod ehci_hcd 28428 0 soundcore 6368 1 snd snd_page_alloc 7816 2 snd_hda_intel,snd_pcm ohci_hcd 18500 0 i2c_piix4 7216 0 usbcore 118224 4 usbhid,ehci_hcd,ohci_hcd i2c_core 19828 1 i2c_piix4 shpchp 25528 0 pci_hotplug 23460 1 shpchp ati_agp 6220 0 agpgart 28840 1 ati_agp evdev 8000 6 thermal 15228 0 processor 32576 3 powernow_k8,thermal fan 4196 0 thermal_sys 10856 3 thermal,processor,fan atiixp 3396 0 [permanent] sd_mod 22200 0 ata_generic 4676 0 libata 140448 1 ata_generic scsi_mod 129548 3 sbp2,sd_mod,libata dock 8304 2 bay,libata ide_pci_generic 3908 0 [permanent] ide_disk 10496 4 ide_core 96168 4 ide_cd_mod,atiixp,ide_pci_generic,ide_disk ext3 105576 1 jbd 39476 1 ext3 mbcache 7108 1 ext3 08:0a.0 Network controller [0280]: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller [14e4:4318] (rev 02) Subsystem: Device [17f9:0006] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 64 Interrupt: pin A routed to IRQ 19 Region 0: Memory at d0200000 (32-bit, non-prefetchable) [size=8K] Kernel driver in use: b43-pci-bridge Kernel modules: ssb Debian Release: 5.0.8 APT prefers oldstable APT policy: (500, 'oldstable') Architecture: i386 (i686) Kernel: Linux 2.6.26-2-686 (SMP w/1 CPU core) Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages linux-image-2.6.26-2-686 depends on: ii debconf [debconf-2.0] 1.5.24 Debian configuration management sy ii initramfs-tools [linux-initra 0.92o tools for generating an initramfs ii module-init-tools 3.4-1 tools for managing Linux kernel mo Versions of packages linux-image-2.6.26-2-686 recommends: ii libc6-i686 2.7-18lenny7 GNU C Library: Shared libraries [i Versions of packages linux-image-2.6.26-2-686 suggests: ii grub 0.97-47lenny2 GRand Unified Bootloader (Legacy v pn linux-doc-2.6.26 <none> (no description available) Versions of packages linux-image-2.6.26-2-686 is related to: pn firmware-bnx2 <none> (no description available) pn firmware-bnx2x <none> (no description available) pn firmware-ipw2x00 <none> (no description available) pn firmware-ivtv <none> (no description available) pn firmware-iwlwifi <none> (no description available) pn firmware-linux <none> (no description available) pn firmware-linux-nonfree <none> (no description available) pn firmware-qlogic <none> (no description available) pn firmware-ralink <none> (no description available) -- debconf information: linux-image-2.6.26-2-686/postinst/bootloader-error-2.6.26-2-686: shared/kernel-image/really-run-bootloader: true linux-image-2.6.26-2-686/postinst/old-dir-initrd-link-2.6.26-2-686: true linux-image-2.6.26-2-686/preinst/overwriting-modules-2.6.26-2-686: true linux-image-2.6.26-2-686/postinst/bootloader-test-error-2.6.26-2-686: linux-image-2.6.26-2-686/postinst/depmod-error-2.6.26-2-686: false linux-image-2.6.26-2-686/preinst/bootloader-initrd-2.6.26-2-686: true linux-image-2.6.26-2-686/preinst/abort-overwrite-2.6.26-2-686: linux-image-2.6.26-2-686/preinst/abort-install-2.6.26-2-686: linux-image-2.6.26-2-686/postinst/depmod-error-initrd-2.6.26-2-686: false linux-image-2.6.26-2-686/postinst/create-kimage-link-2.6.26-2-686: true linux-image-2.6.26-2-686/preinst/failed-to-move-modules-2.6.26-2-686: linux-image-2.6.26-2-686/preinst/initrd-2.6.26-2-686: linux-image-2.6.26-2-686/preinst/lilo-has-ramdisk: linux-image-2.6.26-2-686/prerm/would-invalidate-boot-loader-2.6.26-2-686: true linux-image-2.6.26-2-686/postinst/kimage-is-a-directory: linux-image-2.6.26-2-686/postinst/old-initrd-link-2.6.26-2-686: true linux-image-2.6.26-2-686/preinst/elilo-initrd-2.6.26-2-686: true linux-image-2.6.26-2-686/preinst/lilo-initrd-2.6.26-2-686: true linux-image-2.6.26-2-686/prerm/removing-running-kernel-2.6.26-2-686: true linux-image-2.6.26-2-686/postinst/old-system-map-link-2.6.26-2-686: true
53d52 < #include <asm/io.h> 63,70d61 < #define KBD_COMMAND_PORT 0x64 < #define KBD_DATA_PORT 0x60 < #define WIFI_COMMAND 0xC5 < #define WIFI_ON 0x25 < #define WIFI_OFF 0x45 < #define AMILOA1655G_RADIO_OFF 0 < #define AMILOA1655G_RADIO_ON 1 < #define DRV_NAME "fujitsu-laptop" 263,386d253 < static int radio = 1; < < static int amiloa1655g_radio_status = AMILOA1655G_RADIO_OFF; < < unsigned char amiloa1655g_get_radio(void) { < return amiloa1655g_radio_status; < } < < static void amiloa1655g_set_radio(int state_set) { < unsigned char val = 0; < < if (amiloa1655g_radio_status != state_set) { < if (state_set == AMILOA1655G_RADIO_ON) { < do { val = inb(KBD_COMMAND_PORT); } while ((val & 2) == 2); < outb(WIFI_COMMAND, KBD_COMMAND_PORT); < do { val = inb(KBD_COMMAND_PORT); } while ((val & 2) == 2); < outb(WIFI_ON, KBD_DATA_PORT); < amiloa1655g_radio_status = AMILOA1655G_RADIO_ON; < printk(KERN_INFO DRV_NAME ": Radio turned ON\n"); < } else { < do { val = inb(KBD_COMMAND_PORT); } while ((val & 2) == 2); < outb(WIFI_COMMAND, KBD_COMMAND_PORT); < do { val = inb(KBD_COMMAND_PORT); } while ((val & 2) == 2); < outb(WIFI_OFF, KBD_DATA_PORT); < amiloa1655g_radio_status = AMILOA1655G_RADIO_OFF; < printk(KERN_INFO DRV_NAME ": Radio turned OFF\n"); < } < } < } < < < /* < * Proc Stuff < */ < static struct proc_dir_entry *dir_base = NULL; < < static int proc_set_radio(struct file *file, const char *buffer, < unsigned long count, void *data) < { < amiloa1655g_set_radio(buffer[0] == '0' ? AMILOA1655G_RADIO_OFF : AMILOA1655G_RADIO_ON); < < return count; < } < < static int proc_get_radio(char *page, char **start, off_t offset, < int count, int *eof, void *data) < { < int len = 0; < < len += snprintf(page, count, DRV_NAME ": %d\n", < amiloa1655g_radio_status == AMILOA1655G_RADIO_OFF ? 0 : 1); < < *eof = 1; < return len; < } < < < static void amiloa1655g_proc_cleanup(void) < { < if (dir_base) { < remove_proc_entry("radio", dir_base); < remove_proc_entry(DRV_NAME, NULL); < dir_base = NULL; < } < } < < < static int amiloa1655g_proc_init(void) < { < struct proc_dir_entry *ent; < int err = 0; < < dir_base = create_proc_entry(DRV_NAME, S_IFDIR, NULL); < if (dir_base == NULL) { < printk(KERN_ERR DRV_NAME ": Unable to initialise /proc/" < DRV_NAME "\n"); < err = -ENOMEM; < goto fail; < } < < < ent = create_proc_entry("radio", S_IFREG | S_IRUGO | S_IWUSR, < dir_base); < if (ent) { < ent->read_proc = proc_get_radio; < ent->write_proc = proc_set_radio; < } else { < printk(KERN_ERR < "Unable to initialize /proc/" DRV_NAME "/radio\n"); < err = -ENOMEM; < goto fail; < } < < return 0; < < fail: < amiloa1655g_proc_cleanup(); < return err; < } < < /* < * module stuff < */ < static int amiloa1655g_init(void) < { < amiloa1655g_proc_init(); < < amiloa1655g_set_radio((radio == 1) ? AMILOA1655G_RADIO_ON : AMILOA1655G_RADIO_OFF); < < return 0; < } < < static void amiloa1655g_exit(void) < { < amiloa1655g_set_radio(AMILOA1655G_RADIO_OFF); < < amiloa1655g_proc_cleanup(); < } < < < < module_param(radio, int, 1); < MODULE_PARM_DESC(radio, "Controls state of radio when the module is loaded (1=on, 0=off)"); < 388d254 < static int __init fujitsu_init(void) { 390c256,259 < int ret, result; --- > static int __init fujitsu_init(void) > { > int ret, result; > 392c261,262 < return -ENODEV; --- > return -ENODEV; > 438,439d307 < amiloa1655g_init(); < 476c344 < amiloa1655g_exit(); --- >