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

Commit d7a066c9 authored by John W. Linville's avatar John W. Linville
Browse files
parents ccb14354 e476a5a4
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -68,6 +68,9 @@ static struct usb_device_id btusb_table[] = {
	/* Apple MacBookPro6,2 */
	{ USB_DEVICE(0x05ac, 0x8218) },

	/* Apple MacBookAir3,1, MacBookAir3,2 */
	{ USB_DEVICE(0x05ac, 0x821b) },

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

@@ -1029,6 +1032,8 @@ static int btusb_probe(struct usb_interface *intf,

	usb_set_intfdata(intf, data);

	usb_enable_autosuspend(interface_to_usbdev(intf));

	return 0;
}

+3 −0
Original line number Diff line number Diff line
@@ -410,6 +410,9 @@ static void ar9002_hw_configpcipowersave(struct ath_hw *ah,
			val &= ~(AR_WA_BIT6 | AR_WA_BIT7);
		}

		if (AR_SREV_9280(ah))
			val |= AR_WA_BIT22;

		if (AR_SREV_9285E_20(ah))
			val |= AR_WA_BIT23;

+1 −0
Original line number Diff line number Diff line
@@ -657,6 +657,7 @@ static inline void ath_read_cachesize(struct ath_common *common, int *csz)
}

extern struct ieee80211_ops ath9k_ops;
extern struct pm_qos_request_list ath9k_pm_qos_req;
extern int modparam_nohwcrypt;
extern int led_blink;

+1 −1
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ static bool ath9k_hw_ar9287_fill_eeprom(struct ath_hw *ah)
	int addr, eep_start_loc;
	eep_data = (u16 *)eep;

	if (ah->hw_version.devid == 0x7015)
	if (AR9287_HTC_DEVID(ah))
		eep_start_loc = AR9287_HTC_EEP_START_LOC;
	else
		eep_start_loc = AR9287_EEP_START_LOC;
+24 −16
Original line number Diff line number Diff line
@@ -35,8 +35,14 @@ static struct usb_device_id ath9k_hif_usb_ids[] = {
	{ USB_DEVICE(0x07D1, 0x3A10) }, /* Dlink Wireless 150 */
	{ USB_DEVICE(0x13D3, 0x3327) }, /* Azurewave */
	{ USB_DEVICE(0x13D3, 0x3328) }, /* Azurewave */
	{ USB_DEVICE(0x13D3, 0x3346) }, /* IMC Networks */
	{ USB_DEVICE(0x13D3, 0x3348) }, /* Azurewave */
	{ USB_DEVICE(0x13D3, 0x3349) }, /* Azurewave */
	{ USB_DEVICE(0x13D3, 0x3350) }, /* Azurewave */
	{ USB_DEVICE(0x04CA, 0x4605) }, /* Liteon */
	{ USB_DEVICE(0x083A, 0xA704) }, /* SMC Networks */
	{ USB_DEVICE(0x040D, 0x3801) }, /* VIA */
	{ USB_DEVICE(0x1668, 0x1200) }, /* Verizon */
	{ },
};

@@ -540,11 +546,11 @@ static void ath9k_hif_usb_reg_in_cb(struct urb *urb)
			return;
		}

		usb_fill_int_urb(urb, hif_dev->udev,
		usb_fill_bulk_urb(urb, hif_dev->udev,
				 usb_rcvbulkpipe(hif_dev->udev,
						 USB_REG_IN_PIPE),
				 nskb->data, MAX_REG_IN_BUF_SIZE,
				 ath9k_hif_usb_reg_in_cb, nskb, 1);
				 ath9k_hif_usb_reg_in_cb, nskb);

		ret = usb_submit_urb(urb, GFP_ATOMIC);
		if (ret) {
@@ -720,11 +726,11 @@ static int ath9k_hif_usb_alloc_reg_in_urb(struct hif_device_usb *hif_dev)
	if (!skb)
		goto err;

	usb_fill_int_urb(hif_dev->reg_in_urb, hif_dev->udev,
	usb_fill_bulk_urb(hif_dev->reg_in_urb, hif_dev->udev,
			 usb_rcvbulkpipe(hif_dev->udev,
					 USB_REG_IN_PIPE),
			 skb->data, MAX_REG_IN_BUF_SIZE,
			 ath9k_hif_usb_reg_in_cb, skb, 1);
			 ath9k_hif_usb_reg_in_cb, skb);

	if (usb_submit_urb(hif_dev->reg_in_urb, GFP_KERNEL) != 0)
		goto err;
@@ -805,6 +811,8 @@ static int ath9k_hif_usb_download_fw(struct hif_device_usb *hif_dev)
	case 0x7010:
	case 0x7015:
	case 0x9018:
	case 0xA704:
	case 0x1200:
		firm_offset = AR7010_FIRMWARE_TEXT;
		break;
	default:
@@ -843,14 +851,6 @@ static int ath9k_hif_usb_dev_init(struct hif_device_usb *hif_dev)
		goto err_fw_req;
	}

	/* Alloc URBs */
	ret = ath9k_hif_usb_alloc_urbs(hif_dev);
	if (ret) {
		dev_err(&hif_dev->udev->dev,
			"ath9k_htc: Unable to allocate URBs\n");
		goto err_urb;
	}

	/* Download firmware */
	ret = ath9k_hif_usb_download_fw(hif_dev);
	if (ret) {
@@ -866,16 +866,22 @@ static int ath9k_hif_usb_dev_init(struct hif_device_usb *hif_dev)
	 */
	for (idx = 0; idx < alt->desc.bNumEndpoints; idx++) {
		endp = &alt->endpoint[idx].desc;
		if (((endp->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK)
				== 0x04) &&
		    ((endp->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK)
				== USB_ENDPOINT_XFER_INT)) {
		if ((endp->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK)
				== USB_ENDPOINT_XFER_INT) {
			endp->bmAttributes &= ~USB_ENDPOINT_XFERTYPE_MASK;
			endp->bmAttributes |= USB_ENDPOINT_XFER_BULK;
			endp->bInterval = 0;
		}
	}

	/* Alloc URBs */
	ret = ath9k_hif_usb_alloc_urbs(hif_dev);
	if (ret) {
		dev_err(&hif_dev->udev->dev,
			"ath9k_htc: Unable to allocate URBs\n");
		goto err_urb;
	}

	return 0;

err_fw_download:
@@ -929,6 +935,8 @@ static int ath9k_hif_usb_probe(struct usb_interface *interface,
	case 0x7010:
	case 0x7015:
	case 0x9018:
	case 0xA704:
	case 0x1200:
		if (le16_to_cpu(udev->descriptor.bcdDevice) == 0x0202)
			hif_dev->fw_name = FIRMWARE_AR7010_1_1;
		else
Loading