monolith: fix bluetooth dongle
This commit is contained in:
		
							parent
							
								
									a4ebb60595
								
							
						
					
					
						commit
						9c8bc05856
					
				
					 4 changed files with 80 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -0,0 +1,24 @@
 | 
			
		|||
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
 | 
			
		||||
index c0b6ef8ee5da..f72218c1037e 100644
 | 
			
		||||
--- a/drivers/bluetooth/btusb.c
 | 
			
		||||
+++ b/drivers/bluetooth/btusb.c
 | 
			
		||||
@@ -1366,10 +1366,15 @@ static int btusb_submit_intr_urb(struct hci_dev *hdev, gfp_t mem_flags)
 | 
			
		||||
 	if (!urb)
 | 
			
		||||
 		return -ENOMEM;
 | 
			
		||||
 
 | 
			
		||||
-	/* Use maximum HCI Event size so the USB stack handles
 | 
			
		||||
-	 * ZPL/short-transfer automatically.
 | 
			
		||||
-	 */
 | 
			
		||||
-	size = HCI_MAX_EVENT_SIZE;
 | 
			
		||||
+	if (le16_to_cpu(data->udev->descriptor.idVendor)  == 0x0a12 &&
 | 
			
		||||
+	    le16_to_cpu(data->udev->descriptor.idProduct) == 0x0001)
 | 
			
		||||
+		/* Fake CSR devices don't seem to support sort-transter */
 | 
			
		||||
+		size = le16_to_cpu(data->intr_ep->wMaxPacketSize);
 | 
			
		||||
+	else
 | 
			
		||||
+		/* Use maximum HCI Event size so the USB stack handles
 | 
			
		||||
+		 * ZPL/short-transfer automatically.
 | 
			
		||||
+		 */
 | 
			
		||||
+		size = HCI_MAX_EVENT_SIZE;
 | 
			
		||||
 
 | 
			
		||||
 	buf = kmalloc(size, mem_flags);
 | 
			
		||||
 	if (!buf) {
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue