sd8686 driver: scanning signal quality problems

Bug #221203 reported by Tony Espy
16
Affects Status Importance Assigned to Milestone
Moblin Kernel
Triaged
Low
Don Johnson

Bug Description

The Marvell sd8686 driver always reports a signal quality of 0 for returned scan results.

This effects the gnome-system-tools network-admin application which uses signal quality to display bar graphs to the user ( which all end up reading 0% ).

There are three ways to reproduce:

1. Follow the instructions in bug: https://bugs.launchpad.net/acton/+bug/221181

2. Run the following command as root:

iwlist wlan0 scan

notice that all the signal strengths are listed as 0/100.

3. Write a sample program which uses the SIOCGIWSCAN ioctl to scan... note, there's a fair amount of code to write to verify the bug using this method. Examples can be found in NetworkManager, wpa_supplicant and gnome-system-tools.

Tags: intel
alek du (alek-du)
Changed in moblin-kernel:
assignee: nobody → feng-tang
importance: Undecided → Low
milestone: none → m11
status: New → Triaged
Revision history for this message
Pat McGowan (pat-mcgowan) wrote :

Updating status for acton to critical as the driver is not providing standard information used in the UI. Need to schedule meeting to discuss resolution plan.

Changed in acton:
importance: Undecided → Critical
milestone: none → beta2
Revision history for this message
Feng Tang (feng-tang) wrote :

I checked the code, and found Marvell original code always return 0 for the "quality". I have pinged Marvell for this, no response yet.

Revision history for this message
Feng Tang (feng-tang) wrote :

Following is some raw feedback got from Marvell FAE

=======================================================================
=======================================================================

This appears to be a cosmetic bug; in order to look into this I would
need more information from you:
 > The Silicon revision you are using.
 > The Marvell Driver version you are using.

Meanwhile I would recommend you to take a look at alternative command to
"iwconfig" that can give you the link quality information:

iwpriv ethX getSNR <n>
iwpriv ethX getNF <n>
iwpriv ethX getRSSI <n>

The bellow explanation is taken from the README file:

"getSNR
 This command gets the average and non average value of Signal to
Noise Ratio of Beacon and Data.

 where value is:
   0 -- Beacon non-average.
          1 -- Beacon average.
          2 -- Data non-average.
          3 -- Data average.

 If no value is given, all four values are returned in the order
mentioned above.

 Note: This command is available only when STA is connected.

getRSSI
 This command gets the average and non average value os Receive
Signal Strength of Beacon and Data.

 where value is:
   0 -- Beacon non-average.
          1 -- Beacon average.
          2 -- Data non-average.
          3 -- Data average.

 Note: This command is available only when STA is connected.

getNF
 This command gets the average and non average value of Noise
Floor of Beacon and Data.

 where value is:
   0 -- Beacon non-average.
          1 -- Beacon average.
          2 -- Data non-average.
          3 -- Data average.

 Note: This command is available only when STA is connected."

I believe these commands can deliver the information you are looking
for, specially " iwpriv ethX getRSSI <n>"

Revision history for this message
Tony Espy (awe) wrote :

All of the above private ioctls have notes stating:

"This command is available only when the STA is connected."

The signal quality discussed in the bug description is a per-scan result signal quality.

Changed in moblin-kernel:
assignee: feng-tang → johnson
Revision history for this message
Mauri Whalen (mauri-whalen) wrote :

Don - assigning to you.

Changed in moblin-kernel:
assignee: johnson → donald-k-johnson
Revision history for this message
Tony Espy (awe) wrote : Source code details...

The following is an excerpt from an email I sent to Craig Roberts over the weekend that details the source file and line of code that needs to be changed...

The gnome-system-tools network-admin application is using the standard wireless extensions API to get scan results.

Scanning is trigged via the SIOSIWSCAN ioctl.

Scan results can be read via the SIOCGIWSCAN ioctl which triggers a series of wireless events which contain information for each access point found during the scan.

The bug is in both marvell sd868x drivers; in the file wlan_scan.c.

Search for the line:

iwe.cmd = IWEVQUAL;

You'll notice two lines later that quality is set to 0.

iwe.u.qual.qual = 0;

This is the line of code that needs to change. I don't have the details of how quality should be calculated. The following document might help:

http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html

It also might be helpful to look at what some of the other kernel wi-fi drivers do ( or maybe even madwifi.org ).

Revision history for this message
Tony Espy (awe) wrote :
Changed in acton:
status: New → Fix Committed
Revision history for this message
Tony Espy (awe) wrote :

Fix released in rc0.

Changed in acton:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.