List Info

Thread: Testers for ral(4)




Testers for ral(4)
user name
2006-06-06 13:12:37
Hi
The following patch completes the ral(4) updates I've been
importing. I
need people to test cardbus cards and report any problems.

Also, don't forget to copy
src/sys/dev/microcode/ral/ral-rt* to
/libdata/firmware/ral/.

Thanks.

Index: conf/files
============================================================
=======
RCS file: /cvsroot/src/sys/conf/files,v
retrieving revision 1.777
diff -u -p -r1.777 files
--- conf/files	28 May 2006 08:57:53 -0000	1.777
+++ conf/files	6 Jun 2006 13:08:28 -0000
 -536,10
+536,10  file	dev/ic/rtw.c			rtw
 file	dev/ic/rtwphy.c			rtw
 file	dev/ic/rtwphyio.c		rtw
 
-# Ralink RT2500 802.11
-device	ral: arp, ether, ifnet, wlan
-define	ralcommon
-file	dev/ic/ral.c			ralcommon
+# Ralink RT2500/RT2600 802.11
+device	ral: arp, ether, ifnet, wlan, firmload
+file	dev/ic/rt2560.c		ral
+file	dev/ic/rt2661.c		ral
 
 # 3Com Etherlink-III Ethernet controller
 #
Index: dev/cardbus/files.cardbus
============================================================
=======
RCS file: /cvsroot/src/sys/dev/cardbus/files.cardbus,v
retrieving revision 1.32
diff -u -p -r1.32 files.cardbus
--- dev/cardbus/files.cardbus	11 Dec 2005 12:21:15
-0000	1.32
+++ dev/cardbus/files.cardbus	6 Jun 2006 13:08:28 -0000
 -47,9
+47,9  attach	rtw at cardbus with rtw_cardbus
 file	dev/cardbus/if_rtw_cardbus.c	rtw_cardbus
 
 #
-# Ralink RT2500
+# Ralink RT2500/RT2600
 #
-attach	ral at cardbus with ral_cardbus: ralcommon
+attach	ral at cardbus with ral_cardbus
 file	dev/cardbus/if_ral_cardbus.c	ral_cardbus
 
 #
Index: dev/cardbus/if_ral_cardbus.c
============================================================
=======
RCS file: /cvsroot/src/sys/dev/cardbus/if_ral_cardbus.c,v
retrieving revision 1.4
diff -u -p -r1.4 if_ral_cardbus.c
--- dev/cardbus/if_ral_cardbus.c	29 Mar 2006 06:22:38
-0000	1.4
+++ dev/cardbus/if_ral_cardbus.c	6 Jun 2006 13:08:28 -0000
 -1,8
+1,8 
-/*	$NetBSD: if_ral_cardbus.c,v 1.4 2006/03/29 06:22:38
thorpej Exp $ */
-/*	$OpenBSD: if_ral_cardbus.c,v 1.5 2005/05/16 01:36:25
brad Exp $  */
+/*	$NetBSD$	*/
+/*	$OpenBSD: if_ral_cardbus.c,v 1.6 2006/01/09 20:03:31
damien Exp $  */
 
 /*-
- * Copyright (c) 2005
+ * Copyright (c) 2005, 2006
  *	Damien Bergamini <damien.bergaminifree.fr>
  *
  * Permission to use, copy, modify, and distribute this
software for any
 -19,11
+19,10 
  */
 
 /*
- * CardBus front-end for the Ralink RT2500 driver.
+ * CardBus front-end for the Ralink
RT2560/RT2561/RT2561S/RT2661 driver.
  */
-
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_ral_cardbus.c,v 1.4
2006/03/29 06:22:38 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #include "bpfilter.h"
 
 -34,6
+33,7  __KERNEL_RCSID(0, "$NetBSD: if_ral_cardb
 #include <sys/socket.h>
 #include <sys/systm.h>
 #include <sys/malloc.h>
+#include <sys/callout.h>
 #include <sys/device.h>
 
 #include <machine/bus.h>
 -41,8
+41,8  __KERNEL_RCSID(0, "$NetBSD: if_ral_cardb
 
 #include <net/if.h>
 #include <net/if_dl.h>
-#include <net/if_ether.h>
 #include <net/if_media.h>
+#include <net/if_ether.h>
 
 #include <netinet/in.h>
 
 -50,7
+50,8  __KERNEL_RCSID(0, "$NetBSD: if_ral_cardb
 #include <net80211/ieee80211_rssadapt.h>
 #include <net80211/ieee80211_radiotap.h>
 
-#include <dev/ic/ralvar.h>
+#include <dev/ic/rt2560var.h>
+#include <dev/ic/rt2661var.h>
 
 #include <dev/pci/pcireg.h>
 #include <dev/pci/pcivar.h>
 -58,10
+59,31  __KERNEL_RCSID(0, "$NetBSD: if_ral_cardb
 
 #include <dev/cardbus/cardbusvar.h>
 
+static struct ral_opns {
+	int	(*attach)(void *, int);
+	int	(*detach)(void *);
+	int	(*intr)(void *);
+
+}  ral_rt2560_opns = {
+	rt2560_attach,
+	rt2560_detach,
+	rt2560_intr
+
+}, ral_rt2661_opns = {
+	rt2661_attach,
+	rt2661_detach,
+	rt2661_intr
+};
+
 struct ral_cardbus_softc {
-	struct ral_softc	sc_sc;
+	union {
+		struct rt2560_softc	sc_rt2560;
+		struct rt2661_softc	sc_rt2661;
+	} u;
+#define sc_sc	u.sc_rt2560
 
 	/* cardbus specific goo */
+	struct ral_opns		*sc_opns;
 	cardbus_devfunc_t	sc_ct;
 	cardbustag_t		sc_tag;
 	void			*sc_ih;
 -77,33
+99,45  int	ral_cardbus_detach(struct device *, 
 CFATTACH_DECL(ral_cardbus, sizeof (struct
ral_cardbus_softc),
     ral_cardbus_match, ral_cardbus_attach,
ral_cardbus_detach, NULL);
 
-int	ral_cardbus_enable(struct ral_softc *);
-void	ral_cardbus_disable(struct ral_softc *);
-void	ral_cardbus_power(struct ral_softc *, int);
+int	ral_cardbus_enable(struct rt2560_softc *);
+void	ral_cardbus_disable(struct rt2560_softc *);
+void	ral_cardbus_power(struct rt2560_softc *, int);
 void	ral_cardbus_setup(struct ral_cardbus_softc *);
 
 int
-ral_cardbus_match(struct device *parent, struct cfdata
*match, void *aux)
+ral_cardbus_match(struct device *parent, struct cfdata
*cfdata, void *aux)
 {
-	struct cardbus_attach_args *ca = aux;
+        struct cardbus_attach_args *ca = aux;
 
-	if (CARDBUS_VENDOR(ca->ca_id) == PCI_VENDOR_RALINK
&&
-	    CARDBUS_PRODUCT(ca->ca_id) ==
PCI_PRODUCT_RALINK_RT2560)
-		return 1;
+        if (PCI_VENDOR(ca->ca_id) == PCI_VENDOR_RALINK)
{
+                switch (PCI_PRODUCT(ca->ca_id)) {
+		case PCI_PRODUCT_RALINK_RT2560:
+		case PCI_PRODUCT_RALINK_RT2561:
+		case PCI_PRODUCT_RALINK_RT2561S:
+		case PCI_PRODUCT_RALINK_RT2661:
+			return 1;
+		default:
+			return 0;
+                }
+        }
 
-	return 0;
+        return 0;
 }
 
 void
 ral_cardbus_attach(struct device *parent, struct device
*self, void *aux)
 {
-	struct ral_cardbus_softc *csc = device_private(self);
-	struct ral_softc *sc = &csc->sc_sc;
+	struct ral_cardbus_softc *csc = (struct ral_cardbus_softc
*)self;
+	struct rt2560_softc *sc = &csc->sc_sc;
 	struct cardbus_attach_args *ca = aux;
 	cardbus_devfunc_t ct = ca->ca_ct;
 	bus_addr_t base;
 	int error;
 
+	csc->sc_opns =
+	    (CARDBUS_PRODUCT(ca->ca_id) ==
PCI_PRODUCT_RALINK_RT2560) ?
+	    &ral_rt2560_opns : &ral_rt2661_opns;
+
 	sc->sc_dmat = ca->ca_dmat;
 	csc->sc_ct = ct;
 	csc->sc_tag = ca->ca_tag;
 -135,7
+169,7  ral_cardbus_attach(struct device *parent
 
 	printf(": irq %d\n", csc->sc_intrline);
 
-	ral_attach(sc);
+	(*csc->sc_opns->attach)(sc,
CARDBUS_PRODUCT(ca->ca_id));
 
 	Cardbus_function_disable(ct);
 }
 -143,14
+177,14  ral_cardbus_attach(struct device *parent
 int
 ral_cardbus_detach(struct device *self, int flags)
 {
-	struct ral_cardbus_softc *csc = device_private(self);
-	struct ral_softc *sc = &csc->sc_sc;
+	struct ral_cardbus_softc *csc = (struct ral_cardbus_softc
*)self;
+	struct rt2560_softc *sc = &csc->sc_sc;
 	cardbus_devfunc_t ct = csc->sc_ct;
 	cardbus_chipset_tag_t cc = ct->ct_cc;
 	cardbus_function_tag_t cf = ct->ct_cf;
 	int error;
 
-	error = ral_detach(sc);
+	error = (*csc->sc_opns->detach)(sc);
 	if (error != 0)
 		return error;
 
 -168,7
+202,7  ral_cardbus_detach(struct device *self, 
 }
 
 int
-ral_cardbus_enable(struct ral_softc *sc)
+ral_cardbus_enable(struct rt2560_softc *sc)
 {
 	struct ral_cardbus_softc *csc = (struct ral_cardbus_softc
*)sc;
 	cardbus_devfunc_t ct = csc->sc_ct;
 -183,7
+217,7  ral_cardbus_enable(struct ral_softc *sc)
 
 	/* map and establish the interrupt handler */
 	csc->sc_ih = cardbus_intr_establish(cc, cf,
csc->sc_intrline, IPL_NET,
-	    ral_intr, sc);
+	    csc->sc_opns->intr, sc);
 	if (csc->sc_ih == NULL) {
 		printf("%s: could not establish interrupt at
%d\n",
 		    sc->sc_dev.dv_xname, csc->sc_intrline);
 -195,7
+229,7  ral_cardbus_enable(struct ral_softc *sc)
 }
 
 void
-ral_cardbus_disable(struct ral_softc *sc)
+ral_cardbus_disable(struct rt2560_softc *sc)
 {
 	struct ral_cardbus_softc *csc = (struct ral_cardbus_softc
*)sc;
 	cardbus_devfunc_t ct = csc->sc_ct;
 -211,7
+245,7  ral_cardbus_disable(struct ral_softc *sc
 }
 
 void
-ral_cardbus_power(struct ral_softc *sc, int why)
+ral_cardbus_power(struct rt2560_softc *sc, int why)
 {
 	struct ral_cardbus_softc *csc = (struct ral_cardbus_softc
*)sc;
 
Index: dev/pci/files.pci
============================================================
=======
RCS file: /cvsroot/src/sys/dev/pci/files.pci,v
retrieving revision 1.255
diff -u -p -r1.255 files.pci
--- dev/pci/files.pci	28 May 2006 08:57:53 -0000	1.255
+++ dev/pci/files.pci	6 Jun 2006 13:08:29 -0000
 -692,8
+692,8  file	dev/pci/if_atw_pci.c		atw_pci
 attach	rtw at pci with rtw_pci
 file	dev/pci/if_rtw_pci.c		rtw_pci
 
-# Ralink RT2500 PCI/Mini-PCI
-attach	ral at pci with ral_pci: ralcommon
+# Ralink RT2500/RT2600 PCI/Mini-PCI
+attach	ral at pci with ral_pci
 file	dev/pci/if_ral_pci.c		ral_pci
 
 # Intersil Prism2.5 Mini-PCI
Index: dev/pci/if_ral_pci.c
============================================================
=======
RCS file: /cvsroot/src/sys/dev/pci/if_ral_pci.c,v
retrieving revision 1.3
diff -u -p -r1.3 if_ral_pci.c
--- dev/pci/if_ral_pci.c	11 Dec 2005 12:22:49 -0000	1.3
+++ dev/pci/if_ral_pci.c	6 Jun 2006 13:08:29 -0000
 -1,8
+1,8 
-/*	$NetBSD: if_ral_pci.c,v 1.3 2005/12/11 12:22:49 christos
Exp $ */
-/*	$OpenBSD: if_ral_pci.c,v 1.4 2005/02/22 10:41:30 damien
Exp $  */
+/*	$NetBSD$	*/
+/*	$OpenBSD: if_ral_pci.c,v 1.6 2006/01/09 20:03:43 damien
Exp $  */
 
 /*-
- * Copyright (c) 2005
+ * Copyright (c) 2005, 2006
  *	Damien Bergamini <damien.bergaminifree.fr>
  *
  * Permission to use, copy, modify, and distribute this
software for any
 -19,11
+19,10 
  */
 
 /*
- * PCI front-end for the Ralink RT2500 driver.
+ * PCI front-end for the Ralink
RT2560/RT2561/RT2561S/RT2661 driver.
  */
-
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_ral_pci.c,v 1.3
2005/12/11 12:22:49 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD$");
 
 #include "bpfilter.h"
 
 -41,8
+40,8  __KERNEL_RCSID(0, "$NetBSD: if_ral_pci.c
 
 #include <net/if.h>
 #include <net/if_dl.h>
-#include <net/if_ether.h>
 #include <net/if_media.h>
+#include <net/if_ether.h>
 
 #include <netinet/in.h>
 
 -50,16
+49,38  __KERNEL_RCSID(0, "$NetBSD: if_ral_pci.c
 #include <net80211/ieee80211_rssadapt.h>
 #include <net80211/ieee80211_radiotap.h>
 
-#include <dev/ic/ralvar.h>
+#include <dev/ic/rt2560var.h>
+#include <dev/ic/rt2661var.h>
 
 #include <dev/pci/pcireg.h>
 #include <dev/pci/pcivar.h>
 #include <dev/pci/pcidevs.h>
 
+static struct ral_opns {
+	int	(*attach)(void *, int);
+	int	(*detach)(void *);
+	int	(*intr)(void *);
+
+}  ral_rt2560_opns = {
+	rt2560_attach,
+	rt2560_detach,
+	rt2560_intr
+
+}, ral_rt2661_opns = {
+	rt2661_attach,
+	rt2661_detach,
+	rt2661_intr
+};
+
 struct ral_pci_softc {
-	struct ral_softc	sc_sc;
+	union {
+		struct rt2560_softc	sc_rt2560;
+		struct rt2661_softc	sc_rt2661;
+	} u;
+#define sc_sc	u.sc_rt2560
 
 	/* PCI specific goo */
+	struct ral_opns		*sc_opns;
 	pci_chipset_tag_t	sc_pc;
 	void			*sc_ih;
 	bus_size_t		sc_mapsize;
 -76,13
+97,21  CFATTACH_DECL(ral_pci, sizeof (struct ra
 	ral_pci_match, ral_pci_attach, ral_pci_detach, NULL);
 
 int
-ral_pci_match(struct device *parent, struct cfdata *match,
void *aux)
+ral_pci_match(struct device *parent, struct cfdata *cfdata,
void *aux)
 {
 	struct pci_attach_args *pa = aux;
 
-	if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_RALINK
&&
-	    PCI_PRODUCT(pa->pa_id) ==
PCI_PRODUCT_RALINK_RT2560)
-		return 1;
+	if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_RALINK) {
+		switch (PCI_PRODUCT(pa->pa_id)) {
+			case PCI_PRODUCT_RALINK_RT2560:
+			case PCI_PRODUCT_RALINK_RT2561:
+			case PCI_PRODUCT_RALINK_RT2561S:
+			case PCI_PRODUCT_RALINK_RT2661:
+				return 1;
+			default:
+				return 0;
+		}
+	}
 
 	return 0;
 }
 -91,14
+120,22  void
 ral_pci_attach(struct device *parent, struct device *self,
void *aux)
 {
 	struct ral_pci_softc *psc = (struct ral_pci_softc *)self;
-	struct ral_softc *sc = &psc->sc_sc;
+	struct rt2560_softc *sc = &psc->sc_sc;
 	struct pci_attach_args *pa = aux;
 	const char *intrstr;
+	char devinfo[256];
 	bus_addr_t base;
 	pci_intr_handle_t ih;
 	pcireg_t reg;
-	int error;
-	
+	int error, revision;
+
+	pci_devinfo(pa->pa_id, pa->pa_class, 0, devinfo,
sizeof(devinfo));
+	revision = PCI_REVISION(pa->pa_class);
+	aprint_normal(": %s (rev. 0x%02x)\n",
devinfo, revision);
+
+	psc->sc_opns = (PCI_PRODUCT(pa->pa_id) ==
PCI_PRODUCT_RALINK_RT2560) ?
+	    &ral_rt2560_opns : &ral_rt2661_opns;
+
 	sc->sc_dmat = pa->pa_dmat;
 	psc->sc_pc = pa->pa_pc;
 
 -111,38
+148,42  ral_pci_attach(struct device *parent, st
 	error = pci_mapreg_map(pa, RAL_PCI_BAR0,
PCI_MAPREG_TYPE_MEM |
 	    PCI_MAPREG_MEM_TYPE_32BIT, 0, &sc->sc_st,
&sc->sc_sh, &base,
 	    &psc->sc_mapsize);
+
 	if (error != 0) {
-		printf(": could not map memory space\n");
+		aprint_error(": could not map memory
space\n");
 		return;
 	}
 
 	if (pci_intr_map(pa, &ih) != 0) {
-		printf(": could not map interrupt\n");
+		aprint_error(": could not map interrupt\n");
 		return;
 	}
 
 	intrstr = pci_intr_string(psc->sc_pc, ih);
-	psc->sc_ih = pci_intr_establish(psc->sc_pc, ih,
IPL_NET, ral_intr, sc);
+	psc->sc_ih = pci_intr_establish(psc->sc_pc, ih,
IPL_NET,
+	    psc->sc_opns->intr, sc);
+
 	if (psc->sc_ih == NULL) {
-		printf(": could not establish interrupt");
+		aprint_error(": could not establish
interrupt");
 		if (intrstr != NULL)
 			printf(" at %s", intrstr);
-		printf("\n");
+		aprint_error("\n");
 		return;
 	}
-	printf(": %s\n", intrstr);
+	aprint_normal("%s: interrupting at %s\n",
sc->sc_dev.dv_xname, intrstr);
 
-	ral_attach(sc);
+	(*psc->sc_opns->attach)(sc,
PCI_PRODUCT(pa->pa_id));
 }
 
 int
 ral_pci_detach(struct device *self, int flags)
 {
 	struct ral_pci_softc *psc = (struct ral_pci_softc *)self;
-	struct ral_softc *sc = &psc->sc_sc;
+	struct rt2560_softc *sc = &psc->sc_sc;
 
-	ral_detach(sc);
+	(*psc->sc_opns->detach)(sc);
 	pci_intr_disestablish(psc->sc_pc, psc->sc_ih);
 
 	return 0;
 }
+
Index: dev/pci/pcidevs
============================================================
=======
RCS file: /cvsroot/src/sys/dev/pci/pcidevs,v
retrieving revision 1.790
diff -u -p -r1.790 pcidevs
--- dev/pci/pcidevs	5 Jun 2006 21:08:18 -0000	1.790
+++ dev/pci/pcidevs	6 Jun 2006 13:08:30 -0000
 -2713,8
+2713,11  product QUICKLOGIC PCWATCHDOG	0x5030	PC 
 product RAINBOW	CS200		0x0200	CryptoSwift 200 PKI
Accelerator
 
 /* Ralink Technologies products */
-product RALINK	RT2460		0x0101	RT2460 802.11b
-product RALINK	RT2560		0x0201	RT2560 802.11b/g
+product	RALINK	RT2460A		0x0101	RT2460A 802.11b
+product	RALINK	RT2560		0x0201	RT2560 802.11b/g
+product	RALINK	RT2561S		0x0301	RT2561S 802.11b/g
+product	RALINK	RT2561		0x0302	RT2561 802.11b/g
+product	RALINK	RT2661		0x0401	RT2661 802.11b/g/n
 
 /* RATOC Systems products */
 product RATOC	REXPCI31	0x0853	REX PCI-31/33 SCSI
Index: dev/pci/pcidevs.h
============================================================
=======
RCS file: /cvsroot/src/sys/dev/pci/pcidevs.h,v
retrieving revision 1.791
diff -u -p -r1.791 pcidevs.h
--- dev/pci/pcidevs.h	5 Jun 2006 21:08:51 -0000	1.791
+++ dev/pci/pcidevs.h	6 Jun 2006 13:08:32 -0000
 -1,4
+1,4 
-/*	$NetBSD: pcidevs.h,v 1.791 2006/06/05 21:08:51 martin
Exp $	*/
+/*	$NetBSD$	*/
 
 /*
  * THIS FILE AUTOMATICALLY GENERATED.  DO NOT EDIT.
 -2720,8
+2720,11 
 #define	PCI_PRODUCT_RAINBOW_CS200	0x0200		/* CryptoSwift
200 PKI Accelerator */
 
 /* Ralink Technologies products */
-#define	PCI_PRODUCT_RALINK_RT2460	0x0101		/* RT2460 802.11b
*/
+#define	PCI_PRODUCT_RALINK_RT2460A	0x0101		/* RT2460A
802.11b */
 #define	PCI_PRODUCT_RALINK_RT2560	0x0201		/* RT2560
802.11b/g */
+#define	PCI_PRODUCT_RALINK_RT2561S	0x0301		/* RT2561S
802.11b/g */
+#define	PCI_PRODUCT_RALINK_RT2561	0x0302		/* RT2561
802.11b/g */
+#define	PCI_PRODUCT_RALINK_RT2661	0x0401		/* RT2661
802.11b/g/n */
 
 /* RATOC Systems products */
 #define	PCI_PRODUCT_RATOC_REXPCI31	0x0853		/* REX PCI-31/33
SCSI */
Index: dev/pci/pcidevs_data.h
============================================================
=======
RCS file: /cvsroot/src/sys/dev/pci/pcidevs_data.h,v
retrieving revision 1.790
diff -u -p -r1.790 pcidevs_data.h
--- dev/pci/pcidevs_data.h	5 Jun 2006 21:08:51 -0000	1.790
+++ dev/pci/pcidevs_data.h	6 Jun 2006 13:08:33 -0000
 -1,4
+1,4 
-/*	$NetBSD: pcidevs_data.h,v 1.790 2006/06/05 21:08:51
martin Exp $	*/
+/*	$NetBSD$	*/
 
 /*
  * THIS FILE AUTOMATICALLY GENERATED.  DO NOT EDIT.
 -9228,14
+9228,26  static const struct pci_product pci_prod
 	    "CryptoSwift 200 PKI Accelerator",
 	},
 	{
-	    PCI_VENDOR_RALINK, PCI_PRODUCT_RALINK_RT2460,
-	    "RT2460 802.11b",
+	    PCI_VENDOR_RALINK, PCI_PRODUCT_RALINK_RT2460A,
+	    "RT2460A 802.11b",
 	},
 	{
 	    PCI_VENDOR_RALINK, PCI_PRODUCT_RALINK_RT2560,
 	    "RT2560 802.11b/g",
 	},
 	{
+	    PCI_VENDOR_RALINK, PCI_PRODUCT_RALINK_RT2561S,
+	    "RT2561S 802.11b/g",
+	},
+	{
+	    PCI_VENDOR_RALINK, PCI_PRODUCT_RALINK_RT2561,
+	    "RT2561 802.11b/g",
+	},
+	{
+	    PCI_VENDOR_RALINK, PCI_PRODUCT_RALINK_RT2661,
+	    "RT2661 802.11b/g/n",
+	},
+	{
 	    PCI_VENDOR_RATOC, PCI_PRODUCT_RATOC_REXPCI31,
 	    "REX PCI-31/33 SCSI",
 	},
 -11500,4
+11512,4  static const struct pci_product pci_prod
 	    "Video Controller",
 	},
 };
-const int pci_nproducts = 2284;
+const int pci_nproducts = 2287;

[1]

about | contact  Other archives ( Real Estate discussion Medical topics )