firewire: add kernel API to access CYCLE_TIME register
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Tue, 5 Apr 2022 07:22:20 +0000 (16:22 +0900)
committerTakashi Iwai <tiwai@suse.de>
Tue, 5 Apr 2022 16:23:04 +0000 (18:23 +0200)
commitbaa914cd81f51f4e4f3bae5bb59764b32ad8c353
tree1280e121f94f0b86c18dc0062ab0cbdf77c9add4
parente70b6693cec229717dda683699ae1fd9ed160e3d
firewire: add kernel API to access CYCLE_TIME register

1394 OHCI specification defined Isochronous Cycle Timer Register to get
value of CYCLE_TIME register defined by IEEE 1394 for CSR architecture
defined by ISO/IEC 13213. Unit driver can calculate packet time by
compute with the value of CYCLE_TIME and timeStamp field in descriptor
of each isochronous and asynchronous context. The resolution of CYCLE_TIME
is 49.576 MHz, while the one of timeStamp is 8,000 Hz.

Current implementation of Linux FireWire subsystem allows the driver to
get the value of CYCLE_TIMER CSR register by transaction service. The
transaction service has overhead in regard of access to MMIO register.

This commit adds kernel API for unit driver to access the register
directly.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Link: https://lore.kernel.org/r/20220405072221.226217-3-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Iwai <tiwai@suse.de>
drivers/firewire/core-card.c
drivers/firewire/core-cdev.c
include/linux/firewire.h