On Sat, May 30, 2009 at 10:46 AM, Kagamine Len <[email protected]> wrote:
> Hi. I wonder if anybody is working on AR2425 support? I got a eee pc with
one of
> those cards, everything works fine but wireless. I got kernel panic in
> ar5k_channel() (ar5xxx.c:1110), so I tried to add ar2425-specific channel
> setting function. Panic now disappears, but the system freezes when SIMR2
is
> being written 3rd time (ar5212.c:1250). Can anybode help me with it?
Well, since you haven't received a public response in 19 hours (I was
hoping you would), I'll through my two bits in. Unfortunately, I have
nothing to say about your diff.
As far as I know, it's a known issue and it was claimed to be
something the devs were working on. I have an AR5424 card that I've
made known as not being supported yet. Someone, a while back,
mentioned (on this list) that their version of this card was working.
I forget the details of all these references to the past, but I guess
the archives can provide you with them (if you're interested).
Good luck!
-Neal
>
> diff and dmesg attached.
>
>
> --- ar5xxx.c Wed Jul 30 11:43:01 2008
> +++ ar5xxx.c Sat May 30 01:02:49 2009
> @@ -91,6 +91,7 @@
> HAL_BOOL ar5k_ar5111_channel(struct ath_hal *, HAL_CHANNEL *);
> HAL_BOOL ar5k_ar5111_chan2athchan(u_int, struct ar5k_athchan_2ghz
*);
> HAL_BOOL ar5k_ar5112_channel(struct ath_hal *, HAL_CHANNEL *);
> +HAL_BOOL ar5k_ar2425_channel(struct ath_hal *, HAL_CHANNEL *);
> HAL_BOOL ar5k_check_channel(struct ath_hal *, u_int16_t, u_int
flags);
>
> HAL_BOOL ar5k_ar5111_rfregs(struct ath_hal *, HAL_CHANNEL *,
u_int);
> @@ -1131,6 +1132,8 @@
> ret = ar5k_ar5110_channel(hal, channel);
> else if (hal->ah_radio == AR5K_AR5111)
> ret = ar5k_ar5111_channel(hal, channel);
> + else if (hal->ah_radio == AR5K_AR2425)
> + ret = ar5k_ar2425_channel(hal, channel);
> else
> ret = ar5k_ar5112_channel(hal, channel);
>
> @@ -1242,6 +1245,43 @@
>
> AR5K_PHY_WRITE(0x27, (data1 & 0xff) | ((data0 & 0xff) << 8));
> AR5K_PHY_WRITE(0x34, ((data1 >> 8) & 0xff) | (data0 & 0xff00));
> +
> + return (AH_TRUE);
> +}
> +
> +HAL_BOOL
> +ar5k_ar2425_channel(struct ath_hal *hal, HAL_CHANNEL *channel)
> +{
> + u_int32_t data, data0, data2;
> + u_int16_t c;
> +
> + data = data0 = data2 = 0;
> + c = channel->c_channel + hal->ah_chanoff;
> +
> + /*
> + * Set the channel on the AR5112 or newer
> + */
> + if(c < 4800) {
> + data0 = ar5k_bitswap((c - 2272), 8);
> + } else if (( c - (c % 5)) != 2 || c > 5435) {
> + if(!(c % 20) && c < 5120)
> + data0 = ar5k_bitswap(((c - 4800) / 20 << 2), 8);
> + else if (!(c % 10))
> + data0 = ar5k_bitswap(((c - 4800) / 10 << 1), 8);
> + else if (!(c % 5))
> + data0 = ar5k_bitswap((c - 4800) / 5, 8);
> + else
> + return (AH_FALSE);
> + data2 = ar5k_bitswap(1, 2);
> + } else {
> + data0 = ar5k_bitswap((10 * (c - 2) - 4800) / 25 + 1,
8);
> + data2 = ar5k_bitswap(0, 2);
> + }
> +
> + data = (data0 << 4) | (data2 << 2) | 0x1001;
> +
> + AR5K_PHY_WRITE(0x27, data & 0xff);
> + AR5K_PHY_WRITE(0x36, (data >> 8) & 0x7f);
>
> return (AH_TRUE);
> }
>
>
>
> OpenBSD 4.5-current (GENERIC) #14: Thu May 28 20:42:55 MDT 2009
> [email protected]:/usr/src/sys/arch/i386/compile/GENERIC
> cpu0: Intel(R) Celeron(R) M processor 900MHz ("GenuineIntel" 686-class) 901
MHz
> cpu0:
FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,CFLUSH,DS,A
CPI,MMX,FXSR,SSE,SSE2,SS,TM,SBF
> real mem = 1064398848 (1015MB)
> avail mem = 1020846080 (973MB)
> mainbus0 at root
> bios0 at mainbus0: AT/286+ BIOS, date 09/11/08, BIOS32 rev. 0 @ 0xf0010,
SMBIOS rev. 2.5 @ 0xf06f0 (37 entries)
> bios0: vendor American Megatrends Inc. version "0906" date 09/11/2008
> bios0: ASUSTeK Computer INC. 900
> acpi0 at bios0: rev 0
> acpi0: tables DSDT FACP APIC OEMB MCFG
> acpi0: wakeup devices P0P3(S4) P0P4(S4) P0P5(S4) P0P6(S4) P0P7(S4) MC97(S4)
USB1(S3) USB2(S3) USB3(S3) USB4(S3) EUSB(S3)
> acpitimer0 at acpi0: 3579545 Hz, 24 bits
> acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
> cpu0 at mainbus0: apid 0 (boot processor)
> cpu0: apic clock running at 100MHz
> ioapic0 at mainbus0: apid 1 pa 0xfec00000, version 20, 24 pins
> acpiprt0 at acpi0: bus 0 (PCI0)
> acpiprt1 at acpi0: bus 5 (P0P3)
> acpiprt2 at acpi0: bus 3 (P0P5)
> acpiprt3 at acpi0: bus 1 (P0P6)
> acpiec0 at acpi0
> acpicpu0 at acpi0: C3, C2
> acpitz0 at acpi0: critical temperature 90 degC
> acpibat0 at acpi0: BAT0 model "900" serial type LION oem "ASUS"
> acpiac0 at acpi0: AC unit online
> acpiasus0 at acpi0
> acpibtn0 at acpi0: LID_
> acpibtn1 at acpi0: SLPB
> acpibtn2 at acpi0: PWRB
> acpivideo at acpi0 not configured
> bios0: ROM list: 0xc0000/0xf800!
> pci0 at mainbus0 bus 0: configuration mode 1 (bios)
> pchb0 at pci0 dev 0 function 0 "Intel 82915GM Host" rev 0x04
> vga1 at pci0 dev 2 function 0 "Intel 82915GM Video" rev 0x04
> wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
> wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
> intagp0 at vga1
> agp0 at intagp0: aperture at 0xd0000000, size 0x10000000
> inteldrm0 at vga1: apic 1 int 16 (irq 5)
> drm0 at inteldrm0
> "Intel 82915GM Video" rev 0x04 at pci0 dev 2 function 1 not configured
> azalia0 at pci0 dev 27 function 0 "Intel 82801FB HD Audio" rev 0x04: apic 1
int 16 (irq 5)
> azalia0: codecs: Realtek ALC662
> audio0 at azalia0
> ppb0 at pci0 dev 28 function 0 "Intel 82801FB PCIE" rev 0x04: apic 1 int 16
(irq 5)
> pci1 at ppb0 bus 4
> ppb1 at pci0 dev 28 function 1 "Intel 82801FB PCIE" rev 0x04: apic 1 int 17
(irq 11)
> pci2 at ppb1 bus 3
> lii0 at pci2 dev 0 function 0 "Attansic Technology L2" rev 0xa0: apic 1 int
17 (irq 11), address 00:22:15:40:49:f1
> ukphy0 at lii0 phy 1: Generic IEEE 802.3u media interface, rev. 2: OUI
0x001374, model 0x0002
> ppb2 at pci0 dev 28 function 2 "Intel 82801FB PCIE" rev 0x04: apic 1 int 18
(irq 10)
> pci3 at ppb2 bus 1
> ath0 at pci3 dev 0 function 0 "Atheros AR5424" rev 0x01: apic 1 int 18 (irq
10)
> ath0: AR5424 14.2 phy 7.0 rf 0.0, WOR0W, address 00:15:af:c6:ab:cc
> uhci0 at pci0 dev 29 function 0 "Intel 82801FB USB" rev 0x04: apic 1 int 23
(irq 3)
> uhci1 at pci0 dev 29 function 1 "Intel 82801FB USB" rev 0x04: apic 1 int 19
(irq 7)
> uhci2 at pci0 dev 29 function 2 "Intel 82801FB USB" rev 0x04: apic 1 int 18
(irq 10)
> uhci3 at pci0 dev 29 function 3 "Intel 82801FB USB" rev 0x04: apic 1 int 16
(irq 5)
> ehci0 at pci0 dev 29 function 7 "Intel 82801FB USB" rev 0x04: apic 1 int 23
(irq 3)
> usb0 at ehci0: USB revision 2.0
> uhub0 at usb0 "Intel EHCI root hub" rev 2.00/1.00 addr 1
> ppb3 at pci0 dev 30 function 0 "Intel 82801BAM Hub-to-PCI" rev 0xd4
> pci4 at ppb3 bus 5
> ichpcib0 at pci0 dev 31 function 0 "Intel 82801FBM LPC" rev 0x04: PM
disabled
> pciide0 at pci0 dev 31 function 2 "Intel 82801FBM SATA" rev 0x04: DMA,
channel 0 wired to compatibility, channel 1 wired to compatibility
> wd0 at pciide0 channel 1 drive 0: <ASUS-PHISON OB SSD>
> wd0: 1-sector PIO, LBA, 3847MB, 7880544 sectors
> wd1 at pciide0 channel 1 drive 1: <ASUS-PHISON SSD>
> wd1: 1-sector PIO, LBA, 15391MB, 31522176 sectors
> wd0(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 4
> wd1(pciide0:1:1): using PIO mode 4, Ultra-DMA mode 4
> ichiic0 at pci0 dev 31 function 3 "Intel 82801FB SMBus" rev 0x04: apic 1 int
19 (irq 0)
> iic0 at ichiic0
> spdmem0 at iic0 addr 0x50: 1GB DDR2 SDRAM non-parity PC2-3200CL5 SO-DIMM
> usb1 at uhci0: USB revision 1.0
> uhub1 at usb1 "Intel UHCI root hub" rev 1.00/1.00 addr 1
> usb2 at uhci1: USB revision 1.0
> uhub2 at usb2 "Intel UHCI root hub" rev 1.00/1.00 addr 1
> usb3 at uhci2: USB revision 1.0
> uhub3 at usb3 "Intel UHCI root hub" rev 1.00/1.00 addr 1
> usb4 at uhci3: USB revision 1.0
> uhub4 at usb4 "Intel UHCI root hub" rev 1.00/1.00 addr 1
> isa0 at ichpcib0
> isadma0 at isa0
> pckbc0 at isa0 port 0x60/5
> pckbd0 at pckbc0 (kbd slot)
> pckbc0: using irq 1 for kbd slot
> wskbd0 at pckbd0: console keyboard, using wsdisplay0
> pmsi0 at pckbc0 (aux slot)
> pckbc0: using irq 12 for aux slot
> wsmouse0 at pmsi0 mux 0
> pcppi0 at isa0 port 0x61
> midi0 at pcppi0: <PC speaker>
> spkr0 at pcppi0
> npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
> mtrr: Pentium Pro MTRR support
> softraid0 at root
> root on wd0a swap on wd0b dump on wd0b