Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 31 Aug 2013 09:11:46 +0200
From:      Hans Petter Selasky <hps@bitfrost.no>
To:        "Lundberg, Johannes" <johannes@brilliantservice.co.jp>
Cc:        Alfred Perlstein <bright@mu.org>, =?ISO-8859-1?Q?S=F8ren_Schmidt?= <sos@deepcore.dk>, FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: 2013 MacBook Air Project
Message-ID:  <52219732.7070209@bitfrost.no>
In-Reply-To: <CAASDrV=BKgU4kUA3wVFvWrXt=wttU5FCOHYrVKvpdgxxhnW7OQ@mail.gmail.com>
References:  <CAASDrVkA-F-gmZW0CGxkRkSaBEDix4ni_jkJVGt41qtzTRx6uw@mail.gmail.com> <522110CB.5050501@mu.org> <CAASDrV=BKgU4kUA3wVFvWrXt=wttU5FCOHYrVKvpdgxxhnW7OQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------070702070501050503080309
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

On 08/31/13 01:42, Lundberg, Johannes wrote:
> +
> +	/* MacBookAir6,1 */
> +	{ USB_VPI(0x05ac, 0x828f, 0) },
> +
>   };
>

Hi,

I've updated the FreeBSD USB bluetooth driver with your ID, and a few 
more from Linux.

I've attached an XHCI patch you can try.

--HPS

--------------070702070501050503080309
Content-Type: text/x-patch;
 name="xhci_irq.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="xhci_irq.diff"

=== ./xhci.c
==================================================================
--- ./xhci.c	(revision 255094)
+++ ./xhci.c	(local)
@@ -385,10 +385,6 @@
 	sc->sc_exit_lat_max = XHCI_HCS3_U1_DEL(temp) +
 	    XHCI_HCS3_U2_DEL(temp) + 250 /* us */;
 
-	temp = XREAD4(sc, oper, XHCI_USBSTS);
-
-	/* clear interrupts */
-	XWRITE4(sc, oper, XHCI_USBSTS, temp);
 	/* disable all device notifications */
 	XWRITE4(sc, oper, XHCI_DNCTRL, 0);
 
@@ -1479,7 +1475,9 @@
 	USB_BUS_LOCK(&sc->sc_bus);
 
 	status = XREAD4(sc, oper, XHCI_USBSTS);
-	if (status == 0)
+	iman = XREAD4(sc, runt, XHCI_IMAN(0));
+
+	if (status == 0 && (iman & XHCI_IMAN_INTR_PEND) == 0)
 		goto done;
 
 	/* acknowledge interrupts */
@@ -1488,11 +1486,8 @@
 
 	DPRINTFN(16, "real interrupt (status=0x%08x)\n", status);
  
-	if (status & XHCI_STS_EINT) {
+	if (iman & XHCI_IMAN_INTR_PEND) {
 
-		/* acknowledge pending event */
-		iman = XREAD4(sc, runt, XHCI_IMAN(0));
-
 		/* reset interrupt */
 		XWRITE4(sc, runt, XHCI_IMAN(0), iman);
  

--------------070702070501050503080309--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?52219732.7070209>