Hi Ali,

Sorry for the long response time!  Can you try to apply the attached
patch, recompile your kernel, and see if it fixes your issues?

Thanks,
Sarah Sharp

On Wed, Oct 17, 2012 at 03:51:30PM +0330, A Sh wrote:
> Excuse me Ms.Sharp,
> did you recieve my message.
> 
> I had also a suggestion:
> make xhci module work in three mode:
> 1. without msi/msi-X
> 2. with msi and without msi-x
> 3. with both msi and msi-x
> 
> On Mon, Oct 1, 2012 at 1:48 PM, A Sh <smr.ash1...@gmail.com> wrote:
> 
> > Hello Ms.Sharp.
> > You have requested “ lspci -vvv -n ” output. You can find it in
> > attachments.
> >
> > I think the related part is:
> >
> > 04:00.0
> > *0c03: 1b73:1400* (rev 01) (prog-if 30 [XHCI])
> >     Subsystem: 1d5c:1000
> >
> >     Physical Slot: 3
> >     Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
> > Stepping- SERR- FastB2B- DisINTx+
> >     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
> > <TAbort- <MAbort- >SERR- <PERR- INTx-
> >     Latency: 0, Cache Line Size: 64 bytes
> >     Interrupt: pin A routed to IRQ 51
> >     Region 0: Memory at d4600000 (32-bit, non-prefetchable) [size=64K]
> >     Capabilities: [50] Power Management version 3
> >         Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
> > PME(D0+,D1-,D2-,D3hot+,D3cold-)
> >         Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >     Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
> >         Address: 00000000feeff00c  Data: 41b1
> >     Capabilities: [80] Express (v1) Endpoint, MSI 00
> >         DevCap:    MaxPayload 128 bytes, PhantFunc 0, Latency L0s <2us, L1
> > <32us
> >             ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> >         DevCtl:    Report errors: Correctable- Non-Fatal- Fatal-
> > Unsupported-
> >             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >             MaxPayload 128 bytes, MaxReadReq 512 bytes
> >         DevSta:    CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr-
> > TransPend-
> >         LnkCap:    Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency
> > L0 unlimited, L1 unlimited
> >             ClockPM- Surprise- LLActRep- BwNot-
> >         LnkCtl:    ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
> >             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >         LnkSta:    Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+
> > DLActive- BWMgmt- ABWMgmt-
> >     Kernel driver in use: xhci_hcd
> >
> >
> > Your directions about compiling a custom kernel is appreciated!
> > By the way I have sent a message like this from another address.
> >
> > Thanks for your help.
> >
> >
> > On Mon, Sep 17, 2012 at 5:06 PM, A Sh <smr.ash1...@gmail.com> wrote:
> >
> >> My laptop isn't with me now and it takes some time (about 2 or 3 weeks!
> >> probably) for me to send you what you have requested.
> >> And I don't have much experience on compiling a custom kernel so your
> >> directions are appreciated.
> >>
> >> Thanks for your help.
> >> Ali
> >>
> >>
> >>
> >> On Sat, Sep 15, 2012 at 12:53 AM, Sarah Sharp <
> >> sarah.a.sh...@linux.intel.com> wrote:
> >>
> >>> On Thu, Aug 30, 2012 at 11:51:54AM +0430, A Sh wrote:
> >>> >   Hello Ms.Sharp
> >>>
> >>> Greetings!  Do you go by "A"?  Your mail signature isn't very clear. :)
> >>>
> >>> > When I plug a usb Flash Drive or DVB-T to my USB 3.0 Port I get
> >>> following
> >>> > and nothing happens(USB Device isn't Recognized):
> >>> >
> >>> >       do_IRQ: 3.176 No irq handler for vector (irq -1)
> >>> >
> >>> > I'm using linux kernel 3.2.0-29-generic from official ubuntu precise
> >>> > (12.04) repository.
> >>> >
> >>> > The related parts of lspci -vvv, lsusb -vvv and dmesg outputs are(you
> >>> can
> >>> > find the complete outputs in attachments):
> >>> >
> >>> > *------> lspci -vvv (related part):*
> >>> >
> >>> >
> >>> >  04:00.0 USB controller: Fresco Logic Device 1400 (rev 01) (prog-if 30
> >>> > [XHCI])
> >>>
> >>> Can you please send me the output of `sudo lspci -vvv -n`?  I need the
> >>> PCI vendor and device ID, which this version of lspci doesn't provide.
> >>>
> >>> I'm wondering if you have a Fresco Logic host that doesn't support MSI,
> >>> even though it claims to (see the MSI field in the Capabilities lines):
> >>>
> >>> > 04:00.0 USB controller: Fresco Logic Device 1400 (rev 01) (prog-if 30
> >>> [XHCI])
> >>> >       Subsystem: Device 1d5c:1000
> >>> >       Physical Slot: 3
> >>> >       Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
> >>> ParErr- Stepping- SERR- FastB2B- DisINTx+
> >>> >       Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
> >>> <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>> >       Latency: 0, Cache Line Size: 64 bytes
> >>> >       Interrupt: pin A routed to IRQ 51
> >>> >       Region 0: Memory at d4600000 (32-bit, non-prefetchable)
> >>> [size=64K]
> >>> >       Capabilities: [50] Power Management version 3
> >>> >               Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
> >>> PME(D0+,D1-,D2-,D3hot+,D3cold-)
> >>> >               Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >>> >       Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
> >>> >               Address: 00000000feeff00c  Data: 41b1
> >>> >       Capabilities: [80] Express (v1) Endpoint, MSI 00
> >>> >               DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s
> >>> <2us, L1 <32us
> >>> >                       ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> >>> >               DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> >>> Unsupported-
> >>> >                       RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >>> >                       MaxPayload 128 bytes, MaxReadReq 512 bytes
> >>> >               DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr-
> >>> TransPend-
> >>> >               LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1,
> >>> Latency L0 unlimited, L1 unlimited
> >>> >                       ClockPM- Surprise- LLActRep- BwNot-
> >>> >               LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain-
> >>> CommClk+
> >>> >                       ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >>> >               LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+
> >>> DLActive- BWMgmt- ABWMgmt-
> >>> >       Kernel driver in use: xhci_hcd
> >>>
> >>> I think the dmesg shows that MSI is enabled for the host controller:
> >>>
> >>> > [    1.988493] xhci_hcd 0000:04:00.0: PCI INT A -> GSI 19 (level, low)
> >>> -> IRQ 19
> >>> > [    1.988529] xhci_hcd 0000:04:00.0: setting latency timer to 64
> >>> > [    1.988537] xhci_hcd 0000:04:00.0: xHCI Host Controller
> >>> > [    1.988604] xhci_hcd 0000:04:00.0: new USB bus registered, assigned
> >>> bus number 3
> >>> > [    2.109283] xhci_hcd 0000:04:00.0: irq 19, io mem 0xd4600000
> >>> > [    2.109363] xhci_hcd 0000:04:00.0: irq 51 for MSI/MSI-X
> >>>
> >>> But you're getting an unhandled IRQ, so this Fresco Logic may need a
> >>> quirk like the previous generation to avoid MSI.  I'll need the vendor
> >>> and device ID from the lspci to generate a new patch for you to test.
> >>>
> >>> Do you know how to compile a custom kernel?  If not, I'll send you some
> >>> directions.
> >>>
> >>> Sarah Sharp
> >>>
> >>
> >>
> >
>From 0998357b1e2dc047f8051964db50ecdc01979866 Mon Sep 17 00:00:00 2001
From: Sarah Sharp <sarah.a.sh...@linux.intel.com>
Date: Wed, 17 Oct 2012 13:44:06 -0700
Subject: [PATCH] xhci: Extend Fresco Logic MSI quirk.

Ali reports that plugging a device into the Fresco Logic xHCI host with
PCI device ID 1400 produces an IRQ error:

 do_IRQ: 3.176 No irq handler for vector (irq -1)

Other Fresco Logic hosts don't support MSI, even though their PCI config
space claims they do.  Try disabling MSI for this chipset revision to
see if this quirk helps with Ali's issue.  Also enable the short
transfer quirk, since it's likely this revision also has that quirk, and
it should be harmless to enable.

04:00.0 0c03: 1b73:1400 (rev 01) (prog-if 30 [XHCI])
        Subsystem: 1d5c:1000
        Physical Slot: 3
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 51
        Region 0: Memory at d4600000 (32-bit, non-prefetchable) [size=64K]
        Capabilities: [50] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
                Address: 00000000feeff00c  Data: 41b1
        Capabilities: [80] Express (v1) Endpoint, MSI 00
                DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <2us, L1 <32us
                        ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 unlimited, L1 unlimited
                        ClockPM- Surprise- LLActRep- BwNot-
                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
        Kernel driver in use: xhci_hcd

Signed-off-by: Sarah Sharp <sarah.a.sh...@linux.intel.com>
Reported-by: A Sh <smr.ash1...@gmail.com>
---
 drivers/usb/host/xhci-pci.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index 8345d7c..dcb72f7 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -29,6 +29,7 @@
 /* Device for a quirk */
 #define PCI_VENDOR_ID_FRESCO_LOGIC	0x1b73
 #define PCI_DEVICE_ID_FRESCO_LOGIC_PDK	0x1000
+#define PCI_DEVICE_ID_FRESCO_LOGIC_FL1400	0x1400
 
 #define PCI_VENDOR_ID_ETRON		0x1b6f
 #define PCI_DEVICE_ID_ASROCK_P67	0x7023
@@ -58,8 +59,10 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
 
 	/* Look for vendor-specific quirks */
 	if (pdev->vendor == PCI_VENDOR_ID_FRESCO_LOGIC &&
-			pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_PDK) {
-		if (pdev->revision == 0x0) {
+			(pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_PDK ||
+			 pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_FL1400)) {
+		if (pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_PDK &&
+				pdev->revision == 0x0) {
 			xhci->quirks |= XHCI_RESET_EP_QUIRK;
 			xhci_dbg(xhci, "QUIRK: Fresco Logic xHC needs configure"
 					" endpoint cmd after reset endpoint\n");
-- 
1.7.9

Reply via email to