Re: PCI Issues with ExpressCard/54 Audio Device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Mar 2, 2015 at 5:45 PM, Alnie <memobook80@xxxxxxxxxxx> wrote:
> On 02/26/2015 10:32 PM, Alnie wrote:
>>
>> On 02/26/2015 04:34 PM, Bjorn Helgaas wrote:
>>
>>>
>>> So it looks like the Unsupported Request error is unrelated to the
>>> problem
>>> you're seeing.  Probably left over from something the BIOS did when it
>>> enumerated devices.
>>>
>>> You could look at "lspci -vv" again after clearing the errors and loading
>>> the driver.  But I think it will be the same as it was after you manually
>>> cleared the errors.
>>
>>
>> (after clearing errors) http://pastebin.com/UxdgDyp1
>>
>>>
>>> Oh, one more idea: *before* clearing the errors, can you collect
>>> "lspci -xxxxs05:00.0" output?  That will give us more AER log registers,
>>> and it's possible there's a clue there.  It's conceivable that we have
>>> an MPS issue that causes the Unsupported Request error.
>>
>>
>> (before clearing errors w/ card in @ boot) http://pastebin.com/wTeNjHHT
>> (before clearing errors w/ card out @ boot) http://pastebin.com/4Q82KNNc
>>
>>
>>>
>>> Just to be exhaustive, can you also stash the "lspci -vvv" output for the
>>> entire system somewhere (again, before clearing the error).
>>>
>> http://pastebin.com/K4iPhGcq
>>
>> not sure if this is relevant but for debugging sake here is the output
>> of the card when left out during boot (no UnsupReq error)...
>>
>> 05:00.0 PCI bridge: Creative Labs [SB X-Fi Xtreme Audio] CA0110-IBG PCI
>> to PCIe Bridge (prog-if 00 [Normal decode])
>>      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-
>>      Bus: primary=05, secondary=06, subordinate=06, sec-latency=0
>>      I/O behind bridge: 00002000-00002fff
>>      Memory behind bridge: f8000000-f80fffff
>>      Prefetchable memory behind bridge: 00000000f4000000-00000000f40fffff
>>      Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort-
>> <TAbort- <MAbort+ <SERR- <PERR-
>>      BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
>>          PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>>      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-
>>          Bridge: PM- B3+
>>      Capabilities: [60] MSI: Enable- Count=1/16 Maskable- 64bit+
>>          Address: 0000000000000000  Data: 0000
>>      Capabilities: [80] Subsystem: Creative Labs Device 0040
>>      Capabilities: [90] Express (v1) PCI-Express to PCI/PCI-X Bridge,
>> MSI 00
>>          DevCap:    MaxPayload 512 bytes, PhantFunc 0
>>              ExtTag- AttnBtn- AttnInd- PwrInd- RBE-
>>          DevCtl:    Report errors: Correctable- Non-Fatal- Fatal-
>> Unsupported-
>>              RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+ BrConfRtry-
>>              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, Exit
>> Latency L0s <512ns, L1 <16us
>>              ClockPM- Surprise- LLActRep- BwNot-
>>          LnkCtl:    ASPM Disabled; RCB 64 bytes Disabled- CommClk+
>>              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>>          LnkSta:    Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+
>> DLActive- BWMgmt- ABWMgmt-
>>      Capabilities: [100 v1] Advanced Error Reporting
>>          UESta:    DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt-
>> RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
>>          UEMsk:    DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt-
>> RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
>>          UESvrt:    DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt-
>> RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
>>          CESta:    RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
>>          CEMsk:    RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
>>          AERCap:    First Error Pointer: 00, GenCap+ CGenEn- ChkCap+
>> ChkEn-
>>
>>
>>>>> The device is at [mem 0xf4300000-0xf4303fff], so anything in that
>>>>> region
>>>>> should respond.  Why don't you try this, which should dump the whole
>>>>> region:
>>>>>
>>>>>    ./mem -N -m -s 0xf4300000 -l 0x4000
>>>>>
>>>>
>>>> http://pastebin.com/eHEsZNmU
>>>
>>>
>>> The data there looks fine, at least from a PCI perspective:
>>>
>>>    F4300000:00 33 00 01 3C 00 1D 00 01 00 00 00 00 00 00 00
>>>    F4300010:00 00 00 00 00 00 00 00 3C 00 1D 00 00 00 00 00
>>>    F4300020:00 00 00 C0 00 00 00 00 00 00 00 00 00 00 00 00
>>>    F4300030:0F FA 24 A8 00 00 00 00 00 00 00 00 00 00 00 00
>>>    ...
>>>
>>> That means the device itself seems happy and is responding to read
>>> requests.
>>>
>>> The only thing left I can think of to do is to instrument the driver and
>>> see where it gets data that it doesn't expect.  So I'm going to punt this
>>> back to you, Takashi :)  Don't hesitate to send it back to me if you find
>>> something that looks like a PCI problem, but I don't see one yet.
>>>
>>> Bjorn
>
> Today I booted up into Win 7 and the card wasn't recognized. This is the
> first time I've noticed this. After re-inserting it, everything was fine,
> but I thought to take note. Maybe some of the issues coming up are unique to
> my hardware. Any new ideas? Is there hope for this? Should this conversation
> be moved elsewhere?

After you re-inserted the card, does it work after cold-booting Win 7?
 If so, maybe it's an intermittent problem with the slot connector.

If you have to remove and re-insert the card *every* time you boot Win
7, maybe there's a problem on the card, e.g., it doesn't come out of
reset fast enough.

I looked again at the Unsupported Request error that was logged, and I
really don't think it's related.  The header from the offending
transaction was logged, and it looked like a Config Read request.
It's normal for these reads to fail during enumeration.  From the PCIe
spec (r3.0, sec 2.3.2):

    Some system configuration software depends on reading a data value
    of all 1’s when a Configuration Read Request is terminated as an
    Unsupported Request, particularly when probing to determine the
    existence of a device in the system. A Root Complex intended for
    use with software that depends on a read-data value of all 1’s must
    synthesize this value when UR Completion Status is returned for
    a Configuration Read Request.

It is a bit strange that this error is only logged when the card is
present.  I suspect the error is always logged during enumeration, but
the BIOS may smart enough to clear it from the built-in bridges, but
not smart enough to clear it on the bridge that's on the ExpressCard.

In any event, I still don't see a PCI issue here.  I intended to open
a bugzilla and attach the information you've collected in case
somebody else can make sense out of it.  But I haven't had time yet.

Bjorn
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux