rpms/kernel/devel kernel.spec, 1.347, 1.348 linux-2.6-ath5k.patch, 1.10, 1.11 linux-2.6-rtl8180.patch, 1.5, 1.6 linux-2.6-wireless-pending.patch, 1.19, 1.20 linux-2.6-wireless.patch, 1.15, 1.16
John W. Linville (linville)
fedora-extras-commits at redhat.com
Wed Jan 9 02:13:40 UTC 2008
- Previous message (by thread): extras-buildsys/etc plague-builder.config, 1.7, 1.8 plague-builder.init, 1.14, 1.15 plague-server.config, 1.4, 1.5 plague-server.init, 1.9, 1.10
- Next message (by thread): rpms/purple-plugin_pack/devel purple-plugin_pack-2.2.0-switchspell-enchant.patch, NONE, 1.1 purple-plugin_pack.spec, 1.3, 1.4
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: linville
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv24616
Modified Files:
kernel.spec linux-2.6-ath5k.patch linux-2.6-rtl8180.patch
linux-2.6-wireless-pending.patch linux-2.6-wireless.patch
Log Message:
More wireless fixes headed for 2.6.24 ; More wireless updates headed for 2.6.25
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.347
retrieving revision 1.348
diff -u -r1.347 -r1.348
--- kernel.spec 7 Jan 2008 01:17:07 -0000 1.347
+++ kernel.spec 9 Jan 2008 02:12:37 -0000 1.348
@@ -1115,7 +1115,7 @@
ApplyPatch linux-2.6-ata-quirk.patch
# wireless patches headed for 2.6.24
-#ApplyPatch linux-2.6-wireless.patch
+ApplyPatch linux-2.6-wireless.patch
# wireless patches headed for 2.6.25
ApplyPatch linux-2.6-wireless-pending.patch
@@ -1735,6 +1735,10 @@
%kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL} -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf %{with_xen} xen
%changelog
+* Tue Jan 08 2008 John W. Linville <linville at redhat.com>
+- More wireless fixes headed for 2.6.24
+- More wireless updates headed for 2.6.25
+
* Sun Jan 6 2008 Roland McGrath <roland at redhat.com>
- Reenable utrace after pulling current patches that already applied fine.
linux-2.6-ath5k.patch:
Index: linux-2.6-ath5k.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-ath5k.patch,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- linux-2.6-ath5k.patch 4 Jan 2008 21:55:12 -0000 1.10
+++ linux-2.6-ath5k.patch 9 Jan 2008 02:12:37 -0000 1.11
@@ -1,4 +1,15 @@
-commit a09d1e8fd6aaea60578d2cee852ec476da3e6b66
+commit c8b7de755e09acd128db3998747989e1c2b118c8
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date: Fri Dec 21 00:59:04 2007 +0100
+
+ ath5k: don't build by default
+
+ Must have been hubris, everybody needs ath5k, right?
+
+ Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit f4d792831145e8daedcee7d7f2d6b2b902b9a43f
Author: Nick Kossifidis <mick at madwifi.org>
Date: Sun Dec 16 03:11:48 2007 +0200
@@ -11,7 +22,7 @@
Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit b46b4130750fd0e37c677a12382ec679845b07ff
+commit cd408c0f5efb63be272169ecd0b4e4a18622cbfd
Author: Nick Kossifidis <mick at madwifi.org>
Date: Sun Dec 16 03:10:27 2007 +0200
@@ -25,7 +36,7 @@
Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 8d91d68029b494bbcc242633e5ce3fcfbcf10f0a
+commit 4319e64105ae8f7c066e77c5180caa1e8a191648
Author: Nick Kossifidis <mick at madwifi.org>
Date: Sun Dec 16 03:07:33 2007 +0200
@@ -40,7 +51,7 @@
Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 3077d9ecc53b14d946cedd87317a5163e2a66dc9
+commit f2e51a049df5d81e91478f63120a0ce3ade60363
Author: Nick Kossifidis <mick at madwifi.org>
Date: Sun Dec 16 03:03:01 2007 +0200
@@ -52,7 +63,7 @@
Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 528f1b9fa5d46d35ee076ec41860a74fb4d0a801
+commit 98b8b1b4f8b4edae53514f670b931a6e91a6530d
Author: Nick Kossifidis <mick at madwifi.org>
Date: Sun Dec 16 03:01:04 2007 +0200
@@ -64,7 +75,7 @@
Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 41cb0aa95ce0fcade56d267f3804284092360d24
+commit 180a0032ebfc26da729bad8af03ca309849949af
Author: Nick Kossifidis <mick at madwifi.org>
Date: Sun Dec 16 02:58:57 2007 +0200
@@ -76,7 +87,7 @@
Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 8fb46b91e6ed72ccfefa6c3f4850b9b58c1463d1
+commit 014da3fa2471f44befbb28881845fff86b7290ec
Author: Nick Kossifidis <mick at madwifi.org>
Date: Sun Dec 16 02:55:52 2007 +0200
@@ -90,7 +101,7 @@
Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit b6aa459673f61c1288acebec013905a7256f3a5a
+commit 168e6d8c0b6f2cff05b7aa79983ead80e6943eaf
Author: Nick Kossifidis <mick at madwifi.org>
Date: Sun Dec 16 02:53:18 2007 +0200
@@ -102,7 +113,7 @@
Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit a7da8f9d4b256c6014edfe63079c4220e9430e68
+commit 9918e3d8a2cd0a4050203db294a22f974f2bb3d5
Author: Nick Kossifidis <mick at madwifi.org>
Date: Sun Dec 16 02:47:55 2007 +0200
@@ -115,7 +126,7 @@
Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 8e685b758aea2c0e82f41813690e229543af9622
+commit 4cd93d7f382ffd81c87664bc5ef42d323219734c
Author: Bruno Randolf <bruno at thinktube.com>
Date: Fri Dec 14 18:48:57 2007 +0900
@@ -130,7 +141,7 @@
Signed-off-by: Bruno Randolf <bruno at thinktube.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit fc0374171b9f750790b88b795aac3becf4524a92
+commit e1de9954d1bcacbd97c5ca6590a6f371e792d2e1
Author: Bruno Randolf <bruno at thinktube.com>
Date: Mon Dec 10 19:21:17 2007 +0900
@@ -161,7 +172,7 @@
Acked-by: Jiri Slaby <jirislaby at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 73a8222564a86bf9e38470dbfe44a4826c5d3a0a
+commit d27966de73873eaf4acc58fa1efec76914b3c248
Author: Dave Young <hidave.darkstar at gmail.com>
Date: Fri Dec 7 10:12:58 2007 +0800
@@ -175,7 +186,7 @@
Signed-off-by: Dave Young <hidave.darkstar at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 1a54daf7f3963bd1c04cc28500f48280d6c8dcf3
+commit 2b4710b100b5a14ef5cde9d2cc4f6a3a3fc82d45
Author: Francesco Gringoli <francesco.gringoli at ing.unibs.it>
Date: Thu Nov 29 21:39:51 2007 +0100
@@ -191,7 +202,7 @@
Signed-off-by: Francesco Gringoli <francesco.gringoli at ing.unibs.it>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 04f840943842a4870fd1ddd735140dd0ba73f984
+commit b9a3a7961b63f58ecabddd35d26364c77f66e93d
Author: Bruno Randolf <bruno at thinktube.com>
Date: Fri Nov 30 11:26:37 2007 +0900
@@ -211,7 +222,7 @@
Acked-by: Luis R. Rodriguez <mcgrof at winlab.rutgers.edu>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 8003ffec8e1dca7224fd9e2a8adf8e887197c32c
+commit a10add49914144ff6412196b6cffdd778b1ffaa0
Author: Bruno Randolf <bruno at thinktube.com>
Date: Fri Nov 30 11:26:36 2007 +0900
@@ -226,7 +237,7 @@
Acked-by: Luis R. Rodriguez <mcgrof at winlab.rutgers.edu>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 335223282459681668ebb0247530020e777d84f5
+commit f1029b306ec99db87cf1a1906e8d570c2b7f81be
Author: Bruno Randolf <bruno at thinktube.com>
Date: Fri Nov 30 11:26:35 2007 +0900
@@ -249,7 +260,7 @@
Acked-by: Luis R. Rodriguez <mcgrof at winlab.rutgers.edu>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 93be8761d08247a45a095b4d9ebdf16ba0c66b68
+commit 39e8b9ccfa5183bd209e8c650e34b50ace6fae54
Author: Bruno Randolf <bruno at thinktube.com>
Date: Fri Nov 30 11:26:34 2007 +0900
@@ -297,7 +308,7 @@
Acked-by: Nick Kossifidis <mickflemm at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 07700ba6c1fe652f0c0b9ad5b9d6525664740cf4
+commit 78b9bcc8def7f63f3c43d9f065c570a7d6d43ab4
Author: Bruno Randolf <bruno at thinktube.com>
Date: Fri Nov 30 11:26:33 2007 +0900
@@ -331,7 +342,7 @@
Acked-by: Nick Kossifidis <mickflemm at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit fd5be00a58244ffd045c5b5fa1eb4e2279d8c5b3
+commit 93970cff4d723ae4b909a5f2e496f2e056b9f2ef
Author: Nick Kossifidis <mick at madwifi.org>
Date: Wed Nov 14 19:49:49 2007 +0200
@@ -343,7 +354,7 @@
Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit e856715ffedc6b73c546d5f472e4cd876703091d
+commit 7b5fc553e1783b7533b3b69258ba1d633604626c
Author: Nick Kossifidis <mick at madwifi.org>
Date: Wed Nov 14 18:23:59 2007 +0200
@@ -364,7 +375,7 @@
Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 838904d60eeab7d4206451a5503d80a0ef8a2884
+commit f14ab741b4094f8ed12533f4febb49524b0843bb
Author: Nick Kossifidis <mick at madwifi.org>
Date: Wed Nov 14 18:17:37 2007 +0200
@@ -380,7 +391,7 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 93e5669cf00f5323f65303c4ef096e0c8919d292
+commit a1fb4384f3c9e93e3bdf910d8543e1fc0d75a0e7
Author: Nick Kossifidis <mick at madwifi.org>
Date: Wed Nov 14 18:14:40 2007 +0200
@@ -393,7 +404,7 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 41bf49ef5be651dfe06e597389a0237ce5298d20
+commit a059fd5d1987ebea519c7d2d2822926c1c2d08ee
Author: Nick Kossifidis <mick at madwifi.org>
Date: Wed Nov 14 18:11:40 2007 +0200
@@ -411,7 +422,7 @@
Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 1ce29f8277f8d9e44995f81e5986361fbdd87615
+commit 06b26c606786d2265a4d66b01541741b8f06726e
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Fri Nov 2 16:46:38 2007 -0400
@@ -439,7 +450,7 @@
Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 01584d2b0e88eea833c378d4da292f8a7e2a4a49
+commit 07516a921d2874a691b760ae9b9ed6f78b6a15b2
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Thu Nov 1 23:11:31 2007 -0400
@@ -464,7 +475,7 @@
Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 2e046652afab548b98ceee3043173e17cf7f7145
+commit bd0225b26f2e8bc3f776df3f985b141e2a27a240
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Thu Nov 1 17:55:53 2007 -0400
@@ -479,7 +490,7 @@
Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 9b83892f2c0a16f087dc45d7b8a6353c69c0fcfb
+commit a18255049206bc5825fa56953aa619f0a3981189
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Thu Nov 1 17:53:18 2007 -0400
@@ -494,7 +505,7 @@
Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit f75a5a95a1fc5287143afbeb99c0e238ef4cbd79
+commit f3d5e0ae18b14e85c2aaf6dab22b772cfbfb1a16
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Thu Nov 1 00:38:16 2007 -0400
@@ -510,7 +521,7 @@
Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 6f95039ebee8f0d79b940f06bcde1e0711334a83
+commit df19bdfe6ea2878a32b177e0996c3bf8824ac576
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Thu Nov 1 17:50:30 2007 -0400
@@ -530,7 +541,7 @@
Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 012198ddffdb66120528823c73318379b6a59a77
+commit dc3a890b378ab2cb258d122804ba8e4973351de9
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Thu Nov 1 00:35:20 2007 -0400
@@ -550,7 +561,7 @@
Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit e23be3f08baf10d7ded7eab076b68dc6696d230e
+commit 6f56a51c82c42c3de298ef21c7187bbf40e90285
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Thu Nov 1 00:34:24 2007 -0400
@@ -575,7 +586,7 @@
Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 45cededd2df27b8c2a4b7c37a02c7f3830d1d243
+commit adef1b4fb9434fce0b6a036fb027dfb9baeac014
Author: Ulrich Meis <meis at nets.rwth-aachen.de>
Date: Tue Oct 30 22:20:56 2007 +0100
@@ -588,7 +599,7 @@
Signed-off-by: Ulrich Meis <meis at nets.rwth-aachen.de>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 168048516dbf42ca2deb3cd36101f9b76ecdb030
+commit 5f29323196f05b80ac05fc6da8342716a08995e4
Author: Nick Kossifidis <mick at madwifi.org>
Date: Sun Oct 28 02:58:27 2007 +0300
@@ -610,7 +621,7 @@
Signed-Off-by: Nick Kossifidis <mickflemm at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 7ed69f54e345a9897b0b4617311858303e781aff
+commit 727152d1b3d200a963cacd8c2d2b1cb12eb10ea0
Author: Nick Kossifidis <mick at madwifi.org>
Date: Sun Oct 28 02:44:18 2007 +0300
@@ -633,7 +644,7 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 24d2eab68057de8e63d262e84c0ba3a12a69f0c1
+commit 88b3108cf99eb0cd253eb98341f9d0022c02d522
Author: Nick Kossifidis <mick at madwifi.org>
Date: Sun Oct 28 02:31:13 2007 +0300
@@ -654,7 +665,7 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit d17a1cea1bfc35c735f3ebcf1ef823f06389748d
+commit 7b63c1e80c44c5e5669a963c1df01c549db21c00
Author: Nick Kossifidis <mick at madwifi.org>
Date: Sun Oct 28 02:24:59 2007 +0300
@@ -671,7 +682,7 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 85364fdd0649d1590e9ae18d1961c6861b7b9288
+commit 7227484241ea38e341c5953f8793b7903fd82b9b
Author: Nick Kossifidis <mick at madwifi.org>
Date: Sun Oct 28 02:20:33 2007 +0300
@@ -691,7 +702,7 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 73a0794c3746635652f10bcfe99821b3526163b5
+commit 2a12ca036a3058c28b003ce332c2a0e57d0baa18
Author: Nick Kossifidis <mick at madwifi.org>
Date: Sun Oct 28 02:13:32 2007 +0300
@@ -706,7 +717,7 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit e05ef94a6f9a5b2c485f552e46e334a2a4d17d85
+commit d24942d9e24bee128d5eb92cc7ebba25ef1b3588
Author: Nick Kossifidis <mick at madwifi.org>
Date: Sun Oct 28 02:06:42 2007 +0300
@@ -751,7 +762,7 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 4528852951e6ad64171f584f6b685eb802f6293f
+commit 505a5f55ac6a514b9b11e34b11bde89a5dbdbfe3
Author: Nick Kossifidis <mick at madwifi.org>
Date: Sun Oct 28 02:04:25 2007 +0300
@@ -771,7 +782,7 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 1f480e2920877d373e2a547cf53509fc513e02a9
+commit 1cfa5273bfba934b9e651c1b0244ecea9dd9267f
Author: Jiri Slaby <jirislaby at gmail.com>
Date: Fri Oct 19 18:57:13 2007 -0400
@@ -788,7 +799,7 @@
Signed-off-by: Jiri Slaby <jirislaby at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 96a596f082e92fcdf6308b6224104f93e8916394
+commit f05e8574a0f9fe0b8e4e3d407963dd49bca88f3e
Author: John W. Linville <linville at tuxdriver.com>
Date: Tue Oct 23 13:41:37 2007 -0400
@@ -799,7 +810,7 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 05a920250b6385c7eb23a94f0532f94dbd4b6160
+commit 8d981085dde2f01ffe4375abe75d643792bfff3c
Author: Bruno Randolf <bruno at thinktube.com>
Date: Fri Oct 19 23:57:27 2007 +0900
@@ -816,7 +827,7 @@
Signed-off-by: Bruno Randolf <bruno at thinktube.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 14ca910b99e3dc5a1082e7e7b13a2957ffe44fe0
+commit aa72b7a1758c4020c95a0e9922a609992fab34e4
Author: Nick Kossifidis <mick at madwifi.org>
Date: Fri Oct 19 13:56:19 2007 +0000
@@ -834,7 +845,7 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 34edd82ca97a76b921ac52c99f07dbfe324feaae
+commit 6e3ccf09d90d05cee09a050f4e23d107cdcb97a1
Author: mick at ics.forth.gr <mick at ics.forth.gr>
Date: Thu Oct 18 00:18:43 2007 +0300
@@ -848,7 +859,7 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 4c367a11d4502a6e54fa64514cee61c67be9b411
+commit 80785589d7d1ae2199f575479775711da732f454
Author: mick at ics.forth.gr <mick at ics.forth.gr>
Date: Thu Oct 18 00:17:12 2007 +0300
@@ -864,7 +875,7 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 4472d002f92b4365184acd6d38e4e417afd5b857
+commit 4766bd970128740cb44eb7a25197797b019197be
Author: mick at ics.forth.gr <mick at ics.forth.gr>
Date: Thu Oct 18 00:13:26 2007 +0300
@@ -883,7 +894,7 @@
Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 9d0d2389d863cc3ef433e5103bd6d37f7a5bc983
+commit 8d9d5b5d7bb9463e9cb5ad11957935dda4840361
Author: John W. Linville <linville at tuxdriver.com>
Date: Wed Oct 17 15:01:48 2007 -0400
@@ -895,7 +906,7 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 4cdfeb9398897c3969f89a8d32ad7632ead0fc6a
+commit 1b489431cccdd64bd7934c84ee214b973d5bd2d6
Author: Bruno Randolf <bruno at thinktube.com>
Date: Tue Oct 16 22:20:37 2007 +0900
@@ -907,7 +918,7 @@
Acked-by: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 75b99ae66c33cfd5664102c2588ebd505577fc7e
+commit 1c9fe46bb427338312f2b8b744ba5303f97a6d77
Author: Jiri Slaby <jirislaby at gmail.com>
Date: Sun Oct 14 10:45:54 2007 -0400
@@ -921,7 +932,7 @@
Signed-off-by: Jiri Slaby <jirislaby at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 2ad8cab5071e6059c7333cac965f2b7e7a3342a5
+commit 49f80dff400c9a7ca12244cca6977ec3afa9b645
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Sat Oct 13 16:08:29 2007 -0400
@@ -954,7 +965,7 @@
Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 33e9ca7f21695f2f285833cd296f70a2cd345730
+commit 29e0f5dfa9d80228333dd15ac389f91a5df33229
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Fri Oct 12 11:07:09 2007 -0400
@@ -979,7 +990,7 @@
Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 953389189d1790b4346a43309719893400a31fc5
+commit 3112cb20a5efc5d59984643990e9dcb7fbeefdc2
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Fri Oct 12 11:05:43 2007 -0400
@@ -992,7 +1003,7 @@
Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 8462b5d694f20a522ba4dfbb153648ba332b5627
+commit eac99ea545ae91b6b8625179caee7a337d286237
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Fri Oct 12 11:04:38 2007 -0400
@@ -1016,7 +1027,7 @@
Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit ad134b6e277058f4ce929fb4903bac8f2ffa2565
+commit 60964785b9f0cd09580689390d071fb1b7bad482
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Fri Oct 12 11:03:49 2007 -0400
@@ -1043,7 +1054,7 @@
Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit cc79ada2dc67857c1fd922e16ca3769a302f0b06
+commit e415fa9d482d60842d9ea4367e40dcfc628d0cdf
Author: Bruno Randolf <bruno at thinktube.com>
Date: Mon Oct 15 21:30:38 2007 +0900
@@ -1061,7 +1072,7 @@
Signed-off-by: Bruno Randolf <bruno at thinktube.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 1c4a64df662171bf85081aea39d155c683966a56
+commit d3d208f9e217795a838bc86c5a791e4a06e86299
Author: John W. Linville <linville at tuxdriver.com>
Date: Tue Oct 2 19:56:29 2007 -0400
@@ -1069,7 +1080,7 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit ac82c3d69dca0977ad408153109311faabaa73d3
+commit d4ea14a1d44516b070cad5007938192b8ed81f0f
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Fri Sep 28 11:26:16 2007 -0400
@@ -1088,7 +1099,7 @@
Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit a1f0e21e5ba549ae9208faf9076b0c807adca7c6
+commit fef2a2fcb5dd085dd065c3fe571dbb41ac9b4df6
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Thu Sep 27 21:04:19 2007 -0400
@@ -1114,7 +1125,7 @@
Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 6a0f742dac6bd0c396eb24c021c6c048f496af6e
+commit ba1549c3f5be2c03beb6a55105e31f71e4d692b1
Author: Bradley M. Kuhn <bkuhn at softwarefreedom.org>
Date: Thu Sep 27 18:58:24 2007 -0400
@@ -1156,7 +1167,7 @@
Acked-by: Michael Taylor <mike.taylor at apprion.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 4adaee6d7ab1bfd4d9709495a2cb97df4b5afed8
+commit 6e3405416da705b187d5b203a4426a39c91b97a4
Author: Andrew Morton <akpm at linux-foundation.org>
Date: Thu Sep 20 14:02:31 2007 -0700
@@ -1167,7 +1178,7 @@
Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 260dea31422e4c97b88b2f26474eac3b20ee76a4
+commit cd11fcee4006ff4bb9ab8cc018daa50c5f59a1d4
Author: Stephen Hemminger <shemminger at linux-foundation.org>
Date: Tue Sep 18 10:06:47 2007 -0700
@@ -1178,7 +1189,7 @@
Signed-off-by: Stephen Hemminger <shemminger at linux-foundation.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 6ebc3f5df03a301a173e10dd72b513fe23ecbbce
+commit f05bede87ac77674e8bca1ecaa38e127603a3175
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Thu Sep 20 17:13:26 2007 -0400
@@ -1215,7 +1226,7 @@
Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit eae99b799ce2aff97ad9016cac834405678c3d6b
+commit 346a6c93de5ed9f19bb0e83a93de9170c302a990
Author: Jiri Slaby <jirislaby at gmail.com>
Date: Wed Sep 26 14:04:10 2007 -0400
@@ -1231,7 +1242,7 @@
Cc: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 9ab409d9f834472b2fdf9705cde52f8b4bc2436e
+commit a8ea32c2f68a931cba77fa4f87e98a33f71e3850
Author: Jiri Slaby <jirislaby at gmail.com>
Date: Wed Sep 26 14:03:27 2007 -0400
@@ -1244,7 +1255,7 @@
Cc: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 5034f1e5e0610667a77e8ac991255162e5fe9982
+commit b7d1c25c0d38efa15a3a496f3c224d88dd3b1a6f
Author: Nick Kossifidis <mickflemm at gmail.com>
Date: Wed Sep 26 14:02:50 2007 -0400
@@ -1263,7 +1274,7 @@
Cc: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit c0a7d16f73da9c33bd71ec8b303bc735f604350c
+commit 1124e682413ed56f4256249bf394f3ffe0ccf564
Author: Jiri Slaby <jirislaby at gmail.com>
Date: Wed Sep 26 14:02:11 2007 -0400
@@ -1278,7 +1289,7 @@
Cc: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 71b0b4547745b849f1a2535d37e02cff91cb83ad
+commit 55351cd4fcb0cc955b9111c60be8114e4554a0f0
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Mon Sep 17 17:31:51 2007 -0400
@@ -1299,7 +1310,7 @@
Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit aa03e9134b6aca4522e8f0a772f4509a5cfe4b13
+commit c4ddc3304c6ae8e0225ae2067e6241483a03f3e5
Author: John W. Linville <linville at tuxdriver.com>
Date: Mon Sep 17 17:11:29 2007 -0400
@@ -1307,7 +1318,7 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit a05767ddbfb1138042b5f08c822a54610bd7d437
+commit fea5ce5b99361fe5341e94103e1f6bd03348307b
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Mon Sep 17 00:48:27 2007 -0400
@@ -1320,7 +1331,7 @@
Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit fb31173e6ccfbcadd9d7645a384c9add3ce7be4f
+commit 9e1fda939e3a5632b698fc1255344678a43d7214
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Mon Sep 17 00:01:09 2007 -0400
@@ -1332,7 +1343,7 @@
Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 5bc68c49c1bdbb92cfcbbea4a57a77b7067350fb
+commit 48d804ad5c68f1cb1b1dcaff25c036a23ab0c7eb
Author: Krzysztof Halasa <khc at pm.waw.pl>
Date: Mon Sep 3 20:35:52 2007 +0200
@@ -1343,7 +1354,7 @@
Signed-off-by: Krzysztof Halasa <khc at pm.waw.pl>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 967ee4db879de997e8aadb397317c691480cc9d9
+commit 27a834473cdb0f478b8476423bca96897daeeef8
Author: John W. Linville <linville at tuxdriver.com>
Date: Sat Sep 15 11:05:32 2007 -0400
@@ -1351,7 +1362,7 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 847a9375af07c677f74934e24f779d90bcc9a7c7
+commit 58d4931278d3bdb768f2fae19e03418892f26143
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Mon Sep 10 16:00:38 2007 -0400
@@ -1370,7 +1381,7 @@
Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 4ac1d5eb15b9f5a31568d06d38326059bacee642
+commit 6652e9e8c4037dfd5d3461c3f5e133bdfea3c0a8
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date: Thu Sep 6 10:18:22 2007 -0400
@@ -1389,7 +1400,7 @@
Changes-licensed-under: ISC
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 82f2f4094eddd1993b9f2bc0d53f26def57c3fae
+commit 15eebdfe01639313dcd585b1cffdacfc9c218290
Author: Jiri Slaby <jirislaby at gmail.com>
Date: Tue Aug 28 11:59:54 2007 -0400
@@ -1403,7 +1414,7 @@
Signed-off-by: Jiri Slaby <jirislaby at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit c2877048ec6f854d417e9141bb18cf4ae15f7b33
+commit 0c2a3e294f77d278e9145d17e7efcce1a2bd8a3c
Author: Jiri Slaby <jirislaby at gmail.com>
Date: Sat Aug 25 03:59:28 2007 -0400
@@ -1418,7 +1429,7 @@
Cc: <linville at tuxdriver.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 9d6c3cef55cbbd6f4358d9bd7a59a2b7655eaaa3
+commit c4a1e303676a67be1a14755f9eb367d3560d43c4
Author: Jiri Slaby <jirislaby at gmail.com>
Date: Sat Aug 25 03:58:47 2007 -0400
@@ -1438,7 +1449,7 @@
Cc: <linville at tuxdriver.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 8695faaeffc78924829afb21fd7602dc3a4d81b9
+commit 45040418733e0c44634f4374c4bbc652e115d202
Author: Jiri Slaby <jirislaby at gmail.com>
Date: Sat Aug 25 03:51:51 2007 -0400
@@ -1452,7 +1463,7 @@
Cc: <linville at tuxdriver.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 5f56d31da11ddf176e313828d168365662ee7b19
+commit c68e3c811241892f7fa10bf23c32bda62bbf2857
Author: Jiri Slaby <jirislaby at gmail.com>
Date: Sat Aug 25 03:57:26 2007 -0400
@@ -1466,7 +1477,7 @@
Cc: <linville at tuxdriver.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit f2854f11abaef57d219103380ab8410eda6a4c83
+commit 55e002de32ea64392a7b7388b0c5458986226ba8
Author: John W. Linville <linville at tuxdriver.com>
Date: Thu Aug 23 15:23:30 2007 -0400
@@ -1474,7 +1485,7 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 042c3bcd643fc46949ddd1e71d16ec1dcc0dcf18
+commit 6ffec76db19cd9d32d60dfdd0124021fb53937da
Author: Jiri Slaby <jirislaby at gmail.com>
Date: Wed Aug 22 22:54:07 2007 +0200
@@ -1487,7 +1498,7 @@
Signed-off-by: Jiri Slaby <jirislaby at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 1fea1eeb34e4092d45e94e6c3e9f2c93b3bc268a
+commit 8667a78ef514cbba5ae87fe6d2f97416a8a29f0c
Author: Jiri Slaby <jirislaby at gmail.com>
Date: Wed Aug 22 22:53:25 2007 +0200
@@ -1501,7 +1512,7 @@
Signed-off-by: Jiri Slaby <jirislaby at gmail.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 88ee097caeeb0561c293296c03da47d3b6e688fb
+commit 031485773f72e11a680868574d3ebd3e43619b8a
Author: akpm at linux-foundation.org <akpm at linux-foundation.org>
Date: Tue Aug 21 16:53:53 2007 -0700
@@ -1515,7 +1526,7 @@
Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 8ddf75b76f0b704971cb0df635557b5cad84ed7d
+commit b65e48d48b7c1f4f059f0f7966df051bcd27e404
Author: akpm at linux-foundation.org <akpm at linux-foundation.org>
Date: Tue Aug 21 00:51:20 2007 -0700
@@ -1527,7 +1538,7 @@
Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit cd59338a9249ea6f216ba291167fa9728f8bc1ce
+commit 3d32a0acdec33a60ee05a694a8443f502773743b
Author: akpm at linux-foundation.org <akpm at linux-foundation.org>
Date: Tue Aug 21 00:42:32 2007 -0700
@@ -1540,7 +1551,7 @@
Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit d58bf444cd868ce93b29501c013b2c057007eed5
+commit d3f368bdccdc14d781153b95bb3486e8e265d508
Author: Jiri Slaby <jirislaby at gmail.com>
Date: Sun Aug 12 17:33:16 2007 +0200
@@ -1552,8 +1563,8 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
diff -up linux-2.6.23.noarch/MAINTAINERS.orig linux-2.6.23.noarch/MAINTAINERS
---- linux-2.6.23.noarch/MAINTAINERS.orig 2007-12-21 12:15:17.000000000 -0500
-+++ linux-2.6.23.noarch/MAINTAINERS 2007-12-21 12:18:50.000000000 -0500
+--- linux-2.6.23.noarch/MAINTAINERS.orig 2008-01-08 20:58:04.000000000 -0500
++++ linux-2.6.23.noarch/MAINTAINERS 2008-01-08 21:00:40.000000000 -0500
@@ -646,6 +646,17 @@ M: ecashin at coraid.com
W: http://www.coraid.com/support/linux
S: Supported
@@ -1573,8 +1584,8 @@
P: Jay Cliburn
M: jcliburn at gmail.com
diff -up linux-2.6.23.noarch/drivers/net/wireless/Makefile.orig linux-2.6.23.noarch/drivers/net/wireless/Makefile
---- linux-2.6.23.noarch/drivers/net/wireless/Makefile.orig 2007-12-21 12:15:17.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/Makefile 2007-12-21 12:18:50.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/Makefile.orig 2008-01-08 20:58:04.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/Makefile 2008-01-08 21:00:40.000000000 -0500
@@ -61,3 +61,5 @@ obj-$(CONFIG_RT2X00) += rt2x00/
obj-$(CONFIG_P54_COMMON) += p54common.o
obj-$(CONFIG_P54_USB) += p54usb.o
@@ -1582,16 +1593,15 @@
+
+obj-$(CONFIG_ATH5K) += ath5k/
diff -up linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig linux-2.6.23.noarch/drivers/net/wireless/Kconfig
---- linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig 2007-12-21 12:15:17.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/Kconfig 2007-12-21 12:18:50.000000000 -0500
-@@ -656,6 +656,24 @@ config P54_PCI
+--- linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig 2008-01-08 20:58:04.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/Kconfig 2008-01-08 21:00:40.000000000 -0500
+@@ -656,6 +656,23 @@ config P54_PCI
If you choose to build a module, it'll be called p54pci.
+config ATH5K
+ tristate "Atheros 5xxx wireless cards support"
+ depends on PCI && MAC80211 && WLAN_80211 && EXPERIMENTAL
-+ default m
+ ---help---
+ This module adds support for wireless adapters based on
+ Atheros 5xxx chipset.
@@ -1610,8 +1620,8 @@
source "drivers/net/wireless/hostap/Kconfig"
source "drivers/net/wireless/bcm43xx/Kconfig"
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/phy.c
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/phy.c 2007-12-21 12:18:50.000000000 -0500
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/phy.c 2008-01-08 21:00:40.000000000 -0500
@@ -0,0 +1,2071 @@
+/*
+ * PHY functions
@@ -3685,8 +3695,8 @@
+ return ath5k_hw_txpower(ah, channel, power);
+}
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/ath5k.h
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/ath5k.h 2007-12-21 12:18:50.000000000 -0500
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/ath5k.h 2008-01-08 21:00:40.000000000 -0500
@@ -0,0 +1,1153 @@
+/*
+ * Copyright (c) 2004-2007 Reyk Floeter <reyk at openbsd.org>
@@ -4842,14 +4852,14 @@
+
+#endif
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/Makefile
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/Makefile 2007-12-21 12:18:50.000000000 -0500
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/Makefile 2008-01-08 21:00:40.000000000 -0500
@@ -0,0 +1,2 @@
+ath5k-objs = base.o hw.o regdom.o initvals.o phy.o debug.o
+obj-$(CONFIG_ATH5K) += ath5k.o
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/reg.h
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/reg.h 2007-12-21 12:18:50.000000000 -0500
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/reg.h 2008-01-08 21:00:40.000000000 -0500
@@ -0,0 +1,1987 @@
+/*
+ * Copyright (c) 2007 Nick Kossifidis <mickflemm at gmail.com>
@@ -6839,8 +6849,8 @@
+#define AR5K_PHY_GAIN_2GHZ_MARGIN_TXRX_S 18
+#define AR5K_PHY_GAIN_2GHZ_INI_5111 0x6480416c
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/regdom.h
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/regdom.h 2007-12-21 12:18:50.000000000 -0500
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/regdom.h 2008-01-08 21:00:40.000000000 -0500
@@ -0,0 +1,500 @@
+/*
+ * Copyright (c) 2004, 2005 Reyk Floeter <reyk at openbsd.org>
@@ -7343,8 +7353,8 @@
+
+#endif
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/debug.h
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/debug.h 2007-12-21 12:18:50.000000000 -0500
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/debug.h 2008-01-08 21:00:40.000000000 -0500
@@ -0,0 +1,216 @@
+/*
+ * Copyright (c) 2007 Bruno Randolf <bruno at thinktube.com>
@@ -7563,8 +7573,8 @@
+
+#endif /* ifndef _ATH5K_DEBUG_H */
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.c
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.c 2007-12-21 12:18:50.000000000 -0500
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.c 2008-01-08 21:00:40.000000000 -0500
@@ -0,0 +1,4349 @@
+ /*
+ * Copyright (c) 2004-2007 Reyk Floeter <reyk at openbsd.org>
@@ -11916,8 +11926,8 @@
+ return -EIO;
+}
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.h
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.h 2007-12-21 12:18:50.000000000 -0500
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.h 2008-01-08 21:00:40.000000000 -0500
@@ -0,0 +1,588 @@
+/*
+ * Copyright (c) 2004-2007 Reyk Floeter <reyk at openbsd.org>
@@ -12508,8 +12518,8 @@
+ return retval;
+}
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/initvals.c
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/initvals.c 2007-12-21 12:18:50.000000000 -0500
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/initvals.c 2008-01-08 21:00:40.000000000 -0500
@@ -0,0 +1,1347 @@
+/*
+ * Initial register settings functions
@@ -13859,8 +13869,8 @@
+ return 0;
+}
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.c
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.c 2007-12-21 12:18:50.000000000 -0500
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.c 2008-01-08 21:00:40.000000000 -0500
@@ -0,0 +1,2822 @@
+/*-
+ * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
@@ -16685,8 +16695,8 @@
+}
+
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/debug.c
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/debug.c 2007-12-21 12:18:50.000000000 -0500
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/debug.c 2008-01-08 21:00:40.000000000 -0500
@@ -0,0 +1,469 @@
+/*
+ * Copyright (c) 2007 Bruno Randolf <bruno at thinktube.com>
@@ -17158,8 +17168,8 @@
+
+#endif /* if ATH5K_DEBUG */
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.h
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.h 2007-12-21 12:18:50.000000000 -0500
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.h 2008-01-08 21:00:40.000000000 -0500
@@ -0,0 +1,178 @@
+/*-
+ * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting
@@ -17340,8 +17350,8 @@
+
+#endif
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/regdom.c
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/regdom.c 2007-12-21 12:18:50.000000000 -0500
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/regdom.c 2008-01-08 21:00:40.000000000 -0500
@@ -0,0 +1,121 @@
+/*
+ * Copyright (c) 2004, 2005 Reyk Floeter <reyk at vantronix.net>
linux-2.6-rtl8180.patch:
Index: linux-2.6-rtl8180.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-rtl8180.patch,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- linux-2.6-rtl8180.patch 4 Jan 2008 21:55:12 -0000 1.5
+++ linux-2.6-rtl8180.patch 9 Jan 2008 02:12:37 -0000 1.6
@@ -1,4 +1,65 @@
-commit 7156f27bc972aaaaf5241acfd40172da6b250e5c
+commit 386616bc13a8fdc0b87234aeceed6001a61bb1d6
+Author: Michael Wu <flamingice at sourmilk.net>
+Date: Wed Dec 26 20:16:37 2007 -0500
+
+ rtl8180: remove calibration error message for rtl8225z2
+
+ The radio seems to work fine despite this message. Remove it for now.
+
+ Signed-off-by: Michael Wu <flamingice at sourmilk.net>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit a414d3e4ab11bda7c914ab4c7416a106a89f40ac
+Author: Andrea Merello <andreamrl at tiscali.it>
+Date: Wed Dec 26 20:16:37 2007 -0500
+
+ rtl8180: sync radio V2 code with vendor reference
+
+ We have to set ofdm register 0x2 to 0x62 (0x64 is for rtl8187). We did this
+ correctly in init function, but we overwrite it when setting TX power.
+ As reference code suggest, we still rewrite it, but with right value.
+
+ Signed-off-by: Andrea Merello <andreamrl at tiscali.it>
+ Signed-off-by: Michael Wu <flamingice at sourmilk.net>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 0bcb498ca8c8510d301b02a788abb70b43ea7703
+Author: Michael Wu <flamingice at sourmilk.net>
+Date: Tue Dec 25 01:42:29 2007 -0500
+
+ rtl8180: Update Kconfig
+
+ We should let people know what this is.
+
+ Signed-off-by: Michael Wu <flamingice at sourmilk.net>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit b444e913ac42dd4adbd9b86db7104f9c68e30611
+Author: Michael Wu <flamingice at sourmilk.net>
+Date: Tue Dec 25 01:23:59 2007 -0500
+
+ rtl818x: Use RF ops tables
+
+ Unfortunately, merging the usb and pci rtl8225 rf code is currently
+ more pain than gain. Switch to RF ops tables to avoid symbol conflicts
+ when building in the rtl818x drivers.
+
+ Signed-off-by: Michael Wu <flamingice at sourmilk.net>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 533c5787ba6b825c2eec9503bcd9627bcbc3b16e
+Author: John W. Linville <linville at tuxdriver.com>
+Date: Mon Jan 7 23:05:12 2008 -0500
+
+ Revert "rtl8180: add "rtl8180_" to symbols in rtl8180_rtl8225.c"
+
+ This reverts commit a2ef4d22ae8511739f2b1626ef1d56bb7d7454ad.
+
+ Conflicts:
+
+ drivers/net/wireless/rtl8180_rtl8225.c
+
+commit 1867f3c5a292c022c4091d61ca1d1c139f764ee1
Author: Andrea Merello <andreamrl at tiscali.it>
Date: Wed Dec 19 01:17:36 2007 -0500
@@ -14,7 +75,7 @@
Signed-off-by: Michael Wu <flamingice at sourmilk.net>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 2c1911cfac77adeb1bfbd05e163d05cfd1770a98
+commit dd9c3109d768274207777c0ebdd21c2255ee03c2
Author: Andrea Merello <andreamrl at tiscali.it>
Date: Wed Dec 19 01:17:36 2007 -0500
@@ -27,7 +88,7 @@
Signed-off-by: Michael Wu <flamingice at sourmilk.net>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 01e862fb2436e93e15c96e9319ba332f6e8ce344
+commit 2a20f225f6b50c744641e017fb6e28ed96a68c1b
Author: Andrea Merello <andreamrl at tiscali.it>
Date: Wed Dec 19 01:17:36 2007 -0500
@@ -39,7 +100,7 @@
Signed-off-by: Michael Wu <flamingice at sourmilk.net>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit ca0fb53ceb4aa7fce24139c16075e07bde8a39a0
+commit 7261cb16044186c348fae87b5cfe40b6876d2252
Author: Andrea Merello <andreamrl at tiscali.it>
Date: Wed Dec 19 01:17:35 2007 -0500
@@ -51,7 +112,7 @@
Signed-off-by: Michael Wu <flamingice at sourmilk.net>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit df9943f67f1b791a00ee471fa327622a4df899f7
+commit 722375e8727325fae2a42522bd19e9c301bc4469
Author: Andrea Merello <andreamrl at tiscali.it>
Date: Wed Dec 19 01:17:35 2007 -0500
@@ -64,7 +125,7 @@
Signed-off-by: Michael Wu <flamingice at sourmilk.net>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 10b435a109dcb5741de8d9de10bd630137d2a2b6
+commit db3232abb1826b8b854c56d9cee7663be71ef03b
Author: Andrea Merello <andreamrl at tiscali.it>
Date: Wed Dec 19 01:17:35 2007 -0500
@@ -83,7 +144,7 @@
Signed-off-by: Michael Wu <flamingice at sourmilk.net>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 1bb9190fafae5bcd4cc2190d89fdcfeaa4e2b56e
+commit cdf0dbcdb455f387b763762dd659206cd097f820
Author: Andrea Merello <andreamrl at tiscali.it>
Date: Tue Dec 18 17:28:44 2007 -0500
@@ -96,7 +157,7 @@
Signed-off-by: Michael Wu <flamingice at sourmilk.net>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 4a5654152819d7ececdc3b484ff065e7aef46203
+commit ee172363a470b781d31c535b239a49cec7cdc88c
Author: Johannes Berg <johannes at sipsolutions.net>
Date: Tue Dec 4 20:33:40 2007 +0100
@@ -109,7 +170,7 @@
Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 3ed77a761f33d9d709349e75d5dc39465e0cff52
+commit 602fb63ec049cfe02c40b94e080818beb0326492
Author: Michael Wu <flamingice at sourmilk.net>
Date: Mon Dec 3 22:55:08 2007 -0500
@@ -120,7 +181,7 @@
Signed-off-by: Michael Wu <flamingice at sourmilk.net>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit e4062a578a14658007f78f587358603221c1f766
+commit ca6b137bd9bdcabf3872276e4215e0a4f22fe0e1
Author: Pavel Roskin <proski at gnu.org>
Date: Sat Nov 24 20:35:25 2007 -0500
@@ -129,7 +190,7 @@
Signed-off-by: Pavel Roskin <proski at gnu.org>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit d36bf4a65cc5e82dbac785adfd6238765ff7d1ef
+commit a2ef4d22ae8511739f2b1626ef1d56bb7d7454ad
Author: John W. Linville <linville at tuxdriver.com>
Date: Mon Dec 3 21:43:26 2007 -0500
@@ -140,7 +201,7 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 0ef47702ac1d414db545c378ffa41a3c052f855c
+commit bce13f311c90c4b53da8267cf6a11042d3fc8bc0
Author: Andrea Merello <andreamrl at tiscali.it>
Date: Sun Dec 2 17:17:51 2007 -0500
@@ -152,7 +213,7 @@
Signed-off-by: Andrea Merello <andreamrl at tiscali.it>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 9f2098e01be9403d486dea5029624d0f9febb9af
+commit 3dc98653e13ad690e98d810cec3850f4f6cb4baa
Author: Andrea Merello <andreamrl at tiscali.it>
Date: Sun Dec 2 17:17:51 2007 -0500
@@ -164,7 +225,7 @@
Signed-off-by: Andrea Merello <andreamrl at tiscali.it>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit bff8c62a95511a4ba33150c9bf8e61725dae61a2
+commit 216f7b62e468a4876b50c4b959ac7d38f880fd95
Author: Andrea Merello <andreamrl at tiscali.it>
Date: Sun Dec 2 17:17:51 2007 -0500
@@ -178,7 +239,7 @@
Signed-off-by: Andrea Merello <andreamrl at tiscali.it>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 7a3a110a27f08294008da27d6f05c35de029e48b
+commit c5281862482acf002b9b73020801dcb12e1c3c70
Author: Andrea Merello <andreamrl at tiscali.it>
Date: Sun Dec 2 17:17:51 2007 -0500
@@ -190,7 +251,7 @@
Signed-off-by: Andrea Merello <andreamrl at tiscali.it>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 37c8bb6c3c83148c8dbb5a50968d8c0d6c273dc5
+commit 98e578b30fa5590021e651d40aee3cbac6a2dcac
Author: Andrea Merello <andreamrl at tiscali.it>
Date: Sun Dec 2 17:17:51 2007 -0500
@@ -203,7 +264,7 @@
Signed-off-by: Andrea Merello <andreamrl at tiscali.it>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 5300aa6958712cc9dd6def888a277bfdbdc1d8ce
+commit b3893ff34dc801983c40aa5ec804205cf916ed6d
Author: Andrea Merello <andreamrl at tiscali.it>
Date: Sun Dec 2 17:17:51 2007 -0500
@@ -215,7 +276,7 @@
Signed-off-by: Andrea Merello <andreamrl at tiscali.it>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 15ef977469ade9397a5c8502dd2d8efc5e3466a0
+commit 2cf3e2447ad48d82bdd3a87ac9799a501c81fd77
Author: John W. Linville <linville at tuxdriver.com>
Date: Wed Nov 14 20:29:48 2007 -0500
@@ -223,7 +284,7 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit daa725bf7e2184463022688ebd5954149c3a569c
+commit c47cc9b0ecad8888ee59c901adbe716693c77ff2
Author: Michael Wu <flamingice at sourmilk.net>
Date: Wed Nov 14 17:19:52 2007 -0500
@@ -234,7 +295,7 @@
Signed-off-by: Michael Wu <flamingice at sourmilk.net>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 76ca790000438a17bd0c08351307f9bb994f9357
+commit b2bb93c1608b3b97cb86118c344887f9e7ae2378
Author: Michael Wu <flamingice at sourmilk.net>
Date: Sat Oct 20 20:05:31 2007 -0400
@@ -245,7 +306,7 @@
Signed-off-by: Michael Wu <flamingice at sourmilk.net>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
-commit 8a68259e579a40378644c39da08267df8d420547
+commit 5a0bacbbcbad7c8a2976f52486ba9da7b776ff25
Author: Michael Wu <flamingice at sourmilk.net>
Date: Sun Oct 14 14:43:16 2007 -0400
@@ -266,8 +327,8 @@
Signed-off-by: John W. Linville <linville at tuxdriver.com>
diff -up linux-2.6.23.noarch/include/linux/pci_ids.h.orig linux-2.6.23.noarch/include/linux/pci_ids.h
---- linux-2.6.23.noarch/include/linux/pci_ids.h.orig 2007-12-21 10:43:39.000000000 -0500
-+++ linux-2.6.23.noarch/include/linux/pci_ids.h 2007-12-21 12:28:05.000000000 -0500
+--- linux-2.6.23.noarch/include/linux/pci_ids.h.orig 2008-01-08 20:02:59.000000000 -0500
++++ linux-2.6.23.noarch/include/linux/pci_ids.h 2008-01-08 21:03:07.000000000 -0500
@@ -2078,6 +2078,9 @@
#define PCI_DEVICE_ID_ALTIMA_AC9100 0x03ea
#define PCI_DEVICE_ID_ALTIMA_AC1003 0x03eb
@@ -279,9 +340,9 @@
#define PCI_VENDOR_ID_ARECA 0x17d3
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180_sa2400.c
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_sa2400.c 2007-12-21 12:28:05.000000000 -0500
-@@ -0,0 +1,193 @@
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_sa2400.c 2008-01-08 21:03:07.000000000 -0500
+@@ -0,0 +1,201 @@
+
+/*
+ * Radio tuning for Philips SA2400 on RTL8180
@@ -360,7 +421,8 @@
+
+}
+
-+void sa2400_rf_set_channel(struct ieee80211_hw *dev, struct ieee80211_conf *conf)
++static void sa2400_rf_set_channel(struct ieee80211_hw *dev,
++ struct ieee80211_conf *conf)
+{
+ struct rtl8180_priv *priv = dev->priv;
+ u32 txpw = priv->channels[conf->channel - 1].val & 0xFF;
@@ -376,12 +438,12 @@
+ write_sa2400(dev, 3, 0);
+}
+
-+void sa2400_rf_stop(struct ieee80211_hw *dev)
++static void sa2400_rf_stop(struct ieee80211_hw *dev)
+{
+ write_sa2400(dev, 4, 0);
+}
+
-+void sa2400_rf_init(struct ieee80211_hw *dev)
++static void sa2400_rf_init(struct ieee80211_hw *dev)
+{
+ struct rtl8180_priv *priv = dev->priv;
+ u32 anaparam, txconf;
@@ -475,9 +537,16 @@
+ rtl8180_write_phy(dev, 0x19, 0x0);
+ rtl8180_write_phy(dev, 0x1a, 0xa0);
+}
++
++const struct rtl818x_rf_ops sa2400_rf_ops = {
++ .name = "Philips",
++ .init = sa2400_rf_init,
++ .stop = sa2400_rf_stop,
++ .set_chan = sa2400_rf_set_channel
++};
diff -up linux-2.6.23.noarch/drivers/net/wireless/Makefile.orig linux-2.6.23.noarch/drivers/net/wireless/Makefile
---- linux-2.6.23.noarch/drivers/net/wireless/Makefile.orig 2007-12-21 12:19:55.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/Makefile 2007-12-21 12:28:05.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/Makefile.orig 2008-01-08 21:00:40.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/Makefile 2008-01-08 21:03:07.000000000 -0500
@@ -49,7 +49,10 @@ obj-$(CONFIG_PCMCIA_WL3501) += wl3501_cs
obj-$(CONFIG_USB_ZD1201) += zd1201.o
obj-$(CONFIG_LIBERTAS) += libertas/
@@ -490,9 +559,9 @@
obj-$(CONFIG_ADM8211) += adm8211.o
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180_max2820.h
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_max2820.h 2007-12-21 12:28:05.000000000 -0500
-@@ -0,0 +1,30 @@
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_max2820.h 2008-01-08 21:03:07.000000000 -0500
+@@ -0,0 +1,28 @@
+#ifndef RTL8180_MAX2820_H
+#define RTL8180_MAX2820_H
+
@@ -518,15 +587,13 @@
+
+#define MAXIM_ANTENNA 0xb3
+
-+void max2820_rf_init(struct ieee80211_hw *);
-+void max2820_rf_stop(struct ieee80211_hw *);
-+void max2820_rf_set_channel(struct ieee80211_hw *, struct ieee80211_conf *);
++extern const struct rtl818x_rf_ops max2820_rf_ops;
+
+#endif /* RTL8180_MAX2820_H */
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180_sa2400.h
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_sa2400.h 2007-12-21 12:28:05.000000000 -0500
-@@ -0,0 +1,38 @@
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_sa2400.h 2008-01-08 21:03:07.000000000 -0500
+@@ -0,0 +1,36 @@
+#ifndef RTL8180_SA2400_H
+#define RTL8180_SA2400_H
+
@@ -560,15 +627,13 @@
+
+#define SA2400_REG4_FIRDAC_SHIFT 7
+
-+void sa2400_rf_init(struct ieee80211_hw *);
-+void sa2400_rf_stop(struct ieee80211_hw *);
-+void sa2400_rf_set_channel(struct ieee80211_hw *, struct ieee80211_conf *);
++extern const struct rtl818x_rf_ops sa2400_rf_ops;
+
+#endif /* RTL8180_SA2400_H */
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180_rtl8225.c
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_rtl8225.c 2007-12-21 12:28:05.000000000 -0500
-@@ -0,0 +1,763 @@
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_rtl8225.c 2008-01-08 21:03:07.000000000 -0500
+@@ -0,0 +1,779 @@
+
+/*
+ * Radio tuning for RTL8225 on RTL8180
@@ -594,7 +659,7 @@
+#include "rtl8180.h"
+#include "rtl8180_rtl8225.h"
+
-+static void rtl8180_rtl8225_write(struct ieee80211_hw *dev, u8 addr, u16 data)
++static void rtl8225_write(struct ieee80211_hw *dev, u8 addr, u16 data)
+{
+ struct rtl8180_priv *priv = dev->priv;
+ u16 reg80, reg84, reg82;
@@ -642,7 +707,7 @@
+ rtl818x_iowrite16(priv, &priv->map->RFPinsEnable, 0x1FFF);
+}
+
-+static u16 rtl8180_rtl8225_read(struct ieee80211_hw *dev, u8 addr)
++static u16 rtl8225_read(struct ieee80211_hw *dev, u8 addr)
+{
+ struct rtl8180_priv *priv = dev->priv;
+ u16 reg80, reg82, reg84, out;
@@ -745,7 +810,7 @@
+ return out;
+}
+
-+static const u16 rtl8180_rtl8225bcd_rxgain[] = {
++static const u16 rtl8225bcd_rxgain[] = {
+ 0x0400, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0408, 0x0409,
+ 0x040a, 0x040b, 0x0502, 0x0503, 0x0504, 0x0505, 0x0540, 0x0541,
+ 0x0542, 0x0543, 0x0544, 0x0545, 0x0580, 0x0581, 0x0582, 0x0583,
@@ -760,7 +825,7 @@
+ 0x07b4, 0x07b5, 0x07b8, 0x07b9, 0x07ba, 0x07bb, 0x07bb
+};
+
-+static const u8 rtl8180_rtl8225_agc[] = {
++static const u8 rtl8225_agc[] = {
+ 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e,
+ 0x9d, 0x9c, 0x9b, 0x9a, 0x99, 0x98, 0x97, 0x96,
+ 0x95, 0x94, 0x93, 0x92, 0x91, 0x90, 0x8f, 0x8e,
@@ -779,7 +844,7 @@
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
+};
+
-+static const u8 rtl8180_rtl8225_gain[] = {
++static const u8 rtl8225_gain[] = {
+ 0x23, 0x88, 0x7c, 0xa5, /* -82dbm */
+ 0x23, 0x88, 0x7c, 0xb5, /* -82dbm */
+ 0x23, 0x88, 0x7c, 0xc5, /* -82dbm */
@@ -789,15 +854,15 @@
+ 0x63, 0x58, 0x70, 0xc5, /* -66dbm */
+};
+
-+static const u8 rtl8180_rtl8225_threshold[] = {
++static const u8 rtl8225_threshold[] = {
+ 0x8d, 0x8d, 0x8d, 0x8d, 0x9d, 0xad, 0xbd
+};
+
-+static const u8 rtl8180_rtl8225_tx_gain_cck_ofdm[] = {
++static const u8 rtl8225_tx_gain_cck_ofdm[] = {
+ 0x02, 0x06, 0x0e, 0x1e, 0x3e, 0x7e
+};
+
-+static const u8 rtl8180_rtl8225_tx_power_cck[] = {
++static const u8 rtl8225_tx_power_cck[] = {
+ 0x18, 0x17, 0x15, 0x11, 0x0c, 0x08, 0x04, 0x02,
+ 0x1b, 0x1a, 0x17, 0x13, 0x0e, 0x09, 0x04, 0x02,
+ 0x1f, 0x1e, 0x1a, 0x15, 0x10, 0x0a, 0x05, 0x02,
@@ -806,7 +871,7 @@
+ 0x2b, 0x2a, 0x25, 0x1e, 0x16, 0x0e, 0x07, 0x03
+};
+
-+static const u8 rtl8180_rtl8225_tx_power_cck_ch14[] = {
++static const u8 rtl8225_tx_power_cck_ch14[] = {
+ 0x18, 0x17, 0x15, 0x0c, 0x00, 0x00, 0x00, 0x00,
+ 0x1b, 0x1a, 0x17, 0x0e, 0x00, 0x00, 0x00, 0x00,
+ 0x1f, 0x1e, 0x1a, 0x0f, 0x00, 0x00, 0x00, 0x00,
@@ -815,16 +880,16 @@
+ 0x2b, 0x2a, 0x25, 0x15, 0x00, 0x00, 0x00, 0x00
+};
+
-+static const u8 rtl8180_rtl8225_tx_power_ofdm[] = {
++static const u8 rtl8225_tx_power_ofdm[] = {
+ 0x80, 0x90, 0xa2, 0xb5, 0xcb, 0xe4
+};
+
-+static const u32 rtl8180_rtl8225_chan[] = {
++static const u32 rtl8225_chan[] = {
+ 0x085c, 0x08dc, 0x095c, 0x09dc, 0x0a5c, 0x0adc, 0x0b5c,
+ 0x0bdc, 0x0c5c, 0x0cdc, 0x0d5c, 0x0ddc, 0x0e5c, 0x0f72
+};
+
-+static void rtl8180_rtl8225_rf_set_tx_power(struct ieee80211_hw *dev, int channel)
++static void rtl8225_rf_set_tx_power(struct ieee80211_hw *dev, int channel)
+{
+ struct rtl8180_priv *priv = dev->priv;
+ u8 cck_power, ofdm_power;
@@ -839,15 +904,15 @@
+ ofdm_power = min(ofdm_power, (u8)35);
+
+ rtl818x_iowrite8(priv, &priv->map->TX_GAIN_CCK,
-+ rtl8180_rtl8225_tx_gain_cck_ofdm[cck_power / 6] >> 1);
++ rtl8225_tx_gain_cck_ofdm[cck_power / 6] >> 1);
+
+ if (channel == 14)
-+ tmp = &rtl8180_rtl8225_tx_power_cck_ch14[(cck_power % 6) * 8];
++ tmp = &rtl8225_tx_power_cck_ch14[(cck_power % 6) * 8];
+ else
-+ tmp = &rtl8180_rtl8225_tx_power_cck[(cck_power % 6) * 8];
++ tmp = &rtl8225_tx_power_cck[(cck_power % 6) * 8];
+
+ for (i = 0; i < 8; i++)
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x44 + i, *tmp++);
++ rtl8225_write_phy_cck(dev, 0x44 + i, *tmp++);
+
+ msleep(1); /* FIXME: optional? */
+
@@ -860,38 +925,17 @@
+ rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_NORMAL);
+
+ rtl818x_iowrite8(priv, &priv->map->TX_GAIN_OFDM,
-+ rtl8180_rtl8225_tx_gain_cck_ofdm[ofdm_power/6] >> 1);
++ rtl8225_tx_gain_cck_ofdm[ofdm_power/6] >> 1);
+
-+ tmp = &rtl8180_rtl8225_tx_power_ofdm[ofdm_power % 6];
++ tmp = &rtl8225_tx_power_ofdm[ofdm_power % 6];
+
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 5, *tmp);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 7, *tmp);
++ rtl8225_write_phy_ofdm(dev, 5, *tmp);
++ rtl8225_write_phy_ofdm(dev, 7, *tmp);
+
+ msleep(1);
+}
+
-+int rtl8180_rtl8225_is_z2(struct ieee80211_hw *dev)
-+{
-+ struct rtl8180_priv *priv = dev->priv;
-+ int z2 = 0;
-+
-+ rtl818x_iowrite16(priv, &priv->map->RFPinsOutput, 0x0480);
-+ rtl818x_iowrite16(priv, &priv->map->RFPinsSelect, 0x0488);
-+ rtl818x_iowrite16(priv, &priv->map->RFPinsEnable, 0x1FFF);
-+ rtl818x_ioread8(priv, &priv->map->EEPROM_CMD);
-+ msleep(100);
-+
-+ rtl8180_rtl8225_write(dev, 0, 0x1B7);
-+
-+ if (rtl8180_rtl8225_read(dev, 8) == 0x588 && rtl8180_rtl8225_read(dev, 9) == 0x700)
-+ z2 = 1;
-+
-+ rtl8180_rtl8225_write(dev, 0, 0x0B7);
-+
-+ return z2;
-+}
-+
-+void rtl8180_rtl8225_rf_init(struct ieee80211_hw *dev)
++static void rtl8225_rf_init(struct ieee80211_hw *dev)
+{
+ struct rtl8180_priv *priv = dev->priv;
+ int i;
@@ -917,151 +961,151 @@
+ rtl818x_iowrite8(priv, &priv->map->CONFIG3, 0x44);
+ rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_NORMAL);
+
-+ rtl8180_rtl8225_write(dev, 0x0, 0x067);
-+ rtl8180_rtl8225_write(dev, 0x1, 0xFE0);
-+ rtl8180_rtl8225_write(dev, 0x2, 0x44D);
-+ rtl8180_rtl8225_write(dev, 0x3, 0x441);
-+ rtl8180_rtl8225_write(dev, 0x4, 0x8BE);
-+ rtl8180_rtl8225_write(dev, 0x5, 0xBF0); /* TODO: minipci */
-+ rtl8180_rtl8225_write(dev, 0x6, 0xAE6);
-+ rtl8180_rtl8225_write(dev, 0x7, rtl8180_rtl8225_chan[0]);
-+ rtl8180_rtl8225_write(dev, 0x8, 0x01F);
-+ rtl8180_rtl8225_write(dev, 0x9, 0x334);
-+ rtl8180_rtl8225_write(dev, 0xA, 0xFD4);
-+ rtl8180_rtl8225_write(dev, 0xB, 0x391);
-+ rtl8180_rtl8225_write(dev, 0xC, 0x050);
-+ rtl8180_rtl8225_write(dev, 0xD, 0x6DB);
-+ rtl8180_rtl8225_write(dev, 0xE, 0x029);
-+ rtl8180_rtl8225_write(dev, 0xF, 0x914); msleep(1);
-+
-+ rtl8180_rtl8225_write(dev, 0x2, 0xC4D); msleep(100);
-+
-+ rtl8180_rtl8225_write(dev, 0x0, 0x127);
-+
-+ for (i = 0; i < ARRAY_SIZE(rtl8180_rtl8225bcd_rxgain); i++) {
-+ rtl8180_rtl8225_write(dev, 0x1, i + 1);
-+ rtl8180_rtl8225_write(dev, 0x2, rtl8180_rtl8225bcd_rxgain[i]);
++ rtl8225_write(dev, 0x0, 0x067);
++ rtl8225_write(dev, 0x1, 0xFE0);
++ rtl8225_write(dev, 0x2, 0x44D);
++ rtl8225_write(dev, 0x3, 0x441);
++ rtl8225_write(dev, 0x4, 0x8BE);
++ rtl8225_write(dev, 0x5, 0xBF0); /* TODO: minipci */
++ rtl8225_write(dev, 0x6, 0xAE6);
++ rtl8225_write(dev, 0x7, rtl8225_chan[0]);
++ rtl8225_write(dev, 0x8, 0x01F);
++ rtl8225_write(dev, 0x9, 0x334);
++ rtl8225_write(dev, 0xA, 0xFD4);
++ rtl8225_write(dev, 0xB, 0x391);
++ rtl8225_write(dev, 0xC, 0x050);
++ rtl8225_write(dev, 0xD, 0x6DB);
++ rtl8225_write(dev, 0xE, 0x029);
++ rtl8225_write(dev, 0xF, 0x914); msleep(1);
++
++ rtl8225_write(dev, 0x2, 0xC4D); msleep(100);
++
++ rtl8225_write(dev, 0x0, 0x127);
++
++ for (i = 0; i < ARRAY_SIZE(rtl8225bcd_rxgain); i++) {
++ rtl8225_write(dev, 0x1, i + 1);
++ rtl8225_write(dev, 0x2, rtl8225bcd_rxgain[i]);
+ }
+
-+ rtl8180_rtl8225_write(dev, 0x0, 0x027);
-+ rtl8180_rtl8225_write(dev, 0x0, 0x22F);
++ rtl8225_write(dev, 0x0, 0x027);
++ rtl8225_write(dev, 0x0, 0x22F);
+ rtl818x_iowrite16(priv, &priv->map->RFPinsEnable, 0x1FFF);
+
-+ for (i = 0; i < ARRAY_SIZE(rtl8180_rtl8225_agc); i++) {
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0xB, rtl8180_rtl8225_agc[i]);
++ for (i = 0; i < ARRAY_SIZE(rtl8225_agc); i++) {
++ rtl8225_write_phy_ofdm(dev, 0xB, rtl8225_agc[i]);
+ msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0xA, 0x80 + i);
++ rtl8225_write_phy_ofdm(dev, 0xA, 0x80 + i);
+ msleep(1);
+ }
+
+ msleep(1);
+
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x00, 0x01); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x01, 0x02); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x02, 0x62); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x03, 0x00); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x04, 0x00); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x05, 0x00); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x06, 0x00); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x07, 0x00); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x08, 0x00); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x09, 0xfe); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x0a, 0x09); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x0b, 0x80); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x0c, 0x01); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x0e, 0xd3); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x0f, 0x38); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x10, 0x84); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x11, 0x03); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x12, 0x20); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x13, 0x20); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x14, 0x00); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x15, 0x40); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x16, 0x00); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x17, 0x40); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x18, 0xef); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x19, 0x19); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x1a, 0x20); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x1b, 0x76); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x1c, 0x04); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x1e, 0x95); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x1f, 0x75); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x20, 0x1f); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x21, 0x27); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x22, 0x16); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x24, 0x46); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x25, 0x20); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x26, 0x90); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x27, 0x88); msleep(1);
-+
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x00, 0x98); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x03, 0x20); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x04, 0x7e); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x05, 0x12); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x06, 0xfc); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x07, 0x78); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x08, 0x2e); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x10, 0x93); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x11, 0x88); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x12, 0x47); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x13, 0xd0);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x19, 0x00);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x1a, 0xa0);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x1b, 0x08);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x40, 0x86);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x41, 0x8d); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x42, 0x15); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x43, 0x18); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x44, 0x1f); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x45, 0x1e); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x46, 0x1a); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x47, 0x15); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x48, 0x10); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x49, 0x0a); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x4a, 0x05); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x4b, 0x02); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x4c, 0x05); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x00, 0x01); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x01, 0x02); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x02, 0x62); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x03, 0x00); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x04, 0x00); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x05, 0x00); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x06, 0x00); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x07, 0x00); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x08, 0x00); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x09, 0xfe); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x0a, 0x09); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x0b, 0x80); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x0c, 0x01); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x0e, 0xd3); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x0f, 0x38); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x10, 0x84); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x11, 0x03); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x12, 0x20); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x13, 0x20); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x14, 0x00); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x15, 0x40); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x16, 0x00); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x17, 0x40); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x18, 0xef); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x19, 0x19); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x1a, 0x20); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x1b, 0x76); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x1c, 0x04); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x1e, 0x95); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x1f, 0x75); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x20, 0x1f); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x21, 0x27); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x22, 0x16); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x24, 0x46); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x25, 0x20); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x26, 0x90); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x27, 0x88); msleep(1);
++
++ rtl8225_write_phy_cck(dev, 0x00, 0x98); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x03, 0x20); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x04, 0x7e); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x05, 0x12); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x06, 0xfc); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x07, 0x78); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x08, 0x2e); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x10, 0x93); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x11, 0x88); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x12, 0x47); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x13, 0xd0);
++ rtl8225_write_phy_cck(dev, 0x19, 0x00);
++ rtl8225_write_phy_cck(dev, 0x1a, 0xa0);
++ rtl8225_write_phy_cck(dev, 0x1b, 0x08);
++ rtl8225_write_phy_cck(dev, 0x40, 0x86);
++ rtl8225_write_phy_cck(dev, 0x41, 0x8d); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x42, 0x15); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x43, 0x18); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x44, 0x1f); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x45, 0x1e); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x46, 0x1a); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x47, 0x15); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x48, 0x10); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x49, 0x0a); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x4a, 0x05); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x4b, 0x02); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x4c, 0x05); msleep(1);
+
+ rtl818x_iowrite8(priv, &priv->map->TESTR, 0x0D); msleep(1);
+
-+ rtl8180_rtl8225_rf_set_tx_power(dev, 1);
++ rtl8225_rf_set_tx_power(dev, 1);
+
+ /* RX antenna default to A */
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x10, 0x9b); msleep(1); /* B: 0xDB */
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x26, 0x90); msleep(1); /* B: 0x10 */
++ rtl8225_write_phy_cck(dev, 0x10, 0x9b); msleep(1); /* B: 0xDB */
++ rtl8225_write_phy_ofdm(dev, 0x26, 0x90); msleep(1); /* B: 0x10 */
+
+ rtl818x_iowrite8(priv, &priv->map->TX_ANTENNA, 0x03); /* B: 0x00 */
+ msleep(1);
+ rtl818x_iowrite32(priv, (__le32 __iomem *)((void __iomem *)priv->map + 0x94), 0x15c00002);
+ rtl818x_iowrite16(priv, &priv->map->RFPinsEnable, 0x1FFF);
+
-+ rtl8180_rtl8225_write(dev, 0x0c, 0x50);
++ rtl8225_write(dev, 0x0c, 0x50);
+ /* set OFDM initial gain */
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x0d, rtl8180_rtl8225_gain[4 * 4]);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x23, rtl8180_rtl8225_gain[4 * 4 + 1]);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x1b, rtl8180_rtl8225_gain[4 * 4 + 2]);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x1d, rtl8180_rtl8225_gain[4 * 4 + 3]);
++ rtl8225_write_phy_ofdm(dev, 0x0d, rtl8225_gain[4 * 4]);
++ rtl8225_write_phy_ofdm(dev, 0x23, rtl8225_gain[4 * 4 + 1]);
++ rtl8225_write_phy_ofdm(dev, 0x1b, rtl8225_gain[4 * 4 + 2]);
++ rtl8225_write_phy_ofdm(dev, 0x1d, rtl8225_gain[4 * 4 + 3]);
+ /* set CCK threshold */
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x41, rtl8180_rtl8225_threshold[0]);
++ rtl8225_write_phy_cck(dev, 0x41, rtl8225_threshold[0]);
+}
+
-+static const u8 rtl8180_rtl8225z2_tx_power_cck_ch14[] = {
++static const u8 rtl8225z2_tx_power_cck_ch14[] = {
+ 0x36, 0x35, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00
+};
+
-+static const u8 rtl8180_rtl8225z2_tx_power_cck_B[] = {
++static const u8 rtl8225z2_tx_power_cck_B[] = {
+ 0x30, 0x2f, 0x29, 0x21, 0x19, 0x10, 0x08, 0x04
+};
+
-+static const u8 rtl8180_rtl8225z2_tx_power_cck_A[] = {
++static const u8 rtl8225z2_tx_power_cck_A[] = {
+ 0x33, 0x32, 0x2b, 0x23, 0x1a, 0x11, 0x08, 0x04
+};
+
-+static const u8 rtl8180_rtl8225z2_tx_power_cck[] = {
++static const u8 rtl8225z2_tx_power_cck[] = {
+ 0x36, 0x35, 0x2e, 0x25, 0x1c, 0x12, 0x09, 0x04
+};
+
-+static void rtl8180_rtl8225z2_rf_set_tx_power(struct ieee80211_hw *dev, int channel)
++static void rtl8225z2_rf_set_tx_power(struct ieee80211_hw *dev, int channel)
+{
+ struct rtl8180_priv *priv = dev->priv;
+ u8 cck_power, ofdm_power;
@@ -1072,16 +1116,16 @@
+ ofdm_power = priv->channels[channel - 1].val >> 8;
+
+ if (channel == 14)
-+ tmp = rtl8180_rtl8225z2_tx_power_cck_ch14;
++ tmp = rtl8225z2_tx_power_cck_ch14;
+ else if (cck_power == 12)
-+ tmp = rtl8180_rtl8225z2_tx_power_cck_B;
++ tmp = rtl8225z2_tx_power_cck_B;
+ else if (cck_power == 13)
-+ tmp = rtl8180_rtl8225z2_tx_power_cck_A;
++ tmp = rtl8225z2_tx_power_cck_A;
+ else
-+ tmp = rtl8180_rtl8225z2_tx_power_cck;
++ tmp = rtl8225z2_tx_power_cck;
+
+ for (i = 0; i < 8; i++)
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x44 + i, *tmp++);
++ rtl8225_write_phy_cck(dev, 0x44 + i, *tmp++);
+
+ cck_power = min(cck_power, (u8)35);
+ if (cck_power == 13 || cck_power == 14)
@@ -1096,16 +1140,16 @@
+ ofdm_power = min(ofdm_power, (u8)35);
+ rtl818x_iowrite8(priv, &priv->map->TX_GAIN_OFDM, ofdm_power);
+
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 2, 0x42);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 5, 0x00);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 6, 0x40);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 7, 0x00);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 8, 0x40);
++ rtl8225_write_phy_ofdm(dev, 2, 0x62);
++ rtl8225_write_phy_ofdm(dev, 5, 0x00);
++ rtl8225_write_phy_ofdm(dev, 6, 0x40);
++ rtl8225_write_phy_ofdm(dev, 7, 0x00);
++ rtl8225_write_phy_ofdm(dev, 8, 0x40);
+
+ msleep(1);
+}
+
-+static const u16 rtl8180_rtl8225z2_rxgain[] = {
++static const u16 rtl8225z2_rxgain[] = {
+ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0008, 0x0009,
+ 0x000a, 0x000b, 0x0102, 0x0103, 0x0104, 0x0105, 0x0140, 0x0141,
+ 0x0142, 0x0143, 0x0144, 0x0145, 0x0180, 0x0181, 0x0182, 0x0183,
@@ -1120,7 +1164,7 @@
+ 0x03b4, 0x03b5, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bb
+};
+
-+void rtl8180_rtl8225z2_rf_init(struct ieee80211_hw *dev)
++static void rtl8225z2_rf_init(struct ieee80211_hw *dev)
+{
+ struct rtl8180_priv *priv = dev->priv;
+ int i;
@@ -1148,140 +1192,139 @@
+
+ rtl818x_iowrite16(priv, &priv->map->RFPinsEnable, 0x1FFF);
+
-+ rtl8180_rtl8225_write(dev, 0x0, 0x0B7); msleep(1);
-+ rtl8180_rtl8225_write(dev, 0x1, 0xEE0); msleep(1);
-+ rtl8180_rtl8225_write(dev, 0x2, 0x44D); msleep(1);
-+ rtl8180_rtl8225_write(dev, 0x3, 0x441); msleep(1);
-+ rtl8180_rtl8225_write(dev, 0x4, 0x8C3); msleep(1);
-+ rtl8180_rtl8225_write(dev, 0x5, 0xC72); msleep(1);
-+ rtl8180_rtl8225_write(dev, 0x6, 0x0E6); msleep(1);
-+ rtl8180_rtl8225_write(dev, 0x7, 0x82A); msleep(1);
-+ rtl8180_rtl8225_write(dev, 0x8, 0x03F); msleep(1);
-+ rtl8180_rtl8225_write(dev, 0x9, 0x335); msleep(1);
-+ rtl8180_rtl8225_write(dev, 0xa, 0x9D4); msleep(1);
-+ rtl8180_rtl8225_write(dev, 0xb, 0x7BB); msleep(1);
-+ rtl8180_rtl8225_write(dev, 0xc, 0x850); msleep(1);
-+ rtl8180_rtl8225_write(dev, 0xd, 0xCDF); msleep(1);
-+ rtl8180_rtl8225_write(dev, 0xe, 0x02B); msleep(1);
-+ rtl8180_rtl8225_write(dev, 0xf, 0x114); msleep(100);
++ rtl8225_write(dev, 0x0, 0x0B7); msleep(1);
++ rtl8225_write(dev, 0x1, 0xEE0); msleep(1);
++ rtl8225_write(dev, 0x2, 0x44D); msleep(1);
++ rtl8225_write(dev, 0x3, 0x441); msleep(1);
++ rtl8225_write(dev, 0x4, 0x8C3); msleep(1);
++ rtl8225_write(dev, 0x5, 0xC72); msleep(1);
++ rtl8225_write(dev, 0x6, 0x0E6); msleep(1);
++ rtl8225_write(dev, 0x7, 0x82A); msleep(1);
++ rtl8225_write(dev, 0x8, 0x03F); msleep(1);
++ rtl8225_write(dev, 0x9, 0x335); msleep(1);
++ rtl8225_write(dev, 0xa, 0x9D4); msleep(1);
++ rtl8225_write(dev, 0xb, 0x7BB); msleep(1);
++ rtl8225_write(dev, 0xc, 0x850); msleep(1);
++ rtl8225_write(dev, 0xd, 0xCDF); msleep(1);
++ rtl8225_write(dev, 0xe, 0x02B); msleep(1);
++ rtl8225_write(dev, 0xf, 0x114); msleep(100);
+
-+ if (!(rtl8180_rtl8225_read(dev, 6) & (1 << 7))) {
-+ rtl8180_rtl8225_write(dev, 0x02, 0x0C4D);
++ if (!(rtl8225_read(dev, 6) & (1 << 7))) {
++ rtl8225_write(dev, 0x02, 0x0C4D);
+ msleep(200);
-+ rtl8180_rtl8225_write(dev, 0x02, 0x044D);
++ rtl8225_write(dev, 0x02, 0x044D);
+ msleep(100);
-+ if (!(rtl8180_rtl8225_read(dev, 6) & (1 << 7)))
-+ printk(KERN_WARNING "%s: RF Calibration Failed! %x\n",
-+ wiphy_name(dev->wiphy), rtl8180_rtl8225_read(dev, 6));
++ /* TODO: readd calibration failure message when the calibration
++ check works */
+ }
+
-+ rtl8180_rtl8225_write(dev, 0x0, 0x1B7);
-+ rtl8180_rtl8225_write(dev, 0x3, 0x002);
-+ rtl8180_rtl8225_write(dev, 0x5, 0x004);
++ rtl8225_write(dev, 0x0, 0x1B7);
++ rtl8225_write(dev, 0x3, 0x002);
++ rtl8225_write(dev, 0x5, 0x004);
+
-+ for (i = 0; i < ARRAY_SIZE(rtl8180_rtl8225z2_rxgain); i++) {
-+ rtl8180_rtl8225_write(dev, 0x1, i + 1);
-+ rtl8180_rtl8225_write(dev, 0x2, rtl8180_rtl8225z2_rxgain[i]);
++ for (i = 0; i < ARRAY_SIZE(rtl8225z2_rxgain); i++) {
++ rtl8225_write(dev, 0x1, i + 1);
++ rtl8225_write(dev, 0x2, rtl8225z2_rxgain[i]);
+ }
+
-+ rtl8180_rtl8225_write(dev, 0x0, 0x0B7); msleep(100);
-+ rtl8180_rtl8225_write(dev, 0x2, 0xC4D);
++ rtl8225_write(dev, 0x0, 0x0B7); msleep(100);
++ rtl8225_write(dev, 0x2, 0xC4D);
+
+ msleep(200);
-+ rtl8180_rtl8225_write(dev, 0x2, 0x44D);
++ rtl8225_write(dev, 0x2, 0x44D);
+ msleep(100);
+
-+ rtl8180_rtl8225_write(dev, 0x00, 0x2BF);
-+ rtl8180_rtl8225_write(dev, 0xFF, 0xFFFF);
++ rtl8225_write(dev, 0x00, 0x2BF);
++ rtl8225_write(dev, 0xFF, 0xFFFF);
+
+ rtl818x_iowrite16(priv, &priv->map->RFPinsEnable, 0x1FFF);
+
-+ for (i = 0; i < ARRAY_SIZE(rtl8180_rtl8225_agc); i++) {
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0xB, rtl8180_rtl8225_agc[i]);
++ for (i = 0; i < ARRAY_SIZE(rtl8225_agc); i++) {
++ rtl8225_write_phy_ofdm(dev, 0xB, rtl8225_agc[i]);
+ msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0xA, 0x80 + i);
++ rtl8225_write_phy_ofdm(dev, 0xA, 0x80 + i);
+ msleep(1);
+ }
+
+ msleep(1);
+
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x00, 0x01); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x01, 0x02); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x02, 0x62); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x03, 0x00); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x04, 0x00); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x05, 0x00); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x06, 0x40); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x07, 0x00); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x08, 0x40); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x09, 0xfe); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x0a, 0x09); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x18, 0xef); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x0b, 0x80); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x0c, 0x01); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x0d, 0x43);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x0e, 0xd3); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x0f, 0x38); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x10, 0x84); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x11, 0x06); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x12, 0x20); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x13, 0x20); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x14, 0x00); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x15, 0x40); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x16, 0x00); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x17, 0x40); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x18, 0xef); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x19, 0x19); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x1a, 0x20); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x1b, 0x11); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x1c, 0x04); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x1d, 0xc5); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x1e, 0xb3); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x1f, 0x75); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x20, 0x1f); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x21, 0x27); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x22, 0x16); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x23, 0x80); msleep(1); /* FIXME: not needed? */
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x24, 0x46); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x25, 0x20); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x26, 0x90); msleep(1);
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x27, 0x88); msleep(1);
-+
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x00, 0x98); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x03, 0x20); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x04, 0x7e); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x05, 0x12); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x06, 0xfc); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x07, 0x78); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x08, 0x2e); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x10, 0x93); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x11, 0x88); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x12, 0x47); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x13, 0xd0);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x19, 0x00);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x1a, 0xa0);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x1b, 0x08);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x40, 0x86);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x41, 0x8a); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x42, 0x15); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x43, 0x18); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x44, 0x36); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x45, 0x35); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x46, 0x2e); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x47, 0x25); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x48, 0x1c); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x49, 0x12); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x4a, 0x09); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x4b, 0x04); msleep(1);
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x4c, 0x05); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x00, 0x01); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x01, 0x02); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x02, 0x62); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x03, 0x00); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x04, 0x00); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x05, 0x00); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x06, 0x40); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x07, 0x00); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x08, 0x40); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x09, 0xfe); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x0a, 0x09); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x18, 0xef); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x0b, 0x80); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x0c, 0x01); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x0d, 0x43);
++ rtl8225_write_phy_ofdm(dev, 0x0e, 0xd3); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x0f, 0x38); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x10, 0x84); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x11, 0x06); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x12, 0x20); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x13, 0x20); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x14, 0x00); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x15, 0x40); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x16, 0x00); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x17, 0x40); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x18, 0xef); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x19, 0x19); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x1a, 0x20); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x1b, 0x11); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x1c, 0x04); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x1d, 0xc5); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x1e, 0xb3); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x1f, 0x75); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x20, 0x1f); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x21, 0x27); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x22, 0x16); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x23, 0x80); msleep(1); /* FIXME: not needed? */
++ rtl8225_write_phy_ofdm(dev, 0x24, 0x46); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x25, 0x20); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x26, 0x90); msleep(1);
++ rtl8225_write_phy_ofdm(dev, 0x27, 0x88); msleep(1);
++
++ rtl8225_write_phy_cck(dev, 0x00, 0x98); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x03, 0x20); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x04, 0x7e); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x05, 0x12); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x06, 0xfc); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x07, 0x78); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x08, 0x2e); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x10, 0x93); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x11, 0x88); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x12, 0x47); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x13, 0xd0);
++ rtl8225_write_phy_cck(dev, 0x19, 0x00);
++ rtl8225_write_phy_cck(dev, 0x1a, 0xa0);
++ rtl8225_write_phy_cck(dev, 0x1b, 0x08);
++ rtl8225_write_phy_cck(dev, 0x40, 0x86);
++ rtl8225_write_phy_cck(dev, 0x41, 0x8a); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x42, 0x15); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x43, 0x18); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x44, 0x36); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x45, 0x35); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x46, 0x2e); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x47, 0x25); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x48, 0x1c); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x49, 0x12); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x4a, 0x09); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x4b, 0x04); msleep(1);
++ rtl8225_write_phy_cck(dev, 0x4c, 0x05); msleep(1);
+
+ rtl818x_iowrite8(priv, (u8 __iomem *)((void __iomem *)priv->map + 0x5B), 0x0D); msleep(1);
+
-+ rtl8180_rtl8225z2_rf_set_tx_power(dev, 1);
++ rtl8225z2_rf_set_tx_power(dev, 1);
+
+ /* RX antenna default to A */
-+ rtl8180_rtl8225_write_phy_cck(dev, 0x10, 0x9b); msleep(1); /* B: 0xDB */
-+ rtl8180_rtl8225_write_phy_ofdm(dev, 0x26, 0x90); msleep(1); /* B: 0x10 */
++ rtl8225_write_phy_cck(dev, 0x10, 0x9b); msleep(1); /* B: 0xDB */
++ rtl8225_write_phy_ofdm(dev, 0x26, 0x90); msleep(1); /* B: 0x10 */
+
+ rtl818x_iowrite8(priv, &priv->map->TX_ANTENNA, 0x03); /* B: 0x00 */
+ msleep(1);
@@ -1289,12 +1332,12 @@
+ rtl818x_iowrite16(priv, &priv->map->RFPinsEnable, 0x1FFF);
+}
+
-+void rtl8180_rtl8225_rf_stop(struct ieee80211_hw *dev)
++static void rtl8225_rf_stop(struct ieee80211_hw *dev)
+{
+ struct rtl8180_priv *priv = dev->priv;
+ u8 reg;
+
-+ rtl8180_rtl8225_write(dev, 0x4, 0x1f); msleep(1);
++ rtl8225_write(dev, 0x4, 0x1f); msleep(1);
+
+ rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_CONFIG);
+ reg = rtl818x_ioread8(priv, &priv->map->CONFIG3);
@@ -1305,17 +1348,17 @@
+ rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_NORMAL);
+}
+
-+void rtl8180_rtl8225_rf_set_channel(struct ieee80211_hw *dev,
-+ struct ieee80211_conf *conf)
++static void rtl8225_rf_set_channel(struct ieee80211_hw *dev,
++ struct ieee80211_conf *conf)
+{
+ struct rtl8180_priv *priv = dev->priv;
+
-+ if (priv->rf_init == rtl8180_rtl8225_rf_init)
-+ rtl8180_rtl8225_rf_set_tx_power(dev, conf->channel);
++ if (priv->rf->init == rtl8225_rf_init)
++ rtl8225_rf_set_tx_power(dev, conf->channel);
+ else
-+ rtl8180_rtl8225z2_rf_set_tx_power(dev, conf->channel);
++ rtl8225z2_rf_set_tx_power(dev, conf->channel);
+
-+ rtl8180_rtl8225_write(dev, 0x7, rtl8180_rtl8225_chan[conf->channel - 1]);
++ rtl8225_write(dev, 0x7, rtl8225_chan[conf->channel - 1]);
+ msleep(10);
+
+ if (conf->flags & IEEE80211_CONF_SHORT_SLOT_TIME) {
@@ -1332,11 +1375,53 @@
+ rtl818x_iowrite8(priv, &priv->map->CW_VAL, 0xa5);
+ }
+}
++
++static const struct rtl818x_rf_ops rtl8225_ops = {
++ .name = "rtl8225",
++ .init = rtl8225_rf_init,
++ .stop = rtl8225_rf_stop,
++ .set_chan = rtl8225_rf_set_channel
++};
++
++static const struct rtl818x_rf_ops rtl8225z2_ops = {
++ .name = "rtl8225z2",
++ .init = rtl8225z2_rf_init,
++ .stop = rtl8225_rf_stop,
++ .set_chan = rtl8225_rf_set_channel
++};
++
++const struct rtl818x_rf_ops * rtl8180_detect_rf(struct ieee80211_hw *dev)
++{
++ struct rtl8180_priv *priv = dev->priv;
++ u16 reg8, reg9;
++
++ rtl818x_iowrite16(priv, &priv->map->RFPinsOutput, 0x0480);
++ rtl818x_iowrite16(priv, &priv->map->RFPinsSelect, 0x0488);
++ rtl818x_iowrite16(priv, &priv->map->RFPinsEnable, 0x1FFF);
++ rtl818x_ioread8(priv, &priv->map->EEPROM_CMD);
++ msleep(100);
++
++ rtl8225_write(dev, 0, 0x1B7);
++
++ reg8 = rtl8225_read(dev, 8);
++ reg9 = rtl8225_read(dev, 9);
++
++ rtl8225_write(dev, 0, 0x0B7);
++
++ if (reg8 != 0x588 || reg9 != 0x700)
++ return &rtl8225_ops;
++
++ return &rtl8225z2_ops;
++}
diff -up linux-2.6.23.noarch/drivers/net/wireless/rtl8187_dev.c.orig linux-2.6.23.noarch/drivers/net/wireless/rtl8187_dev.c
---- linux-2.6.23.noarch/drivers/net/wireless/rtl8187_dev.c.orig 2007-12-21 12:19:55.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8187_dev.c 2007-12-21 12:28:05.000000000 -0500
-@@ -395,12 +395,12 @@ static int rtl8187_init_hw(struct ieee80
- priv->rf_init(dev);
+--- linux-2.6.23.noarch/drivers/net/wireless/rtl8187_dev.c.orig 2008-01-08 20:02:56.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8187_dev.c 2008-01-08 21:03:07.000000000 -0500
+@@ -392,37 +392,19 @@ static int rtl8187_init_hw(struct ieee80
+ rtl818x_iowrite16(priv, &priv->map->RFPinsEnable, 0x1FF7);
+ msleep(100);
+
+- priv->rf_init(dev);
++ priv->rf->init(dev);
rtl818x_iowrite16(priv, &priv->map->BRSR, 0x01F3);
- reg = rtl818x_ioread16(priv, &priv->map->PGSELECT) & 0xfffe;
@@ -1351,7 +1436,59 @@
return 0;
}
-@@ -752,13 +752,13 @@ static int __devinit rtl8187_probe(struc
+
+-static void rtl8187_set_channel(struct ieee80211_hw *dev, int channel)
+-{
+- u32 reg;
+- struct rtl8187_priv *priv = dev->priv;
+-
+- reg = rtl818x_ioread32(priv, &priv->map->TX_CONF);
+- /* Enable TX loopback on MAC level to avoid TX during channel
+- * changes, as this has be seen to causes problems and the
+- * card will stop work until next reset
+- */
+- rtl818x_iowrite32(priv, &priv->map->TX_CONF,
+- reg | RTL818X_TX_CONF_LOOPBACK_MAC);
+- msleep(10);
+- rtl8225_rf_set_channel(dev, channel);
+- msleep(10);
+- rtl818x_iowrite32(priv, &priv->map->TX_CONF, reg);
+-}
+-
+ static int rtl8187_start(struct ieee80211_hw *dev)
+ {
+ struct rtl8187_priv *priv = dev->priv;
+@@ -491,7 +473,7 @@ static void rtl8187_stop(struct ieee8021
+ reg &= ~RTL818X_CMD_RX_ENABLE;
+ rtl818x_iowrite8(priv, &priv->map->CMD, reg);
+
+- rtl8225_rf_stop(dev);
++ priv->rf->stop(dev);
+
+ rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_CONFIG);
+ reg = rtl818x_ioread8(priv, &priv->map->CONFIG4);
+@@ -542,7 +524,19 @@ static void rtl8187_remove_interface(str
+ static int rtl8187_config(struct ieee80211_hw *dev, struct ieee80211_conf *conf)
+ {
+ struct rtl8187_priv *priv = dev->priv;
+- rtl8187_set_channel(dev, conf->channel);
++ u32 reg;
++
++ reg = rtl818x_ioread32(priv, &priv->map->TX_CONF);
++ /* Enable TX loopback on MAC level to avoid TX during channel
++ * changes, as this has be seen to causes problems and the
++ * card will stop work until next reset
++ */
++ rtl818x_iowrite32(priv, &priv->map->TX_CONF,
++ reg | RTL818X_TX_CONF_LOOPBACK_MAC);
++ msleep(10);
++ priv->rf->set_chan(dev, conf);
++ msleep(10);
++ rtl818x_iowrite32(priv, &priv->map->TX_CONF, reg);
+
+ rtl818x_iowrite8(priv, &priv->map->SIFS, 0x22);
+
+@@ -752,23 +746,16 @@ static int __devinit rtl8187_probe(struc
eeprom_93cx6_read(&eeprom, RTL8187_EEPROM_TXPWR_BASE,
&priv->txpwr_base);
@@ -1367,10 +1504,31 @@
+ rtl818x_iowrite8(priv, &priv->map->PGSELECT, reg);
rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_NORMAL);
- rtl8225_write(dev, 0, 0x1B7);
+- rtl8225_write(dev, 0, 0x1B7);
+-
+- if (rtl8225_read(dev, 8) != 0x588 || rtl8225_read(dev, 9) != 0x700)
+- priv->rf_init = rtl8225_rf_init;
+- else
+- priv->rf_init = rtl8225z2_rf_init;
+-
+- rtl8225_write(dev, 0, 0x0B7);
++ priv->rf = rtl8187_detect_rf(dev);
+
+ err = ieee80211_register_hw(dev);
+ if (err) {
+@@ -778,8 +765,7 @@ static int __devinit rtl8187_probe(struc
+
+ printk(KERN_INFO "%s: hwaddr %s, rtl8187 V%d + %s\n",
+ wiphy_name(dev->wiphy), print_mac(mac, dev->wiphy->perm_addr),
+- priv->asic_rev, priv->rf_init == rtl8225_rf_init ?
+- "rtl8225" : "rtl8225z2");
++ priv->asic_rev, priv->rf->name);
+
+ return 0;
+
diff -up linux-2.6.23.noarch/drivers/net/wireless/rtl818x.h.orig linux-2.6.23.noarch/drivers/net/wireless/rtl818x.h
---- linux-2.6.23.noarch/drivers/net/wireless/rtl818x.h.orig 2007-12-21 10:43:36.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl818x.h 2007-12-21 12:28:05.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/rtl818x.h.orig 2008-01-08 20:02:56.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl818x.h 2008-01-08 21:03:07.000000000 -0500
@@ -58,13 +58,17 @@ struct rtl818x_csr {
#define RTL818X_INT_TX_FO (1 << 15)
__le32 TX_CONF;
@@ -1430,7 +1588,7 @@
u8 PHY[4];
__le16 RFPinsOutput;
__le16 RFPinsEnable;
-@@ -149,8 +161,10 @@ struct rtl818x_csr {
+@@ -149,11 +161,20 @@ struct rtl818x_csr {
u8 RETRY_CTR;
u8 reserved_18[5];
__le32 RDSAR;
@@ -1443,10 +1601,20 @@
u8 TALLY_SEL;
} __attribute__((packed));
++struct rtl818x_rf_ops {
++ char *name;
++ void (*init)(struct ieee80211_hw *);
++ void (*stop)(struct ieee80211_hw *);
++ void (*set_chan)(struct ieee80211_hw *, struct ieee80211_conf *);
++};
++
+ static const struct ieee80211_rate rtl818x_rates[] = {
+ { .rate = 10,
+ .val = 0,
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180_grf5101.c
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_grf5101.c 2007-12-21 12:28:05.000000000 -0500
-@@ -0,0 +1,172 @@
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_grf5101.c 2008-01-08 21:03:07.000000000 -0500
+@@ -0,0 +1,179 @@
+
+/*
+ * Radio tuning for GCT GRF5101 on RTL8180
@@ -1518,8 +1686,8 @@
+ rtl8180_write_phy(dev, 0x10, ant);
+}
+
-+void grf5101_rf_set_channel(struct ieee80211_hw *dev,
-+ struct ieee80211_conf *conf)
++static void grf5101_rf_set_channel(struct ieee80211_hw *dev,
++ struct ieee80211_conf *conf)
+{
+ struct rtl8180_priv *priv = dev->priv;
+ u32 txpw = priv->channels[conf->channel - 1].val & 0xFF;
@@ -1539,7 +1707,7 @@
+ grf5101_write_phy_antenna(dev, chan);
+}
+
-+void grf5101_rf_stop(struct ieee80211_hw *dev)
++static void grf5101_rf_stop(struct ieee80211_hw *dev)
+{
+ struct rtl8180_priv *priv = dev->priv;
+ u32 anaparam;
@@ -1555,7 +1723,7 @@
+ write_grf5101(dev, 0x00, 0x8e4);
+}
+
-+void grf5101_rf_init(struct ieee80211_hw *dev)
++static void grf5101_rf_init(struct ieee80211_hw *dev)
+{
+ struct rtl8180_priv *priv = dev->priv;
+
@@ -1619,10 +1787,149 @@
+ rtl8180_write_phy(dev, 0x1a, 0xa0);
+ rtl8180_write_phy(dev, 0x1b, 0x44);
+}
++
++const struct rtl818x_rf_ops grf5101_rf_ops = {
++ .name = "GCT",
++ .init = grf5101_rf_init,
++ .stop = grf5101_rf_stop,
++ .set_chan = grf5101_rf_set_channel
++};
+diff -up linux-2.6.23.noarch/drivers/net/wireless/rtl8187.h.orig linux-2.6.23.noarch/drivers/net/wireless/rtl8187.h
+--- linux-2.6.23.noarch/drivers/net/wireless/rtl8187.h.orig 2008-01-08 20:02:56.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8187.h 2008-01-08 21:03:07.000000000 -0500
+@@ -64,7 +64,7 @@ struct rtl8187_tx_hdr {
+ struct rtl8187_priv {
+ /* common between rtl818x drivers */
+ struct rtl818x_csr *map;
+- void (*rf_init)(struct ieee80211_hw *);
++ const struct rtl818x_rf_ops *rf;
+ int mode;
+ int if_id;
+
+diff -up linux-2.6.23.noarch/drivers/net/wireless/rtl8187_rtl8225.h.orig linux-2.6.23.noarch/drivers/net/wireless/rtl8187_rtl8225.h
+--- linux-2.6.23.noarch/drivers/net/wireless/rtl8187_rtl8225.h.orig 2007-10-09 16:31:38.000000000 -0400
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8187_rtl8225.h 2008-01-08 21:03:07.000000000 -0500
+@@ -20,14 +20,7 @@
+ #define RTL8225_ANAPARAM_OFF 0xa00beb59
+ #define RTL8225_ANAPARAM2_OFF 0x840dec11
+
+-void rtl8225_write(struct ieee80211_hw *, u8 addr, u16 data);
+-u16 rtl8225_read(struct ieee80211_hw *, u8 addr);
+-
+-void rtl8225_rf_init(struct ieee80211_hw *);
+-void rtl8225z2_rf_init(struct ieee80211_hw *);
+-void rtl8225_rf_stop(struct ieee80211_hw *);
+-void rtl8225_rf_set_channel(struct ieee80211_hw *, int);
+-
++const struct rtl818x_rf_ops * rtl8187_detect_rf(struct ieee80211_hw *);
+
+ static inline void rtl8225_write_phy_ofdm(struct ieee80211_hw *dev,
+ u8 addr, u32 data)
+diff -up linux-2.6.23.noarch/drivers/net/wireless/rtl8187_rtl8225.c.orig linux-2.6.23.noarch/drivers/net/wireless/rtl8187_rtl8225.c
+--- linux-2.6.23.noarch/drivers/net/wireless/rtl8187_rtl8225.c.orig 2007-10-09 16:31:38.000000000 -0400
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8187_rtl8225.c 2008-01-08 21:03:07.000000000 -0500
+@@ -101,7 +101,7 @@ static void rtl8225_write_8051(struct ie
+ msleep(2);
+ }
+
+-void rtl8225_write(struct ieee80211_hw *dev, u8 addr, u16 data)
++static void rtl8225_write(struct ieee80211_hw *dev, u8 addr, u16 data)
+ {
+ struct rtl8187_priv *priv = dev->priv;
+
+@@ -111,7 +111,7 @@ void rtl8225_write(struct ieee80211_hw *
+ rtl8225_write_bitbang(dev, addr, data);
+ }
+
+-u16 rtl8225_read(struct ieee80211_hw *dev, u8 addr)
++static u16 rtl8225_read(struct ieee80211_hw *dev, u8 addr)
+ {
+ struct rtl8187_priv *priv = dev->priv;
+ u16 reg80, reg82, reg84, out;
+@@ -325,7 +325,7 @@ static void rtl8225_rf_set_tx_power(stru
+ msleep(1);
+ }
+
+-void rtl8225_rf_init(struct ieee80211_hw *dev)
++static void rtl8225_rf_init(struct ieee80211_hw *dev)
+ {
+ struct rtl8187_priv *priv = dev->priv;
+ int i;
+@@ -567,7 +567,7 @@ static const u8 rtl8225z2_gain_bg[] = {
+ 0x63, 0x15, 0xc5 /* -66dBm */
+ };
+
+-void rtl8225z2_rf_init(struct ieee80211_hw *dev)
++static void rtl8225z2_rf_init(struct ieee80211_hw *dev)
+ {
+ struct rtl8187_priv *priv = dev->priv;
+ int i;
+@@ -715,7 +715,7 @@ void rtl8225z2_rf_init(struct ieee80211_
+ rtl818x_iowrite32(priv, (__le32 *)0xFF94, 0x3dc00002);
+ }
+
+-void rtl8225_rf_stop(struct ieee80211_hw *dev)
++static void rtl8225_rf_stop(struct ieee80211_hw *dev)
+ {
+ u8 reg;
+ struct rtl8187_priv *priv = dev->priv;
+@@ -731,15 +731,47 @@ void rtl8225_rf_stop(struct ieee80211_hw
+ rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_NORMAL);
+ }
+
+-void rtl8225_rf_set_channel(struct ieee80211_hw *dev, int channel)
++static void rtl8225_rf_set_channel(struct ieee80211_hw *dev,
++ struct ieee80211_conf *conf)
+ {
+ struct rtl8187_priv *priv = dev->priv;
+
+- if (priv->rf_init == rtl8225_rf_init)
+- rtl8225_rf_set_tx_power(dev, channel);
++ if (priv->rf->init == rtl8225_rf_init)
++ rtl8225_rf_set_tx_power(dev, conf->channel);
+ else
+- rtl8225z2_rf_set_tx_power(dev, channel);
++ rtl8225z2_rf_set_tx_power(dev, conf->channel);
+
+- rtl8225_write(dev, 0x7, rtl8225_chan[channel - 1]);
++ rtl8225_write(dev, 0x7, rtl8225_chan[conf->channel - 1]);
+ msleep(10);
+ }
++
++static const struct rtl818x_rf_ops rtl8225_ops = {
++ .name = "rtl8225",
++ .init = rtl8225_rf_init,
++ .stop = rtl8225_rf_stop,
++ .set_chan = rtl8225_rf_set_channel
++};
++
++static const struct rtl818x_rf_ops rtl8225z2_ops = {
++ .name = "rtl8225z2",
++ .init = rtl8225z2_rf_init,
++ .stop = rtl8225_rf_stop,
++ .set_chan = rtl8225_rf_set_channel
++};
++
++const struct rtl818x_rf_ops * rtl8187_detect_rf(struct ieee80211_hw *dev)
++{
++ u16 reg8, reg9;
++
++ rtl8225_write(dev, 0, 0x1B7);
++
++ reg8 = rtl8225_read(dev, 8);
++ reg9 = rtl8225_read(dev, 9);
++
++ rtl8225_write(dev, 0, 0x0B7);
++
++ if (reg8 != 0x588 || reg9 != 0x700)
++ return &rtl8225_ops;
++
++ return &rtl8225z2_ops;
++}
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180_dev.c
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_dev.c 2007-12-21 12:28:05.000000000 -0500
-@@ -0,0 +1,1071 @@
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_dev.c 2008-01-08 21:03:07.000000000 -0500
+@@ -0,0 +1,1048 @@
+
+/*
+ * Linux device driver for RTL8180 / RTL8185
@@ -1999,7 +2306,7 @@
+ rtl818x_iowrite8(priv, &priv->map->CARRIER_SENSE_COUNTER, 0x4C);
+ }
+
-+ priv->rf_init(dev);
++ priv->rf->init(dev);
+ if (priv->r8185)
+ rtl818x_iowrite16(priv, &priv->map->BRSR, 0x01F3);
+ return 0;
@@ -2233,7 +2540,7 @@
+ reg &= ~RTL818X_CMD_RX_ENABLE;
+ rtl818x_iowrite8(priv, &priv->map->CMD, reg);
+
-+ priv->rf_stop(dev);
++ priv->rf->stop(dev);
+
+ rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_CONFIG);
+ reg = rtl818x_ioread8(priv, &priv->map->CONFIG4);
@@ -2284,7 +2591,7 @@
+{
+ struct rtl8180_priv *priv = dev->priv;
+
-+ priv->rf_set_chan(dev, conf);
++ priv->rf->set_chan(dev, conf);
+
+ return 0;
+}
@@ -2392,7 +2699,7 @@
+ unsigned int io_addr, io_len;
+ int err, i;
+ struct eeprom_93cx6 eeprom;
-+ const char *chip_name, *rf_name;
++ const char *chip_name, *rf_name = NULL;
+ u32 reg;
+ u16 eeprom_val;
+ DECLARE_MAC_BUF(mac);
@@ -2522,40 +2829,17 @@
+ eeprom_93cx6_read(&eeprom, 0x06, &eeprom_val);
+ eeprom_val &= 0xFF;
+ switch (eeprom_val) {
-+ case 1:
-+ rf_name = "Intersil";
++ case 1: rf_name = "Intersil";
+ break;
-+ case 2:
-+ rf_name = "RFMD";
++ case 2: rf_name = "RFMD";
+ break;
-+ case 3:
-+ rf_name = "Philips";
-+ priv->rf_init = sa2400_rf_init;
-+ priv->rf_stop = sa2400_rf_stop;
-+ priv->rf_set_chan = sa2400_rf_set_channel;
++ case 3: priv->rf = &sa2400_rf_ops;
+ break;
-+ case 4:
-+ rf_name = "Maxim";
-+ priv->rf_init = max2820_rf_init;
-+ priv->rf_stop = max2820_rf_stop;
-+ priv->rf_set_chan = max2820_rf_set_channel;
++ case 4: priv->rf = &max2820_rf_ops;
+ break;
-+ case 5:
-+ rf_name = "GCT";
-+ priv->rf_init = grf5101_rf_init;
-+ priv->rf_stop = grf5101_rf_stop;
-+ priv->rf_set_chan = grf5101_rf_set_channel;
++ case 5: priv->rf = &grf5101_rf_ops;
+ break;
-+ case 9:
-+ if (rtl8180_rtl8225_is_z2(dev)) {
-+ rf_name = "RTL8225z2";
-+ priv->rf_init = rtl8180_rtl8225z2_rf_init;
-+ } else {
-+ rf_name = "RTL8225";
-+ priv->rf_init = rtl8180_rtl8225_rf_init;
-+ }
-+ priv->rf_stop = rtl8180_rtl8225_rf_stop;
-+ priv->rf_set_chan = rtl8180_rtl8225_rf_set_channel;
++ case 9: priv->rf = rtl8180_detect_rf(dev);
+ break;
+ case 10:
+ rf_name = "RTL8255";
@@ -2566,7 +2850,7 @@
+ goto err_iounmap;
+ }
+
-+ if (eeprom_val < 3) {
++ if (!priv->rf) {
+ printk(KERN_ERR "%s (rtl8180): %s RF frontend not supported!\n",
+ pci_name(pdev), rf_name);
+ goto err_iounmap;
@@ -2619,7 +2903,7 @@
+
+ printk(KERN_INFO "%s: hwaddr %s, %s + %s\n",
+ wiphy_name(dev->wiphy), print_mac(mac, dev->wiphy->perm_addr),
-+ chip_name, rf_name);
++ chip_name, priv->rf->name);
+
+ return 0;
+
@@ -2695,9 +2979,9 @@
+module_init(rtl8180_init);
+module_exit(rtl8180_exit);
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180.h
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180.h 2007-12-21 12:28:05.000000000 -0500
-@@ -0,0 +1,153 @@
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180.h 2008-01-08 21:03:07.000000000 -0500
+@@ -0,0 +1,151 @@
+#ifndef RTL8180_H
+#define RTL8180_H
+
@@ -2789,9 +3073,7 @@
+struct rtl8180_priv {
+ /* common between rtl818x drivers */
+ struct rtl818x_csr __iomem *map;
-+ void (*rf_init)(struct ieee80211_hw *);
-+ void (*rf_stop)(struct ieee80211_hw *);
-+ void (*rf_set_chan)(struct ieee80211_hw *, struct ieee80211_conf *);
++ const struct rtl818x_rf_ops *rf;
+ int mode;
+ int if_id;
+
@@ -2852,24 +3134,75 @@
+
+#endif /* RTL8180_H */
diff -up linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig linux-2.6.23.noarch/drivers/net/wireless/Kconfig
---- linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig 2007-12-21 12:19:55.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/Kconfig 2007-12-21 12:28:05.000000000 -0500
-@@ -553,6 +553,11 @@ config USB_ZD1201
+--- linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig 2008-01-08 21:00:40.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/Kconfig 2008-01-08 21:03:07.000000000 -0500
+@@ -553,6 +553,62 @@ config USB_ZD1201
To compile this driver as a module, choose M here: the
module will be called zd1201.
+config RTL8180
-+ tristate "Realtek 8185 PCI support"
++ tristate "Realtek 8180/8185 PCI support"
+ depends on MAC80211 && PCI && WLAN_80211 && EXPERIMENTAL
+ select EEPROM_93CX6
++ ---help---
++ This is a driver for RTL8180 and RTL8185 based cards.
++ These are PCI based chips found in cards such as:
++
++ (RTL8185 802.11g)
++ A-Link WL54PC
++
++ (RTL8180 802.11b)
++ Belkin F5D6020 v3
++ Belkin F5D6020 v3
++ Dlink DWL-610
++ Dlink DWL-510
++ Netgear MA521
++ Level-One WPC-0101
++ Acer Aspire 1357 LMi
++ VCTnet PC-11B1
++ Ovislink AirLive WL-1120PCM
++ Mentor WL-PCI
++ Linksys WPC11 v4
++ TrendNET TEW-288PI
++ D-Link DWL-520 Rev D
++ Repotec RP-WP7126
++ TP-Link TL-WN250/251
++ Zonet ZEW1000
++ Longshine LCS-8031-R
++ HomeLine HLW-PCC200
++ GigaFast WF721-AEX
++ Planet WL-3553
++ Encore ENLWI-PCI1-NT
++ TrendNET TEW-266PC
++ Gigabyte GN-WLMR101
++ Siemens-fujitsu Amilo D1840W
++ Edimax EW-7126
++ PheeNet WL-11PCIR
++ Tonze PC-2100T
++ Planet WL-8303
++ Dlink DWL-650 v M1
++ Edimax EW-7106
++ Q-Tec 770WC
++ Topcom Skyr at cer 4011b
++ Roper FreeLan 802.11b (edition 2004)
++ Wistron Neweb Corp CB-200B
++ Pentagram HorNET
++ QTec 775WC
++ TwinMOS Booming B Series
++ Micronet SP906BB
++ Sweex LC700010
++ Surecom EP-9428
++ Safecom SWLCR-1100
++
++ Thanks to Realtek for their support!
+
config RTL8187
tristate "Realtek 8187 USB support"
depends on MAC80211 && USB && WLAN_80211 && EXPERIMENTAL
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180_rtl8225.h
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_rtl8225.h 2007-12-21 12:28:05.000000000 -0500
-@@ -0,0 +1,28 @@
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_rtl8225.h 2008-01-08 21:03:07.000000000 -0500
+@@ -0,0 +1,23 @@
+#ifndef RTL8180_RTL8225_H
+#define RTL8180_RTL8225_H
+
@@ -2878,20 +3211,15 @@
+#define RTL8225_ANAPARAM_OFF 0xa00beb59
+#define RTL8225_ANAPARAM2_OFF 0x840dec11
+
-+int rtl8180_rtl8225_is_z2(struct ieee80211_hw *dev);
++const struct rtl818x_rf_ops * rtl8180_detect_rf(struct ieee80211_hw *);
+
-+void rtl8180_rtl8225_rf_init(struct ieee80211_hw *);
-+void rtl8180_rtl8225z2_rf_init(struct ieee80211_hw *);
-+void rtl8180_rtl8225_rf_stop(struct ieee80211_hw *);
-+void rtl8180_rtl8225_rf_set_channel(struct ieee80211_hw *, struct ieee80211_conf *);
-+
-+static inline void rtl8180_rtl8225_write_phy_ofdm(struct ieee80211_hw *dev,
++static inline void rtl8225_write_phy_ofdm(struct ieee80211_hw *dev,
+ u8 addr, u8 data)
+{
+ rtl8180_write_phy(dev, addr, data);
+}
+
-+static inline void rtl8180_rtl8225_write_phy_cck(struct ieee80211_hw *dev,
++static inline void rtl8225_write_phy_cck(struct ieee80211_hw *dev,
+ u8 addr, u8 data)
+{
+ rtl8180_write_phy(dev, addr, data | 0x10000);
@@ -2899,9 +3227,9 @@
+
+#endif /* RTL8180_RTL8225_H */
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180_grf5101.h
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_grf5101.h 2007-12-21 12:28:05.000000000 -0500
-@@ -0,0 +1,30 @@
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_grf5101.h 2008-01-08 21:03:07.000000000 -0500
+@@ -0,0 +1,28 @@
+#ifndef RTL8180_GRF5101_H
+#define RTL8180_GRF5101_H
+
@@ -2927,15 +3255,13 @@
+
+#define GRF5101_ANTENNA 0xA3
+
-+void grf5101_rf_init(struct ieee80211_hw *);
-+void grf5101_rf_stop(struct ieee80211_hw *);
-+void grf5101_rf_set_channel(struct ieee80211_hw *, struct ieee80211_conf *);
++extern const struct rtl818x_rf_ops grf5101_rf_ops;
+
+#endif /* RTL8180_GRF5101_H */
diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180_max2820.c
---- /dev/null 2007-12-21 08:33:07.834165456 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_max2820.c 2007-12-21 12:28:05.000000000 -0500
-@@ -0,0 +1,142 @@
+--- /dev/null 2008-01-08 19:44:41.586069818 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_max2820.c 2008-01-08 21:03:07.000000000 -0500
+@@ -0,0 +1,150 @@
+/*
+ * Radio tuning for Maxim max2820 on RTL8180
+ *
@@ -2964,7 +3290,7 @@
+#include "rtl8180.h"
+#include "rtl8180_max2820.h"
+
-+u32 max2820_chan[] = {
++static const u32 max2820_chan[] = {
+ 12, /* CH 1 */
+ 17,
+ 22,
@@ -3012,7 +3338,8 @@
+ rtl8180_write_phy(dev, 0x10, ant);
+}
+
-+void max2820_rf_set_channel(struct ieee80211_hw *dev, struct ieee80211_conf *conf)
++static void max2820_rf_set_channel(struct ieee80211_hw *dev,
++ struct ieee80211_conf *conf)
+{
+ struct rtl8180_priv *priv = dev->priv;
+ unsigned int chan_idx = conf ? conf->channel - 1 : 0;
@@ -3027,14 +3354,14 @@
+ write_max2820(dev, 3, chan);
+}
+
-+void max2820_rf_stop(struct ieee80211_hw *dev)
++static void max2820_rf_stop(struct ieee80211_hw *dev)
+{
+ rtl8180_write_phy(dev, 3, 0x8);
+ write_max2820(dev, 1, 0);
+}
+
+
-+void max2820_rf_init(struct ieee80211_hw *dev)
++static void max2820_rf_init(struct ieee80211_hw *dev)
+{
+ struct rtl8180_priv *priv = dev->priv;
+
@@ -3078,3 +3405,10 @@
+
+ max2820_rf_set_channel(dev, NULL);
+}
++
++const struct rtl818x_rf_ops max2820_rf_ops = {
++ .name = "Maxim",
++ .init = max2820_rf_init,
++ .stop = max2820_rf_stop,
++ .set_chan = max2820_rf_set_channel
++};
linux-2.6-wireless-pending.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.19 -r 1.20 linux-2.6-wireless-pending.patch
Index: linux-2.6-wireless-pending.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-wireless-pending.patch,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- linux-2.6-wireless-pending.patch 4 Jan 2008 21:55:12 -0000 1.19
+++ linux-2.6-wireless-pending.patch 9 Jan 2008 02:12:37 -0000 1.20
@@ -1,3 +1,1166 @@
+commit 620fdb92d74f94ef5608c08cf9825a427e1ecfff
+Author: Michael Buesch <mb at bu3sch.de>
+Date: Sat Dec 29 17:24:23 2007 +0100
+
+ zd1211rw: fix alignment for QOS and WDS frames
+
+ This patch fixes RX packet alignment issues in the zd1211rw driver.
+ This is based on a patch by Johannes Berg.
+
+ Signed-off-by: Michael Buesch <mb at bu3sch.de>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit f94de7b013f78ad8bbe1064c108dd55141efb177
+Author: Miguel Botón <mboton.lkml at gmail.com>
+Date: Fri Jan 4 23:34:35 2008 +0100
+
+ iwlwifi: fix compilation warning in 'iwl-4965.c'
+
+ This patch fixes a compilation warning in 'iwl-4965.c'.
+
+ "warning: format â%dâ expects type âintâ, but argument 3 has type âlong unsigned intâ"
+
+ Signed-off-by: Miguel Botón <mboton at gmail.com
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit d285ab9bd9dd17662cc628fd402cc5ca6590e873
+Author: Michael Buesch <mb at bu3sch.de>
+Date: Mon Jan 7 12:55:14 2008 +0100
+
+ b43: Add N-PHY related initvals firmware filenames.
+
+ This adds the initval filenames for the N-PHY firmware.
+
+ Signed-off-by: Michael Buesch <mb at bu3sch.de>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit c6227910a3aa6ac87d82b8309282d574a10954f0
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date: Sun Jan 6 23:42:21 2008 +0100
+
+ rt2x00: Release rt2x00 2.0.14
+
+ Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit ec41503f4eb1e1675098861ca51d8fc3accb11c3
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date: Sun Jan 6 23:42:04 2008 +0100
+
+ rt2x00: Correctly initialize data and desc pointer
+
+ rt2500usb and rt73usb store the descriptor in different
+ places. This means we should move the initialization of
+ the 2 pointers to the driver callback function fill_rxdone().
+
+ Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 773c8f682c18c91b76b2c0ce65598ca3486935dd
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date: Sun Jan 6 23:41:45 2008 +0100
+
+ rt2x00: Move init_txring and init_rxring into rt2x00lib
+
+ Prior to enabling the radio rt2x00lib should go through all
+ rings and for each entry should call the callback function
+ init_txentry() and init_rxentry().
+
+ Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit f631a156231a252dda6a738955915e79180cc23b
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date: Sun Jan 6 23:41:28 2008 +0100
+
+ rt2x00: Determine MY_BSS from descriptor
+
+ Use the MY_BSS descriptor field to determine if the
+ received frame belongs to the same BSS as the interface.
+ This can be used by rxdone to determine if the frame
+ should be updated or not.
+
+ Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit cdf589ffb50aa7146a1b11f1d366f6a2f57349eb
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date: Sun Jan 6 23:41:10 2008 +0100
+
+ rt2x00: Cleanup write_tx_desc() arguments
+
+ Send the skb structure with write_tx_desc() and use
+ the skbdesc structure to read all information about
+ the frame. This saves several arguments in the function
+ definition and it is easier to send more information
+ later as well.
+
+ Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit a4200f27560df2f2da98b38afbcf2ad5c72f4f05
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date: Sun Jan 6 23:40:49 2008 +0100
+
+ rt2x00: Move packet filter flags
+
+ The packet filter flags don't belong in the interface structure
+ because they are device based instead of interface based.
+ So move the filter fields out of struct interface and into rt2x00_dev.
+
+ Additionally we shouldn't change the filter based on the working
+ mode, if such a thing is needed than mac80211 should have done that.
+
+ Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit c9bf26a302c65cde82e8e50cce14d307c82cc9a2
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date: Sun Jan 6 23:40:27 2008 +0100
+
+ rt2x00: Put 802.11 data on 4 byte boundary
+
+ Check the size of the ieee80211 header during rxdone
+ and make sure the data behind the ieee80211 header
+ is placed on a 4 byte boundary.
+
+ Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit cf629bd6e996d6991ea690c6fb06d6a72767e444
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date: Sun Jan 6 23:40:07 2008 +0100
+
+ rt2x00: Move start() and stop() handlers into rt2x00lib.c
+
+ suspend & resume was broken since it called rt2x00mac_start()
+ and rt2x00mac_stop() which would fail to execute because the
+ DEVICE_PRESENT flag was not set.
+
+ Move the start and stop handlers into rt2x00lib.c which are called
+ from rt2x00mac_start() and rt2x00mac_stop() after they have checked
+ the DEVICE_PRESENT flag, while suspend and resume handlers can
+ directly call those functions.
+
+ Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 945a99f31293b2a0881b4753bbdcc2220882ac19
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date: Sun Jan 6 23:39:25 2008 +0100
+
+ rt2x00: Store queue idx and entry idx in data_ring and data_entry
+
+ Store the queue idx inside structure data_ring
+ Store the entry idx inside structure data_entry
+ This saves us a few calls to ARRAY_INDEX() which is now unused.
+
+ Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 352ee73adab6ecdd5900d7fc8d072536aa8f5fb6
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date: Sun Jan 6 23:38:58 2008 +0100
+
+ rt2x00: Only set the TBCN flag when the interface is configured to send beacons.
+
+ These flags used to be fixed to one in rt2500pci_config_type, which
+ caused the beacon timer interrupt to fire. This would lead to
+ rt2x00lib_beacondone adding work which called
+ rt2x00lib_beacondone_scheduled which called ieee80211_beacon_get which
+ printed an error about not having any beacon data.
+
+ With this patch, these interrupts are only generated when the interface
+ is configured to send beacons.
+
+ Signed-off-by: Matthijs Kooijman <matthijs at stdin.nl>
+ Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 06b53ccbc2fefad0911d772b6c707a7e61571f39
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date: Sun Jan 6 23:38:34 2008 +0100
+
+ rt2x00: Always call ieee80211_stop_queue() when return NETDEV_TX_BUSY
+
+ Apparently it was possible that ieee80211_stop_queue() was not full while
+ NETDEV_TX_BUSY was being reported back. I think that is what causing the WARN_ON().
+ This moves all calls to ieee80211_stop_queue() in rt2x00mac.c where it is easier
+ to determine if the queue should be halted.
+
+ Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
[...17082 lines suppressed...]
- SPEX(pci_spid, SSB_SPROM1_SPID, 0xFFFF, 0);
@@ -78051,28 +89429,45 @@
*(((__be16 *)out->et1mac) + i) = cpu_to_be16(v);
}
SPEX(et0phyaddr, SSB_SPROM1_ETHPHY, SSB_SPROM1_ETHPHY_ET0A, 0);
- SPEX(et1phyaddr, SSB_SPROM1_ETHPHY, SSB_SPROM1_ETHPHY_ET1A,
- SSB_SPROM1_ETHPHY_ET1A_SHIFT);
-- SPEX(et0mdcport, SSB_SPROM1_ETHPHY, SSB_SPROM1_ETHPHY_ET0M, 14);
-- SPEX(et1mdcport, SSB_SPROM1_ETHPHY, SSB_SPROM1_ETHPHY_ET1M, 15);
-- SPEX(board_rev, SSB_SPROM1_BINF, SSB_SPROM1_BINF_BREV, 0);
+@@ -324,9 +354,9 @@ static void sprom_extract_r1(struct ssb_
+ SPEX(board_rev, SSB_SPROM1_BINF, SSB_SPROM1_BINF_BREV, 0);
SPEX(country_code, SSB_SPROM1_BINF, SSB_SPROM1_BINF_CCODE,
SSB_SPROM1_BINF_CCODE_SHIFT);
- SPEX(antenna_a, SSB_SPROM1_BINF, SSB_SPROM1_BINF_ANTA,
-- SSB_SPROM1_BINF_ANTA_SHIFT);
++ SPEX(ant_available_a, SSB_SPROM1_BINF, SSB_SPROM1_BINF_ANTA,
+ SSB_SPROM1_BINF_ANTA_SHIFT);
- SPEX(antenna_bg, SSB_SPROM1_BINF, SSB_SPROM1_BINF_ANTBG,
-- SSB_SPROM1_BINF_ANTBG_SHIFT);
++ SPEX(ant_available_bg, SSB_SPROM1_BINF, SSB_SPROM1_BINF_ANTBG,
+ SSB_SPROM1_BINF_ANTBG_SHIFT);
SPEX(pa0b0, SSB_SPROM1_PA0B0, 0xFFFF, 0);
SPEX(pa0b1, SSB_SPROM1_PA0B1, 0xFFFF, 0);
- SPEX(pa0b2, SSB_SPROM1_PA0B2, 0xFFFF, 0);
-@@ -350,97 +351,75 @@ static void sprom_extract_r1(struct ssb_
- SPEX(antenna_gain_a, SSB_SPROM1_AGAIN, SSB_SPROM1_AGAIN_A, 0);
- SPEX(antenna_gain_bg, SSB_SPROM1_AGAIN, SSB_SPROM1_AGAIN_BG,
- SSB_SPROM1_AGAIN_BG_SHIFT);
+@@ -347,100 +377,105 @@ static void sprom_extract_r1(struct ssb_
+ SSB_SPROM1_ITSSI_A_SHIFT);
+ SPEX(itssi_bg, SSB_SPROM1_ITSSI, SSB_SPROM1_ITSSI_BG, 0);
+ SPEX(boardflags_lo, SSB_SPROM1_BFLLO, 0xFFFF, 0);
+- SPEX(antenna_gain_a, SSB_SPROM1_AGAIN, SSB_SPROM1_AGAIN_A, 0);
+- SPEX(antenna_gain_bg, SSB_SPROM1_AGAIN, SSB_SPROM1_AGAIN_BG,
+- SSB_SPROM1_AGAIN_BG_SHIFT);
- for (i = 0; i < 4; i++) {
- v = in[SPOFF(SSB_SPROM1_OEM) + i];
- *(((__le16 *)out->oem) + i) = cpu_to_le16(v);
- }
++
++ /* Extract the antenna gain values. */
++ gain = r123_extract_antgain(out->revision, in,
++ SSB_SPROM1_AGAIN_BG,
++ SSB_SPROM1_AGAIN_BG_SHIFT);
++ out->antenna_gain.ghz24.a0 = gain;
++ out->antenna_gain.ghz24.a1 = gain;
++ out->antenna_gain.ghz24.a2 = gain;
++ out->antenna_gain.ghz24.a3 = gain;
++ gain = r123_extract_antgain(out->revision, in,
++ SSB_SPROM1_AGAIN_A,
++ SSB_SPROM1_AGAIN_A_SHIFT);
++ out->antenna_gain.ghz5.a0 = gain;
++ out->antenna_gain.ghz5.a1 = gain;
++ out->antenna_gain.ghz5.a2 = gain;
++ out->antenna_gain.ghz5.a3 = gain;
}
-static void sprom_extract_r2(struct ssb_sprom_r2 *out, const u16 *in)
@@ -78100,6 +89495,7 @@
+ v = in[SPOFF(SSB_SPROM4_IL0MAC) + i];
+ *(((__be16 *)out->il0mac) + i) = cpu_to_be16(v);
}
+-}
+ for (i = 0; i < 3; i++) {
+ v = in[SPOFF(SSB_SPROM4_ET0MAC) + i];
+ *(((__be16 *)out->et0mac) + i) = cpu_to_be16(v);
@@ -78113,9 +89509,10 @@
+ SSB_SPROM4_ETHPHY_ET1A_SHIFT);
+ SPEX(country_code, SSB_SPROM4_CCODE, 0xFFFF, 0);
+ SPEX(boardflags_lo, SSB_SPROM4_BFLLO, 0xFFFF, 0);
-+ SPEX(antenna_gain_a, SSB_SPROM4_AGAIN, SSB_SPROM4_AGAIN_0, 0);
-+ SPEX(antenna_gain_bg, SSB_SPROM4_AGAIN, SSB_SPROM4_AGAIN_1,
-+ SSB_SPROM4_AGAIN_1_SHIFT);
++ SPEX(ant_available_a, SSB_SPROM4_ANTAVAIL, SSB_SPROM4_ANTAVAIL_A,
++ SSB_SPROM4_ANTAVAIL_A_SHIFT);
++ SPEX(ant_available_bg, SSB_SPROM4_ANTAVAIL, SSB_SPROM4_ANTAVAIL_BG,
++ SSB_SPROM4_ANTAVAIL_BG_SHIFT);
+ SPEX(maxpwr_bg, SSB_SPROM4_MAXP_BG, SSB_SPROM4_MAXP_BG_MASK, 0);
+ SPEX(itssi_bg, SSB_SPROM4_MAXP_BG, SSB_SPROM4_ITSSI_BG,
+ SSB_SPROM4_ITSSI_BG_SHIFT);
@@ -78128,8 +89525,18 @@
+ SPEX(gpio2, SSB_SPROM4_GPIOB, SSB_SPROM4_GPIOB_P2, 0);
+ SPEX(gpio3, SSB_SPROM4_GPIOB, SSB_SPROM4_GPIOB_P3,
+ SSB_SPROM4_GPIOB_P3_SHIFT);
-+ /* TODO - get remaining rev 4 stuff needed */
- }
++
++ /* Extract the antenna gain values. */
++ SPEX(antenna_gain.ghz24.a0, SSB_SPROM4_AGAIN01,
++ SSB_SPROM4_AGAIN0, SSB_SPROM4_AGAIN0_SHIFT);
++ SPEX(antenna_gain.ghz24.a1, SSB_SPROM4_AGAIN01,
++ SSB_SPROM4_AGAIN1, SSB_SPROM4_AGAIN1_SHIFT);
++ SPEX(antenna_gain.ghz24.a2, SSB_SPROM4_AGAIN23,
++ SSB_SPROM4_AGAIN2, SSB_SPROM4_AGAIN2_SHIFT);
++ SPEX(antenna_gain.ghz24.a3, SSB_SPROM4_AGAIN23,
++ SSB_SPROM4_AGAIN3, SSB_SPROM4_AGAIN3_SHIFT);
++ memcpy(&out->antenna_gain.ghz5, &out->antenna_gain.ghz24,
++ sizeof(out->antenna_gain.ghz5));
-static void sprom_extract_r3(struct ssb_sprom_r3 *out, const u16 *in)
-{
@@ -78168,8 +89575,9 @@
- out->ofdmgpo <<= 16;
- out->ofdmgpo |= (in[SPOFF(SSB_SPROM3_OFDMGPO) + 1] & 0xFF00) >> 8;
- out->ofdmgpo |= (in[SPOFF(SSB_SPROM3_OFDMGPO) + 1] & 0x00FF) << 8;
--}
--
++ /* TODO - get remaining rev 4 stuff needed */
+ }
+
-static int sprom_extract(struct ssb_bus *bus,
- struct ssb_sprom *out, const u16 *in)
+static int sprom_extract(struct ssb_bus *bus, struct ssb_sprom *out,
@@ -78182,7 +89590,7 @@
- SSB_SPROM_REVISION_CRC_SHIFT);
-
+ out->revision = in[size - 1] & 0x00FF;
-+ ssb_printk(KERN_INFO PFX "SPROM revision %d detected.\n", out->revision);
++ ssb_dprintk(KERN_DEBUG PFX "SPROM revision %d detected.\n", out->revision);
if ((bus->chip_id & 0xFF00) == 0x4400) {
/* Workaround: The BCM44XX chip has a stupid revision
* number stored in the SPROM.
@@ -78213,7 +89621,7 @@
goto unsupported;
}
-@@ -448,7 +427,7 @@ static int sprom_extract(struct ssb_bus
+@@ -448,7 +483,7 @@ static int sprom_extract(struct ssb_bus
unsupported:
ssb_printk(KERN_WARNING PFX "Unsupported SPROM revision %d "
"detected. Will extract v1\n", out->revision);
@@ -78222,7 +89630,7 @@
return 0;
}
-@@ -458,16 +437,31 @@ static int ssb_pci_sprom_get(struct ssb_
+@@ -458,16 +493,29 @@ static int ssb_pci_sprom_get(struct ssb_
int err = -ENOMEM;
u16 *buf;
@@ -78238,9 +89646,7 @@
- ssb_printk(KERN_WARNING PFX
- "WARNING: Invalid SPROM CRC (corrupt SPROM)\n");
+ /* check for rev 4 sprom - has special signature */
-+ if (buf [32] == 0x5372) {
-+ ssb_printk(KERN_WARNING PFX "Extracting a rev 4"
-+ " SPROM\n");
++ if (buf[32] == 0x5372) {
+ kfree(buf);
+ buf = kcalloc(SSB_SPROMSIZE_WORDS_R4, sizeof(u16),
+ GFP_KERNEL);
@@ -78259,7 +89665,7 @@
kfree(buf);
out:
-@@ -581,29 +575,28 @@ const struct ssb_bus_ops ssb_pci_ops = {
+@@ -581,29 +629,28 @@ const struct ssb_bus_ops ssb_pci_ops = {
.write32 = ssb_pci_write32,
};
@@ -78294,7 +89700,7 @@
memcpy(tmp, dump, 4);
dump += 4;
parsed = simple_strtoul(tmp, NULL, 16);
-@@ -627,7 +620,7 @@ static ssize_t ssb_pci_attr_sprom_show(s
+@@ -627,7 +674,7 @@ static ssize_t ssb_pci_attr_sprom_show(s
if (!bus)
goto out;
err = -ENOMEM;
@@ -78303,7 +89709,7 @@
if (!sprom)
goto out;
-@@ -640,7 +633,7 @@ static ssize_t ssb_pci_attr_sprom_show(s
+@@ -640,7 +687,7 @@ static ssize_t ssb_pci_attr_sprom_show(s
sprom_do_read(bus, sprom);
mutex_unlock(&bus->pci_sprom_mutex);
@@ -78312,7 +89718,7 @@
err = 0;
out_kfree:
-@@ -662,15 +655,15 @@ static ssize_t ssb_pci_attr_sprom_store(
+@@ -662,15 +709,15 @@ static ssize_t ssb_pci_attr_sprom_store(
if (!bus)
goto out;
err = -ENOMEM;
@@ -78332,8 +89738,8 @@
err = -EINVAL;
goto out_kfree;
diff -up linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt.orig linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt
---- linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt.orig 2007-12-21 10:43:26.000000000 -0500
-+++ linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt 2007-12-21 11:57:47.000000000 -0500
+--- linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt.orig 2008-01-08 20:02:48.000000000 -0500
++++ linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt 2008-01-08 20:31:10.000000000 -0500
@@ -333,3 +333,28 @@ Why: This driver has been marked obsolet
Who: Stephen Hemminger <shemminger at linux-foundation.org>
linux-2.6-wireless.patch:
Index: linux-2.6-wireless.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-wireless.patch,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- linux-2.6-wireless.patch 21 Dec 2007 17:35:24 -0000 1.15
+++ linux-2.6-wireless.patch 9 Jan 2008 02:12:37 -0000 1.16
@@ -1,323 +1,282 @@
-diff -up linux-2.6.23.noarch/net/mac80211/rx.c.orig linux-2.6.23.noarch/net/mac80211/rx.c
---- linux-2.6.23.noarch/net/mac80211/rx.c.orig 2007-12-21 10:56:14.000000000 -0500
-+++ linux-2.6.23.noarch/net/mac80211/rx.c 2007-12-21 10:56:21.000000000 -0500
-@@ -1443,6 +1443,7 @@ void __ieee80211_rx(struct ieee80211_hw
- struct ieee80211_sub_if_data *prev = NULL;
- struct sk_buff *skb_new;
- u8 *bssid;
-+ int hdrlen;
-
- /*
- * key references and virtual interfaces are protected using RCU
-@@ -1472,6 +1473,18 @@ void __ieee80211_rx(struct ieee80211_hw
- rx.fc = le16_to_cpu(hdr->frame_control);
- type = rx.fc & IEEE80211_FCTL_FTYPE;
-
-+ /*
-+ * Drivers are required to align the payload data to a four-byte
-+ * boundary, so the last two bits of the address where it starts
-+ * may not be set. The header is required to be directly before
-+ * the payload data, padding like atheros hardware adds which is
-+ * inbetween the 802.11 header and the payload is not supported,
-+ * the driver is required to move the 802.11 header further back
-+ * in that case.
-+ */
-+ hdrlen = ieee80211_get_hdrlen(rx.fc);
-+ WARN_ON_ONCE(((unsigned long)(skb->data + hdrlen)) & 3);
-+
- if (type == IEEE80211_FTYPE_DATA || type == IEEE80211_FTYPE_MGMT)
- local->dot11ReceivedFragmentCount++;
-
-diff -up linux-2.6.23.noarch/net/mac80211/sta_info.c.orig linux-2.6.23.noarch/net/mac80211/sta_info.c
---- linux-2.6.23.noarch/net/mac80211/sta_info.c.orig 2007-12-21 10:56:14.000000000 -0500
-+++ linux-2.6.23.noarch/net/mac80211/sta_info.c 2007-12-21 10:56:21.000000000 -0500
-@@ -14,6 +14,7 @@
- #include <linux/slab.h>
- #include <linux/skbuff.h>
- #include <linux/if_arp.h>
-+#include <linux/timer.h>
-
- #include <net/mac80211.h>
- #include "ieee80211_i.h"
-@@ -306,7 +307,8 @@ static void sta_info_cleanup(unsigned lo
+commit 85ae82313303ded51b3d49ae8b586224476abd33
+Author: Michael Buesch <mb at bu3sch.de>
+Date: Wed Jan 2 18:55:53 2008 +0100
+
+ b43: Fix rxheader channel parsing
+
+ This patch fixes the parsing of the RX data header channel field.
+
+ The current code parses the header incorrectly and passes a wrong
+ channel number and frequency for each frame to mac80211.
+ The FIXMEs added by this patch don't matter for now as the code
+ where they live won't get executed anyway. They will be fixed later.
+
+ Signed-off-by: Michael Buesch <mb at bu3sch.de>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 74692096aa876d5a7b5bd73cd518f75840af3877
+Author: Andrew Lutomirski <andy at luto.us>
+Date: Thu Jan 3 21:03:19 2008 -0800
+
+ mac80211: return an error when SIWRATE doesn't match any rate
+
+ Currently mac80211 fails silently when trying to set a nonexistent
+ rate. Return an error instead.
+
+ Signed-Off-By: Andy Lutomirski <luto at myrealbox.com>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 3e9533e4d7bea8e9d7622da3baa1a1125cafbe17
+Author: Michael Buesch <mb at bu3sch.de>
+Date: Thu Jan 3 18:59:25 2008 +0100
+
+ ssb: Fix probing of PCI cores if PCI and PCIE core is available
+
+ This will make sure that always the correct core is selected, even if
+ there are both a PCI and PCI-E core on a PCI or PCI-E card.
+
+ Signed-off-by: Michael Buesch <mb at bu3sch.de>
+ Signed-off-by: John W. Linville <linville at tuxdriver.com>
+diff -up linux-2.6.23.noarch/net/mac80211/ieee80211_ioctl.c.orig linux-2.6.23.noarch/net/mac80211/ieee80211_ioctl.c
+--- linux-2.6.23.noarch/net/mac80211/ieee80211_ioctl.c.orig 2008-01-08 20:03:00.000000000 -0500
++++ linux-2.6.23.noarch/net/mac80211/ieee80211_ioctl.c 2008-01-08 20:15:18.000000000 -0500
+@@ -591,7 +591,7 @@ static int ieee80211_ioctl_siwrate(struc
+ sdata->bss->force_unicast_rateidx = -1;
+ if (rate->value < 0)
+ return 0;
+- for (i=0; i< mode->num_rates; i++) {
++ for (i=0; i < mode->num_rates; i++) {
+ struct ieee80211_rate *rates = &mode->rates[i];
+ int this_rate = rates->rate;
+
+@@ -599,10 +599,10 @@ static int ieee80211_ioctl_siwrate(struc
+ sdata->bss->max_ratectrl_rateidx = i;
+ if (rate->fixed)
+ sdata->bss->force_unicast_rateidx = i;
+- break;
++ return 0;
+ }
}
- read_unlock_bh(&local->sta_lock);
-
-- local->sta_cleanup.expires = jiffies + STA_INFO_CLEANUP_INTERVAL;
-+ local->sta_cleanup.expires =
-+ round_jiffies(jiffies + STA_INFO_CLEANUP_INTERVAL);
- add_timer(&local->sta_cleanup);
+- return 0;
++ return -EINVAL;
}
-@@ -345,7 +347,8 @@ void sta_info_init(struct ieee80211_loca
- INIT_LIST_HEAD(&local->sta_list);
-
- init_timer(&local->sta_cleanup);
-- local->sta_cleanup.expires = jiffies + STA_INFO_CLEANUP_INTERVAL;
-+ local->sta_cleanup.expires =
-+ round_jiffies(jiffies + STA_INFO_CLEANUP_INTERVAL);
- local->sta_cleanup.data = (unsigned long) local;
- local->sta_cleanup.function = sta_info_cleanup;
-
-diff -up linux-2.6.23.noarch/drivers/net/wireless/rtl8187_dev.c.orig linux-2.6.23.noarch/drivers/net/wireless/rtl8187_dev.c
---- linux-2.6.23.noarch/drivers/net/wireless/rtl8187_dev.c.orig 2007-12-21 10:43:36.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8187_dev.c 2007-12-21 10:56:25.000000000 -0500
-@@ -38,6 +38,8 @@ static struct usb_device_id rtl8187_tabl
- {USB_DEVICE(0x0846, 0x6a00)},
- /* HP */
- {USB_DEVICE(0x03f0, 0xca02)},
-+ /* Sitecom */
-+ {USB_DEVICE(0x0df6, 0x000d)},
- {}
- };
-
-diff -up linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig linux-2.6.23.noarch/drivers/net/wireless/Kconfig
---- linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig 2007-12-21 10:43:36.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/Kconfig 2007-12-21 10:56:24.000000000 -0500
-@@ -587,15 +587,66 @@ config ADM8211
- config P54_COMMON
- tristate "Softmac Prism54 support"
- depends on MAC80211 && WLAN_80211 && FW_LOADER && EXPERIMENTAL
-+ ---help---
-+ This is common code for isl38xx based cards.
-+ This module does nothing by itself - the USB/PCI frontends
-+ also need to be enabled in order to support any devices.
-+
-+ These devices require softmac firmware which can be found at
-+ http://prism54.org/
-+
-+ If you choose to build a module, it'll be called p54common.
-
- config P54_USB
- tristate "Prism54 USB support"
- depends on P54_COMMON && USB
- select CRC32
-+ ---help---
-+ This driver is for USB isl38xx based wireless cards.
-+ These are USB based adapters found in devices such as:
-+
-+ 3COM 3CRWE254G72
-+ SMC 2862W-G
-+ Accton 802.11g WN4501 USB
-+ Siemens Gigaset USB
-+ Netgear WG121
-+ Netgear WG111
-+ Medion 40900, Roper Europe
-+ Shuttle PN15, Airvast WM168g, IOGear GWU513
-+ Linksys WUSB54G
-+ Linksys WUSB54G Portable
-+ DLink DWL-G120 Spinnaker
-+ DLink DWL-G122
-+ Belkin F5D7050 ver 1000
-+ Cohiba Proto board
-+ SMC 2862W-G version 2
-+ U.S. Robotics U5 802.11g Adapter
-+ FUJITSU E-5400 USB D1700
-+ Sagem XG703A
-+ DLink DWL-G120 Cohiba
-+ Spinnaker Proto board
-+ Linksys WUSB54AG
-+ Inventel UR054G
-+ Spinnaker DUT
-+
-+ These devices require softmac firmware which can be found at
-+ http://prism54.org/
-+
-+ If you choose to build a module, it'll be called p54usb.
-
- config P54_PCI
- tristate "Prism54 PCI support"
- depends on P54_COMMON && PCI
-+ ---help---
-+ This driver is for PCI isl38xx based wireless cards.
-+ This driver supports most devices that are supported by the
-+ fullmac prism54 driver plus many devices which are not
-+ supported by the fullmac driver/firmware.
-+
-+ This driver requires softmac firmware which can be found at
-+ http://prism54.org/
-+
-+ If you choose to build a module, it'll be called p54pci.
+ static int ieee80211_ioctl_giwrate(struct net_device *dev,
+diff -up linux-2.6.23.noarch/drivers/net/wireless/b43/xmit.c.orig linux-2.6.23.noarch/drivers/net/wireless/b43/xmit.c
+--- linux-2.6.23.noarch/drivers/net/wireless/b43/xmit.c.orig 2008-01-08 20:02:56.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/b43/xmit.c 2008-01-08 20:15:18.000000000 -0500
+@@ -531,21 +531,32 @@ void b43_rx(struct b43_wldev *dev, struc
+ switch (chanstat & B43_RX_CHAN_PHYTYPE) {
+ case B43_PHYTYPE_A:
+ status.phymode = MODE_IEEE80211A;
+- status.freq = chanid;
+- status.channel = b43_freq_to_channel_a(chanid);
+- break;
+- case B43_PHYTYPE_B:
+- status.phymode = MODE_IEEE80211B;
+- status.freq = chanid + 2400;
+- status.channel = b43_freq_to_channel_bg(chanid + 2400);
++ B43_WARN_ON(1);
++ /* FIXME: We don't really know which value the "chanid" contains.
++ * So the following assignment might be wrong. */
++ status.channel = chanid;
++ status.freq = b43_channel_to_freq_5ghz(status.channel);
+ break;
+ case B43_PHYTYPE_G:
+ status.phymode = MODE_IEEE80211G;
++ /* chanid is the radio channel cookie value as used
++ * to tune the radio. */
+ status.freq = chanid + 2400;
+- status.channel = b43_freq_to_channel_bg(chanid + 2400);
++ status.channel = b43_freq_to_channel_2ghz(status.freq);
++ break;
++ case B43_PHYTYPE_N:
++ status.phymode = 0xDEAD /*FIXME MODE_IEEE80211N*/;
++ /* chanid is the SHM channel cookie. Which is the plain
++ * channel number in b43. */
++ status.channel = chanid;
++ if (chanstat & B43_RX_CHAN_5GHZ)
++ status.freq = b43_freq_to_channel_5ghz(status.freq);
++ else
++ status.freq = b43_freq_to_channel_2ghz(status.freq);
+ break;
+ default:
+ B43_WARN_ON(1);
++ goto drop;
+ }
- source "drivers/net/wireless/iwlwifi/Kconfig"
- source "drivers/net/wireless/hostap/Kconfig"
-diff -up linux-2.6.23.noarch/drivers/net/wireless/ipw2200.c.orig linux-2.6.23.noarch/drivers/net/wireless/ipw2200.c
---- linux-2.6.23.noarch/drivers/net/wireless/ipw2200.c.orig 2007-12-21 10:43:36.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ipw2200.c 2007-12-21 10:56:24.000000000 -0500
-@@ -1233,9 +1233,19 @@ static ssize_t show_event_log(struct dev
+ dev->stats.last_rx = jiffies;
+diff -up linux-2.6.23.noarch/drivers/net/wireless/b43/main.h.orig linux-2.6.23.noarch/drivers/net/wireless/b43/main.h
+--- linux-2.6.23.noarch/drivers/net/wireless/b43/main.h.orig 2008-01-08 20:02:56.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/b43/main.h 2008-01-08 20:15:18.000000000 -0500
+@@ -39,11 +39,11 @@
+ #define PAD_BYTES(nr_bytes) P4D_BYTES( __LINE__ , (nr_bytes))
+
+ /* Lightweight function to convert a frequency (in Mhz) to a channel number. */
+-static inline u8 b43_freq_to_channel_a(int freq)
++static inline u8 b43_freq_to_channel_5ghz(int freq)
{
- struct ipw_priv *priv = dev_get_drvdata(d);
- u32 log_len = ipw_get_event_log_len(priv);
-- struct ipw_event log[log_len];
-+ u32 log_size;
-+ struct ipw_event *log;
- u32 len = 0, i;
-
-+ /* not using min() because of its strict type checking */
-+ log_size = PAGE_SIZE / sizeof(*log) > log_len ?
-+ sizeof(*log) * log_len : PAGE_SIZE;
-+ log = kzalloc(log_size, GFP_KERNEL);
-+ if (!log) {
-+ IPW_ERROR("Unable to allocate memory for log\n");
-+ return 0;
-+ }
-+ log_len = log_size / sizeof(*log);
- ipw_capture_event_log(priv, log_len, log);
-
- len += snprintf(buf + len, PAGE_SIZE - len, "%08X", log_len);
-@@ -1244,6 +1254,7 @@ static ssize_t show_event_log(struct dev
- "\n%08X%08X%08X",
- log[i].time, log[i].event, log[i].data);
- len += snprintf(buf + len, PAGE_SIZE - len, "\n");
-+ kfree(log);
- return len;
- }
-
-diff -up linux-2.6.23.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c.orig linux-2.6.23.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c
---- linux-2.6.23.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c.orig 2007-12-21 10:43:36.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c 2007-12-21 10:56:24.000000000 -0500
-@@ -6601,8 +6601,6 @@ static void __iwl_down(struct iwl_priv *
- /* Unblock any waiting calls */
- wake_up_interruptible_all(&priv->wait_command_queue);
-
-- iwl_cancel_deferred_work(priv);
--
- /* Wipe out the EXIT_PENDING status bit if we are not actually
- * exiting the module */
- if (!exit_pending)
-@@ -6677,6 +6675,8 @@ static void iwl_down(struct iwl_priv *pr
- mutex_lock(&priv->mutex);
- __iwl_down(priv);
- mutex_unlock(&priv->mutex);
-+
-+ iwl_cancel_deferred_work(priv);
+ return ((freq - 5000) / 5);
}
-
- #define MAX_HW_RESTARTS 5
-@@ -9174,10 +9174,9 @@ static void iwl_pci_remove(struct pci_de
-
- IWL_DEBUG_INFO("*** UNLOAD DRIVER ***\n");
-
-- mutex_lock(&priv->mutex);
- set_bit(STATUS_EXIT_PENDING, &priv->status);
-- __iwl_down(priv);
-- mutex_unlock(&priv->mutex);
-+
-+ iwl_down(priv);
-
- /* Free MAC hash list for ADHOC */
- for (i = 0; i < IWL_IBSS_MAC_HASH_SIZE; i++) {
-@@ -9236,12 +9235,10 @@ static int iwl_pci_suspend(struct pci_de
+-static inline u8 b43_freq_to_channel_bg(int freq)
++static inline u8 b43_freq_to_channel_2ghz(int freq)
{
- struct iwl_priv *priv = pci_get_drvdata(pdev);
-
-- mutex_lock(&priv->mutex);
--
- set_bit(STATUS_IN_SUSPEND, &priv->status);
-
- /* Take down the device; powers it off, etc. */
-- __iwl_down(priv);
-+ iwl_down(priv);
-
- if (priv->mac80211_registered)
- ieee80211_stop_queues(priv->hw);
-@@ -9250,8 +9247,6 @@ static int iwl_pci_suspend(struct pci_de
- pci_disable_device(pdev);
- pci_set_power_state(pdev, PCI_D3hot);
-
-- mutex_unlock(&priv->mutex);
--
- return 0;
- }
-
-@@ -9309,8 +9304,6 @@ static int iwl_pci_resume(struct pci_dev
-
- printk(KERN_INFO "Coming out of suspend...\n");
+ u8 channel;
-- mutex_lock(&priv->mutex);
--
- pci_set_power_state(pdev, PCI_D0);
- err = pci_enable_device(pdev);
- pci_restore_state(pdev);
-@@ -9324,7 +9317,6 @@ static int iwl_pci_resume(struct pci_dev
- pci_write_config_byte(pdev, 0x41, 0x00);
+@@ -54,19 +54,13 @@ static inline u8 b43_freq_to_channel_bg(
- iwl_resume(priv);
-- mutex_unlock(&priv->mutex);
-
- return 0;
- }
-diff -up linux-2.6.23.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c.orig linux-2.6.23.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c
---- linux-2.6.23.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c.orig 2007-12-21 10:43:36.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c 2007-12-21 10:56:24.000000000 -0500
-@@ -6246,8 +6246,6 @@ static void __iwl_down(struct iwl_priv *
- /* Unblock any waiting calls */
- wake_up_interruptible_all(&priv->wait_command_queue);
-
-- iwl_cancel_deferred_work(priv);
--
- /* Wipe out the EXIT_PENDING status bit if we are not actually
- * exiting the module */
- if (!exit_pending)
-@@ -6322,6 +6320,8 @@ static void iwl_down(struct iwl_priv *pr
- mutex_lock(&priv->mutex);
- __iwl_down(priv);
- mutex_unlock(&priv->mutex);
-+
-+ iwl_cancel_deferred_work(priv);
+ return channel;
}
-
- #define MAX_HW_RESTARTS 5
-@@ -8580,10 +8580,9 @@ static void iwl_pci_remove(struct pci_de
-
- IWL_DEBUG_INFO("*** UNLOAD DRIVER ***\n");
-
-- mutex_lock(&priv->mutex);
- set_bit(STATUS_EXIT_PENDING, &priv->status);
-- __iwl_down(priv);
-- mutex_unlock(&priv->mutex);
-+
-+ iwl_down(priv);
-
- /* Free MAC hash list for ADHOC */
- for (i = 0; i < IWL_IBSS_MAC_HASH_SIZE; i++) {
-@@ -8642,12 +8641,10 @@ static int iwl_pci_suspend(struct pci_de
+-static inline u8 b43_freq_to_channel(struct b43_wldev *dev, int freq)
+-{
+- if (dev->phy.type == B43_PHYTYPE_A)
+- return b43_freq_to_channel_a(freq);
+- return b43_freq_to_channel_bg(freq);
+-}
+
+ /* Lightweight function to convert a channel number to a frequency (in Mhz). */
+-static inline int b43_channel_to_freq_a(u8 channel)
++static inline int b43_channel_to_freq_5ghz(u8 channel)
{
- struct iwl_priv *priv = pci_get_drvdata(pdev);
-
-- mutex_lock(&priv->mutex);
--
- set_bit(STATUS_IN_SUSPEND, &priv->status);
-
- /* Take down the device; powers it off, etc. */
-- __iwl_down(priv);
-+ iwl_down(priv);
-
- if (priv->mac80211_registered)
- ieee80211_stop_queues(priv->hw);
-@@ -8656,8 +8653,6 @@ static int iwl_pci_suspend(struct pci_de
- pci_disable_device(pdev);
- pci_set_power_state(pdev, PCI_D3hot);
-
-- mutex_unlock(&priv->mutex);
--
- return 0;
+ return (5000 + (5 * channel));
}
+-static inline int b43_channel_to_freq_bg(u8 channel)
++static inline int b43_channel_to_freq_2ghz(u8 channel)
+ {
+ int freq;
-@@ -8715,8 +8710,6 @@ static int iwl_pci_resume(struct pci_dev
-
- printk(KERN_INFO "Coming out of suspend...\n");
-
-- mutex_lock(&priv->mutex);
--
- pci_set_power_state(pdev, PCI_D0);
- err = pci_enable_device(pdev);
- pci_restore_state(pdev);
-@@ -8730,7 +8723,6 @@ static int iwl_pci_resume(struct pci_dev
- pci_write_config_byte(pdev, 0x41, 0x00);
-
- iwl_resume(priv);
-- mutex_unlock(&priv->mutex);
+@@ -77,12 +71,6 @@ static inline int b43_channel_to_freq_bg
- return 0;
+ return freq;
}
+-static inline int b43_channel_to_freq(struct b43_wldev *dev, u8 channel)
+-{
+- if (dev->phy.type == B43_PHYTYPE_A)
+- return b43_channel_to_freq_a(channel);
+- return b43_channel_to_freq_bg(channel);
+-}
+
+ static inline int b43_is_cck_rate(int rate)
+ {
+diff -up linux-2.6.23.noarch/drivers/net/wireless/b43/xmit.h.orig linux-2.6.23.noarch/drivers/net/wireless/b43/xmit.h
+--- linux-2.6.23.noarch/drivers/net/wireless/b43/xmit.h.orig 2008-01-08 20:02:56.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/b43/xmit.h 2008-01-08 20:15:18.000000000 -0500
+@@ -142,49 +142,56 @@ struct b43_rxhdr_fw4 {
+ } __attribute__ ((__packed__));
+
+ /* PHY RX Status 0 */
+-#define B43_RX_PHYST0_GAINCTL 0x4000 /* Gain Control */
+-#define B43_RX_PHYST0_PLCPHCF 0x0200
+-#define B43_RX_PHYST0_PLCPFV 0x0100
+-#define B43_RX_PHYST0_SHORTPRMBL 0x0080 /* Received with Short Preamble */
++#define B43_RX_PHYST0_GAINCTL 0x4000 /* Gain Control */
++#define B43_RX_PHYST0_PLCPHCF 0x0200
++#define B43_RX_PHYST0_PLCPFV 0x0100
++#define B43_RX_PHYST0_SHORTPRMBL 0x0080 /* Received with Short Preamble */
+ #define B43_RX_PHYST0_LCRS 0x0040
+-#define B43_RX_PHYST0_ANT 0x0020 /* Antenna */
+-#define B43_RX_PHYST0_UNSRATE 0x0010
++#define B43_RX_PHYST0_ANT 0x0020 /* Antenna */
++#define B43_RX_PHYST0_UNSRATE 0x0010
+ #define B43_RX_PHYST0_CLIP 0x000C
+ #define B43_RX_PHYST0_CLIP_SHIFT 2
+-#define B43_RX_PHYST0_FTYPE 0x0003 /* Frame type */
+-#define B43_RX_PHYST0_CCK 0x0000 /* Frame type: CCK */
+-#define B43_RX_PHYST0_OFDM 0x0001 /* Frame type: OFDM */
+-#define B43_RX_PHYST0_PRE_N 0x0002 /* Pre-standard N-PHY frame */
+-#define B43_RX_PHYST0_STD_N 0x0003 /* Standard N-PHY frame */
++#define B43_RX_PHYST0_FTYPE 0x0003 /* Frame type */
++#define B43_RX_PHYST0_CCK 0x0000 /* Frame type: CCK */
++#define B43_RX_PHYST0_OFDM 0x0001 /* Frame type: OFDM */
++#define B43_RX_PHYST0_PRE_N 0x0002 /* Pre-standard N-PHY frame */
++#define B43_RX_PHYST0_STD_N 0x0003 /* Standard N-PHY frame */
+
+ /* PHY RX Status 2 */
+-#define B43_RX_PHYST2_LNAG 0xC000 /* LNA Gain */
++#define B43_RX_PHYST2_LNAG 0xC000 /* LNA Gain */
+ #define B43_RX_PHYST2_LNAG_SHIFT 14
+-#define B43_RX_PHYST2_PNAG 0x3C00 /* PNA Gain */
++#define B43_RX_PHYST2_PNAG 0x3C00 /* PNA Gain */
+ #define B43_RX_PHYST2_PNAG_SHIFT 10
+-#define B43_RX_PHYST2_FOFF 0x03FF /* F offset */
++#define B43_RX_PHYST2_FOFF 0x03FF /* F offset */
+
+ /* PHY RX Status 3 */
+-#define B43_RX_PHYST3_DIGG 0x1800 /* DIG Gain */
++#define B43_RX_PHYST3_DIGG 0x1800 /* DIG Gain */
+ #define B43_RX_PHYST3_DIGG_SHIFT 11
+-#define B43_RX_PHYST3_TRSTATE 0x0400 /* TR state */
++#define B43_RX_PHYST3_TRSTATE 0x0400 /* TR state */
+
+ /* MAC RX Status */
+-#define B43_RX_MAC_BEACONSENT 0x00008000 /* Beacon send flag */
+-#define B43_RX_MAC_KEYIDX 0x000007E0 /* Key index */
+-#define B43_RX_MAC_KEYIDX_SHIFT 5
+-#define B43_RX_MAC_DECERR 0x00000010 /* Decrypt error */
+-#define B43_RX_MAC_DEC 0x00000008 /* Decryption attempted */
+-#define B43_RX_MAC_PADDING 0x00000004 /* Pad bytes present */
+-#define B43_RX_MAC_RESP 0x00000002 /* Response frame transmitted */
+-#define B43_RX_MAC_FCSERR 0x00000001 /* FCS error */
++#define B43_RX_MAC_RXST_VALID 0x01000000 /* PHY RXST valid */
++#define B43_RX_MAC_TKIP_MICERR 0x00100000 /* TKIP MIC error */
++#define B43_RX_MAC_TKIP_MICATT 0x00080000 /* TKIP MIC attempted */
++#define B43_RX_MAC_AGGTYPE 0x00060000 /* Aggregation type */
++#define B43_RX_MAC_AGGTYPE_SHIFT 17
++#define B43_RX_MAC_AMSDU 0x00010000 /* A-MSDU mask */
++#define B43_RX_MAC_BEACONSENT 0x00008000 /* Beacon sent flag */
++#define B43_RX_MAC_KEYIDX 0x000007E0 /* Key index */
++#define B43_RX_MAC_KEYIDX_SHIFT 5
++#define B43_RX_MAC_DECERR 0x00000010 /* Decrypt error */
++#define B43_RX_MAC_DEC 0x00000008 /* Decryption attempted */
++#define B43_RX_MAC_PADDING 0x00000004 /* Pad bytes present */
++#define B43_RX_MAC_RESP 0x00000002 /* Response frame transmitted */
++#define B43_RX_MAC_FCSERR 0x00000001 /* FCS error */
+
+ /* RX channel */
+-#define B43_RX_CHAN_GAIN 0xFC00 /* Gain */
+-#define B43_RX_CHAN_GAIN_SHIFT 10
+-#define B43_RX_CHAN_ID 0x03FC /* Channel ID */
+-#define B43_RX_CHAN_ID_SHIFT 2
+-#define B43_RX_CHAN_PHYTYPE 0x0003 /* PHY type */
++#define B43_RX_CHAN_40MHZ 0x1000 /* 40 Mhz channel width */
++#define B43_RX_CHAN_5GHZ 0x0800 /* 5 Ghz band */
++#define B43_RX_CHAN_ID 0x07F8 /* Channel ID */
++#define B43_RX_CHAN_ID_SHIFT 3
++#define B43_RX_CHAN_PHYTYPE 0x0007 /* PHY type */
++
+
+ u8 b43_plcp_get_ratecode_cck(const u8 bitrate);
+ u8 b43_plcp_get_ratecode_ofdm(const u8 bitrate);
+diff -up linux-2.6.23.noarch/drivers/net/wireless/b43/b43.h.orig linux-2.6.23.noarch/drivers/net/wireless/b43/b43.h
+--- linux-2.6.23.noarch/drivers/net/wireless/b43/b43.h.orig 2008-01-08 20:02:56.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/b43/b43.h 2008-01-08 20:15:18.000000000 -0500
+@@ -273,6 +273,8 @@ enum {
+ #define B43_PHYTYPE_A 0x00
+ #define B43_PHYTYPE_B 0x01
+ #define B43_PHYTYPE_G 0x02
++#define B43_PHYTYPE_N 0x04
++#define B43_PHYTYPE_LP 0x05
+
+ /* PHYRegisters */
+ #define B43_PHY_ILT_A_CTRL 0x0072
+diff -up linux-2.6.23.noarch/drivers/ssb/scan.c.orig linux-2.6.23.noarch/drivers/ssb/scan.c
+--- linux-2.6.23.noarch/drivers/ssb/scan.c.orig 2008-01-08 20:02:57.000000000 -0500
++++ linux-2.6.23.noarch/drivers/ssb/scan.c 2008-01-08 20:15:18.000000000 -0500
+@@ -388,6 +388,17 @@ int ssb_bus_scan(struct ssb_bus *bus,
+ case SSB_DEV_PCI:
+ case SSB_DEV_PCIE:
+ #ifdef CONFIG_SSB_DRIVER_PCICORE
++ if (bus->bustype == SSB_BUSTYPE_PCI) {
++ /* Ignore PCI cores on PCI-E cards.
++ * Ignore PCI-E cores on PCI cards. */
++ if (dev->id.coreid == SSB_DEV_PCI) {
++ if (bus->host_pci->is_pcie)
++ continue;
++ } else {
++ if (!bus->host_pci->is_pcie)
++ continue;
++ }
++ }
+ if (bus->pcicore.dev) {
+ ssb_printk(KERN_WARNING PFX
+ "WARNING: Multiple PCI(E) cores found\n");
- Previous message (by thread): extras-buildsys/etc plague-builder.config, 1.7, 1.8 plague-builder.init, 1.14, 1.15 plague-server.config, 1.4, 1.5 plague-server.init, 1.9, 1.10
- Next message (by thread): rpms/purple-plugin_pack/devel purple-plugin_pack-2.2.0-switchspell-enchant.patch, NONE, 1.1 purple-plugin_pack.spec, 1.3, 1.4
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list