2013-06-27 08:12:40

by Maxime Ripard

[permalink] [raw]
Subject: RTL8192CU on ARM not working

Hi everyone,

I'm currently trying to use a RTL8192CU on an ARM (Freescale imx28,
armv5) platform, using 3.10-rc3.

Trouble is, while the chip is correctly detected and you can use iw on it
without any problem it seems, once you start an association to an access
point, the association goes on, seems to associate, displaying a WARN()
message [1] and then, after what looks like a random amount of time (could
be right away, could be after a few minutes), deassociate [2].

During the time where it's associated, we never seem to transmit any
packets, while iw reports packets being sent, I guess we can assume that
they are actually never transmitted as well [3].

What seems odd to me as well is that the signal power reported for the access
point is excessively high when using iw scan (10 dbm), and once connected, the
signal strength is -64dbm, which makes quite a huge difference.

Do you have any suggestions on how to solve this issue?

Thanks,
Maxime


[1]:
# iw wlan0 connect FreeWifi 2447
# [ 485.010858] wlan0: authenticate with f4:ca:e5:c9:f5:91
[ 485.065514] wlan0: send auth to f4:ca:e5:c9:f5:91 (try 1/3)
[ 485.075963] wlan0: authenticated
[ 485.088915] wlan0: associate with f4:ca:e5:c9:f5:91 (try 1/3)
[ 485.117137] wlan0: RX AssocResp from f4:ca:e5:c9:f5:91 (capab=0x401 status=0 aid=1)
[ 485.130607] wlan0: associated
[ 486.917555] ------------[ cut here ]------------
[ 486.922277] WARNING: at kernel/workqueue.c:1365 __queue_work+0x1f0/0x2f4()
[ 486.929175] Modules linked in:
[ 486.932284] CPU: 0 PID: 615 Comm: kworker/0:2 Not tainted 3.10.0-rc3 #2
[ 486.938958] Workqueue: rtl92c_usb rtl_watchdog_wq_callback
[ 486.944548] [<c00147dc>] (unwind_backtrace+0x0/0xf0) from [<c00120a0>] (show_stack+0x10/0x14)
[ 486.953132] [<c00120a0>] (show_stack+0x10/0x14) from [<c001d2ec>] (warn_slowpath_common+0x4c/0x68)
[ 486.962140] [<c001d2ec>] (warn_slowpath_common+0x4c/0x68) from [<c001d324>] (warn_slowpath_null+0x1c/0x24)
[ 486.971844] [<c001d324>] (warn_slowpath_null+0x1c/0x24) from [<c003769c>] (__queue_work+0x1f0/0x2f4)
[ 486.981025] [<c003769c>] (__queue_work+0x1f0/0x2f4) from [<c0037830>] (queue_work_on+0x80/0x88)
[ 486.989777] [<c0037830>] (queue_work_on+0x80/0x88) from [<c0267ca4>] (rtl_watchdog_wq_callback+0x5dc/0x8bc)
[ 486.999572] [<c0267ca4>] (rtl_watchdog_wq_callback+0x5dc/0x8bc) from [<c0038cbc>] (process_one_work+0x1c0/0x4c8)
[ 487.009795] [<c0038cbc>] (process_one_work+0x1c0/0x4c8) from [<c0039684>] (worker_thread+0x140/0x3ac)
[ 487.019065] [<c0039684>] (worker_thread+0x140/0x3ac) from [<c003f914>] (kthread+0xa4/0xb0)
[ 487.027381] [<c003f914>] (kthread+0xa4/0xb0) from [<c000f0c0>] (ret_from_fork+0x14/0x34)
[ 487.035498] ---[ end trace 93341a0c249e647e ]---


[2]:

# [ 786.086127] wlan0: deauthenticated from f4:ca:e5:c9:f5:91 (Reason: 2)
[ 786.126368] cfg80211: Calling CRDA to update world regulatory domain


[3]:
# iw wlan0 station dump
Station f4:ca:e5:c9:f5:91 (on wlan0)
inactive time: 55430 ms
rx bytes: 77826
rx packets: 1026
tx packets: 2
tx retries: 0
tx failed: 0
signal: -64 dBm
signal avg: -63 dBm
tx bitrate: 1.0 MBit/s
authorized: yes
authenticated: yes
preamble: long
WMM/WME: yes
MFP: no
TDLS peer: no


--
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com


Attachments:
(No filename) (3.24 kB)
signature.asc (836.00 B)
Digital signature
Download all attachments

2013-06-27 14:45:38

by Larry Finger

[permalink] [raw]
Subject: Re: RTL8192CU on ARM not working

On 06/27/2013 03:12 AM, Maxime Ripard wrote:
> Hi everyone,
>
> I'm currently trying to use a RTL8192CU on an ARM (Freescale imx28,
> armv5) platform, using 3.10-rc3.
>
> Trouble is, while the chip is correctly detected and you can use iw on it
> without any problem it seems, once you start an association to an access
> point, the association goes on, seems to associate, displaying a WARN()
> message [1] and then, after what looks like a random amount of time (could
> be right away, could be after a few minutes), deassociate [2].
>
> During the time where it's associated, we never seem to transmit any
> packets, while iw reports packets being sent, I guess we can assume that
> they are actually never transmitted as well [3].
>
> What seems odd to me as well is that the signal power reported for the access
> point is excessively high when using iw scan (10 dbm), and once connected, the
> signal strength is -64dbm, which makes quite a huge difference.

That warning is under discussion. See the thread entitled "rtl8192cu: slow path
warning" in the linux-wireless ML. I will add you to the Cc list on those messages.

You should switch to kernel 3.10-rc7. There are a lot of changes to rtl8192cu in
that version that are not in -rc3. Those updates mostly affect WPA and WEP
encryption.

I never take signal power values seriously. Just observe the comments scattered
throughout the code regarding them.

Larry


2013-06-27 12:13:53

by Richard Genoud

[permalink] [raw]
Subject: Re: RTL8192CU on ARM not working

2013/6/27 Maxime Ripard <[email protected]>:
> Hi everyone,
>
> I'm currently trying to use a RTL8192CU on an ARM (Freescale imx28,
> armv5) platform, using 3.10-rc3.
>
> Trouble is, while the chip is correctly detected and you can use iw on it
> without any problem it seems, once you start an association to an access
> point, the association goes on, seems to associate, displaying a WARN()
> message [1] and then, after what looks like a random amount of time (could
> be right away, could be after a few minutes), deassociate [2].
>
> During the time where it's associated, we never seem to transmit any
> packets, while iw reports packets being sent, I guess we can assume that
> they are actually never transmitted as well [3].
>
> What seems odd to me as well is that the signal power reported for the access
> point is excessively high when using iw scan (10 dbm), and once connected, the
> signal strength is -64dbm, which makes quite a huge difference.
>
> Do you have any suggestions on how to solve this issue?
>
> Thanks,
> Maxime
>
>
> [1]:
> # iw wlan0 connect FreeWifi 2447
> # [ 485.010858] wlan0: authenticate with f4:ca:e5:c9:f5:91
> [ 485.065514] wlan0: send auth to f4:ca:e5:c9:f5:91 (try 1/3)
> [ 485.075963] wlan0: authenticated
> [ 485.088915] wlan0: associate with f4:ca:e5:c9:f5:91 (try 1/3)
> [ 485.117137] wlan0: RX AssocResp from f4:ca:e5:c9:f5:91 (capab=0x401 status=0 aid=1)
> [ 485.130607] wlan0: associated
> [ 486.917555] ------------[ cut here ]------------
> [ 486.922277] WARNING: at kernel/workqueue.c:1365 __queue_work+0x1f0/0x2f4()
> [ 486.929175] Modules linked in:
> [ 486.932284] CPU: 0 PID: 615 Comm: kworker/0:2 Not tainted 3.10.0-rc3 #2
> [ 486.938958] Workqueue: rtl92c_usb rtl_watchdog_wq_callback
> [ 486.944548] [<c00147dc>] (unwind_backtrace+0x0/0xf0) from [<c00120a0>] (show_stack+0x10/0x14)
> [ 486.953132] [<c00120a0>] (show_stack+0x10/0x14) from [<c001d2ec>] (warn_slowpath_common+0x4c/0x68)
> [ 486.962140] [<c001d2ec>] (warn_slowpath_common+0x4c/0x68) from [<c001d324>] (warn_slowpath_null+0x1c/0x24)
> [ 486.971844] [<c001d324>] (warn_slowpath_null+0x1c/0x24) from [<c003769c>] (__queue_work+0x1f0/0x2f4)
> [ 486.981025] [<c003769c>] (__queue_work+0x1f0/0x2f4) from [<c0037830>] (queue_work_on+0x80/0x88)
> [ 486.989777] [<c0037830>] (queue_work_on+0x80/0x88) from [<c0267ca4>] (rtl_watchdog_wq_callback+0x5dc/0x8bc)
> [ 486.999572] [<c0267ca4>] (rtl_watchdog_wq_callback+0x5dc/0x8bc) from [<c0038cbc>] (process_one_work+0x1c0/0x4c8)
> [ 487.009795] [<c0038cbc>] (process_one_work+0x1c0/0x4c8) from [<c0039684>] (worker_thread+0x140/0x3ac)
> [ 487.019065] [<c0039684>] (worker_thread+0x140/0x3ac) from [<c003f914>] (kthread+0xa4/0xb0)
> [ 487.027381] [<c003f914>] (kthread+0xa4/0xb0) from [<c000f0c0>] (ret_from_fork+0x14/0x34)
> [ 487.035498] ---[ end trace 93341a0c249e647e ]---
>
>
> [2]:
>
> # [ 786.086127] wlan0: deauthenticated from f4:ca:e5:c9:f5:91 (Reason: 2)
> [ 786.126368] cfg80211: Calling CRDA to update world regulatory domain
>
>
> [3]:
> # iw wlan0 station dump
> Station f4:ca:e5:c9:f5:91 (on wlan0)
> inactive time: 55430 ms
> rx bytes: 77826
> rx packets: 1026
> tx packets: 2
> tx retries: 0
> tx failed: 0
> signal: -64 dBm
> signal avg: -63 dBm
> tx bitrate: 1.0 MBit/s
> authorized: yes
> authenticated: yes
> preamble: long
> WMM/WME: yes
> MFP: no
> TDLS peer: no

Hi Maxime,

You should have a look at https://lkml.org/lkml/2013/6/11/300
(in short, use 3.10-rc7)

The warning is still there, but I managed use this device on ARM
(sam9g35) as a client.

Regards,
Richard

2013-06-28 13:40:13

by Maxime Ripard

[permalink] [raw]
Subject: Re: RTL8192CU on ARM not working

Hi Richard, Larry,

On Thu, Jun 27, 2013 at 02:13:31PM +0200, Richard Genoud wrote:
> 2013/6/27 Maxime Ripard <[email protected]>:
> > Hi everyone,
> >
> > I'm currently trying to use a RTL8192CU on an ARM (Freescale imx28,
> > armv5) platform, using 3.10-rc3.
> >
> > Trouble is, while the chip is correctly detected and you can use iw on it
> > without any problem it seems, once you start an association to an access
> > point, the association goes on, seems to associate, displaying a WARN()
> > message [1] and then, after what looks like a random amount of time (could
> > be right away, could be after a few minutes), deassociate [2].
> >
> > During the time where it's associated, we never seem to transmit any
> > packets, while iw reports packets being sent, I guess we can assume that
> > they are actually never transmitted as well [3].
> >
> > What seems odd to me as well is that the signal power reported for the access
> > point is excessively high when using iw scan (10 dbm), and once connected, the
> > signal strength is -64dbm, which makes quite a huge difference.
> >
> > Do you have any suggestions on how to solve this issue?
> >
> > Thanks,
> > Maxime
> >
> >
> > [1]:
> > # iw wlan0 connect FreeWifi 2447
> > # [ 485.010858] wlan0: authenticate with f4:ca:e5:c9:f5:91
> > [ 485.065514] wlan0: send auth to f4:ca:e5:c9:f5:91 (try 1/3)
> > [ 485.075963] wlan0: authenticated
> > [ 485.088915] wlan0: associate with f4:ca:e5:c9:f5:91 (try 1/3)
> > [ 485.117137] wlan0: RX AssocResp from f4:ca:e5:c9:f5:91 (capab=0x401 status=0 aid=1)
> > [ 485.130607] wlan0: associated
> > [ 486.917555] ------------[ cut here ]------------
> > [ 486.922277] WARNING: at kernel/workqueue.c:1365 __queue_work+0x1f0/0x2f4()
> > [ 486.929175] Modules linked in:
> > [ 486.932284] CPU: 0 PID: 615 Comm: kworker/0:2 Not tainted 3.10.0-rc3 #2
> > [ 486.938958] Workqueue: rtl92c_usb rtl_watchdog_wq_callback
> > [ 486.944548] [<c00147dc>] (unwind_backtrace+0x0/0xf0) from [<c00120a0>] (show_stack+0x10/0x14)
> > [ 486.953132] [<c00120a0>] (show_stack+0x10/0x14) from [<c001d2ec>] (warn_slowpath_common+0x4c/0x68)
> > [ 486.962140] [<c001d2ec>] (warn_slowpath_common+0x4c/0x68) from [<c001d324>] (warn_slowpath_null+0x1c/0x24)
> > [ 486.971844] [<c001d324>] (warn_slowpath_null+0x1c/0x24) from [<c003769c>] (__queue_work+0x1f0/0x2f4)
> > [ 486.981025] [<c003769c>] (__queue_work+0x1f0/0x2f4) from [<c0037830>] (queue_work_on+0x80/0x88)
> > [ 486.989777] [<c0037830>] (queue_work_on+0x80/0x88) from [<c0267ca4>] (rtl_watchdog_wq_callback+0x5dc/0x8bc)
> > [ 486.999572] [<c0267ca4>] (rtl_watchdog_wq_callback+0x5dc/0x8bc) from [<c0038cbc>] (process_one_work+0x1c0/0x4c8)
> > [ 487.009795] [<c0038cbc>] (process_one_work+0x1c0/0x4c8) from [<c0039684>] (worker_thread+0x140/0x3ac)
> > [ 487.019065] [<c0039684>] (worker_thread+0x140/0x3ac) from [<c003f914>] (kthread+0xa4/0xb0)
> > [ 487.027381] [<c003f914>] (kthread+0xa4/0xb0) from [<c000f0c0>] (ret_from_fork+0x14/0x34)
> > [ 487.035498] ---[ end trace 93341a0c249e647e ]---
> >
> >
> > [2]:
> >
> > # [ 786.086127] wlan0: deauthenticated from f4:ca:e5:c9:f5:91 (Reason: 2)
> > [ 786.126368] cfg80211: Calling CRDA to update world regulatory domain
> >
> >
> > [3]:
> > # iw wlan0 station dump
> > Station f4:ca:e5:c9:f5:91 (on wlan0)
> > inactive time: 55430 ms
> > rx bytes: 77826
> > rx packets: 1026
> > tx packets: 2
> > tx retries: 0
> > tx failed: 0
> > signal: -64 dBm
> > signal avg: -63 dBm
> > tx bitrate: 1.0 MBit/s
> > authorized: yes
> > authenticated: yes
> > preamble: long
> > WMM/WME: yes
> > MFP: no
> > TDLS peer: no
>
> Hi Maxime,
>
> You should have a look at https://lkml.org/lkml/2013/6/11/300
> (in short, use 3.10-rc7)
>
> The warning is still there, but I managed use this device on ARM
> (sam9g35) as a client.

Indeed, the client mode works way better with 3.10-rc7.

Thanks to you two!
Maxime

--
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com


Attachments:
(No filename) (4.12 kB)
signature.asc (836.00 B)
Digital signature
Download all attachments