Re: smsc911x on Gumstix Overo/Tobi doesn't work

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 19.03.2012 23:51, schrieb Tony Lindgren:
> * Thomas Klute <thomas2.klute@xxxxxxxxxxxxxxx> [120319 09:26]:
>> Am 16.03.2012 20:33, schrieb Tony Lindgren:
>>> Hi,
>>>
>>> * Thomas Klute <thomas2.klute@xxxxxxxxxxxxxxx> [120316 05:08]:
>>>> Hi,
>>>>
>>>> I have trouble getting the Ethernet port on a Gumstix Overo with Tobi
>>>> expansion board to work with current kernel versions. With the latest
>>>> commit from linux-omap git (b8fe1781ec8bed5e086691a827a6ee11facec2aa),
>>>> the output from loading the smsc911x driver is as follows:
>>>>
>>>> du14:~# modprobe smsc911x
>>>> [  254.843811] smsc911x: Driver version 2008-10-21
>>>> [  254.854553] smsc911x: Driver version 2008-10-21
>>>> [  254.859588] _regulator_get: smsc911x.1 supply vdd33a not found, using
>>>> dummy regulator
>>>> [  254.868377] _regulator_get: smsc911x.1 supply vddvario not found,
>>>> using dummy regulator
>>>>
>>>> "ip link show" does not show any available Ethernet port.
>>>
>>> The first instance one should work the same way as earlier using
>>> fixed regulator in gpmc-smsc911x.c. Is it not working for you
>>> somehow? At least it works for me on zoom3.
>>
>> The Tobi board has only one Ethernet port.
>>
>>>> I know there has been some trouble with changes around smsc911x
>>>> regulator support and Gumstix Overo in particular. Am I just missing the
>>>> right regulator in my kernel config or is this a bug? I can test patches
>>>> in the latter case.
>>>
>>> The second smsc911x now needs a regulator. For multiple smsc911x instances,
>>> we should change things around so no regulator is created if one
>>> is passed.
>>>
>>> Care to test the following patch by passing a fixed regulator
>>> from board-overo.c?
>>
>> After applying the patch the Ethernet port works consistently once I had
>> done a cold boot (reboot from the unpatched kernel did not work).
>> Thank you!
> 
> Hmm but this patch should not change the behaviour for the first smsc911x
> instance unless you specify a custom regulator.. Did you patch in a
> custom regulator, or do we have a bug somewhere? Or do you just need to
> do a cold reset without the patch I posted?

You're right, during further tests I found that the problem lies
elsewhere: If the Ethernet cable is attached on modprobe, the device
works as expected, if not, it's not found (with or without the patch).
This means if I boot with the cable disconnected, the device won't show
up, but after

# modprobe -r smsc911x
[attach cable]
# modprobe smsc911x

it will work. I'd still consider this a bug, but it doesn't seem to be a
regulator problem.

>> However, I noticed another problem while testing the patch (not sure if
>> it occurs with the previous version, I can check if that helps): A NULL
>> pointer dereference occurs when unloading the module, see attached log.
> 
> Yes please do check, that needs to be fixed.

The NULL pointer dereference occurs with the unpatched kernel as well.
I've attached the log, although I don't see a major difference to the
one from the patched kernel. Note that this only happens when the driver
works properly (that is, eth0 is usable). I can unload the driver
without problems if it is not working as described above.

Regards,
Thomas
[  286.276245] Unable to handle kernel NULL pointer dereference at virtual address 0000073c
[  286.285308] pgd = ce744000
[  286.288818] [0000073c] *pgd=00000000
[  286.293151] Internal error: Oops: 5 [#1]
[  286.297271] Modules linked in: ipt_MASQUERADE xt_tcpudp iptable_nat nf_nat nf_conntrack_ipv4 nf_conntrack nf_defrag_ipv4 ip_tables x_tables snd_soc_twl4030 ath9k_htc ath9k_common ath9k_hw carl9170 ath ohci_hcd smsc libertas_sdio libertas snd_soc_core regmap_spi regmap_i2c snd_pcm snd_timer smsc911x(-) ehci_hcd snd soundcore snd_page_alloc twl4030_usb
[  286.330047] CPU: 0    Tainted: G        W     (3.3.0-rc7-11899-gb8fe178 #102)
[  286.337554] PC is at regulator_bulk_disable+0x18/0x90
[  286.342895] LR is at smsc911x_drv_remove+0xd4/0xf4 [smsc911x]
[  286.348907] pc : [<c02395fc>]    lr : [<bf03c9cc>]    psr: 80000013
[  286.348907] sp : ce6c7ed8  ip : 00000002  fp : becdfdb4
[  286.360961] r10: 00000738  r9 : ce6c6000  r8 : 00000002
[  286.366424] r7 : cec85408  r6 : 00000738  r5 : cec85400  r4 : 00000000
[  286.373260] r3 : ce628bc0  r2 : 00000000  r1 : 00000738  r0 : 00000002
[  286.380096] Flags: Nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[  286.387603] Control: 10c5387d  Table: 8e744019  DAC: 00000015
[  286.393615] Process modprobe (pid: 2393, stack limit = 0xce6c62f0)
[  286.400085] Stack: (0xce6c7ed8 to 0xce6c8000)
[  286.404663] 7ec0:                                                       ce628bc0 ce615800
[  286.413238] 7ee0: cec85400 00000000 cec85408 c000d484 00000000 bf03c9cc bf03c8f8 cec85408
[  286.421813] 7f00: bf03e6dc cec8543c 00000081 c02618d0 c02618bc c026041c cec85408 bf03e6dc
[  286.430389] 7f20: cec8543c c02609f0 bf03e6dc 00000000 c0664b08 c02602f8 bf03e718 00000000
[  286.438995] 7f40: b6f581b0 c0064db0 ce484488 63736d73 78313139 c00a3b00 ce628bc0 00000001
[  286.447570] 7f60: 00000000 ce628bc0 00000001 c000d3d4 00000081 60000010 b6f58208 becdfdc0
[  286.456146] 7f80: becdfdb4 0005e8c8 b6f58180 b6f58180 b6f581b0 00000000 b6f58180 b6f58180
[  286.464721] 7fa0: b6f581b0 c000d2c0 b6f58180 b6f58180 b6f581b0 00000000 b6f57000 00000000
[  286.473297] 7fc0: b6f58180 b6f58180 b6f581b0 00000081 00000000 b6f58208 becdfdc0 becdfdb4
[  286.481872] 7fe0: 00000000 becde990 b6f40988 b6e6eb5c 60000010 b6f581b0 8f2fe821 8f2fec21
[  286.490478] [<c02395fc>] (regulator_bulk_disable+0x18/0x90) from [<bf03c9cc>] (smsc911x_drv_remove+0xd4/0xf4 [smsc911x])
[  286.501922] [<bf03c9cc>] (smsc911x_drv_remove+0xd4/0xf4 [smsc911x]) from [<c02618d0>] (platform_drv_remove+0x14/0x18)
[  286.513061] [<c02618d0>] (platform_drv_remove+0x14/0x18) from [<c026041c>] (__device_release_driver+0x7c/0xbc)
[  286.523590] [<c026041c>] (__device_release_driver+0x7c/0xbc) from [<c02609f0>] (driver_detach+0x8c/0xb4)
[  286.533538] [<c02609f0>] (driver_detach+0x8c/0xb4) from [<c02602f8>] (bus_remove_driver+0x8c/0xb4)
[  286.542938] [<c02602f8>] (bus_remove_driver+0x8c/0xb4) from [<c0064db0>] (sys_delete_module+0x1ec/0x280)
[  286.552917] [<c0064db0>] (sys_delete_module+0x1ec/0x280) from [<c000d2c0>] (ret_fast_syscall+0x0/0x3c)
[  286.562683] Code: e1a06001 e1a0a001 e3a04000 ea000006 (e59a0004) 
[  286.571838] ---[ end trace f0a226828d962479 ]---
Speicherzugriffsfehler

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux