LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   wirless iwl3945 doesn't work after suspend (https://www.linuxquestions.org/questions/slackware-14/wirless-iwl3945-doesnt-work-after-suspend-688355/)

zux 12-04-2008 01:31 PM

wirless iwl3945 doesn't work after suspend
 
I recently changed my wirless card to a Intel Wireless 3945ABG.
With my old one realtek it used to work.
so after a suspend to ram (don't know about suspend to disk, doesn't work).
rmmod iwl3945 before suspend removes the interface, but after that when i modprobe iwl3945 it finds the device.
This is what I see in dmesg:

Code:

iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, 1.2.26ks
iwl3945: Copyright(c) 2003-2008 Intel Corporation
ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 16 (level, low) -> IRQ 17
PCI: Setting latency timer of device 0000:02:00.0 to 64
iwl3945: Detected Intel Wireless WiFi Link 3945ABG
iwl3945: EEPROM not found, EEPROM_GP=0x10000000
iwl3945: Unable to init EEPROM
iwl3945: probe of 0000:02:00.0 failed with error -2

and the wlan0 interface doesn't show up :(

jumapeg 12-04-2008 01:53 PM

Hello!!

According to kernel 2.6.27.6's changelog...

Quote:

Author: Zhu Yi <yi.zhu@intel.com>
Date: Tue Nov 4 12:21:36 2008 -0800

iwl3945: fix deadlock on suspend

commit d54bc4e3fc5c56600a13c9ebc0a7e1077ac05d59 upstream.

This patch fixes iwl3945 deadlock during suspend by moving notify_mac out
of iwl3945 mutex. This is a portion of the same fix for iwlwifi by Tomas.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
So what kernel are you using?? You can download kernel packages from slackware-current (version 2.6.27.7) and try that kernel.

I have an intel 3945abg on my laptop (slack 12.1 with 2.6.27.7) too and it works after suspend to ram.

zux 12-04-2008 02:27 PM

i have 12.1 default kernel 2.6.24.5
gonna try a newer :)

zux 12-05-2008 06:15 AM

no good
same error :(
actually the interface wlan0 is still there after suspend, but it just doesn't work
after removing and reinserting the module there is no more wlan0 interface.
the kernel is:
Code:

~# uname -r
2.6.27.7-smp

is there something else i'm missing?

zux 12-05-2008 06:18 AM

hmm actually after removing and reinserting the module I now get a different error:

Code:

iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, 1.2.26ks
iwl3945: Copyright(c) 2003-2008 Intel Corporation
iwl3945 0000:02:00.0: enabling device (0000 -> 0002)
iwl3945 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
iwl3945 0000:02:00.0: setting latency timer to 64
iwl3945: Detected Intel Wireless WiFi Link 3945ABG
iwl3945: Error: saturation power is -1, less than minimum expected 40
iwl3945: Invalid power index
iwl3945: initializing regulatory failed: -5
iwl3945: probe of 0000:02:00.0 failed with error -5


jumapeg 12-05-2008 06:31 AM

Hello!!

I have just double-checked that mine works after suspend, no problems here.

I'm using wicd network manager (check "extra" folder in slackware-current) and latest 3945 microcode image, you can download it from here, just extract it on /lib/firmware folder and override old one.

EDIT: Notice that this firmware is iwlwifi-3945-2, move iwlwifi-3945-1 to another folder to avoid errors.

I hope this helps!

zux 12-05-2008 07:23 AM

It doesn't load the iwlwifi-3945-2.ucode
only looks for iwlwifi-3945-1.ucode
can this be changed anywhere?
or can I just rename the new one to 1?

Code:

iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, 1.2.26ks
iwl3945: Copyright(c) 2003-2008 Intel Corporation
iwl3945 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
iwl3945 0000:02:00.0: setting latency timer to 64
iwl3945: Detected Intel Wireless WiFi Link 3945ABG
iwl3945: Tunable channels: 13 802.11bg, 23 802.11a channels
phy1: Selected rate control algorithm 'iwl-3945-rs'
iwl3945 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
firmware: requesting iwlwifi-3945-1.ucode
iwl3945: iwlwifi-3945-1.ucode firmware file req failed: Reason -2
iwl3945: Could not read microcode: -2


jumapeg 12-05-2008 07:35 AM

Version 2 needs new drivers, sorry, I didn't reload iwl3945 module after updating to this new version, forget this version.

Get the previous version, this one.

zux 12-05-2008 08:05 AM

well it got better :)
at least it now works after a reboot, like before :)
but still nothing after a suspend
the same EEPROM error :(

zux 12-05-2008 08:15 AM

it looks like I had compiled compat-wirless myself. and that one was for kernels < 2.6.27
I'll try the newer one.

zux 12-05-2008 08:56 AM

somthing new every time.
Now after a reboot I get a signal for wirless, but no signal after suspend.
reinserting the module gives this in dmesg:
Code:

iwl3945 0000:02:00.0: PCI INT A disabled
iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, 1.2.26ks
iwl3945: Copyright(c) 2003-2008 Intel Corporation
iwl3945 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
iwl3945 0000:02:00.0: setting latency timer to 64
iwl3945: EEPROM not found, EEPROM_GP=0x10000000
iwl3945: Unable to init EEPROM
BUG: unable to handle kernel NULL pointer dereference at 00000010
IP: [<c013553f>] wq_cpu_map+0xf/0x20
*pde = 00000000
Oops: 0000 [#1] SMP
Modules linked in: iwl3945(+) i915 drm snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss ipv6 lp parport_pc parport btusb bluetooth usbhid hid fuse video output thermal ohci1394 wmi ac processor ieee1394 battery mac80211 thermal_sys led_class lib80211 button hwmon snd_hda_intel rtc_cmos snd_pcm rtc_core snd_timer snd_page_alloc rtc_lib snd_hwdep i2c_i801 psmouse intel_agp i2c_core serio_raw iTCO_wdt evdev cfg80211 r8169 mii agpgart snd iTCO_vendor_support soundcore ehci_hcd uhci_hcd sg ext3 jbd mbcache [last unloaded: iwl3945]

Pid: 3660, comm: modprobe Not tainted (2.6.27.7-smp #1)
EIP: 0060:[<c013553f>] EFLAGS: 00010246 CPU: 1
EIP is at wq_cpu_map+0xf/0x20
EAX: c04fa8b8 EBX: f78ef0d0 ECX: 00000000 EDX: 00000000
ESI: 00000000 EDI: f66b8d00 EBP: ee369da0 ESP: ee369da0
 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
Process modprobe (pid: 3660, ti=ee368000 task=ee372cb0 task.ti=ee368000)
Stack: ee369db4 c0135a72 f78ef0d0 fffffffe f66b8d00 ee369e1c f8ad73c5 f8addc38
      c01c2bf2 fffffffe ee369df4 c01c2938 ee369de8 f78ef058 f7899630 f78ef000
      ee1cdbd0 00000000 ee369e10 c01c3776 f7899630 f7899630 f78ef0d0 c0226099
Call Trace:
 [<c0135a72>] ? destroy_workqueue+0x12/0x90
 [<f8ad73c5>] ? iwl3945_pci_probe+0x245/0xbd0 [iwl3945]
 [<c01c2bf2>] ? sysfs_addrm_finish+0x52/0x1c0
 [<c01c2938>] ? sysfs_add_one+0x18/0x50
 [<c01c3776>] ? sysfs_do_create_link+0xa6/0x110
 [<c0226099>] ? pci_match_id+0x9/0x90
 [<c02262c5>] ? pci_match_device+0xa5/0xb0
 [<c02269fe>] ? pci_device_probe+0x5e/0x80
 [<c0285c73>] ? driver_probe_device+0x83/0x180
 [<c0285de4>] ? __driver_attach+0x74/0x80
 [<c02853a9>] ? bus_for_each_dev+0x49/0x70
 [<c0285ade>] ? driver_attach+0x1e/0x20
 [<c0285d70>] ? __driver_attach+0x0/0x80
 [<c0285921>] ? bus_add_driver+0x1b1/0x230
 [<c0226940>] ? pci_device_remove+0x0/0x40
 [<c0286044>] ? driver_register+0x54/0x130
 [<f8834000>] ? iwl3945_init+0x0/0x7a [iwl3945]
 [<c0226c0f>] ? __pci_register_driver+0x4f/0x90
 [<f8834000>] ? iwl3945_init+0x0/0x7a [iwl3945]
 [<f883405b>] ? iwl3945_init+0x5b/0x7a [iwl3945]
 [<c010111f>] ? do_one_initcall+0x2f/0x150
 [<c013cf34>] ? __blocking_notifier_call_chain+0x14/0x70
 [<c0148d48>] ? sys_init_module+0x88/0x1b0
 [<c017ff62>] ? sys_read+0x42/0x70
 [<c010325a>] ? syscall_call+0x7/0xb
 [<c03d0000>] ? init_chipset_svwks+0x280/0x2b0
 =======================
Code: 57 18 8b 47 14 e8 12 1a fd ff 89 47 28 31 c0 e8 48 36 ff ff 90 90 90 90 90 90 90 90 55 89 e5 e8 d0 e8 fc ff 89 c2 b8 b8 a8 4f c0 <8b> 52 10 5d 85 d2 ba bc a8 4f c0 0f 44 c2 c3 66 90 55 89 e5 e8
EIP: [<c013553f>] wq_cpu_map+0xf/0x20 SS:ESP 0068:ee369da0
---[ end trace a86f6b86a05e8b58 ]---


EDIT: pressing the wirless off button does the same thing, it turns it of, but wirless doesn't work after turning on again

zux 12-06-2008 08:33 AM

next step:
compiled 2.6.27.8 kernel.
got worse again, now the interface doesn't even get started, also the module is loaded and the chip is detected.
could it be a defective card?


All times are GMT -5. The time now is 09:30 AM.