Problems with SD8686 SDIO on HTC Shift

Dan Williams dcbw at redhat.com
Fri Jan 23 17:51:43 EST 2009


On Fri, 2009-01-23 at 22:11 +0100, Sven Barth wrote:
> Hello together!
> 
> I'm currently trying to get Linux running on my HTC Shift (a UMPC with 
> an Intel CPU). It has a Marvell SD8686 wifi module connected with SDIO. 
> I'm currently using Arch Linux with Kernel 2.6.28, compat-wireless from 
> 01/16/2006 and the firmware from linux-firmware git. Every time I 

^^^ I hope you mean 01/16/2008 :)

What SDIO controller is in these things?

> modprobe the libertas modules I get a timeout when the command 0x001e 
> (CMD_802_11_RF_TX_POWER) should be send to the wifi-module. After 
> "excessive timeouts" the module "coredumps" (part of dmesg from modprobe 
> of libertas till end is attached). This problem happens with both 
> firmware versions (v8 & v9) from linux-firmware.

Can you try commenting out the part that gets TX power in
lbs_setup_firmware() in main.c and see how that proceeds?

Dan

> According to this guide 
> http://pof.eslack.org/blog/2008/04/14/linux-on-htc-shift/ the wifi 
> module was at least working with the old driver, which was used around 
> kernel 2.6.19 (Kubuntu 8.04).
> 
> It would be really nice to get wifi up and running, cause without it, I 
> can't really use Linux in every day life on the Shift (so I'd have to 
> stick with power-consumingVista ;) ).
> 
> Thank you in advance for your help and support.
> 
> Regards,
> Sven Barth
> plain text document attachment (dmesg-htc-shift)
> mmc1: new SDIO card at address 0001
> lib80211: common routines for IEEE802.11 drivers
> lib80211_crypt: registered algorithm 'NULL'
> libertas_sdio: Libertas SDIO driver
> libertas_sdio: Copyright Pierre Ossman
> libertas_sdio mmc1:0001:1: firmware: requesting sd8686_helper.bin
> libertas_sdio mmc1:0001:1: firmware: requesting sd8686.bin
> libertas: f3961cc6, fw 9.70.3p18, cap 0x00000303
> libertas: command 0x001e timed out
> libertas: requeueing command 0x001e due to timeout (#1)
> libertas: command 0x001e timed out
> libertas: requeueing command 0x001e due to timeout (#2)
> libertas: command 0x001e timed out
> libertas: requeueing command 0x001e due to timeout (#3)
> mmc1: Timeout waiting for hardware interrupt.
> sdhci: ============== REGISTER DUMP ==============
> sdhci: Sys addr: 0x3385c6e8 | Version:  0x00000111
> sdhci: Blk size: 0x00007014 | Blk cnt:  0x00000001
> sdhci: Argument: 0x92000014 | Trn mode: 0x00000003
> sdhci: Present:  0x01f70506 | Host ctl: 0x00000003
> sdhci: Power:    0x0000000f | Blk gap:  0x00000000
> sdhci: Wake-up:  0x00000000 | Clock:    0x00000007
> sdhci: Timeout:  0x0000000c | Int stat: 0x00000000
> sdhci: Int enab: 0x00ff01fb | Sig enab: 0x00ff01fb
> sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
> sdhci: Caps:     0x01e011a1 | Max curr: 0x00000080
> sdhci: ===========================================
> libertas: command 0x001e timed out
> libertas: Excessive timeouts submitting command 0x001e
> libertas: PREP_CMD: command 0x001e failed: -110
> ------------[ cut here ]------------
> kernel BUG at mm/slub.c:2743!
> invalid opcode: 0000 [#1] PREEMPT SMP 
> last sysfs file: /sys/class/power_supply/BAT0/charge_full
> Modules linked in: libertas_sdio(+) libertas lib80211 mmc_block i915 drm ipv6 fuse uvcvideo compat_ioctl32 videodev v4l1_compat psmouse i2c_i801 pcspkr iTCO_wdt iTCO_vendor_support i2c_core serio_raw sdhci_pci sdhci sg mmc_core video output uhci_hcd ehci_hcd usbcore intel_agp agpgart thermal snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device evdev processor fan joydev button battery ac htcpen snd_hda_intel snd_hwdep snd_pcm_oss snd_pcm snd_timer snd_page_alloc snd_mixer_oss snd soundcore rtc_cmos rtc_core rtc_lib ext3 jbd mbcache sd_mod ata_piix ata_generic pata_acpi libata scsi_mod
> 
> Pid: 16540, comm: modprobe Not tainted (2.6.28-ARCH #1) Shift
> EIP: 0060:[<c018efaa>] EFLAGS: 00010246 CPU: 0
> EIP is at kfree+0xda/0xe0
> EAX: 40040000 EBX: f39c0500 ECX: 00000058 EDX: c1673800
> ESI: f39c0500 EDI: 00000000 EBP: 00000000 ESP: f3961d00
>  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
> Process modprobe (pid: 16540, ti=f3960000 task=f6a36800 task.ti=f3960000)
> Stack:
>  00000000 c017132d f3980000 f39c0500 00000000 00000000 f86266ac f3961d60
>  f8626f8c f3961d5c 00000038 00000010 f390af44 f3961d50 f68e0600 00000000
>  f82ef99c f8a9fc90 f6a3e000 00000000 f39630c0 00000000 00000000 0000000b
> Call Trace:
>  [<c017132d>] put_page+0x5d/0x110
>  [<f86266ac>] if_sdio_probe+0x58c/0x870 [libertas_sdio]
>  [<f823746f>] sdio_bus_probe+0x9f/0xc0 [mmc_core]
>  [<c027e756>] driver_probe_device+0x86/0x1a0
>  [<c011ff45>] default_spin_lock_flags+0x5/0x10
>  [<c032bdce>] _spin_lock_irqsave+0x3e/0x60
>  [<c027e8f9>] __driver_attach+0x89/0x90
>  [<f8237370>] sdio_bus_remove+0x0/0x60 [mmc_core]
>  [<c027e084>] bus_for_each_dev+0x44/0x70
>  [<f8237370>] sdio_bus_remove+0x0/0x60 [mmc_core]
>  [<c027e5e6>] driver_attach+0x16/0x20
>  [<c027e870>] __driver_attach+0x0/0x90
>  [<c027da17>] bus_add_driver+0x1a7/0x220
>  [<f8237370>] sdio_bus_remove+0x0/0x60 [mmc_core]
>  [<c027ea8c>] driver_register+0x5c/0x130
>  [<c0329112>] printk+0x17/0x1d
>  [<f827e000>] if_sdio_init_module+0x0/0x28 [libertas_sdio]
>  [<c0101126>] do_one_initcall+0x36/0x1c0
>  [<c0182630>] __vunmap+0xb0/0xe0
>  [<c0158337>] load_module+0x1577/0x1950
>  [<f8237d80>] sdio_writeb+0x0/0x50 [mmc_core]
>  [<c015885b>] sys_init_module+0x8b/0x1b0
>  [<c0103f13>] sysenter_do_call+0x12/0x33
> Code: 8b 01 8b 51 0c 89 04 93 89 19 eb c2 f6 c4 60 74 1a 8b 5c 24 08 89 d0 8b 74 24 0c 8b 7c 24 10 8b 6c 24 14 83 c4 18 e9 26 23 fe ff <0f> 0b eb fe 66 90 83 e8 60 e9 18 ff ff ff 90 8d b4 26 00 00 00 
> EIP: [<c018efaa>] kfree+0xda/0xe0 SS:ESP 0068:f3961d00
> ---[ end trace f44bcfd847cbebcd ]---
> _______________________________________________
> libertas-dev mailing list
> libertas-dev at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/libertas-dev




More information about the libertas-dev mailing list