Skip to content
Snippets Groups Projects
  1. Sep 23, 2024
  2. Sep 08, 2024
    • 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.jp
      
      
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      446216bd
  3. Sep 05, 2024
  4. Sep 01, 2024
  5. Aug 27, 2024
  6. Aug 26, 2024
  7. Aug 24, 2024
  8. Aug 23, 2024
  9. Aug 22, 2024
  10. Aug 16, 2024
  11. Aug 02, 2024
  12. Jul 16, 2024
  13. Jul 12, 2024
  14. Jul 10, 2024
  15. Jul 09, 2024
  16. Jul 08, 2024
  17. Jul 03, 2024
  18. Jun 25, 2024
  19. Jun 24, 2024
  20. Jun 22, 2024
  21. Jun 21, 2024
  22. Jun 11, 2024
  23. May 27, 2024
  24. May 10, 2024
  25. May 06, 2024
  26. May 03, 2024
  27. May 02, 2024
  28. Apr 29, 2024
  29. Apr 23, 2024
  30. Apr 18, 2024
  31. Apr 12, 2024
  32. Apr 09, 2024
  33. Apr 08, 2024
    • Krzysztof Kozlowski's avatar
      virtio: store owner from modules with register_virtio_driver() · ffe6176b
      Krzysztof Kozlowski authored
      
      Modules registering driver with register_virtio_driver() might forget to
      set .owner field.  i2c-virtio.c for example has it missing.  The field
      is used by some other kernel parts for reference counting
      (try_module_get()), so it is expected that drivers will set it.
      
      Solve the problem by moving this task away from the drivers to the core
      virtio code, just like we did for platform_driver in
      commit 9447057e ("platform_device: use a macro instead of
      platform_driver_register").
      
      Fixes: 3cfc8838 ("i2c: virtio: add a virtio i2c frontend driver")
      Cc: "Jie Deng" <jie.deng@intel.com>
      Signed-off-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
      Message-Id: <20240331-module-owner-virtio-v2-1-98f04bfaf46a@linaro.org>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      ffe6176b
  34. Apr 03, 2024
  35. Apr 02, 2024
    • Jerry Snitselaar's avatar
      crypto: iaa - Fix some errors in IAA documentation · 616ce45c
      Jerry Snitselaar authored
      
      This cleans up the following issues I ran into when trying to use the
      scripts and commands in the iaa-crypto.rst document.
      
      - Fix incorrect arguments being passed to accel-config
        config-wq.
          - Replace --device_name with --driver-name.
          - Replace --driver_name with --driver-name.
          - Replace --size with --wq-size.
          - Add missing --priority argument.
      - Add missing accel-config config-engine command after the
        config-wq commands.
      - Fix wq name passed to accel-config config-wq.
      - Add rmmod/modprobe of iaa_crypto to script that disables,
        then enables all devices and workqueues to avoid enable-wq
        failing with -EEXIST when trying to register to compression
        algorithm.
      - Fix device name in cases where iaa was used instead of iax.
      
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: linux-crypto@vger.kernel.org
      Cc: linux-doc@vger.kernel.org
      Signed-off-by: default avatarJerry Snitselaar <jsnitsel@redhat.com>
      Reviewed-by: default avatarTom Zanussi <tom.zanussi@linux.intel.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      616ce45c
    • Tom Zanussi's avatar
      crypto: iaa - Add global_stats file and remove individual stat files · c21fb22d
      Tom Zanussi authored
      
      Currently, the wq_stats output also includes the global stats, while
      the individual global stats are also available as separate debugfs
      files.  Since these are all read-only, there's really no reason to
      have them as separate files, especially since we already display them
      as global stats in the wq_stats.  It makes more sense to just add a
      separate global_stats file to display those, and remove them from the
      wq_stats, as well as removing the individual stats files.
      
      Signed-off-by: default avatarTom Zanussi <tom.zanussi@linux.intel.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      c21fb22d
  36. Mar 31, 2024
    • Marco Pagani's avatar
      fpga: bridge: add owner module and take its refcount · 1da11f82
      Marco Pagani authored
      
      The current implementation of the fpga bridge assumes that the low-level
      module registers a driver for the parent device and uses its owner pointer
      to take the module's refcount. This approach is problematic since it can
      lead to a null pointer dereference while attempting to get the bridge if
      the parent device does not have a driver.
      
      To address this problem, add a module owner pointer to the fpga_bridge
      struct and use it to take the module's refcount. Modify the function for
      registering a bridge to take an additional owner module parameter and
      rename it to avoid conflicts. Use the old function name for a helper macro
      that automatically sets the module that registers the bridge as the owner.
      This ensures compatibility with existing low-level control modules and
      reduces the chances of registering a bridge without setting the owner.
      
      Also, update the documentation to keep it consistent with the new interface
      for registering an fpga bridge.
      
      Other changes: opportunistically move put_device() from __fpga_bridge_get()
      to fpga_bridge_get() and of_fpga_bridge_get() to improve code clarity since
      the bridge device is taken in these functions.
      
      Fixes: 21aeda95 ("fpga: add fpga bridge framework")
      Suggested-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Suggested-by: default avatarXu Yilun <yilun.xu@intel.com>
      Reviewed-by: default avatarRuss Weight <russ.weight@linux.dev>
      Signed-off-by: default avatarMarco Pagani <marpagan@redhat.com>
      Acked-by: default avatarXu Yilun <yilun.xu@intel.com>
      Link: https://lore.kernel.org/r/20240322171839.233864-1-marpagan@redhat.com
      
      
      Signed-off-by: default avatarXu Yilun <yilun.xu@linux.intel.com>
      1da11f82
Loading