Skip to content
Snippets Groups Projects
  1. Sep 23, 2024
  2. Sep 16, 2024
    • Youssef Samir's avatar
      accel/qaic: Add config structs for supported cards · d03e5773
      Youssef Samir authored
      
      As the number of cards supported by the driver grows, their
      configurations will differ. The driver needs to become more dynamic
      to support these configurations. Currently, each card may differ in
      the exposed BARs, the regions they map to, and the DBC count.
      
      Create config structs for each card, and let the driver configure the
      qaic_device struct based on the configurations passed to the driver.
      
      Change-Id: I0a7a60f3b35bf549546240f369c8498cefef9f41
      Signed-off-by: default avatarYoussef Samir <quic_yabdulra@quicinc.com>
      d03e5773
    • Youssef Samir's avatar
      accel/qaic: Update PCI Device ID definitions · 5931e725
      Youssef Samir authored
      
      The PCI_DEVICE_DATA(vend, dev, data) macro expects the dev field to be
      of a specific format. The reason for choosing this macro is that it
      sets the driver_data field of the pci_device_id struct.
      
      Change the Device ID definitions from PCI_DEV_AICxxx
      to PCI_DEVICE_ID_QCOM_AICxxx.
      
      Change-Id: I3da1ff144af6674bfa4f1fa6c5a0ad90712291d7
      Signed-off-by: default avatarYoussef Samir <quic_yabdulra@quicinc.com>
      5931e725
    • Youssef Samir's avatar
      net/qrtr: Update packets cloning when broadcasting · 4bd789ce
      Youssef Samir authored
      
      When broadcasting data to multiple nodes via MHI, using skb_clone()
      causes all nodes to receive the same header data. This can result in
      packets being discarded by endpoints, leading to lost data.
      
      This issue occurs when a socket is closed, and a QRTR_TYPE_DEL_CLIENT
      packet is broadcasted. All nodes receive the same destination node ID,
      causing the node connected to the client to discard the packet and
      remain unaware of the client's deletion.
      
      Replace skb_clone() with pskb_copy(), to create a separate copy of
      the header for each sk_buff.
      
      Change-Id: Ib8d4be352a7b5e0123260fbceda71a3c7a02f28c
      Signed-off-by: default avatarYoussef Samir <quic_yabdulra@quicinc.com>
      4bd789ce
    • Carl Vanderlip's avatar
      backport: Add end comment to NEED_OVERFLOW_CHECKED_OPS · 92582a5b
      Carl Vanderlip authored
      
      Change-Id: Id0498633b2be02093aeb1f1c08e7bfee1ffa4393
      Signed-off-by: default avatarCarl Vanderlip <quic_carlv@quicinc.com>
      92582a5b
  3. Sep 12, 2024
  4. Sep 11, 2024
    • Jeffrey Hugo's avatar
      accel/qaic: Update SSR dump header · fc5cf3f9
      Jeffrey Hugo authored
      
      SSR dumps will be going through the same devcoredump framework as Sahara
      dumps. This means that userspace will need to be able to parse both.
      Update the SSR dump header to match the structure of the Sahara dump
      header so that userspace can parse both, and identify any future
      changes.
      
      Change-Id: I88070c6c7b837e99866da24846e98b958006b95e
      Signed-off-by: default avatarJeffrey Hugo <quic_jhugo@quicinc.com>
      fc5cf3f9
    • Jeffrey Hugo's avatar
      accel/qaic: Remove Sahara from mqc · ff291cd7
      Jeffrey Hugo authored
      
      Sahara is handled by a kernel implementation now. There is no need to
      export the channel to userspace.
      
      Change-Id: Iee71fc15b99af2f656dbbdc20629b87a7c1ddf00
      Signed-off-by: default avatarJeffrey Hugo <quic_jhugo@quicinc.com>
      ff291cd7
    • Jeffrey Hugo's avatar
      accel/qaic: Add crashdump to Sahara · 203a346a
      Jeffrey Hugo authored
      
      The Sahara protocol has a crashdump functionality. In the hello
      exchange, the device can advertise it has a memory dump available for
      the host to collect. Instead of the device making requests of the host,
      the host requests data from the device which can be later analyzed.
      
      Implement this functionality and utilize the devcoredump framework for
      handing the dump over to userspace.
      
      Similar to how firmware loading in Sahara involves multiple files,
      crashdump can consist of multiple files for different parts of the dump.
      Structure these into a single buffer that userspace can parse and
      extract the original files from.
      
      Change-Id: I97870ce77cd1de9b45536555f6c91a638098b58f
      Signed-off-by: default avatarJeffrey Hugo <quic_jhugo@quicinc.com>
      203a346a
    • Jeffrey Hugo's avatar
      accel/qaic: Add Sahara implementation for firmware loading · 2469a5fc
      Jeffrey Hugo authored
      
      The AIC100 secondary bootloader uses the Sahara protocol for two
      purposes - loading the runtime firmware images from the host, and
      offloading crashdumps to the host. The crashdump functionality is only
      invoked when the AIC100 device encounters a crash and dumps are enabled.
      Also the collection of the dump is optional - the host can reject
      collecting the dump.
      
      The Sahara protocol contains many features and modes including firmware
      upload, crashdump download, and client commands. For simplicity,
      implement the parts of the protocol needed for loading firmware to the
      device.
      
      Fundamentally, the Sahara protocol is an embedded file transfer
      protocol. Both sides negotiate a connection through a simple exchange of
      hello messages. After handshaking through a hello message, the device
      either sends a message requesting images, or a message advertising the
      memory dump available for the host. For image transfer, the remote device
      issues a read data request that provides an image (by ID), an offset, and
      a length. The host has an internal mapping of image IDs to filenames. The
      host is expected to access the image and transfer the requested chunk to
      the device. The device can issue additional read requests, or signal that
      it has consumed enough data from this image with an end of image message.
      The host confirms the end of image, and the device can proceed with
      another image by starting over with the hello exchange again.
      
      Some images may be optional, and only provided as part of a provisioning
      flow. The host is not aware of this information, and thus should report
      an error to the device when an image is not available. The device will
      evaluate if the image is required or not, and take the appropriate
      action.
      
      Change-Id: Ieac74d29dd52a52e1765a7babcfad304de098dd6
      Signed-off-by: default avatarJeffrey Hugo <quic_jhugo@quicinc.com>
      Reviewed-by: default avatarCarl Vanderlip <quic_carlv@quicinc.com>
      Reviewed-by: default avatarPranjal Ramajor Asha Kanojiya <quic_pkanojiy@quicinc.com>
      Reviewed-by: default avatarBjorn Andersson <andersson@kernel.org>
      Reviewed-by: default avatarJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20240322034917.3522388-1-quic_jhugo@quicinc.com
      2469a5fc
    • Jeffrey Hugo's avatar
      backport: Add size_mul() · 01a59221
      Jeffrey Hugo authored
      
      Upcoming Sahara code will require a size_mul() backport. Add it.
      
      Change-Id: I529f6d22b2158d57b1686e2326fbf6933188c1e0
      Signed-off-by: default avatarJeffrey Hugo <quic_jhugo@quicinc.com>
      01a59221
  5. Aug 09, 2024
    • Youssef Samir's avatar
      accel/qaic: Set number of DBCs allocated per device · 74ccdb74
      Youssef Samir authored
      
      The driver currently supports 4 devices, and they can differ in
      configurations, including the number of DBCs. Currently the DBC count
      is set to 16 regardless of the device.
      
      Add definitions for the number of DBCs per device. Use them as private
      data to set the number of DBCs to be allocated for each device.
      
      Change-Id: I89a470a38779cbc9e0d2b9db28851917a1d13122
      Signed-off-by: default avatarYoussef Samir <quic_yabdulra@quicinc.com>
      74ccdb74
  6. Jul 29, 2024
  7. Jul 25, 2024
  8. Jul 19, 2024
  9. Jun 19, 2024
    • Jeffrey Hugo's avatar
      accel/qaic: Add AIC080 support · 81f60eb4
      Jeffrey Hugo authored
      
      Add basic support for the new AIC080 product. The PCIe Device ID is
      0xa080. AIC080 is a lower cost, lower performance SKU variant of AIC100.
      From the qaic perspective, it is the same as AIC100.
      
      Change-Id: Ic0726ca3d5f6f23556855f1b3a8b729943998e09
      Signed-off-by: default avatarJeffrey Hugo <quic_jhugo@quicinc.com>
      81f60eb4
  10. Jun 13, 2024
    • Jeffrey Hugo's avatar
      accel/qaic: Update SSR handling · dcdb10b9
      Jeffrey Hugo authored
      
      The subsystem restart (SSR) handling is changing in firmware.
      
      Currently QSM will essentially deactivate the workload, and reactivate
      it. This makes the SSR event mostly transparent from the user
      perspective.
      
      However, this doesn't work when the error that triggers SSR does not
      allow for a reactivate, or the network retains some kind of state from
      input to input. For the former, SSR cannot complete. For the latter, the
      issue can be silent but the end user will not get the correct output.
      
      Instead, SSR behavior in the firmware will involve a deactivate, but not
      a reactivate. The end user will need to be aware of SSR, and decide the
      course of action.
      
      For the KMD, this means we can release the DBC at the start of SSR and
      no longer need to hold it in "suspend" for the user.
      
      Change-Id: I9d84d8a05c82af9ee2711f64cc929f0276313849
      Signed-off-by: default avatarJeffrey Hugo <quic_jhugo@quicinc.com>
      dcdb10b9
  11. Jun 12, 2024
  12. Jun 03, 2024
    • Carl Vanderlip's avatar
      backport: Fix class_create call in accel_helpers · 16ee69ad
      Carl Vanderlip authored
      
      Backport patch to deal with class_create was changed to match on calls
      with only one argument. It was assumed that since the new class_create
      occurred post drm_accel, that accel_helpers wouldn't need to swap to
      the new version. However, if DRM_ACCEL isn't configured, the
      backported accel framework still needs to be used.
      
      In addition to changing the call to the single argument, the SmPL
      patch currently will only match against identifiers, and not the
      string as used currently. Create a definition that maps to the "accel"
      name so that the SmPL patch will apply here too.
      
      Change-Id: I35e60d9ebd1f2b87a53374f9a1e3c40fd4efc14b
      Signed-off-by: default avatarCarl Vanderlip <quic_carlv@quicinc.com>
      16ee69ad
  13. Apr 30, 2024
  14. Apr 26, 2024
  15. Apr 25, 2024
  16. Mar 28, 2024
  17. Mar 07, 2024
  18. Mar 01, 2024
  19. Feb 28, 2024
  20. Feb 26, 2024
  21. Feb 22, 2024
    • Jeffrey Hugo's avatar
      accel/qaic: Refactor debugfs init · e7150e87
      Jeffrey Hugo authored
      
      With v6.7, the drm_driver debugfs_init callback is no longer called.
      Drivers are expected to initialize debugfs on their own, using the
      debugfs_root provided in the drm_device. Also drm_debugfs_create_files()
      is deprecated.
      
      The drm_info structures cannot be used with sub-directories and
      drm_debugfs_add_files(), so the utility of having them is lost. By
      removing them, we clean up some #DEFINEs and dynamic memory usage which
      seems to make the code cleaner.
      
      Change-Id: I0e7e8d4e467cbdc0dc90f4da2c0abd838f22f5c4
      Signed-off-by: default avatarJeffrey Hugo <quic_jhugo@quicinc.com>
      e7150e87
  22. Feb 15, 2024
  23. Feb 14, 2024
  24. Feb 10, 2024
Loading