1. 09 Sep, 2024 2 commits
  2. 08 Sep, 2024 2 commits
    • Takashi Sakamoto's avatar
      firewire: core: fulfill documentation of fw_iso_context_flush_completions() · 7b713929
      Takashi Sakamoto authored
      The fw_iso_context_flush_completions() is the counterpart of
      fw_iso_context_schedule_work() to process isochronous context in current
      process context.
      
      This commit fulfills its documentation.
      
      Link: https://lore.kernel.org/r/20240908040549.75304-3-o-takashi@sakamocchi.jpSigned-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      7b713929
    • Takashi Sakamoto's avatar
      firewire: core: expose kernel API to schedule work item to process isochronous context · 446216bd
      Takashi Sakamoto authored
      In packet-per-buffer mode for isochronous context of 1394 OHCI, software
      can schedule hardIRQ to the buffer in which the content of isochronous
      packet is processed. The actual behaviour is different between isochronous
      receive (IR) and transmit (IT) contexts in respect to isochronous cycle in
      which the hardIRQ occurs.
      
      In IR context, the hardIRQ occurs when the buffer is filled actually by
      the content of received packet. If there are any isochronous cycles in
      which the packet transmission is skipped, it is postponed to generate
      the hardIRQ in respect to the isochronous cycle. In IT context, software
      can schedule the content of packet every isochronous cycle including
      skipping, therefore the hardIRQ occurs in the isochronous cycle to which
      the software scheduled.
      
      ALSA firewire stack uses the packet-per-buffer mode for both IR/IT
      contexts. To process time stamp per packet (or per sample in some cases)
      steadily for media clock recovery against unexpected transmission skips,
      it uses an IT context to operate all of isochronous contexts by calls of
      fw_iso_context_flush_completions() in the bottom-half of hardIRQ for the
      IT context.
      
      Although it looks well to handle all of isochronous contexts in a single
      bottom-half context, it relatively takes longer time. In the future code
      integration (not yet), it is possible to apply parallelism method to
      process these context. In the case, it is useful to allow unit drivers to
      schedule work items to process these isochronous contexts.
      
      As a preparation, this commit exposes
      fw_iso_context_schedule_flush_completions() as a kernel API available by
      unit drivers. It is renamed from fw_iso_context_queue_work() since it is
      a counter part of fw_iso_context_flush_completions().
      
      Link: https://lore.kernel.org/r/20240908040549.75304-2-o-takashi@sakamocchi.jpSigned-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      446216bd
  3. 05 Sep, 2024 1 commit
  4. 04 Sep, 2024 5 commits
  5. 03 Sep, 2024 2 commits
  6. 20 Aug, 2024 1 commit
  7. 17 Aug, 2024 1 commit
  8. 14 Aug, 2024 3 commits
  9. 12 Aug, 2024 7 commits
  10. 10 Aug, 2024 1 commit
  11. 05 Aug, 2024 15 commits