Hi Stefan, Wishing you a happy new year. We are in the last week for release of v5.16 kernel, and soon merge window for v5.17 kernel will be opened if thing goes well. I wish any action for the review process to merge these patches into upstream. Thanks Takashi Sakamoto On Tue, Dec 21, 2021 at 07:54:42PM +0900, Takashi Sakamoto wrote: > Hi Stefan, > > Thank you for your long effort to maintain Linux FireWire subsystem. I'd > like to use the timestamp function for my integration in ALSA firewire > stack planned at next version of Linux kernel. I'm glad if getting to > your help for upstreaming. > > On Thu, Dec 02, 2021 at 08:34:54PM +0900, Takashi Sakamoto wrote: > > Hi, > > > > In 1394 OHCI specification, each descriptor of IR/IT/AR/AT DMA context > > has timeStamp field. The value of timeStamp field express the time in > > which the controller accept packet. The resolution of value is isochronous > > cycle count (8,000 Hz) with second up to 7. > > > > I have a plan to use the value of timeStamp field for ALSA firewire stack > > so that userspace ALSA PCM/Rawmidi applications can get converted timestamp > > (ktime) for PCM frame/MIDI message. The timestamp can ideally express > > finer granularity than the time to invoke IRQ handler (and co). > > > > Current implementation of Linux FireWire subsystem delivers the value of > > timeStamp field to unit driver for IR/IT/AT DMA context, but not for AR > > DMA context. Additionally, the way to refer to Isochronous Cycle Timer > > Register in MMIO region of 1394 OHCI controller is transaction to local > > node. It includes overhead of transaction and it's preferable to add > > less-overhead way available in any type of IRQ context. > > > > This patchset adds two functions exposed in kernel space: > > > > * fw_card_read_cycle_time() > > * allow unit driver to access to CYCLE_TIME register in MMIO region > > without initiate transaction > > * fw_request_get_timestamp() > > * allow unit driver to get timestamp of request packet inner request > > handler > > > > I note that Hector Martin found kernel null pointer dereference during > > process to remove PCI card and has posted a patch: > > > > * https://lore.kernel.org/lkml/20211027113130.8802-1-marcan@xxxxxxxxx/ > > > > His patch is included in the series with my comment for relevant commit > > 20802224298c ("firewire: core: add forgotten dummy driver methods, remove > > unused ones"). The patch is required since unit driver can refer to dummy > > driver between removal callback of PCI subsystem and removal callback of > > FireWire subsystem. > > > > Hector Martin (1): > > firewire: Add dummy read_csr/write_csr functions > > > > Takashi Sakamoto (2): > > firewire: add kernel API to access CYCLE_TIME register > > firewire: add kernel API to access packet structure in request > > structure for AR context > > > > drivers/firewire/core-card.c | 39 +++++++++++++++++++++++++++++ > > drivers/firewire/core-cdev.c | 6 +++-- > > drivers/firewire/core-transaction.c | 18 +++++++++++++ > > include/linux/firewire.h | 3 +++ > > 4 files changed, 64 insertions(+), 2 deletions(-) > > > > -- > > 2.32.0 > > > Sincerely yours > > Takashi Sakamoto