Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ba9b28d1 authored by Jeff Garzik's avatar Jeff Garzik
Browse files

Merge branch 'upstream' of...

parents 862fc81b 5c601d0c
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -531,6 +531,23 @@ config PRISM54
	  say M here and read <file:Documentation/modules.txt>.  The module
	  will be called prism54.ko.

config USB_ZD1201
	tristate "USB ZD1201 based Wireless device support"
	depends on USB && NET_RADIO
	select FW_LOADER
	---help---
	  Say Y if you want to use wireless LAN adapters based on the ZyDAS
	  ZD1201 chip.

	  This driver makes the adapter appear as a normal Ethernet interface,
	  typically on wlan0.

	  The zd1201 device requires external firmware to be loaded.
	  This can be found at http://linux-lc100020.sourceforge.net/

	  To compile this driver as a module, choose M here: the
	  module will be called zd1201.

source "drivers/net/wireless/hostap/Kconfig"
source "drivers/net/wireless/bcm43xx/Kconfig"

+2 −0
Original line number Diff line number Diff line
@@ -40,3 +40,5 @@ obj-$(CONFIG_BCM43XX) += bcm43xx/
# 16-bit wireless PCMCIA client drivers
obj-$(CONFIG_PCMCIA_RAYCS)	+= ray_cs.o
obj-$(CONFIG_PCMCIA_WL3501)	+= wl3501_cs.o

obj-$(CONFIG_USB_ZD1201)	+= zd1201.o
+7 −6
Original line number Diff line number Diff line
@@ -3555,7 +3555,7 @@ static void bcm43xx_ieee80211_set_security(struct net_device *net_dev,
	unsigned long flags;
	int keyidx;
	
	dprintk(KERN_INFO PFX "set security called\n");
	dprintk(KERN_INFO PFX "set security called");

	bcm43xx_lock_mmio(bcm, flags);

@@ -3568,24 +3568,25 @@ static void bcm43xx_ieee80211_set_security(struct net_device *net_dev,
	
	if (sec->flags & SEC_ACTIVE_KEY) {
		secinfo->active_key = sec->active_key;
		dprintk(KERN_INFO PFX "   .active_key = %d\n", sec->active_key);
		dprintk(", .active_key = %d", sec->active_key);
	}
	if (sec->flags & SEC_UNICAST_GROUP) {
		secinfo->unicast_uses_group = sec->unicast_uses_group;
		dprintk(KERN_INFO PFX "   .unicast_uses_group = %d\n", sec->unicast_uses_group);
		dprintk(", .unicast_uses_group = %d", sec->unicast_uses_group);
	}
	if (sec->flags & SEC_LEVEL) {
		secinfo->level = sec->level;
		dprintk(KERN_INFO PFX "   .level = %d\n", sec->level);
		dprintk(", .level = %d", sec->level);
	}
	if (sec->flags & SEC_ENABLED) {
		secinfo->enabled = sec->enabled;
		dprintk(KERN_INFO PFX "   .enabled = %d\n", sec->enabled);
		dprintk(", .enabled = %d", sec->enabled);
	}
	if (sec->flags & SEC_ENCRYPT) {
		secinfo->encrypt = sec->encrypt;
		dprintk(KERN_INFO PFX "   .encrypt = %d\n", sec->encrypt);
		dprintk(", .encrypt = %d", sec->encrypt);
	}
	dprintk("\n");
	if (bcm->initialized && !bcm->ieee->host_encrypt) {
		if (secinfo->enabled) {
			/* upload WEP keys to hardware */
+26 −41
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ static struct usb_device_id zd1201_table[] = {
	{}
};

static int ap = 0;	/* Are we an AP or a normal station? */
static int ap;	/* Are we an AP or a normal station? */

#define ZD1201_VERSION	"0.15"

@@ -65,7 +65,7 @@ static int zd1201_fw_upload(struct usb_device *dev, int apfw)
	if (err) {
		dev_err(&dev->dev, "Failed to load %s firmware file!\n", fwfile);
		dev_err(&dev->dev, "Make sure the hotplug firmware loader is installed.\n");
		dev_err(&dev->dev, "Goto http://linux-lc100020.sourceforge.net for more info\n");
		dev_err(&dev->dev, "Goto http://linux-lc100020.sourceforge.net for more info.\n");
		return err;
	}

@@ -376,7 +376,6 @@ static void zd1201_usbrx(struct urb *urb, struct pt_regs *regs)
				goto resubmit;
			hlist_del_init(&frag->fnode);
			kfree(frag);
			/* Fallthrough */
		} else {
			if (datalen<14)
				goto resubmit;
@@ -490,8 +489,7 @@ static int zd1201_getconfig(struct zd1201 *zd, int rid, void *riddata,
		if (i == 0) {
			pdata += 8;
			actual_length -= 8;
		}
		else {
		} else {
			pdata += 4;
			actual_length -= 4;
		}
@@ -764,7 +762,6 @@ static int zd1201_net_open(struct net_device *dev)
static int zd1201_net_stop(struct net_device *dev)
{
	netif_stop_queue(dev);
	
	return 0;
}

@@ -915,7 +912,6 @@ static int zd1201_get_name(struct net_device *dev,
    struct iw_request_info *info, char *name, char *extra)
{
	strcpy(name, "IEEE 802.11b");

	return 0;
}

@@ -1017,7 +1013,6 @@ static int zd1201_set_mode(struct net_device *dev,
	/* If monitor mode is set we don't actually turn it on here since it
	 * is done during mac reset anyway (see zd1201_mac_enable).
	 */

	zd1201_mac_reset(zd);

	return 0;
@@ -1529,11 +1524,7 @@ static int zd1201_set_power(struct net_device *dev,
		return -EINVAL;
	}
out:
	err = zd1201_setconfig16(zd, ZD1201_RID_CNFPMENABLED, enabled);
	if (err)
		return err;

	return 0;
	return zd1201_setconfig16(zd, ZD1201_RID_CNFPMENABLED, enabled);
}

static int zd1201_get_power(struct net_device *dev,
@@ -1627,15 +1618,11 @@ static int zd1201_set_hostauth(struct net_device *dev,
    struct iw_request_info *info, struct iw_param *rrq, char *extra)
{
	struct zd1201 *zd = (struct zd1201 *)dev->priv;
	int err;

	if (!zd->ap)
		return -EOPNOTSUPP;

	err = zd1201_setconfig16(zd, ZD1201_RID_CNFHOSTAUTH, rrq->value);
	if (err)
		return err;
	return 0;
	return zd1201_setconfig16(zd, ZD1201_RID_CNFHOSTAUTH, rrq->value);
}

static int zd1201_get_hostauth(struct net_device *dev,
@@ -1744,7 +1731,7 @@ static int zd1201_probe(struct usb_interface *interface,
{
	struct zd1201 *zd;
	struct usb_device *usb;
	int i, err;
	int err;
	short porttype;
	char buf[IW_ESSID_MAX_SIZE+2];

@@ -1773,9 +1760,7 @@ static int zd1201_probe(struct usb_interface *interface,
	if (!zd->rx_urb || !zd->tx_urb)
		goto err_zd;

	for(i = 0; i<100; i++)
		udelay(1000);

	mdelay(100);
	err = zd1201_drvr_start(zd);
	if (err)
		goto err_zd;
+0 −0

File moved.

Loading