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

Commit eebb6fb4 authored by John W. Linville's avatar John W. Linville
Browse files

Merge branch 'master' of ssh://infradead/~/public_git/wireless into for-davem

parents 9d037a77 8c23516f
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -72,9 +72,15 @@ static struct usb_device_id btusb_table[] = {
	/* Apple MacBookAir3,1, MacBookAir3,2 */
	{ USB_DEVICE(0x05ac, 0x821b) },

	/* Apple MacBookAir4,1 */
	{ USB_DEVICE(0x05ac, 0x821f) },

	/* Apple MacBookPro8,2 */
	{ USB_DEVICE(0x05ac, 0x821a) },

	/* Apple MacMini5,1 */
	{ USB_DEVICE(0x05ac, 0x8281) },

	/* AVM BlueFRITZ! USB v2.0 */
	{ USB_DEVICE(0x057c, 0x3800) },

+8 −8
Original line number Diff line number Diff line
@@ -124,6 +124,13 @@ static long st_receive(void *priv_data, struct sk_buff *skb)
/* ------- Interfaces to HCI layer ------ */
/* protocol structure registered with shared transport */
static struct st_proto_s ti_st_proto[MAX_BT_CHNL_IDS] = {
	{
		.chnl_id = HCI_EVENT_PKT, /* HCI Events */
		.hdr_len = sizeof(struct hci_event_hdr),
		.offset_len_in_hdr = offsetof(struct hci_event_hdr, plen),
		.len_size = 1, /* sizeof(plen) in struct hci_event_hdr */
		.reserve = 8,
	},
	{
		.chnl_id = HCI_ACLDATA_PKT, /* ACL */
		.hdr_len = sizeof(struct hci_acl_hdr),
@@ -138,13 +145,6 @@ static struct st_proto_s ti_st_proto[MAX_BT_CHNL_IDS] = {
		.len_size = 1, /* sizeof(dlen) in struct hci_sco_hdr */
		.reserve = 8,
	},
	{
		.chnl_id = HCI_EVENT_PKT, /* HCI Events */
		.hdr_len = sizeof(struct hci_event_hdr),
		.offset_len_in_hdr = offsetof(struct hci_event_hdr, plen),
		.len_size = 1, /* sizeof(plen) in struct hci_event_hdr */
		.reserve = 8,
	},
};

/* Called from HCI core to initialize the device */
@@ -240,7 +240,7 @@ static int ti_st_close(struct hci_dev *hdev)
	if (!test_and_clear_bit(HCI_RUNNING, &hdev->flags))
		return 0;

	for (i = 0; i < MAX_BT_CHNL_IDS; i++) {
	for (i = MAX_BT_CHNL_IDS-1; i >= 0; i--) {
		err = st_unregister(&ti_st_proto[i]);
		if (err)
			BT_ERR("st_unregister(%d) failed with error %d",
+2 −1
Original line number Diff line number Diff line
@@ -1632,7 +1632,8 @@ static void handle_irq_beacon(struct b43_wldev *dev)
	u32 cmd, beacon0_valid, beacon1_valid;

	if (!b43_is_mode(wl, NL80211_IFTYPE_AP) &&
	    !b43_is_mode(wl, NL80211_IFTYPE_MESH_POINT))
	    !b43_is_mode(wl, NL80211_IFTYPE_MESH_POINT) &&
	    !b43_is_mode(wl, NL80211_IFTYPE_ADHOC))
		return;

	/* This is the bottom half of the asynchronous beacon update. */
+14 −7
Original line number Diff line number Diff line
@@ -1901,17 +1901,19 @@ static void ipw2100_down(struct ipw2100_priv *priv)

/* Called by register_netdev() */
static int ipw2100_net_init(struct net_device *dev)
{
	struct ipw2100_priv *priv = libipw_priv(dev);

	return ipw2100_up(priv, 1);
}

static int ipw2100_wdev_init(struct net_device *dev)
{
	struct ipw2100_priv *priv = libipw_priv(dev);
	const struct libipw_geo *geo = libipw_get_geo(priv->ieee);
	struct wireless_dev *wdev = &priv->ieee->wdev;
	int ret;
	int i;

	ret = ipw2100_up(priv, 1);
	if (ret)
		return ret;

	memcpy(wdev->wiphy->perm_addr, priv->mac_addr, ETH_ALEN);

	/* fill-out priv->ieee->bg_band */
@@ -6350,9 +6352,13 @@ static int ipw2100_pci_init_one(struct pci_dev *pci_dev,
		       "Error calling register_netdev.\n");
		goto fail;
	}
	registered = 1;

	err = ipw2100_wdev_init(dev);
	if (err)
		goto fail;

	mutex_lock(&priv->action_mutex);
	registered = 1;

	IPW_DEBUG_INFO("%s: Bound to %s\n", dev->name, pci_name(pci_dev));

@@ -6389,7 +6395,8 @@ static int ipw2100_pci_init_one(struct pci_dev *pci_dev,

      fail_unlock:
	mutex_unlock(&priv->action_mutex);

	wiphy_unregister(priv->ieee->wdev.wiphy);
	kfree(priv->ieee->bg_band.channels);
      fail:
	if (dev) {
		if (registered)
+26 −13
Original line number Diff line number Diff line
@@ -11425,17 +11425,24 @@ static void ipw_bg_down(struct work_struct *work)
/* Called by register_netdev() */
static int ipw_net_init(struct net_device *dev)
{
	int i, rc = 0;
	int rc = 0;
	struct ipw_priv *priv = libipw_priv(dev);
	const struct libipw_geo *geo = libipw_get_geo(priv->ieee);
	struct wireless_dev *wdev = &priv->ieee->wdev;
	mutex_lock(&priv->mutex);

	if (ipw_up(priv)) {
	mutex_lock(&priv->mutex);
	if (ipw_up(priv))
		rc = -EIO;
		goto out;
	mutex_unlock(&priv->mutex);

	return rc;
}

static int ipw_wdev_init(struct net_device *dev)
{
	int i, rc = 0;
	struct ipw_priv *priv = libipw_priv(dev);
	const struct libipw_geo *geo = libipw_get_geo(priv->ieee);
	struct wireless_dev *wdev = &priv->ieee->wdev;

	memcpy(wdev->wiphy->perm_addr, priv->mac_addr, ETH_ALEN);

	/* fill-out priv->ieee->bg_band */
@@ -11519,13 +11526,9 @@ static int ipw_net_init(struct net_device *dev)
	set_wiphy_dev(wdev->wiphy, &priv->pci_dev->dev);

	/* With that information in place, we can now register the wiphy... */
	if (wiphy_register(wdev->wiphy)) {
	if (wiphy_register(wdev->wiphy))
		rc = -EIO;
		goto out;
	}

out:
	mutex_unlock(&priv->mutex);
	return rc;
}

@@ -11832,14 +11835,22 @@ static int __devinit ipw_pci_probe(struct pci_dev *pdev,
		goto out_remove_sysfs;
	}

	err = ipw_wdev_init(net_dev);
	if (err) {
		IPW_ERROR("failed to register wireless device\n");
		goto out_unregister_netdev;
	}

#ifdef CONFIG_IPW2200_PROMISCUOUS
	if (rtap_iface) {
	        err = ipw_prom_alloc(priv);
		if (err) {
			IPW_ERROR("Failed to register promiscuous network "
				  "device (error %d).\n", err);
			unregister_netdev(priv->net_dev);
			goto out_remove_sysfs;
			wiphy_unregister(priv->ieee->wdev.wiphy);
			kfree(priv->ieee->a_band.channels);
			kfree(priv->ieee->bg_band.channels);
			goto out_unregister_netdev;
		}
	}
#endif
@@ -11851,6 +11862,8 @@ static int __devinit ipw_pci_probe(struct pci_dev *pdev,

	return 0;

      out_unregister_netdev:
	unregister_netdev(priv->net_dev);
      out_remove_sysfs:
	sysfs_remove_group(&pdev->dev.kobj, &ipw_attribute_group);
      out_release_irq:
Loading