Re: rt2x00/rt2500 support



On Wed, 2006-07-12 at 09:51 +1200, Eion Robb wrote:
> > The rt2x00-cvs-daily driver does appear to properly support WEXT since
> > it uses the ieee80211 layer.  But until the sourceforge site gets
> > updated to reflect which driver people should actually use, I'd be
> > hesitant to say that rt2x00 is actually WEXT compliant since most people
> > would likely make the same mistake I did, and download the older driver.
> 
> Which brings me back the question:
> >> So is there any reason for it not to be detected by NetworkManager?
> 
> To be honest, I'm not really concerned with the layout of the website,  
> since I have no power over it.  I am concerned about getting rt2x00  
> working with NetworkManager. :)

Ok; does it show up in HAL?  Run 'hal-device-manager' and look around
for your card.  There needs to also be a "WLAN Interface" object that's
a child of the actual PCI/USB card.  The "WLAN Interface" object needs
to have the "net.80211" capability in its info.capabilities list.  It
also needs to have a "net.interface" property.

The driver is likely not showing up because it has no SET_NETDEV_DEV()
call when it sets up its netdevice, which means that the right device
links aren't set up in sysfs.  Each separate hardware-specific file
(rt2500pci.c, rt2400pci.c, rt2500usb.c) needs to have the
SET_NETDEV_DEV() command added.  Try the attached patch, and if that
works, please send it upstream to the rt2x00 maintainers.

Dan


--- ./rt2500pci.c.setnetdevdev	2006-07-11 18:05:03.000000000 -0400
+++ ./rt2500pci.c	2006-07-11 18:05:26.000000000 -0400
@@ -3104,6 +3104,7 @@
 	struct rt2x00_dev *rt2x00dev = ieee80211_dev_hw_data(net_dev);
 
 	rt2x00dev->dev = pci_dev;
+	SET_NETDEV_DEV(net_dev, pci);
 
 	rt2x00dev->csr_addr = ioremap(
 		pci_resource_start(rt2x00dev_pci(rt2x00dev), 0),
--- ./rt2400pci.c.setnetdevdev	2006-07-11 18:04:56.000000000 -0400
+++ ./rt2400pci.c	2006-07-11 18:06:43.000000000 -0400
@@ -2821,6 +2821,7 @@
 	struct rt2x00_dev *rt2x00dev = ieee80211_dev_hw_data(net_dev);
 
 	rt2x00dev->dev = pci_dev;
+	SET_NETDEV_DEV(net_dev, pci_dev->dev);
 
 	rt2x00dev->csr_addr = ioremap(
 		pci_resource_start(rt2x00dev_pci(rt2x00dev), 0),
--- ./rt2500usb.c.setnetdevdev	2006-07-11 18:05:10.000000000 -0400
+++ ./rt2500usb.c	2006-07-11 18:07:35.000000000 -0400
@@ -2727,6 +2727,7 @@
 	struct rt2x00_dev *rt2x00dev = ieee80211_dev_hw_data(net_dev);
 
 	rt2x00dev->dev = usb_intf;
+	SET_NETDEV_DEV(net_dev, usb_intf->dev);
 
 	rt2x00dev->workqueue = create_singlethread_workqueue(DRV_NAME);
 	if (!rt2x00dev->workqueue)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]