Larry Finger wrote:
gavron@xxxxxxxxxxx wrote:
Ok, here's try #2.
E
/home/2.6.27/rc4-wl/drivers/net/wireless/b43legacy# diff -uN
/tmp/phy.c phy.c
--- /tmp/phy.c 2008-09-05 21:56:20.000000000 -0700
+++ phy.c 2008-09-05 22:03:28.000000000 -0700
For kernel patches, you need to be working in the base directory of
the kernel sources. For your tree, that would be in
/home/2.6.27/rc4-wl. That way the patches will apply with the
effective command of 'patch -p1 < patch_file'. For kernel patches, I
use quilt so that patches are easy to apply and remove.
@@ -1010,7 +1010,7 @@
b43legacy_phy_initb5(dev);
else
b43legacy_phy_initb6(dev);
- if (phy->rev >= 2 || phy->gmode)
+ if (phy->rev >= 2 && phy->gmode)
b43legacy_phy_inita(dev);
if (phy->rev >= 2) {
The above hunk is correct.
@@ -1027,15 +1027,17 @@
}
if (phy->rev >= 2 || phy->gmode) {
This does not match step 7 of the specs. It was not changed recently,
but the code did not match what was on the web site. No, I don't know
why.
tmp = b43legacy_phy_read(dev, 0x0400) & 0xFF;
- if (tmp == 3 || tmp == 5) {
+ if (tmp == 4 || tmp == 5) {
b43legacy_phy_write(dev, 0x04C2, 0x1816);
- b43legacy_phy_write(dev, 0x04C3, 0x8006);
+ b43legacy_phy_write(dev, 0x04C3, 0x8606);
if (tmp == 5)
b43legacy_phy_write(dev, 0x04CC,
(b43legacy_phy_read(dev,
0x04CC) & 0x00FF) |
0x1F00);
}
+ }
+ if (phy->rev >= 2)
b43legacy_phy_write(dev, 0x047E, 0x0078);
}
if (phy->radio_rev == 8) {
This hunk does not match the specs. In addition, I think there are too
many right-hand curly braces for it to compile.
Larry
I've been sitting on a git clone that refuses to proceed faster than 6
KiB/s (it's a problem here in Melbourne). Should it complete I will
correct these issues. I did see several other ways in which the code
does not match the specs. Should that be documented in the code or
should the code be conformed to the specs even if that ends up breaking
the driver?
Without getting into specifics it's cases where the specs will say "When
something=value" but the code says "when variable >=(value -1)".
Ehud
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html