All of lore.kernel.org
 help / color / mirror / Atom feed
* firewire-ohci fails to initialize Texas Instruments XIO2213A/B/XIO2221 based controller on realtime kernels [5.4.91-rt50, 5.10.8-rt24]
@ 2021-01-23 11:59 David Runge
  2021-01-28  6:28 ` Ahmed S. Darwish
  0 siblings, 1 reply; 24+ messages in thread
From: David Runge @ 2021-01-23 11:59 UTC (permalink / raw)
  To: linux-rt-users, linux1394-devel

[-- Attachment #1: Type: text/plain, Size: 5563 bytes --]

Hi!

I package linux-rt and linux-rt-lts for Arch Linux.
Due to time constraints over the past months I did not have the time to
test all of my own hardware setups with the recent realtime kernels.

Unfortunately firewire-ohci is unable to initialize my firewire
controller [1] (a PCIe card [2]) both on 5.4.91-rt50 and on 5.10.8-rt24: No
device nodes (i.e. /dev/fw0) are created and therefore no connected devices can
be initialized either.

The controller is initialized properly on our other stock kernels on
Arch Linux though (e.g. linux/ linux-hardened/ linux-lts) and I usually keep
the config files for linux-rt[3] and linux-rt-lts[4] as close as possible to
that of our respective core linux packages linux[5] and linux-lts[6].

Looking at the kernel logs, this is what the initialization usually looks like
on our stock kernels (with `firewire_ohci debug=8` and duplicate lines
truncated for brevity):

```
firewire_ohci 0000:05:00.0: enabling device (0000 -> 0002)
firewire_ohci 0000:05:00.0: IRQ 00020010 AR_req busReset
firewire_ohci 0000:05:00.0: added OHCI v1.10 device as card 0, 8 IR + 8 IT contexts, quirks 0x2
firewire_ohci 0000:05:00.0: IRQ 00030000 selfID busReset
firewire_ohci 0000:05:00.0: IRQ 00020000 busReset
[..]
firewire_ohci 0000:05:00.0: IRQ 00020000 busReset
firewire_core 0000:05:00.0: created device fw0: GUID 7856341278563412, S800
firewire_core 0000:05:00.0: phy config: new root=ffc1, gap_count=5
firewire_ohci 0000:05:00.0: IRQ 00020010 AR_req busReset
firewire_ohci 0000:05:00.0: IRQ 00030000 selfID busReset
firewire_ohci 0000:05:00.0: IRQ 00020000 busReset
[..]
firewire_ohci 0000:05:00.0: IRQ 00020000 busReset
firewire_core 0000:05:00.0: created device fw1: GUID 000a3500ada83262, S400
```

And this is how the initialization looks like on the realtime kernels (with
`firewire_ohci debug=-1`):

```
firewire_ohci 0000:05:00.0: enabling device (0000 -> 0002)
firewire_ohci 0000:05:00.0: added OHCI v1.10 device as card 0, 8 IR + 8 IT contexts, quirks 0x2
firewire_ohci 0000:05:00.0: IRQ 00020010 AR_req busReset
firewire_ohci 0000:05:00.0: AR evt_bus_reset, generation 1
```

I have a laptop using an ExpressCard34 that provides Firewire800 [7], with the
same Texas Instruments chip which initializes properly (i.e. /dev/fw0 is
created, subsequently connected devices are initialized and are usable) on the
realtime kernels:

```
firewire_ohci 0000:06:00.0: added OHCI v1.10 device as card 0, 8 IR + 8 IT contexts, quirks 0x2
firewire_ohci 0000:06:00.0: IRQ 00030010 selfID AR_req busReset
firewire_ohci 0000:06:00.0: IRQ 00020000 busReset
[..]
firewire_ohci 0000:06:00.0: IRQ 00020000 busReset
firewire_core 0000:06:00.0: created device fw0: GUID 000acd12007000ff, S800
firewire_ohci 0000:06:00.0: IRQ 00030010 selfID AR_req busReset
firewire_ohci 0000:06:00.0: IRQ 00020000 busReset
[..]
firewire_ohci 0000:06:00.0: IRQ 00020000 busReset
firewire_ohci 0000:06:00.0: IRQ 00020010 AR_req busReset
firewire_ohci 0000:06:00.0: IRQ 00020000 busReset
firewire_ohci 0000:06:00.0: IRQ 00830000 selfID cycleInconsistent busReset
firewire_ohci 0000:06:00.0: isochronous cycle inconsistent
firewire_ohci 0000:06:00.0: IRQ 00020000 busReset
[..]
firewire_ohci 0000:06:00.0: IRQ 00020000 busReset
firewire_core 0000:06:00.0: created device fw1: GUID 000a3500ada83262, S800
firewire_core 0000:06:00.0: phy config: new root=ffc0, gap_count=5
firewire_ohci 0000:06:00.0: IRQ 00030010 selfID AR_req busReset
firewire_ohci 0000:06:00.0: IRQ 00020000 busReset
[..]
firewire_ohci 0000:06:00.0: IRQ 00020000 busReset
```

At this point in time I'm uncertain whether this is a general problem
with the kernel module on the realtime kernels or a problem with the
kernel module on the realtime kernels with my PCIe controller specifically.
That it works using the ExpressCard34 based controller on my laptop makes it
extra odd (but I guess the underlying driver is handling this
differently due to the PCI bridge?).

Any pointers to solving this issue would be greatly appreciated, as not being
able to use firewire audio interfaces on a realtime kernel in a workstation
context is bad for pro-audio people on Linux in general (and me in particular
;-) ).

Best,
David

[1]
```
$ lspci -kP -s 05:00.0
00:01.2/00.0/00.0/00.0/00.0 FireWire (IEEE 1394): Texas Instruments XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah Express] (rev 01)
        Subsystem: Device 3412:7856
        Kernel driver in use: firewire_ohci
        Kernel modules: firewire_ohci
```
[2] https://www.delock.de/produkte/1114_FireWire/89153/merkmale.html
[3] https://aur.archlinux.org/cgit/aur.git/tree/config?h=linux-rt&id=3aef702717033d63ddc7c078f6d1fc388ea0e420
[4] https://aur.archlinux.org/cgit/aur.git/tree/config?h=linux-rt-lts&id=6c529a838f028fd0c55b97b6f98a9d35108f6696
[5] https://github.com/archlinux/svntogit-packages/blob/a0a47291449ab346e0dd209a2f23c82264c60d79/trunk/config
[6] https://github.com/archlinux/svntogit-packages/blob/1a0e0ed59007a8c0ddd34f847a92174e2838244f/trunk/config
[7]
```
$ lspci -kP -s 05:00.0
00:1c.3/00.0 PCI bridge: Texas Instruments XIO2213A/B/XIO2221 PCI Express to PCI Bridge [Cheetah Express] (rev 01)
$ lspci -kP -s 06:00.0
00:1c.3/00.0/00.0 FireWire (IEEE 1394): Texas Instruments XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah Express] (rev 01)
        Subsystem: Device 3412:7856
        Kernel driver in use: firewire_ohci
        Kernel modules: firewire_ohci
```

-- 
https://sleepmap.de

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2022-01-05 21:40 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-23 11:59 firewire-ohci fails to initialize Texas Instruments XIO2213A/B/XIO2221 based controller on realtime kernels [5.4.91-rt50, 5.10.8-rt24] David Runge
2021-01-28  6:28 ` Ahmed S. Darwish
2021-01-28 21:41   ` David Runge
2021-01-29 17:04     ` Sebastian Andrzej Siewior
2021-01-30 11:46       ` David Runge
2021-02-01  8:34         ` Sebastian Andrzej Siewior
2021-02-05 11:26           ` Sebastian Andrzej Siewior
2021-02-05 23:22             ` David Runge
2021-02-07  9:58               ` David Runge
2021-02-08  9:19                 ` Sebastian Andrzej Siewior
2021-02-14 19:16                   ` David Runge
2021-02-18  8:38                     ` Sebastian Andrzej Siewior
2021-02-18  9:27                       ` Sebastian Andrzej Siewior
2021-03-08 14:12                         ` Sebastian Andrzej Siewior
2021-03-10 18:15                           ` David Runge
2021-09-07 23:17                             ` David Runge
2021-09-08  2:17                               ` Takashi Sakamoto
2021-09-08 17:30                                 ` David Runge
2021-09-09  0:46                                   ` Takashi Sakamoto
2021-09-12 18:44                                     ` David Runge
2021-09-10 11:55                                 ` Sebastian Andrzej Siewior
2021-09-11  9:46                                   ` Takashi Sakamoto
2021-09-12 18:53                                     ` David Runge
2022-01-05 21:01                                       ` Holger Dehnhardt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.