Skip to content
Snippets Groups Projects
  1. Feb 23, 2025
    • Tomeu Vizoso's avatar
      accel/rocket: Add IOCTLs for synchronizing memory accesses · 3ccf9b11
      Tomeu Vizoso authored
      
      The NPU cores have their own access to the memory bus, and this isn't
      cache coherent with the CPUs.
      
      Add IOCTLs so userspace can mark when the caches need to be flushed, and
      also when a writer job needs to be waited for before the buffer can be
      accessed from the CPU.
      
      Initially based on the same IOCTLs from the Etnaviv driver.
      
      v2:
      - Don't break UABI by reordering the IOCTL IDs (Jeffrey Hugo)
      
      Signed-off-by: Tomeu Vizoso's avatarTomeu Vizoso <tomeu@tomeuvizoso.net>
      3ccf9b11
    • Tomeu Vizoso's avatar
      accel/rocket: Add job submission IOCTL · 29d31565
      Tomeu Vizoso authored
      
      Using the DRM GPU scheduler infrastructure, with a scheduler for each
      core.
      
      Userspace can decide for a series of tasks to be executed sequentially
      in the same core, so SRAM locality can be taken advantage of.
      
      The job submission code was initially based on Panfrost.
      
      v2:
      - Remove hardcoded number of cores
      - Misc. style fixes (Jeffrey Hugo)
      - Repack IOCTL struct (Jeffrey Hugo)
      
      Signed-off-by: Tomeu Vizoso's avatarTomeu Vizoso <tomeu@tomeuvizoso.net>
      29d31565
    • Tomeu Vizoso's avatar
      accel/rocket: Add IOCTL for BO creation · 95318c3d
      Tomeu Vizoso authored
      
      This uses the SHMEM DRM helpers and we map right away to the CPU and NPU
      sides, as all buffers are expected to be accessed from both.
      
      v2:
      - Sync the IOMMUs for the other cores when mapping and unmapping.
      
      Signed-off-by: Tomeu Vizoso's avatarTomeu Vizoso <tomeu@tomeuvizoso.net>
      95318c3d
    • Tomeu Vizoso's avatar
      accel/rocket: Add a new driver for Rockchip's NPU · ad71f73f
      Tomeu Vizoso authored and Tomeu Vizoso's avatar Tomeu Vizoso committed
      
      This initial version supports the NPU as shipped in the RK3588 SoC and
      described in the first part of its TRM, in Chapter 36.
      
      This NPU contains 3 independent cores that the driver can submit jobs
      to.
      
      This commit adds just hardware initialization and power management.
      
      v2:
      - Split cores and IOMMUs as independent devices (Sebastian Reichel)
      - Add some documentation (Jeffrey Hugo)
      - Be more explicit in the Kconfig documentation (Jeffrey Hugo)
      - Remove resets, as these haven't been found useful so far (Zenghui Yu)
      - Repack structs (Jeffrey Hugo)
      - Use DEFINE_DRM_ACCEL_FOPS (Jeffrey Hugo)
      - Use devm_drm_dev_alloc (Jeffrey Hugo)
      - Use probe log helper (Jeffrey Hugo)
      - Introduce UABI header in a later patch (Jeffrey Hugo)
      
      Signed-off-by: Tomeu Vizoso's avatarTomeu Vizoso <tomeu@tomeuvizoso.net>
      ad71f73f
    • Tomeu Vizoso's avatar
      arm64: dts: rockchip: Enable the NPU on quartzpro64 · a764c58b
      Tomeu Vizoso authored
      
      Enable the nodes added in a previous commit to the rk3588s device tree.
      
      v2:
      - Split nodes (Sebastian Reichel)
      - Sort nodes (Sebastian Reichel)
      - Add board regulators (Sebastian Reichel)
      
      Signed-off-by: Tomeu Vizoso's avatarTomeu Vizoso <tomeu@tomeuvizoso.net>
      a764c58b
    • Tomeu Vizoso's avatar
      arm64: dts: rockchip: Add nodes for NPU and its MMU to rk3588s · b3f782ef
      Tomeu Vizoso authored
      
      See Chapter 36 "RKNN" from the RK3588 TRM (Part 1).
      
      This is a derivative of NVIDIA's NVDLA, but with its own front-end
      processor.
      
      The IP is divided in three cores, programmed independently. The first
      core though is special, requiring to be powered on before any of the
      others can be used.
      
      The IOMMU of the first core is also special in that it has two subunits
      (read/write?) that need to be programmed in sync.
      
      v2:
      - Have one device for each NPU core (Sebastian Reichel)
      - Have one device for each IOMMU (Sebastian Reichel)
      - Correctly sort nodes (Diederik de Haas)
      - Add rockchip,iommu compatible to IOMMU nodes (Sebastian Reichel)
      
      Signed-off-by: Tomeu Vizoso's avatarTomeu Vizoso <tomeu@tomeuvizoso.net>
      b3f782ef
    • Tomeu Vizoso's avatar
      dt-bindings: npu: rockchip,rknn: Add bindings · 8334aebb
      Tomeu Vizoso authored
      
      Add the bindings for the Neural Processing Unit IP from Rockchip.
      
      Signed-off-by: Tomeu Vizoso's avatarTomeu Vizoso <tomeu@tomeuvizoso.net>
      8334aebb
  2. Feb 21, 2025
  3. Feb 09, 2025
    • Linus Torvalds's avatar
      Merge tag 'pm-6.14-rc2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 146339dd
      Linus Torvalds authored
      Pull power management fix from Rafael Wysocki:
       "Fix a recently introduced kernel crash due to a NULL pointer
        dereference during system-wide suspend (Rafael Wysocki)"
      
      * tag 'pm-6.14-rc2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PM: sleep: core: Restrict power.set_active propagation
      146339dd
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 954a209f
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
       "ARM:
      
         - Correctly clean the BSS to the PoC before allowing EL2 to access it
           on nVHE/hVHE/protected configurations
      
         - Propagate ownership of debug registers in protected mode after the
           rework that landed in 6.14-rc1
      
         - Stop pretending that we can run the protected mode without a GICv3
           being present on the host
      
         - Fix a use-after-free situation that can occur if a vcpu fails to
           initialise the NV shadow S2 MMU contexts
      
         - Always evaluate the need to arm a background timer for fully
           emulated guest timers
      
         - Fix the emulation of EL1 timers in the absence of FEAT_ECV
      
         - Correctly handle the EL2 virtual timer, specially when HCR_EL2.E2H==0
      
        s390:
      
         - move some of the guest page table (gmap) logic into KVM itself,
           inching towards the final goal of completely removing gmap from the
           non-kvm memory management code.
      
           As an initial set of cleanups, move some code from mm/gmap into kvm
           and start using __kvm_faultin_pfn() to fault-in pages as needed;
           but especially stop abusing page->index and page->lru to aid in the
           pgdesc conversion.
      
        x86:
      
         - Add missing check in the fix to defer starting the huge page
           recovery vhost_task
      
         - SRSO_USER_KERNEL_NO does not need SYNTHESIZED_F"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (31 commits)
        KVM: x86/mmu: Ensure NX huge page recovery thread is alive before waking
        KVM: remove kvm_arch_post_init_vm
        KVM: selftests: Fix spelling mistake "initally" -> "initially"
        kvm: x86: SRSO_USER_KERNEL_NO is not synthesized
        KVM: arm64: timer: Don't adjust the EL2 virtual timer offset
        KVM: arm64: timer: Correctly handle EL1 timer emulation when !FEAT_ECV
        KVM: arm64: timer: Always evaluate the need for a soft timer
        KVM: arm64: Fix nested S2 MMU structures reallocation
        KVM: arm64: Fail protected mode init if no vgic hardware is present
        KVM: arm64: Flush/sync debug state in protected mode
        KVM: s390: selftests: Streamline uc_skey test to issue iske after sske
        KVM: s390: remove the last user of page->index
        KVM: s390: move PGSTE softbits
        KVM: s390: remove useless page->index usage
        KVM: s390: move gmap_shadow_pgt_lookup() into kvm
        KVM: s390: stop using lists to keep track of used dat tables
        KVM: s390: stop using page->index for non-shadow gmaps
        KVM: s390: move some gmap shadowing functions away from mm/gmap.c
        KVM: s390: get rid of gmap_translate()
        KVM: s390: get rid of gmap_fault()
        ...
      954a209f
    • Rafael J. Wysocki's avatar
      PM: sleep: core: Restrict power.set_active propagation · 75859462
      Rafael J. Wysocki authored
      Commit 3775fc53 ("PM: sleep: core: Synchronize runtime PM status of
      parents and children") exposed an issue related to simple_pm_bus_pm_ops
      that uses pm_runtime_force_suspend() and pm_runtime_force_resume() as
      bus type PM callbacks for the noirq phases of system-wide suspend and
      resume.
      
      The problem is that pm_runtime_force_suspend() does not distinguish
      runtime-suspended devices from devices for which runtime PM has never
      been enabled, so if it sees a device with runtime PM status set to
      RPM_ACTIVE, it will assume that runtime PM is enabled for that device
      and so it will attempt to suspend it with the help of its runtime PM
      callbacks which may not be ready for that.  As it turns out, this
      causes simple_pm_bus_runtime_suspend() to crash due to a NULL pointer
      dereference.
      
      Another problem related to the above commit and simple_pm_bus_pm_ops is
      that setting runtime PM status of a device handled by the latter to
      RPM_ACTIVE will actually prevent it from being resumed because
      pm_runtime_force_resume() only resumes devices with runtime PM status
      set to RPM_SUSPENDED.
      
      To mitigate these issues, do not allow power.set_active to propagate
      beyond the parent of the device with DPM_FLAG_SMART_SUSPEND set that
      will need to be resumed, which should be a sufficient stop-gap for the
      time being, but they will need to be properly addressed in the future
      because in general during system-wide resume it is necessary to resume
      all devices in a dependency chain in which at least one device is going
      to be resumed.
      
      Fixes: 3775fc53 ("PM: sleep: core: Synchronize runtime PM status of parents and children")
      Closes: https://lore.kernel.org/linux-pm/1c2433d4-7e0f-4395-b841-b8eac7c25651@nvidia.com/
      
      
      Reported-by: default avatarJon Hunter <jonathanh@nvidia.com>
      Tested-by: default avatarJohan Hovold <johan+linaro@kernel.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Link: https://patch.msgid.link/6137505.lOV4Wx5bFT@rjwysocki.net
      75859462
  4. Feb 08, 2025
  5. Feb 07, 2025
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2025-02-08' of https://gitlab.freedesktop.org/drm/kernel · 7ee983c8
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Just regular drm fixes, amdgpu, xe and i915 mostly, but a few
        scattered fixes. I think one of the i915 fixes fixes some build combos
        that Guenter was seeing.
      
        amdgpu:
         - Add new tiling flag for DCC write compress disable
         - Add BO metadata flag for DCC
         - Fix potential out of bounds access in display
         - Seamless boot fix
         - CONFIG_FRAME_WARN fix
         - PSR1 fix
      
        xe:
         - OA uAPI related fixes
         - Fix SRIOV migration initialization
         - Restore devcoredump to a sane state
      
        i915:
         - Fix the build error with clamp after WARN_ON on gcc 13.x+
         - HDCP related fixes
         - PMU fix zero delta busyness issue
         - Fix page cleanup on DMA remap failure
         - Drop 64bpp YUV formats from ICL+ SDR planes
         - GuC log related fix
         - DisplayPort related fixes
      
        ivpu:
         - Fix error handling
      
        komeda:
         - add return check
      
        zynqmp:
         - fix locking in DP code
      
        ast:
         - fix AST DP timeout
      
        cec:
         - fix broken CEC adapter check"
      
      * tag 'drm-fixes-2025-02-08' of https://gitlab.freedesktop.org/drm/kernel: (29 commits)
        drm/i915/dp: Fix potential infinite loop in 128b/132b SST
        Revert "drm/amd/display: Use HW lock mgr for PSR1"
        drm/amd/display: Respect user's CONFIG_FRAME_WARN more for dml files
        accel/amdxdna: Add MODULE_FIRMWARE() declarations
        drm/i915/dp: Iterate DSC BPP from high to low on all platforms
        drm/xe: Fix and re-enable xe_print_blob_ascii85()
        drm/xe/devcoredump: Move exec queue snapshot to Contexts section
        drm/xe/oa: Set stream->pollin in xe_oa_buffer_check_unlocked
        drm/xe/pf: Fix migration initialization
        drm/xe/oa: Preserve oa_ctrl unused bits
        drm/amd/display: Fix seamless boot sequence
        drm/amd/display: Fix out-of-bound accesses
        drm/amdgpu: add a BO metadata flag to disable write compression for Vulkan
        drm/i915/backlight: Return immediately when scale() finds invalid parameters
        drm/i915/dp: Return min bpc supported by source instead of 0
        drm/i915/dp: fix the Adaptive sync Operation mode for SDP
        drm/i915/guc: Debug print LRC state entries only if the context is pinned
        drm/i915: Drop 64bpp YUV formats from ICL+ SDR planes
        drm/i915: Fix page cleanup on DMA remap failure
        drm/i915/pmu: Fix zero delta busyness issue
        ...
      7ee983c8
    • Linus Torvalds's avatar
      Merge tag 'stable/for-linus-6.14-rc1-tag' of... · 8aa0f49c
      Linus Torvalds authored
      Merge tag 'stable/for-linus-6.14-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/ibft
      
      Pull ibft fixes from Konrad Rzeszutek Wilk:
       "Two tiny fixes to IBFT code: one for Kconfig and another for IPv6"
      
      * tag 'stable/for-linus-6.14-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/ibft:
        iscsi_ibft: Fix UBSAN shift-out-of-bounds warning in ibft_attr_show_nic()
        firmware: iscsi_ibft: fix ISCSI_IBFT Kconfig entry
      8aa0f49c
    • Linus Torvalds's avatar
      Merge tag 'block-6.14-20250207' of git://git.kernel.dk/linux · a67d0a05
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - MD pull request via Song:
            - fix an error handling path for md-linear
      
       - NVMe pull request via Keith:
            - Connection fixes for fibre channel transport (Daniel)
            - Endian fixes (Keith, Christoph)
            - Cleanup fix for host memory buffer (Francis)
            - Platform specific power quirks (Georg)
            - Target memory leak (Sagi)
            - Use appropriate controller state accessor (Daniel)
      
       - Fixup for a regression introduced last week, where sunvdc wasn't
         updated for an API change, causing compilation failures on sparc64.
      
      * tag 'block-6.14-20250207' of git://git.kernel.dk/linux:
        drivers/block/sunvdc.c: update the correct AIP call
        md: Fix linear_set_limits()
        nvme-fc: use ctrl state getter
        nvme: make nvme_tls_attrs_group static
        nvmet: add a missing endianess conversion in nvmet_execute_admin_connect
        nvmet: the result field in nvmet_alloc_ctrl_args is little endian
        nvmet: fix a memory leak in controller identify
        nvme-fc: do not ignore connectivity loss during connecting
        nvme: handle connectivity loss in nvme_set_queue_count
        nvme-fc: go straight to connecting state when initializing
        nvme-pci: Add TUXEDO IBP Gen9 to Samsung sleep quirk
        nvme-pci: Add TUXEDO InfinityFlex to Samsung sleep quirk
        nvme-pci: remove redundant dma frees in hmb
        nvmet: fix rw control endian access
      a67d0a05
    • Linus Torvalds's avatar
      Merge tag 'pm-6.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 1fa9970a
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
       "These fix a handful of issues in the amd-pstate driver, the airoha
        cpufreq driver build, a (recently added) possible NULL pointer
        dereference in the cpufreq code and a possible memory leak in the
        power capping subsystem:
      
         - Fix cpufreq_policy reference counting and prevent max_perf from
           going above the current limit in amd-pstate, and drop a redundant
           goto label from it (Dhananjay Ugwekar)
      
         - Prevent the per-policy boost_enabled flag in amd-pstate from
           getting out of sync with the actual state after boot failures
           (Lifeng Zheng)
      
         - Fix a recently added possible NULL pointer dereference in the
           cpufreq core (Aboorva Devarajan)
      
         - Fix a build issue related to CONFIG_OF and COMPILE_TEST
           dependencies in the airoha cpufreq driver (Arnd Bergmann)
      
         - Fix a possible memory leak in the power capping subsystem (Joe
           Hattori)"
      
      * tag 'pm-6.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpufreq/amd-pstate: Fix cpufreq_policy ref counting
        cpufreq: prevent NULL dereference in cpufreq_online()
        cpufreq: airoha: modify CONFIG_OF dependency
        cpufreq/amd-pstate: Fix max_perf updation with schedutil
        cpufreq/amd-pstate: Remove the goto label in amd_pstate_update_limits
        cpufreq/amd-pstate: Fix per-policy boost flag incorrect when fail
        powercap: call put_device() on an error path in powercap_register_control_type()
      1fa9970a
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 0aa0282a
      Linus Torvalds authored
      Pull ACPI fixes from Rafael Wysocki:
       "These fix three assorted issues, including one recent regression:
      
         - Add an ACPI IRQ override quirk for Eluktronics MECH-17 to make the
           internal keyboard work (Gannon Kolding)
      
         - Make acpi_data_prop_read() reflect the OF counterpart behavior in
           error cases (Andy Shevchenko)
      
         - Remove recently added strict ACPI PRM handler address checks that
           prevented PRM from working on some platforms in the field (Aubrey
           Li)"
      
      * tag 'acpi-6.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: PRM: Remove unnecessary strict handler address checks
        ACPI: resource: IRQ override for Eluktronics MECH-17
        ACPI: property: Fix return value for nval == 0 in acpi_data_prop_read()
      0aa0282a
    • Linus Torvalds's avatar
      Merge tag 'gpio-fixes-for-v6.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · 78b2a232
      Linus Torvalds authored
      Pull gpio fixes from Bartosz Golaszewski:
      
       - fix interrupt support in gpio-pca953x
      
       - fix configfs attribute locking in gpio-sim
      
       - limit the visibility of the GPIO_GRGPIO Kconfig symbol to OF systems
         only
      
       - update MAINTAINERS
      
      * tag 'gpio-fixes-for-v6.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        MAINTAINERS: Use my kernel.org address for ACPI GPIO work
        gpio: GPIO_GRGPIO should depend on OF
        gpio: sim: lock hog configfs items if present
        gpio: pca953x: Improve interrupt support
      78b2a232
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.14-rc2.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · 8c67da5b
      Linus Torvalds authored
      Pull vfs fixes from Christian Brauner:
      
       - Fix fsnotify FMODE_NONOTIFY* handling.
      
         This also disables fsnotify on all pseudo files by default apart from
         very select exceptions. This carries a regression risk so we need to
         watch out and adapt accordingly. However, it is overall a significant
         improvement over the current status quo where every rando file can
         get fsnotify enabled.
      
       - Cleanup and simplify lockref_init() after recent lockref changes.
      
       - Fix vboxfs build with gcc-15.
      
       - Add an assert into inode_set_cached_link() to catch corrupt links.
      
       - Allow users to also use an empty string check to detect whether a
         given mount option string was empty or not.
      
       - Fix how security options were appended to statmount()'s ->mnt_opt
         field.
      
       - Fix statmount() selftests to always check the returned mask.
      
       - Fix uninitialized value in vfs_statx_path().
      
       - Fix pidfs_ioctl() sanity checks to guard against ioctl() overloading
         and preserve extensibility.
      
      * tag 'vfs-6.14-rc2.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
        vfs: sanity check the length passed to inode_set_cached_link()
        pidfs: improve ioctl handling
        fsnotify: disable pre-content and permission events by default
        selftests: always check mask returned by statmount(2)
        fsnotify: disable notification by default for all pseudo files
        fs: fix adding security options to statmount.mnt_opt
        fsnotify: use accessor to set FMODE_NONOTIFY_*
        lockref: remove count argument of lockref_init
        gfs2: switch to lockref_init(..., 1)
        gfs2: use lockref_init for gl_lockref
        statmount: let unset strings be empty
        vboxsf: fix building with GCC 15
        fs/stat.c: avoid harmless garbage value problem in vfs_statx_path()
      8c67da5b
    • Linus Torvalds's avatar
      Merge tag 'bcachefs-2025-02-06.2' of git://evilpiepirate.org/bcachefs · 94b481f7
      Linus Torvalds authored
      Pull bcachefs fixes from Kent Overstreet:
       "Nothing major, things continue to be fairly quiet over here.
      
         - add a SubmittingPatches to clarify that patches submitted for
           bcachefs do, in fact, need to be tested
      
         - discard path now correctly issues journal flushes when needed, this
           fixes performance issues when the filesystem is nearly full and
           we're bottlenecked on copygc
      
         - fix a bug that could cause the pending rebalance work accounting to
           be off when devices are being onlined/offlined; users should report
           if they are still seeing this
      
         - and a few more trivial ones"
      
      * tag 'bcachefs-2025-02-06.2' of git://evilpiepirate.org/bcachefs:
        bcachefs: bch2_bkey_sectors_need_rebalance() now only depends on bch_extent_rebalance
        bcachefs: Fix rcu imbalance in bch2_fs_btree_key_cache_exit()
        bcachefs: Fix discard path journal flushing
        bcachefs: fix deadlock in journal_entry_open()
        bcachefs: fix incorrect pointer check in __bch2_subvolume_delete()
        bcachefs docs: SubmittingPatches.rst
      94b481f7
    • Hector Martin's avatar
      MAINTAINERS: Remove myself · 1b3291f0
      Hector Martin authored
      
      I no longer have any faith left in the kernel development process or
      community management approach.
      
      Apple/ARM platform development will continue downstream. If I feel like
      sending some patches upstream in the future myself for whatever subtree
      I may, or I may not. Anyone who feels like fighting the upstreaming
      fight themselves is welcome to do so.
      
      Signed-off-by: default avatarHector Martin <marcan@marcan.st>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1b3291f0
Loading