linux/include
Bruno Randolf 566bfe5a8b mac80211: use hardware flags for signal/noise units
trying to clean up the signal/noise code. the previous code in mac80211 had
confusing names for the related variables, did not have much definition of
what units of signal and noise were provided and used implicit mechanisms from
the wireless extensions.

this patch introduces hardware capability flags to let the hardware specify
clearly if it can provide signal and noise level values and which units it can
provide. this also anticipates possible new units like RCPI in the future.

for signal:

  IEEE80211_HW_SIGNAL_UNSPEC - unspecified, unknown, hw specific
  IEEE80211_HW_SIGNAL_DB     - dB difference to unspecified reference point
  IEEE80211_HW_SIGNAL_DBM    - dBm, difference to 1mW

for noise we currently only have dBm:

  IEEE80211_HW_NOISE_DBM     - dBm, difference to 1mW

if IEEE80211_HW_SIGNAL_UNSPEC or IEEE80211_HW_SIGNAL_DB is used the driver has
to provide the maximum value (max_signal) it reports in order for applications
to make sense of the signal values.

i tried my best to find out for each driver what it can provide and update it
but i'm not sure (?) for some of them and used the more conservative guess in
doubt. this can be fixed easily after this patch has been merged by changing
the hardware flags of the driver.

DRIVER          SIGNAL    MAX	NOISE   QUAL
-----------------------------------------------------------------
adm8211         unspec(?) 100   n/a     missing
at76_usb        unspec(?) (?)   unused  missing
ath5k           dBm             dBm     percent rssi
b43legacy       dBm             dBm     percent jssi(?)
b43             dBm             dBm     percent jssi(?)
iwl-3945        dBm             dBm     percent snr+more
iwl-4965        dBm             dBm     percent snr+more
p54             unspec    127   n/a     missing
rt2x00          dBm	        n/a     percent rssi+tx/rx frame success
  rt2400        dBm             n/a
  rt2500pci     dBm             n/a
  rt2500usb     dBm             n/a
  rt61pci       dBm             n/a
  rt73usb       dBm             n/a
rtl8180         unspec(?) 65    n/a     (?)
rtl8187         unspec(?) 65    (?)     noise(?)
zd1211          dB(?)     100   n/a     percent

drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD

Signed-off-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-05-14 16:29:49 -04:00
..
acpi
asm-alpha fix asm-alpha/types.h breakage 2008-05-04 14:45:55 -07:00
asm-arm arm: types: use <asm-generic/int-*.h> for the arm architecture 2008-05-02 16:18:20 -07:00
asm-avr32 avr32: types: use <asm-generic/int-*.h> for the avr32 architecture 2008-05-02 16:18:20 -07:00
asm-blackfin blackfin: types: use <asm-generic/int-*.h> for the blackfin architecture 2008-05-02 16:18:20 -07:00
asm-cris cris: types: use <asm-generic/int-*.h> for the cris architecture 2008-05-02 16:18:20 -07:00
asm-frv frv: types: use <asm-generic/int-*.h> for the frv architecture 2008-05-02 16:18:20 -07:00
asm-generic types: add C99-style constructors to <asm-generic/int-*.h> 2008-05-02 16:18:42 -07:00
asm-h8300 h8300: types: use <asm-generic/int-*.h> for the h8300 architecture 2008-05-02 16:18:21 -07:00
asm-ia64 ia64: types: use <asm-generic/int-*.h> for the ia64 architecture 2008-05-02 16:18:21 -07:00
asm-m32r m32r: types: use <asm-generic/int-*.h> for the m32r architecture 2008-05-02 16:18:21 -07:00
asm-m68k m68k: types: use <asm-generic/int-*.h> for the m68k architecture 2008-05-02 16:18:28 -07:00
asm-m68knommu
asm-mips fix asm-mips/types.h syntax error 2008-05-04 14:45:55 -07:00
asm-mn10300 mn10300: types: use <asm-generic/int-*.h> for the mn10300 architecture 2008-05-02 16:18:31 -07:00
asm-parisc parisc: types: use <asm-generic/int-*.h> for the parisc architecture 2008-05-02 16:18:32 -07:00
asm-powerpc KVM: ppc: Handle guest idle by emulating MSR[WE] writes 2008-05-04 14:44:44 +03:00
asm-ppc
asm-s390 s390: types: use <asm-generic/int-*.h> for the s390 architecture 2008-05-02 16:18:40 -07:00
asm-sh sh: types: use <asm-generic/int-*.h> for the sh architecture 2008-05-02 16:18:40 -07:00
asm-sparc Merge git://git.kernel.org/pub/scm/linux/kernel/git/hpa/linux-2.6-inttypes 2008-05-03 10:54:23 -07:00
asm-sparc64 sparc64: types: use <asm-generic/int-*.h> for the sparc64 architecture 2008-05-02 16:18:41 -07:00
asm-um
asm-v850 v850: types: use <asm-generic/int-*.h> for the v850 architecture 2008-05-02 16:18:41 -07:00
asm-x86 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86-fixes 2008-05-04 17:11:43 -07:00
asm-xtensa xtensa: types: use <asm-generic/int-*.h> for the xtensa architecture 2008-05-02 16:18:42 -07:00
crypto
keys
linux mac80211: remove unnecessary byteshifts in frame control testing 2008-05-14 16:29:32 -04:00
math-emu
media
mtd
net mac80211: use hardware flags for signal/noise units 2008-05-14 16:29:49 -04:00
pcmcia
rdma
rxrpc
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2008-05-02 13:52:35 -07:00
sound
video
xen
Kbuild