This is the 6.1.2 stable release
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmOwLA8ACgkQONu9yGCS aT6RYxAAhsnIlIBCtaca7Uio9TZdluV7Fzn3c9+QogVisrwVMTtP1iHX43ofFC89 BCmiQOS9fForddjNP0vkqjZlshMYYSCDPX0s0mK6R4UoNPVg8oehZ9vJfOiR3MMX C3fApQQhYf5Bx/rC50i58ChdAw/Dqj0WNBZX/ZWod4B2JKUq7ORk7GjnorfuJxuP xO2K6KdpajZufkxtTyKtwqK8FG3dkZP9YF6MqFIvTfQ8qkLnQsrL3moFGU9giSH5 swRCFH/QII+kumKS2bir87QHz0CmvtSa3Ob4DyKiJMkNN8tspE7nOMkds4usCov6 +yM84sWp03j2RKFyadctAMKwdH16IGU0kdgqlhb9OmzGNRvX6/l5q4+QzqzPJHHQ F+v/PEJoKz3K6CK2ai8DPXoTUMgDDCaYDHg139Tv2Dj/ulDg9xzJ+CS6WBMQxMoU xO1OWhpLMDKT8soPogGY13yOsSbhPY6ef3+//eRczxLf8bg3qzoKo362PjqHVxlq IY01Ul+MB3M4NdFuFNMKM2/DBHn9qBeoZdQxnQ/vpxhBbpP2hIyEflyfsUQOmUYU lWBcnxbSLxf87CmJ3f1VSsms6kbgnxYJyNBgkXiU3WHFfcRZqoU/R+SFu2THRMPt ugor1zCHNxBBIdDEMRDWJvDTt34vRsT51Xbig+hH5BVdiKQzQ3k= =MYDV -----END PGP SIGNATURE----- Merge 6.1.2 into android14-6.1 Changes in 6.1.2 MIPS: DTS: CI20: fix reset line polarity of the ethernet controller usb: musb: remove extra check in musb_gadget_vbus_draw arm64: dts: renesas: r8a779g0: Fix HSCIF0 "brg_int" clock arm64: dts: qcom: ipq6018-cp01-c1: use BLSPI1 pins arm64: dts: qcom: sm8250-sony-xperia-edo: fix touchscreen bias-disable arm64: dts: qcom: sdm845-xiaomi-polaris: fix codec pin conf name arm64: dts: qcom: msm8996: Add MSM8996 Pro support arm64: dts: qcom: msm8996: fix supported-hw in cpufreq OPP tables arm64: dts: qcom: msm8996: fix GPU OPP table ARM: dts: qcom: apq8064: fix coresight compatible arm64: dts: qcom: sdm630: fix UART1 pin bias arm64: dts: qcom: sdm845-cheza: fix AP suspend pin bias arm64: dts: qcom: msm8916: Drop MSS fallback compatible arm64: dts: fsd: fix drive strength macros as per FSD HW UM arm64: dts: fsd: fix drive strength values as per FSD HW UM memory: renesas-rpc-if: Clear HS bit during hardware initialization objtool, kcsan: Add volatile read/write instrumentation to whitelist ARM: dts: stm32: Drop stm32mp15xc.dtsi from Avenger96 ARM: dts: stm32: Fix AV96 WLAN regulator gpio property drivers: soc: ti: knav_qmss_queue: Mark knav_acc_firmwares as static firmware: ti_sci: Fix polled mode during system suspend riscv: dts: microchip: fix memory node unit address for icicle arm64: dts: qcom: pm660: Use unique ADC5_VCOIN address in node name arm64: dts: qcom: sm8250: correct LPASS pin pull down arm64: dts: qcom: sc7180-trogdor-homestar: fully configure secondary I2S pins soc: qcom: llcc: make irq truly optional arm64: dts: qcom: sm8150: fix UFS PHY registers arm64: dts: qcom: sm8250: fix UFS PHY registers arm64: dts: qcom: sm8350: fix UFS PHY registers arm64: dts: qcom: sm8450: fix UFS PHY registers arm64: dts: qcom: msm8996: fix sound card reset line polarity arm64: dts: qcom: sm8250-mtp: fix reset line polarity arm64: dts: qcom: sc7280: fix codec reset line polarity for CRD 3.0/3.1 arm64: dts: qcom: sc7280: fix codec reset line polarity for CRD 1.0/2.0 arm64: dts: qcom: sm8250: drop bogus DP PHY clock arm64: dts: qcom: sm6350: drop bogus DP PHY clock soc: qcom: apr: Add check for idr_alloc and of_property_read_string_index arm64: dts: qcom: pm6350: Include header for KEY_POWER arm64: dts: qcom: sm6125: fix SDHCI CQE reg names arm64: dts: renesas: r8a779f0: Fix HSCIF "brg_int" clock arm64: dts: renesas: r8a779f0: Fix SCIF "brg_int" clock arm64: dts: renesas: r9a09g011: Fix unit address format error arm64: dts: renesas: r9a09g011: Fix I2C SoC specific strings dt-bindings: pwm: fix microchip corePWM's pwm-cells soc: sifive: ccache: fix missing iounmap() in error path in sifive_ccache_init() soc: sifive: ccache: fix missing free_irq() in error path in sifive_ccache_init() soc: sifive: ccache: fix missing of_node_put() in sifive_ccache_init() arm64: dts: mt7986: fix trng node name soc/tegra: cbb: Use correct master_id mask for CBB NOC in Tegra194 soc/tegra: cbb: Update slave maps for Tegra234 soc/tegra: cbb: Add checks for potential out of bound errors soc/tegra: cbb: Check firewall before enabling error reporting arm64: dts: qcom: sc7280: Mark all Qualcomm reference boards as LTE arm: dts: spear600: Fix clcd interrupt riscv: dts: microchip: fix the icicle's #pwm-cells soc: ti: knav_qmss_queue: Fix PM disable depth imbalance in knav_queue_probe soc: ti: smartreflex: Fix PM disable depth imbalance in omap_sr_probe arm64: mm: kfence: only handle translation faults perf: arm_dsu: Fix hotplug callback leak in dsu_pmu_init() drivers: perf: marvell_cn10k: Fix hotplug callback leak in tad_pmu_init() perf/arm_dmc620: Fix hotplug callback leak in dmc620_pmu_init() perf/smmuv3: Fix hotplug callback leak in arm_smmu_pmu_init() arm64: dts: ti: k3-am65-main: Drop dma-coherent in crypto node arm64: dts: ti: k3-j721e-main: Drop dma-coherent in crypto node arm64: dts: ti: k3-j7200-mcu-wakeup: Drop dma-coherent in crypto node arm64: dts: ti: k3-j721s2: Fix the interrupt ranges property for main & wkup gpio intr riscv: dts: microchip: remove pcie node from the sev kit ARM: dts: nuvoton: Remove bogus unit addresses from fixed-partition nodes arm64: dts: mediatek: mt8195: Fix CPUs capacity-dmips-mhz arm64: dts: mt7896a: Fix unit_address_vs_reg warning for oscillator arm64: dts: mt6779: Fix devicetree build warnings arm64: dts: mt2712e: Fix unit_address_vs_reg warning for oscillators arm64: dts: mt2712e: Fix unit address for pinctrl node arm64: dts: mt2712-evb: Fix vproc fixed regulators unit names arm64: dts: mt2712-evb: Fix usb vbus regulators unit names arm64: dts: mediatek: pumpkin-common: Fix devicetree warnings arm64: dts: mediatek: mt6797: Fix 26M oscillator unit name arm64: tegra: Fix Prefetchable aperture ranges of Tegra234 PCIe controllers arm64: tegra: Fix non-prefetchable aperture of PCIe C3 controller arm64: dts: mt7986: move wed_pcie node ARM: dts: dove: Fix assigned-addresses for every PCIe Root Port ARM: dts: armada-370: Fix assigned-addresses for every PCIe Root Port ARM: dts: armada-xp: Fix assigned-addresses for every PCIe Root Port ARM: dts: armada-375: Fix assigned-addresses for every PCIe Root Port ARM: dts: armada-38x: Fix assigned-addresses for every PCIe Root Port ARM: dts: armada-39x: Fix assigned-addresses for every PCIe Root Port ARM: dts: turris-omnia: Add ethernet aliases ARM: dts: turris-omnia: Add switch port 6 node arm64: dts: armada-3720-turris-mox: Add missing interrupt for RTC soc: apple: sart: Stop casting function pointer signatures soc: apple: rtkit: Stop casting function pointer signatures drivers/perf: hisi: Fix some event id for hisi-pcie-pmu seccomp: Move copy_seccomp() to no failure path. pstore/ram: Fix error return code in ramoops_probe() ARM: mmp: fix timer_read delay pstore: Avoid kcore oops by vmap()ing with VM_IOREMAP arch: arm64: apple: t8103: Use standard "iommu" node name tpm: tis_i2c: Fix sanity check interrupt enable mask tpm: Add flag to use default cancellation policy tpm/tpm_ftpm_tee: Fix error handling in ftpm_mod_init() tpm/tpm_crb: Fix error message in __crb_relinquish_locality() ovl: remove privs in ovl_copyfile() ovl: remove privs in ovl_fallocate() sched/uclamp: Fix relationship between uclamp and migration margin sched/uclamp: Make task_fits_capacity() use util_fits_cpu() sched/uclamp: Fix fits_capacity() check in feec() sched/uclamp: Make select_idle_capacity() use util_fits_cpu() sched/uclamp: Make asym_fits_capacity() use util_fits_cpu() sched/uclamp: Make cpu_overutilized() use util_fits_cpu() sched/uclamp: Cater for uclamp in find_energy_efficient_cpu()'s early exit condition cpuidle: dt: Return the correct numbers of parsed idle states alpha: fix TIF_NOTIFY_SIGNAL handling alpha: fix syscall entry in !AUDUT_SYSCALL case sched/psi: Fix possible missing or delayed pending event x86/sgx: Reduce delay and interference of enclave release PM: hibernate: Fix mistake in kerneldoc comment fs: don't audit the capability check in simple_xattr_list() cpufreq: qcom-hw: Fix memory leak in qcom_cpufreq_hw_read_lut() x86/split_lock: Add sysctl to control the misery mode ACPI: irq: Fix some kernel-doc issues selftests/ftrace: event_triggers: wait longer for test_event_enable perf: Fix possible memleak in pmu_dev_alloc() lib/debugobjects: fix stat count and optimize debug_objects_mem_init platform/x86: huawei-wmi: fix return value calculation timerqueue: Use rb_entry_safe() in timerqueue_getnext() proc: fixup uptime selftest lib/fonts: fix undefined behavior in bit shift for get_default_font ocfs2: fix memory leak in ocfs2_stack_glue_init() selftests: cgroup: fix unsigned comparison with less than zero cpufreq: qcom-hw: Fix the frequency returned by cpufreq_driver->get() MIPS: vpe-mt: fix possible memory leak while module exiting MIPS: vpe-cmp: fix possible memory leak while module exiting selftests/efivarfs: Add checking of the test return value PNP: fix name memory leak in pnp_alloc_dev() mailbox: pcc: Reset pcc_chan_count to zero in case of PCC probe failure ACPI: pfr_telemetry: use ACPI_FREE() to free acpi_object ACPI: pfr_update: use ACPI_FREE() to free acpi_object perf/x86/intel/uncore: Fix reference count leak in sad_cfg_iio_topology() perf/x86/intel/uncore: Fix reference count leak in hswep_has_limit_sbox() perf/x86/intel/uncore: Fix reference count leak in snr_uncore_mmio_map() perf/x86/intel/uncore: Fix reference count leak in __uncore_imc_init_box() platform/chrome: cros_usbpd_notify: Fix error handling in cros_usbpd_notify_init() thermal: core: fix some possible name leaks in error paths irqchip/loongson-pch-pic: Fix translate callback for DT path irqchip: gic-pm: Use pm_runtime_resume_and_get() in gic_probe() irqchip/wpcm450: Fix memory leak in wpcm450_aic_of_init() irqchip/loongson-liointc: Fix improper error handling in liointc_init() EDAC/i10nm: fix refcount leak in pci_get_dev_wrapper() NFSD: Finish converting the NFSv2 GETACL result encoder NFSD: Finish converting the NFSv3 GETACL result encoder nfsd: don't call nfsd_file_put from client states seqfile display genirq/irqdesc: Don't try to remove non-existing sysfs files cpufreq: amd_freq_sensitivity: Add missing pci_dev_put() libfs: add DEFINE_SIMPLE_ATTRIBUTE_SIGNED for signed value lib/notifier-error-inject: fix error when writing -errno to debugfs file debugfs: fix error when writing negative value to atomic_t debugfs file ocfs2: fix memory leak in ocfs2_mount_volume() rapidio: fix possible name leaks when rio_add_device() fails rapidio: rio: fix possible name leak in rio_register_mport() clocksource/drivers/sh_cmt: Access registers according to spec futex: Resend potentially swallowed owner death notification cpu/hotplug: Make target_store() a nop when target == state cpu/hotplug: Do not bail-out in DYING/STARTING sections clocksource/drivers/timer-ti-dm: Fix warning for omap_timer_match clocksource/drivers/timer-ti-dm: Fix missing clk_disable_unprepare in dmtimer_systimer_init_clock() ACPICA: Fix use-after-free in acpi_ut_copy_ipackage_to_ipackage() uprobes/x86: Allow to probe a NOP instruction with 0x66 prefix x86/xen: Fix memory leak in xen_smp_intr_init{_pv}() x86/xen: Fix memory leak in xen_init_lock_cpu() xen/privcmd: Fix a possible warning in privcmd_ioctl_mmap_resource() PM: runtime: Do not call __rpm_callback() from rpm_idle() erofs: check the uniqueness of fsid in shared domain in advance erofs: Fix pcluster memleak when its block address is zero erofs: fix missing unmap if z_erofs_get_extent_compressedlen() fails erofs: validate the extent length for uncompressed pclusters platform/chrome: cros_ec_typec: zero out stale pointers platform/x86: mxm-wmi: fix memleak in mxm_wmi_call_mx[ds|mx]() platform/x86: intel_scu_ipc: fix possible name leak in __intel_scu_ipc_register() MIPS: BCM63xx: Add check for NULL for clk in clk_enable MIPS: OCTEON: warn only once if deprecated link status is being used lockd: set other missing fields when unlocking files nfsd: return error if nfs4_setacl fails NFSD: pass range end to vfs_fsync_range() instead of count fs: sysv: Fix sysv_nblocks() returns wrong value rapidio: fix possible UAF when kfifo_alloc() fails eventfd: change int to __u64 in eventfd_signal() ifndef CONFIG_EVENTFD relay: fix type mismatch when allocating memory in relay_create_buf() hfs: Fix OOB Write in hfs_asc2mac rapidio: devices: fix missing put_device in mport_cdev_open ipc: fix memory leak in init_mqueue_fs() platform/mellanox: mlxbf-pmc: Fix event typo selftests/bpf: Add missing bpf_iter_vma_offset__destroy call wifi: fix multi-link element subelement iteration wifi: mac80211: mlme: fix null-ptr deref on failed assoc wifi: mac80211: check link ID in auth/assoc continuation wifi: mac80211: fix ifdef symbol name drm/atomic-helper: Don't allocate new plane state in CRTC check wifi: ath9k: hif_usb: fix memory leak of urbs in ath9k_hif_usb_dealloc_tx_urbs() wifi: ath9k: hif_usb: Fix use-after-free in ath9k_hif_usb_reg_in_cb() wifi: rtl8xxxu: Fix reading the vendor of combo chips wifi: ath11k: fix firmware assert during bandwidth change for peer sta drm/bridge: adv7533: remove dynamic lane switching from adv7533 bridge libbpf: Fix use-after-free in btf_dump_name_dups libbpf: Fix memory leak in parse_usdt_arg() selftests/bpf: Fix memory leak caused by not destroying skeleton selftest/bpf: Fix memory leak in kprobe_multi_test selftests/bpf: Fix error failure of case test_xdp_adjust_tail_grow selftest/bpf: Fix error usage of ASSERT_OK in xdp_adjust_tail.c libbpf: Use elf_getshdrnum() instead of e_shnum libbpf: Deal with section with no data gracefully libbpf: Fix null-pointer dereference in find_prog_by_sec_insn() drm: lcdif: Switch to limited range for RGB to YUV conversion ata: libata: fix NCQ autosense logic pinctrl: ocelot: add missing destroy_workqueue() in error path in ocelot_pinctrl_probe() ASoC: Intel: avs: Fix DMA mask assignment ASoC: Intel: avs: Fix potential RX buffer overflow ipmi: kcs: Poll OBF briefly to reduce OBE latency drm/amdgpu: Revert "drm/amdgpu: getting fan speed pwm for vega10 properly" drm/amdgpu/powerplay/psm: Fix memory leak in power state init net: ethernet: adi: adin1110: Fix SPI transfers samples/bpf: Fix map iteration in xdp1_user samples/bpf: Fix MAC address swapping in xdp2_kern selftests/bpf: fix missing BPF object files drm/bridge: it6505: Initialize AUX channel in it6505_i2c_probe Input: iqs7222 - protect against undefined slider size media: v4l2-ctrls: Fix off-by-one error in integer menu control check media: coda: jpeg: Add check for kmalloc media: amphion: reset instance if it's aborted before codec header parsed media: adv748x: afe: Select input port when initializing AFE media: v4l2-ioctl.c: Unify YCbCr/YUV terms in format descriptions media: cedrus: hevc: Fix offset adjustments media: mediatek: vcodec: fix h264 cavlc bitstream fail drm/i915/guc: Limit scheduling properties to avoid overflow drm/i915: Fix compute pre-emption w/a to apply to compute engines media: i2c: hi846: Fix memory leak in hi846_parse_dt() media: i2c: ad5820: Fix error path venus: pm_helpers: Fix error check in vcodec_domains_get() soreuseport: Fix socket selection for SO_INCOMING_CPU. media: i2c: ov5648: Free V4L2 fwnode data on unbind media: exynos4-is: don't rely on the v4l2_async_subdev internals libbpf: Btf dedup identical struct test needs check for nested structs/arrays can: kvaser_usb: kvaser_usb_leaf: Get capabilities from device can: kvaser_usb: kvaser_usb_leaf: Rename {leaf,usbcan}_cmd_error_event to {leaf,usbcan}_cmd_can_error_event can: kvaser_usb: kvaser_usb_leaf: Handle CMD_ERROR_EVENT can: kvaser_usb_leaf: Set Warning state even without bus errors can: kvaser_usb_leaf: Fix improved state not being reported can: kvaser_usb_leaf: Fix wrong CAN state after stopping can: kvaser_usb_leaf: Fix bogus restart events can: kvaser_usb: Add struct kvaser_usb_busparams can: kvaser_usb: Compare requested bittiming parameters with actual parameters in do_set_{,data}_bittiming clk: renesas: r8a779f0: Fix SD0H clock name clk: renesas: r8a779a0: Fix SD0H clock name ASoC: dt-bindings: rt5682: Set sound-dai-cells to 1 drm/i915/guc: Add error-capture init warnings when needed drm/i915/guc: Fix GuC error capture sizing estimation and reporting dw9768: Enable low-power probe on ACPI drm/amd/display: wait for vblank during pipe programming drm/rockchip: lvds: fix PM usage counter unbalance in poweron drm/i915: Handle all GTs on driver (un)load paths drm/i915: Refactor ttm ghost obj detection drm/i915: Encapsulate lmem rpm stuff in intel_runtime_pm drm/i915/dgfx: Grab wakeref at i915_ttm_unmap_virtual clk: renesas: r9a06g032: Repair grave increment error drm: lcdif: change burst size to 256B drm/panel/panel-sitronix-st7701: Fix RTNI calculation spi: Update reference to struct spi_controller drm/panel/panel-sitronix-st7701: Remove panel on DSI attach failure drm/ttm: fix undefined behavior in bit shift for TTM_TT_FLAG_PRIV_POPULATED drm/msm/mdp5: stop overriding drvdata ima: Handle -ESTALE returned by ima_filter_rule_match() drm/msm/hdmi: use devres helper for runtime PM management bpf: Clobber stack slot when writing over spilled PTR_TO_BTF_ID bpf: Fix slot type check in check_stack_write_var_off drm/msm/dpu1: Account for DSC's bits_per_pixel having 4 fractional bits drm/msm/dsi: Remove useless math in DSC calculations drm/msm/dsi: Remove repeated calculation of slice_per_intf drm/msm/dsi: Use DIV_ROUND_UP instead of conditional increment on modulo drm/msm/dsi: Reuse earlier computed dsc->slice_chunk_size drm/msm/dsi: Appropriately set dsc->mux_word_size based on bpc drm/msm/dsi: Migrate to drm_dsc_compute_rc_parameters() drm/msm/dsi: Account for DSC's bits_per_pixel having 4 fractional bits drm/msm/dsi: Disallow 8 BPC DSC configuration for alternative BPC values drm/msm/dsi: Prevent signed BPG offsets from bleeding into adjacent bits media: platform: mtk-mdp3: fix error handling in mdp_cmdq_send() media: platform: mtk-mdp3: fix error handling about components clock_on media: platform: mtk-mdp3: fix error handling in mdp_probe() media: rkvdec: Add required padding media: vivid: fix compose size exceed boundary media: platform: exynos4-is: fix return value check in fimc_md_probe() bpf: propagate precision in ALU/ALU64 operations bpf: propagate precision across all frames, not just the last one clk: qcom: gcc-ipq806x: use parent_data for the last remaining entry clk: qcom: dispcc-sm6350: Add CLK_OPS_PARENT_ENABLE to pixel&byte src clk: qcom: gcc-sm8250: Use retention mode for USB GDSCs mtd: Fix device name leak when register device failed in add_mtd_device() mtd: core: fix possible resource leak in init_mtd() Input: joystick - fix Kconfig warning for JOYSTICK_ADC wifi: rsi: Fix handling of 802.3 EAPOL frames sent via control port media: camss: Clean up received buffers on failed start of streaming media: camss: Do not attach an already attached power domain on MSM8916 platform clk: renesas: r8a779f0: Fix HSCIF parent clocks clk: renesas: r8a779f0: Fix SCIF parent clocks virt/sev-guest: Add a MODULE_ALIAS net, proc: Provide PROC_FS=n fallback for proc_create_net_single_write() rxrpc: Fix ack.bufferSize to be 0 when generating an ack drm: lcdif: Set and enable FIFO Panic threshold wifi: rtw89: use u32_encode_bits() to fill MAC quota value drm: rcar-du: Drop leftovers dependencies from Kconfig regmap-irq: Use the new num_config_regs property in regmap_add_irq_chip_fwnode drbd: use blk_queue_max_discard_sectors helper bfq: fix waker_bfqq inconsistency crash drm/radeon: Add the missed acpi_put_table() to fix memory leak dt-bindings: pinctrl: update uart/mmc bindings for MT7986 SoC pinctrl: mediatek: fix the pinconf register offset of some pins wifi: iwlwifi: mei: make sure ownership confirmed message is sent wifi: iwlwifi: mei: don't send SAP commands if AMT is disabled wifi: iwlwifi: mei: fix tx DHCP packet for devices with new Tx API wifi: iwlwifi: mei: avoid blocking sap messages handling due to rtnl lock wifi: iwlwifi: mei: fix potential NULL-ptr deref after clone module: Fix NULL vs IS_ERR checking for module_get_next_page ASoC: codecs: wsa883x: Use proper shutdown GPIO polarity ASoC: codecs: wsa883x: use correct header file selftests/bpf: Fix xdp_synproxy compilation failure in 32-bit arch selftests/bpf: Fix incorrect ASSERT in the tcp_hdr_options test drm/mediatek: Modify dpi power on/off sequence. ASoC: pxa: fix null-pointer dereference in filter() nvmet: only allocate a single slab for bvecs regulator: core: fix unbalanced of node refcount in regulator_dev_lookup() amdgpu/pm: prevent array underflow in vega20_odn_edit_dpm_table() nvme: return err on nvme_init_non_mdts_limits fail wifi: rtw89: Fix some error handling path in rtw89_core_sta_assoc() regulator: qcom-rpmh: Fix PMR735a S3 regulator spec drm/fourcc: Fix vsub/hsub for Q410 and Q401 ALSA: memalloc: Allocate more contiguous pages for fallback case integrity: Fix memory leakage in keyring allocation error path ima: Fix misuse of dereference of pointer in template_desc_init_fields() block: clear ->slave_dir when dropping the main slave_dir reference dm: cleanup open_table_device dm: cleanup close_table_device dm: make sure create and remove dm device won't race with open and close table dm: track per-add_disk holder relations in DM selftests/bpf: fix memory leak of lsm_cgroup wifi: ath10k: Fix return value in ath10k_pci_init() drm/msm/a6xx: Fix speed-bin detection vs probe-defer mtd: lpddr2_nvm: Fix possible null-ptr-deref Input: elants_i2c - properly handle the reset GPIO when power is off ASoC: amd: acp: Fix possible UAF in acp_dma_open net: ethernet: mtk_eth_soc: do not overwrite mtu configuration running reset routine media: amphion: add lock around vdec_g_fmt media: amphion: apply vb2_queue_error instead of setting manually media: vidtv: Fix use-after-free in vidtv_bridge_dvb_init() media: solo6x10: fix possible memory leak in solo_sysfs_init() media: platform: exynos4-is: Fix error handling in fimc_md_init() media: amphion: Fix error handling in vpu_driver_init() media: videobuf-dma-contig: use dma_mmap_coherent net: ethernet: mtk_eth_soc: fix RSTCTRL_PPE{0,1} definitions udp: Clean up some functions. net: Return errno in sk->sk_prot->get_port(). mtd: spi-nor: hide jedec_id sysfs attribute if not present mtd: spi-nor: Fix the number of bytes for the dummy cycles clk: imx93: correct the flexspi1 clock setting bpf: Pin the start cgroup in cgroup_iter_seq_init() HID: i2c: let RMI devices decide what constitutes wakeup event clk: imx93: unmap anatop base in error handling path clk: imx93: correct enet clock bpf: Move skb->len == 0 checks into __bpf_redirect HID: hid-sensor-custom: set fixed size for custom attributes clk: imx: imxrt1050: fix IMXRT1050_CLK_LCDIF_APB offsets pinctrl: k210: call of_node_put() wifi: rtw89: fix physts IE page check ASoC: Intel: Skylake: Fix Kconfig dependency ASoC: Intel: avs: Lock substream before snd_pcm_stop() ALSA: pcm: fix undefined behavior in bit shift for SNDRV_PCM_RATE_KNOT ALSA: seq: fix undefined behavior in bit shift for SNDRV_SEQ_FILTER_USE_EVENT regulator: core: use kfree_const() to free space conditionally clk: rockchip: Fix memory leak in rockchip_clk_register_pll() drm/amdgpu: fix pci device refcount leak drm/i915/guc: make default_lists const data selftests/bpf: Make sure zero-len skbs aren't redirectable selftests/bpf: Mount debugfs in setns_by_fd bonding: fix link recovery in mode 2 when updelay is nonzero clk: microchip: check for null return of devm_kzalloc() mtd: core: Fix refcount error in del_mtd_device() mtd: maps: pxa2xx-flash: fix memory leak in probe drbd: remove call to memset before free device/resource/connection drbd: destroy workqueue when drbd device was freed ASoC: qcom: Add checks for devm_kcalloc ASoC: qcom: cleanup and fix dependency of QCOM_COMMON ASoC: mediatek: mt8186: Correct I2S shared clocks media: vimc: Fix wrong function called when vimc_init() fails media: imon: fix a race condition in send_packet() media: imx: imx7-media-csi: Clear BIT_MIPI_DOUBLE_CMPNT for <16b formats media: mt9p031: Drop bogus v4l2_subdev_get_try_crop() call from mt9p031_init_cfg() clk: imx8mn: rename vpu_pll to m7_alt_pll clk: imx: replace osc_hdmi with dummy clk: imx: rename video_pll1 to video_pll clk: imx8mn: fix imx8mn_sai2_sels clocks list clk: imx8mn: fix imx8mn_enet_phy_sels clocks list pinctrl: pinconf-generic: add missing of_node_put() media: dvb-core: Fix ignored return value in dvb_register_frontend() media: dvb-usb: az6027: fix null-ptr-deref in az6027_i2c_xfer() x86/boot: Skip realmode init code when running as Xen PV guest media: sun6i-mipi-csi2: Require both pads to be connected for streaming media: sun8i-a83t-mipi-csi2: Require both pads to be connected for streaming media: sun6i-mipi-csi2: Register async subdev with no sensor attached media: sun8i-a83t-mipi-csi2: Register async subdev with no sensor attached media: amphion: try to wakeup vpu core to avoid failure media: amphion: cancel vpu before release instance media: amphion: lock and check m2m_ctx in event handler media: mediatek: vcodec: Fix getting NULL pointer for dst buffer media: mediatek: vcodec: Fix h264 set lat buffer error media: mediatek: vcodec: Setting lat buf to lat_list when lat decode error media: mediatek: vcodec: Core thread depends on core_list media: s5p-mfc: Add variant data for MFC v7 hardware for Exynos 3250 SoC drm/tegra: Add missing clk_disable_unprepare() in tegra_dc_probe() ASoC: dt-bindings: wcd9335: fix reset line polarity in example ASoC: mediatek: mtk-btcvsd: Add checks for write and read of mtk_btcvsd_snd drm/msm/mdp5: fix reading hw revision on db410c platform NFSv4.2: Clear FATTR4_WORD2_SECURITY_LABEL when done decoding NFSv4.2: Always decode the security label NFSv4.2: Fix a memory stomp in decode_attr_security_label NFSv4.2: Fix initialisation of struct nfs4_label NFSv4: Fix a credential leak in _nfs4_discover_trunking() NFSv4: Fix a deadlock between nfs4_open_recover_helper() and delegreturn NFS: Fix an Oops in nfs_d_automount() ALSA: asihpi: fix missing pci_disable_device() wifi: plfxlc: fix potential memory leak in __lf_x_usb_enable_rx() wifi: rtl8xxxu: Fix use after rcu_read_unlock in rtl8xxxu_bss_info_changed wifi: iwlwifi: mvm: fix double free on tx path. ASoC: mediatek: mt8173: Enable IRQ when pdata is ready clk: mediatek: fix dependency of MT7986 ADC clocks drm/amd/pm/smu11: BACO is supported when it's in BACO state amdgpu/nv.c: Corrected typo in the video capabilities resolution drm/radeon: Fix PCI device refcount leak in radeon_atrm_get_bios() drm/amdgpu: Fix PCI device refcount leak in amdgpu_atrm_get_bios() drm/amdkfd: Fix memory leakage drm/i915/bios: fix a memory leak in generate_lfp_data_ptrs ASoC: pcm512x: Fix PM disable depth imbalance in pcm512x_probe clk: visconti: Fix memory leak in visconti_register_pll() netfilter: conntrack: set icmpv6 redirects as RELATED Input: wistron_btns - disable on UML bpf, sockmap: Fix repeated calls to sock_put() when msg has more_data bpf, sockmap: Fix missing BPF_F_INGRESS flag when using apply_bytes bpf, sockmap: Fix data loss caused by using apply_bytes on ingress redirect bonding: uninitialized variable in bond_miimon_inspect() spi: spidev: mask SPI_CS_HIGH in SPI_IOC_RD_MODE wifi: nl80211: Add checks for nla_nest_start() in nl80211_send_iface() wifi: mac80211: fix memory leak in ieee80211_if_add() wifi: mac80211: fix maybe-unused warning wifi: cfg80211: Fix not unregister reg_pdev when load_builtin_regdb_keys() fails wifi: mt76: mt7921: fix antenna signal are way off in monitor mode wifi: mt76: mt7915: fix mt7915_mac_set_timing() wifi: mt76: mt7915: fix reporting of TX AGGR histogram wifi: mt76: mt7921: fix reporting of TX AGGR histogram wifi: mt76: mt7915: rework eeprom tx paths and streams init wifi: mt76: mt7915: Fix chainmask calculation on mt7915 DBDC wifi: mt76: mt7921: fix wrong power after multiple SAR set wifi: mt76: fix coverity overrun-call in mt76_get_txpower() wifi: mt76: mt7921: Add missing __packed annotation of struct mt7921_clc wifi: mt76: do not send firmware FW_FEATURE_NON_DL region mt76: mt7915: Fix PCI device refcount leak in mt7915_pci_init_hif2() regulator: core: fix module refcount leak in set_supply() clk: qcom: lpass-sc7280: Fix pm_runtime usage clk: qcom: lpass-sc7180: Fix pm_runtime usage clk: qcom: clk-krait: fix wrong div2 functions Revert "net: hsr: use hlist_head instead of list_head for mac addresses" hsr: Add a rcu-read lock to hsr_forward_skb(). hsr: Avoid double remove of a node. hsr: Disable netpoll. hsr: Synchronize sending frames to have always incremented outgoing seq nr. hsr: Synchronize sequence number updates. configfs: fix possible memory leak in configfs_create_dir() regulator: core: fix resource leak in regulator_register() hwmon: (jc42) Convert register access and caching to regmap/regcache hwmon: (jc42) Restore the min/max/critical temperatures on resume bpf: Add dummy type reference to nf_conn___init to fix type deduplication bpf, sockmap: fix race in sock_map_free() ALSA: pcm: Set missing stop_operating flag at undoing trigger start media: saa7164: fix missing pci_disable_device() media: ov5640: set correct default link frequency ALSA: mts64: fix possible null-ptr-defer in snd_mts64_interrupt pinctrl: thunderbay: fix possible memory leak in thunderbay_build_functions() xprtrdma: Fix regbuf data not freed in rpcrdma_req_create() SUNRPC: Fix missing release socket in rpc_sockname() NFSv4.2: Set the correct size scratch buffer for decoding READ_PLUS NFS: Allow very small rsize & wsize again NFSv4.x: Fail client initialisation if state manager thread can't run riscv, bpf: Emit fixed-length instructions for BPF_PSEUDO_FUNC bpftool: Fix memory leak in do_build_table_cb hwmon: (emc2305) fix unable to probe emc2301/2/3 hwmon: (emc2305) fix pwm never being able to set lower mmc: alcor: fix return value check of mmc_add_host() mmc: moxart: fix return value check of mmc_add_host() mmc: mxcmmc: fix return value check of mmc_add_host() mmc: pxamci: fix return value check of mmc_add_host() mmc: rtsx_pci: fix return value check of mmc_add_host() mmc: rtsx_usb_sdmmc: fix return value check of mmc_add_host() mmc: toshsd: fix return value check of mmc_add_host() mmc: vub300: fix return value check of mmc_add_host() mmc: wmt-sdmmc: fix return value check of mmc_add_host() mmc: litex_mmc: ensure `host->irq == 0` if polling mmc: atmel-mci: fix return value check of mmc_add_host() mmc: omap_hsmmc: fix return value check of mmc_add_host() mmc: meson-gx: fix return value check of mmc_add_host() mmc: via-sdmmc: fix return value check of mmc_add_host() mmc: wbsd: fix return value check of mmc_add_host() mmc: mmci: fix return value check of mmc_add_host() mmc: renesas_sdhi: alway populate SCC pointer memstick/ms_block: Add check for alloc_ordered_workqueue mmc: core: Normalize the error handling branch in sd_read_ext_regs() nvme: pass nr_maps explicitly to nvme_alloc_io_tag_set regulator: qcom-labibb: Fix missing of_node_put() in qcom_labibb_regulator_probe() media: c8sectpfe: Add of_node_put() when breaking out of loop media: coda: Add check for dcoda_iram_alloc media: coda: Add check for kmalloc media: staging: stkwebcam: Restore MEDIA_{USB,CAMERA}_SUPPORT dependencies clk: samsung: Fix memory leak in _samsung_clk_register_pll() spi: spi-gpio: Don't set MOSI as an input if not 3WIRE mode wifi: rtl8xxxu: Add __packed to struct rtl8723bu_c2h wifi: rtl8xxxu: Fix the channel width reporting wifi: brcmfmac: Fix error return code in brcmf_sdio_download_firmware() blktrace: Fix output non-blktrace event when blk_classic option enabled bpf: Do not zero-extend kfunc return values clk: socfpga: Fix memory leak in socfpga_gate_init() net: vmw_vsock: vmci: Check memcpy_from_msg() net: defxx: Fix missing err handling in dfx_init() net: stmmac: selftests: fix potential memleak in stmmac_test_arpoffload() net: stmmac: fix possible memory leak in stmmac_dvr_probe() drivers: net: qlcnic: Fix potential memory leak in qlcnic_sriov_init() ipvs: use u64_stats_t for the per-cpu counters of: overlay: fix null pointer dereferencing in find_dup_cset_node_entry() and find_dup_cset_prop() ethernet: s2io: don't call dev_kfree_skb() under spin_lock_irqsave() net: farsync: Fix kmemleak when rmmods farsync net/tunnel: wait until all sk_user_data reader finish before releasing the sock net: apple: mace: don't call dev_kfree_skb() under spin_lock_irqsave() net: apple: bmac: don't call dev_kfree_skb() under spin_lock_irqsave() net: emaclite: don't call dev_kfree_skb() under spin_lock_irqsave() net: ethernet: dnet: don't call dev_kfree_skb() under spin_lock_irqsave() hamradio: don't call dev_kfree_skb() under spin_lock_irqsave() net: amd: lance: don't call dev_kfree_skb() under spin_lock_irqsave() net: setsockopt: fix IPV6_UNICAST_IF option for connected sockets af_unix: call proto_unregister() in the error path in af_unix_init() net: amd-xgbe: Fix logic around active and passive cables net: amd-xgbe: Check only the minimum speed for active/passive cables can: tcan4x5x: Remove invalid write in clear_interrupts can: m_can: Call the RAM init directly from m_can_chip_config can: tcan4x5x: Fix use of register error status mask net: ethernet: ti: am65-cpsw: Fix PM runtime leakage in am65_cpsw_nuss_ndo_slave_open() net: lan9303: Fix read error execution path ntb_netdev: Use dev_kfree_skb_any() in interrupt context sctp: sysctl: make extra pointers netns aware Bluetooth: hci_core: fix error handling in hci_register_dev() Bluetooth: MGMT: Fix error report for ADD_EXT_ADV_PARAMS Bluetooth: Fix EALREADY and ELOOP cases in bt_status() Bluetooth: hci_conn: Fix crash on hci_create_cis_sync Bluetooth: btintel: Fix missing free skb in btintel_setup_combined() Bluetooth: btusb: don't call kfree_skb() under spin_lock_irqsave() Bluetooth: hci_qca: don't call kfree_skb() under spin_lock_irqsave() Bluetooth: hci_ll: don't call kfree_skb() under spin_lock_irqsave() Bluetooth: hci_h5: don't call kfree_skb() under spin_lock_irqsave() Bluetooth: hci_bcsp: don't call kfree_skb() under spin_lock_irqsave() Bluetooth: hci_core: don't call kfree_skb() under spin_lock_irqsave() Bluetooth: RFCOMM: don't call kfree_skb() under spin_lock_irqsave() octeontx2-af: cn10k: mcs: Fix a resource leak in the probe and remove functions stmmac: fix potential division by 0 i40e: Fix the inability to attach XDP program on downed interface net: dsa: tag_8021q: avoid leaking ctx on dsa_tag_8021q_register() error path apparmor: fix a memleak in multi_transaction_new() apparmor: fix lockdep warning when removing a namespace apparmor: Fix abi check to include v8 abi apparmor: Fix regression in stacking due to label flags crypto: hisilicon/qm - fix incorrect parameters usage crypto: hisilicon/qm - re-enable communicate interrupt before notifying PF crypto: sun8i-ss - use dma_addr instead u32 crypto: nitrox - avoid double free on error path in nitrox_sriov_init() crypto: tcrypt - fix return value for multiple subtests scsi: core: Fix a race between scsi_done() and scsi_timeout() apparmor: Use pointer to struct aa_label for lbs_cred PCI: dwc: Fix n_fts[] array overrun RDMA/core: Fix order of nldev_exit call PCI: pci-epf-test: Register notifier if only core_init_notifier is enabled f2fs: Fix the race condition of resize flag between resizefs crypto: rockchip - do not do custom power management crypto: rockchip - do not store mode globally crypto: rockchip - add fallback for cipher crypto: rockchip - add fallback for ahash crypto: rockchip - better handle cipher key crypto: rockchip - remove non-aligned handling crypto: rockchip - rework by using crypto_engine apparmor: Fix memleak in alloc_ns() fortify: Do not cast to "unsigned char" f2fs: fix to invalidate dcc->f2fs_issue_discard in error path f2fs: fix gc mode when gc_urgent_high_remaining is 1 f2fs: fix normal discard process f2fs: allow to set compression for inlined file f2fs: fix the assign logic of iocb f2fs: fix to destroy sbi->post_read_wq in error path of f2fs_fill_super() RDMA/irdma: Report the correct link speed scsi: qla2xxx: Fix set-but-not-used variable warnings RDMA/siw: Fix immediate work request flush to completion queue IB/mad: Don't call to function that might sleep while in atomic context PCI: vmd: Disable MSI remapping after suspend PCI: imx6: Initialize PHY before deasserting core reset f2fs: fix to avoid accessing uninitialized spinlock RDMA/restrack: Release MR restrack when delete RDMA/core: Make sure "ib_port" is valid when access sysfs node RDMA/nldev: Return "-EAGAIN" if the cm_id isn't from expected port RDMA/siw: Set defined status for work completion with undefined status RDMA/irdma: Fix inline for multiple SGE's RDMA/irdma: Fix RQ completion opcode RDMA/irdma: Do not request 2-level PBLEs for CQ alloc scsi: scsi_debug: Fix a warning in resp_write_scat() crypto: ccree - Remove debugfs when platform_driver_register failed crypto: cryptd - Use request context instead of stack for sub-request crypto: hisilicon/qm - add missing pci_dev_put() in q_num_set() RDMA/rxe: Fix mr->map double free RDMA/hns: Fix ext_sge num error when post send RDMA/hns: Fix incorrect sge nums calculation PCI: Check for alloc failure in pci_request_irq() RDMA/hfi: Decrease PCI device reference count in error path crypto: ccree - Make cc_debugfs_global_fini() available for module init function RDMA/irdma: Initialize net_type before checking it RDMA/hns: fix memory leak in hns_roce_alloc_mr() RDMA/rxe: Fix NULL-ptr-deref in rxe_qp_do_cleanup() when socket create failed dt-bindings: imx6q-pcie: Fix clock names for imx6sx and imx8mq dt-bindings: visconti-pcie: Fix interrupts array max constraints PCI: endpoint: pci-epf-vntb: Fix call pci_epc_mem_free_addr() in error path scsi: hpsa: Fix possible memory leak in hpsa_init_one() crypto: tcrypt - Fix multibuffer skcipher speed test mem leak padata: Always leave BHs disabled when running ->parallel() padata: Fix list iterator in padata_do_serial() crypto: x86/aegis128 - fix possible crash with CFI enabled crypto: x86/aria - fix crash with CFI enabled crypto: x86/sha1 - fix possible crash with CFI enabled crypto: x86/sha256 - fix possible crash with CFI enabled crypto: x86/sha512 - fix possible crash with CFI enabled crypto: x86/sm3 - fix possible crash with CFI enabled crypto: x86/sm4 - fix crash with CFI enabled crypto: arm64/sm3 - add NEON assembly implementation crypto: arm64/sm3 - fix possible crash with CFI enabled crypto: hisilicon/qm - fix 'QM_XEQ_DEPTH_CAP' mask value scsi: mpt3sas: Fix possible resource leaks in mpt3sas_transport_port_add() scsi: hpsa: Fix error handling in hpsa_add_sas_host() scsi: hpsa: Fix possible memory leak in hpsa_add_sas_device() scsi: efct: Fix possible memleak in efct_device_init() scsi: scsi_debug: Fix a warning in resp_verify() scsi: scsi_debug: Fix a warning in resp_report_zones() scsi: fcoe: Fix possible name leak when device_register() fails scsi: scsi_debug: Fix possible name leak in sdebug_add_host_helper() scsi: ipr: Fix WARNING in ipr_init() scsi: fcoe: Fix transport not deattached when fcoe_if_init() fails scsi: snic: Fix possible UAF in snic_tgt_create() scsi: ufs: core: Fix the polling implementation RDMA/nldev: Add checks for nla_nest_start() in fill_stat_counter_qps() f2fs: set zstd compress level correctly f2fs: fix to enable compress for newly created file if extension matches f2fs: avoid victim selection from previous victim section RDMA/nldev: Fix failure to send large messages crypto: qat - fix error return code in adf_probe crypto: amlogic - Remove kcalloc without check crypto: omap-sham - Use pm_runtime_resume_and_get() in omap_sham_probe() riscv/mm: add arch hook arch_clear_hugepage_flags RDMA: Disable IB HW for UML RDMA/hfi1: Fix error return code in parse_platform_config() RDMA/srp: Fix error return code in srp_parse_options() PCI: vmd: Fix secondary bus reset for Intel bridges orangefs: Fix sysfs not cleanup when dev init failed RDMA/hns: Fix the gid problem caused by free mr RDMA/hns: Fix AH attr queried by query_qp RDMA/hns: Fix PBL page MTR find RDMA/hns: Fix page size cap from firmware RDMA/hns: Fix error code of CMD RDMA/hns: Fix XRC caps on HIP08 RISC-V: Fix unannoted hardirqs-on in return to userspace slow-path RISC-V: Fix MEMREMAP_WB for systems with Svpbmt riscv: Fix crash during early errata patching crypto: img-hash - Fix variable dereferenced before check 'hdev->req' hwrng: amd - Fix PCI device refcount leak hwrng: geode - Fix PCI device refcount leak IB/IPoIB: Fix queue count inconsistency for PKEY child interfaces RISC-V: Align the shadow stack f2fs: fix iostat parameter for discard riscv: Fix P4D_SHIFT definition for 3-level page table mode drivers: dio: fix possible memory leak in dio_init() serial: tegra: Read DMA status before terminating serial: 8250_bcm7271: Fix error handling in brcmuart_init() drivers: staging: r8188eu: Fix sleep-in-atomic-context bug in rtw_join_timeout_handler class: fix possible memory leak in __class_register() vfio: platform: Do not pass return buffer to ACPI _RST method vfio/iova_bitmap: Fix PAGE_SIZE unaligned bitmaps uio: uio_dmem_genirq: Fix missing unlock in irq configuration uio: uio_dmem_genirq: Fix deadlock between irq config and handling usb: fotg210-udc: Fix ages old endianness issues interconnect: qcom: sc7180: fix dropped const of qcom_icc_bcm staging: vme_user: Fix possible UAF in tsi148_dma_list_add usb: typec: Check for ops->exit instead of ops->enter in altmode_exit usb: typec: tcpci: fix of node refcount leak in tcpci_register_port() usb: typec: tipd: Cleanup resources if devm_tps6598_psy_register fails usb: typec: tipd: Fix spurious fwnode_handle_put in error path usb: typec: tipd: Fix typec_unregister_port error paths usb: musb: omap2430: Fix probe regression for missing resources extcon: usbc-tusb320: Update state on probe even if no IRQ pending USB: gadget: Fix use-after-free during usb config switch serial: amba-pl011: avoid SBSA UART accessing DMACR register serial: pl011: Do not clear RX FIFO & RX interrupt in unthrottle. serial: stm32: move dma_request_chan() before clk_prepare_enable() serial: pch: Fix PCI device refcount leak in pch_request_dma() serial: altera_uart: fix locking in polling mode serial: sunsab: Fix error handling in sunsab_init() habanalabs: fix return value check in hl_fw_get_sec_attest_data() test_firmware: fix memory leak in test_firmware_init() misc: ocxl: fix possible name leak in ocxl_file_register_afu() ocxl: fix pci device refcount leak when calling get_function_0() misc: tifm: fix possible memory leak in tifm_7xx1_switch_media() misc: sgi-gru: fix use-after-free error in gru_set_context_option, gru_fault and gru_handle_user_call_os firmware: raspberrypi: fix possible memory leak in rpi_firmware_probe() cxl: fix possible null-ptr-deref in cxl_guest_init_afu|adapter() cxl: fix possible null-ptr-deref in cxl_pci_init_afu|adapter() iio: temperature: ltc2983: make bulk write buffer DMA-safe iio: adis: add '__adis_enable_irq()' implementation counter: stm32-lptimer-cnt: fix the check on arr and cmp registers update coresight: trbe: remove cpuhp instance node before remove cpuhp state coresight: cti: Fix null pointer error on CTI init before ETM tracing/user_events: Fix call print_fmt leak usb: roles: fix of node refcount leak in usb_role_switch_is_parent() usb: core: hcd: Fix return value check in usb_hcd_setup_local_mem() usb: gadget: f_hid: fix f_hidg lifetime vs cdev usb: gadget: f_hid: fix refcount leak on error path drivers: mcb: fix resource leak in mcb_probe() mcb: mcb-parse: fix error handing in chameleon_parse_gdd() chardev: fix error handling in cdev_device_add() vfio/iova_bitmap: refactor iova_bitmap_set() to better handle page boundaries i2c: pxa-pci: fix missing pci_disable_device() on error in ce4100_i2c_probe staging: rtl8192u: Fix use after free in ieee80211_rx() staging: rtl8192e: Fix potential use-after-free in rtllib_rx_Monitor() vme: Fix error not catched in fake_init() gpiolib: cdev: fix NULL-pointer dereferences gpiolib: protect the GPIO device against being dropped while in use by user-space i2c: mux: reg: check return value after calling platform_get_resource() i2c: ismt: Fix an out-of-bounds bug in ismt_access() usb: storage: Add check for kcalloc usb: typec: wusb3801: fix fwnode refcount leak in wusb3801_probe() tracing/hist: Fix issue of losting command info in error_log ksmbd: Fix resource leak in ksmbd_session_rpc_open() samples: vfio-mdev: Fix missing pci_disable_device() in mdpy_fb_probe() thermal/drivers/imx8mm_thermal: Validate temperature range thermal/drivers/k3_j72xx_bandgap: Fix the debug print message thermal/of: Fix memory leak on thermal_of_zone_register() failure thermal/drivers/qcom/temp-alarm: Fix inaccurate warning for gen2 thermal/drivers/qcom/lmh: Fix irq handler return value fbdev: ssd1307fb: Drop optional dependency fbdev: pm2fb: fix missing pci_disable_device() fbdev: via: Fix error in via_core_init() fbdev: vermilion: decrease reference count in error path fbdev: ep93xx-fb: Add missing clk_disable_unprepare in ep93xxfb_probe() fbdev: geode: don't build on UML fbdev: uvesafb: don't build on UML fbdev: uvesafb: Fixes an error handling path in uvesafb_probe() led: qcom-lpg: Fix sleeping in atomic perf tools: Fix "kernel lock contention analysis" test by not printing warnings in quiet mode perf stat: Use evsel__is_hybrid() more perf stat: Move common code in print_metric_headers() HSI: omap_ssi_core: fix unbalanced pm_runtime_disable() HSI: omap_ssi_core: fix possible memory leak in ssi_probe() power: supply: fix residue sysfs file in error handle route of __power_supply_register() watchdog: iTCO_wdt: Set NO_REBOOT if the watchdog is not already running perf trace: Return error if a system call doesn't exist perf trace: Use macro RAW_SYSCALL_ARGS_NUM to replace number perf trace: Handle failure when trace point folder is missed perf symbol: correction while adjusting symbol power: supply: z2_battery: Fix possible memleak in z2_batt_probe() power: supply: cw2015: Fix potential null-ptr-deref in cw_bat_probe() HSI: omap_ssi_core: Fix error handling in ssi_init() power: supply: ab8500: Fix error handling in ab8500_charger_init() power: supply: Fix refcount leak in rk817_charger_probe power: supply: bq25890: Factor out regulator registration code power: supply: bq25890: Convert to i2c's .probe_new() power: supply: bq25890: Ensure pump_express_work is cancelled on remove perf branch: Fix interpretation of branch records power: supply: fix null pointer dereferencing in power_supply_get_battery_info gfs2: Partially revert gfs2_inode_lookup change leds: is31fl319x: Fix setting current limit for is31fl319{0,1,3} perf off_cpu: Fix a typo in BTF tracepoint name, it should be 'btf_trace_sched_switch' ftrace: Allow WITH_ARGS flavour of graph tracer with shadow call stack perf stat: Do not delay the workload with --delay RDMA/siw: Fix pointer cast warning fs/ntfs3: Avoid UBSAN error on true_sectors_per_clst() fs/ntfs3: Harden against integer overflows phy: marvell: phy-mvebu-a3700-comphy: Reset COMPHY registers before USB 3.0 power on phy: qcom-qmp-pcie: drop bogus register update dmaengine: idxd: Make max batch size attributes in sysfs invisible for Intel IAA dmaengine: apple-admac: Allocate cache SRAM to channels remoteproc: core: Auto select rproc-virtio device id phy: qcom-qmp-pcie: drop power-down delay config phy: qcom-qmp-pcie: replace power-down delay phy: qcom-qmp-pcie: fix sc8180x initialisation phy: qcom-qmp-pcie: fix ipq8074-gen3 initialisation phy: qcom-qmp-pcie: fix ipq6018 initialisation phy: qcom-qmp-usb: clean up power-down handling phy: qcom-qmp-usb: drop sc8280xp power-down delay phy: qcom-qmp-usb: drop power-down delay config phy: qcom-qmp-usb: clean up status polling phy: qcom-qmp-usb: drop start and pwrdn-ctrl abstraction phy: qcom-qmp-usb: correct registers layout for IPQ8074 USB3 PHY iommu/s390: Fix duplicate domain attachments iommu/sun50i: Fix reset release iommu/sun50i: Consider all fault sources for reset iommu/sun50i: Fix R/W permission check iommu/sun50i: Fix flush size iommu/sun50i: Implement .iotlb_sync_map iommu/rockchip: fix permission bits in page table entries v2 dmaengine: idxd: Make read buffer sysfs attributes invisible for Intel IAA phy: qcom-qmp-usb: fix sc8280xp PCS_USB offset phy: usb: s2 WoL wakeup_count not incremented for USB->Eth devices phy: usb: Use slow clock for wake enabled suspend phy: usb: Fix clock imbalance for suspend/resume include/uapi/linux/swab: Fix potentially missing __always_inline pwm: tegra: Improve required rate calculation pwm: tegra: Ensure the clock rate is not less than needed phy: qcom-qmp-pcie: split register tables into common and extra parts phy: qcom-qmp-pcie: split pcs_misc init cfg for ipq8074 pcs table phy: qcom-qmp-pcie: support separate tables for EP mode phy: qcom-qmp-pcie: Support SM8450 PCIe1 PHY in EP mode phy: qcom-qmp-pcie: Fix high latency with 4x2 PHY when ASPM is enabled phy: qcom-qmp-pcie: Fix sm8450_qmp_gen4x2_pcie_pcs_tbl[] register names fs/ntfs3: Fix slab-out-of-bounds read in ntfs_trim_fs dmaengine: idxd: Fix crc_val field for completion record rtc: rzn1: Check return value in rzn1_rtc_probe rtc: class: Fix potential memleak in devm_rtc_allocate_device() rtc: pcf2127: Convert to .probe_new() rtc: cmos: Call cmos_wake_setup() from cmos_do_probe() rtc: cmos: Call rtc_wake_setup() from cmos_do_probe() rtc: cmos: Eliminate forward declarations of some functions rtc: cmos: Rename ACPI-related functions rtc: cmos: Disable ACPI RTC event on removal rtc: snvs: Allow a time difference on clock register read rtc: pcf85063: Fix reading alarm iommu/mediatek: Check return value after calling platform_get_resource() iommu: Avoid races around device probe iommu/amd: Fix pci device refcount leak in ppr_notifier() iommu/fsl_pamu: Fix resource leak in fsl_pamu_probe() macintosh: fix possible memory leak in macio_add_one_device() macintosh/macio-adb: check the return value of ioremap() powerpc/52xx: Fix a resource leak in an error handling path cxl: Fix refcount leak in cxl_calc_capp_routing powerpc/xmon: Fix -Wswitch-unreachable warning in bpt_cmds powerpc/xive: add missing iounmap() in error path in xive_spapr_populate_irq_data() powerpc/pseries: fix the object owners enum value in plpks driver powerpc/pseries: Fix the H_CALL error code in PLPKS driver powerpc/pseries: Return -EIO instead of -EINTR for H_ABORTED error powerpc/pseries: fix plpks_read_var() code for different consumers kprobes: Fix check for probe enabled in kill_kprobe() powerpc: dts: turris1x.dts: Add channel labels for temperature sensor powerpc/perf: callchain validate kernel stack pointer bounds powerpc/83xx/mpc832x_rdb: call platform_device_put() in error case in of_fsl_spi_probe() powerpc/hv-gpci: Fix hv_gpci event list selftests/powerpc: Fix resource leaks iommu/mediatek: Add platform_device_put for recovering the device refcnt iommu/mediatek: Use component_match_add iommu/mediatek: Add error path for loop of mm_dts_parse iommu/mediatek: Validate number of phandles associated with "mediatek,larbs" iommu/sun50i: Remove IOMMU_DOMAIN_IDENTITY pwm: sifive: Call pwm_sifive_update_clock() while mutex is held pwm: mtk-disp: Fix the parameters calculated by the enabled flag of disp_pwm pwm: mediatek: always use bus clock for PWM on MT7622 RISC-V: KVM: Fix reg_val check in kvm_riscv_vcpu_set_reg_config() remoteproc: sysmon: fix memory leak in qcom_add_sysmon_subdev() remoteproc: qcom: q6v5: Fix potential null-ptr-deref in q6v5_wcss_init_mmio() remoteproc: qcom_q6v5_pas: disable wakeup on probe fail or remove remoteproc: qcom_q6v5_pas: detach power domains on remove remoteproc: qcom_q6v5_pas: Fix missing of_node_put() in adsp_alloc_memory_region() remoteproc: qcom: q6v5: Fix missing clk_disable_unprepare() in q6v5_wcss_qcs404_power_on() powerpc/pseries/eeh: use correct API for error log size dt-bindings: mfd: qcom,spmi-pmic: Drop PWM reg dependency mfd: axp20x: Do not sleep in the power off handler mfd: bd957x: Fix Kconfig dependency on REGMAP_IRQ mfd: qcom_rpm: Fix an error handling path in qcom_rpm_probe() mfd: pm8008: Fix return value check in pm8008_probe() netfilter: flowtable: really fix NAT IPv6 offload rtc: st-lpc: Add missing clk_disable_unprepare in st_rtc_probe() rtc: pic32: Move devm_rtc_allocate_device earlier in pic32_rtc_probe() rtc: pcf85063: fix pcf85063_clkout_control iommu/mediatek: Fix forever loop in error handling nfsd: under NFSv4.1, fix double svc_xprt_put on rpc_create failure net: macsec: fix net device access prior to holding a lock bonding: add missed __rcu annotation for curr_active_slave bonding: do failover when high prio link up mISDN: hfcsusb: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave() mISDN: hfcpci: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave() mISDN: hfcmulti: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave() block, bfq: fix possible uaf for 'bfqq->bic' selftests/bpf: Select CONFIG_FUNCTION_ERROR_INJECTION bpf: prevent leak of lsm program after failed attach media: v4l2-ctrls-api.c: add back dropped ctrl->is_new = 1 net: enetc: avoid buffer leaks on xdp_do_redirect() failure nfc: pn533: Clear nfc_target before being used unix: Fix race in SOCK_SEQPACKET's unix_dgram_sendmsg() r6040: Fix kmemleak in probe and remove net: dsa: mv88e6xxx: avoid reg_lock deadlock in mv88e6xxx_setup_port() igc: Enhance Qbv scheduling by using first flag bit igc: Use strict cycles for Qbv scheduling igc: Add checking for basetime less than zero igc: allow BaseTime 0 enrollment for Qbv igc: recalculate Qbv end_time by considering cycle time igc: Set Qbv start_time and end_time to end_time if not being configured in GCL rtc: mxc_v2: Add missing clk_disable_unprepare() devlink: hold region lock when flushing snapshots selftests: devlink: fix the fd redirect in dummy_reporter_test openvswitch: Fix flow lookup to use unmasked key soc: mediatek: pm-domains: Fix the power glitch issue arm64: dts: mt8183: Fix Mali GPU clock devlink: protect devlink dump by the instance lock skbuff: Account for tail adjustment during pull operations mailbox: mpfs: read the system controller's status mailbox: arm_mhuv2: Fix return value check in mhuv2_probe() mailbox: zynq-ipi: fix error handling while device_register() fails net_sched: reject TCF_EM_SIMPLE case for complex ematch module rxrpc: Fix missing unlock in rxrpc_do_sendmsg() myri10ge: Fix an error handling path in myri10ge_probe() net: stream: purge sk_error_queue in sk_stream_kill_queues() mctp: serial: Fix starting value for frame check sequence cifs: don't leak -ENOMEM in smb2_open_file() net: dsa: microchip: remove IRQF_TRIGGER_FALLING in request_threaded_irq mctp: Remove device type check at unregister HID: amd_sfh: Add missing check for dma_alloc_coherent net: fec: check the return value of build_skb() rcu: Fix __this_cpu_read() lockdep warning in rcu_force_quiescent_state() arm64: make is_ttbrX_addr() noinstr-safe ARM: dts: aspeed: rainier,everest: Move reserved memory regions video: hyperv_fb: Avoid taking busy spinlock on panic path x86/hyperv: Remove unregister syscore call from Hyper-V cleanup binfmt_misc: fix shift-out-of-bounds in check_special_flags arm64: dts: qcom: sm8450: disable SDHCI SDR104/SDR50 on all boards arm64: dts: qcom: sm6350: Add apps_smmu with streamID to SDHCI 1/2 nodes fs: jfs: fix shift-out-of-bounds in dbAllocAG udf: Avoid double brelse() in udf_rename() jfs: Fix fortify moan in symlink fs: jfs: fix shift-out-of-bounds in dbDiscardAG ACPI: processor: idle: Check acpi_fetch_acpi_dev() return value ACPI: EC: Add quirk for the HP Pavilion Gaming 15-cx0041ur ACPICA: Fix error code path in acpi_ds_call_control_method() thermal/core: Ensure that thermal device is registered in thermal_zone_get_temp ACPI: video: Change GIGABYTE GB-BXBT-2807 quirk to force_none ACPI: video: Change Sony Vaio VPCEH3U1E quirk to force_native ACPI: video: Add force_vendor quirk for Sony Vaio PCG-FRV35 ACPI: video: Add force_native quirk for Sony Vaio VPCY11S1E nilfs2: fix shift-out-of-bounds/overflow in nilfs_sb2_bad_offset() nilfs2: fix shift-out-of-bounds due to too large exponent of block size acct: fix potential integer overflow in encode_comp_t() x86/apic: Handle no CONFIG_X86_X2APIC on systems with x2APIC enabled by BIOS ACPI: x86: Add skip i2c clients quirk for Lenovo Yoga Tab 3 Pro (YT3-X90F) btrfs: do not panic if we can't allocate a prealloc extent state ACPI: x86: Add skip i2c clients quirk for Medion Lifetab S10346 hfs: fix OOB Read in __hfs_brec_find drm/etnaviv: add missing quirks for GC300 media: imx-jpeg: Disable useless interrupt to avoid kernel panic brcmfmac: return error when getting invalid max_flowrings from dongle wifi: ath9k: verify the expected usb_endpoints are present wifi: ar5523: Fix use-after-free on ar5523_cmd() timed out ASoC: codecs: rt298: Add quirk for KBL-R RVP platform ASoC: Intel: avs: Add quirk for KBL-R RVP platform ipmi: fix memleak when unload ipmi driver wifi: ath10k: Delay the unmapping of the buffer openvswitch: Use kmalloc_size_roundup() to match ksize() usage bnx2: Use kmalloc_size_roundup() to match ksize() usage drm/amd/display: skip commit minimal transition state drm/amd/display: prevent memory leak drm/edid: add a quirk for two LG monitors to get them to work on 10bpc Revert "drm/amd/display: Limit max DSC target bpp for specific monitors" drm/rockchip: use pm_runtime_resume_and_get() instead of pm_runtime_get_sync() blk-mq: avoid double ->queue_rq() because of early timeout HID: apple: fix key translations where multiple quirks attempt to translate the same key HID: apple: enable APPLE_ISO_TILDE_QUIRK for the keyboards of Macs with the T2 chip wifi: ath11k: Fix qmi_msg_handler data structure initialization qed (gcc13): use u16 for fid to be big enough drm/meson: Fix return type of meson_encoder_cvbs_mode_valid() bpf: make sure skb->len != 0 when redirecting to a tunneling device net: ethernet: ti: Fix return type of netcp_ndo_start_xmit() hamradio: baycom_epp: Fix return type of baycom_send_packet() wifi: brcmfmac: Fix potential shift-out-of-bounds in brcmf_fw_alloc_request() wifi: brcmfmac: Fix potential NULL pointer dereference in 'brcmf_c_preinit_dcmds()' HID: input: do not query XP-PEN Deco LW battery HID: uclogic: Add support for XP-PEN Deco LW igb: Do not free q_vector unless new one was allocated drm/amdgpu: Fix type of second parameter in trans_msg() callback drm/amdgpu: Fix type of second parameter in odn_edit_dpm_table() callback s390/ctcm: Fix return type of ctc{mp,}m_tx() s390/netiucv: Fix return type of netiucv_tx() s390/lcs: Fix return type of lcs_start_xmit() drm/amd/display: Use min transition for SubVP into MPO drm/amd/display: Disable DRR actions during state commit drm/msm: Use drm_mode_copy() drm/rockchip: Use drm_mode_copy() drm/sti: Use drm_mode_copy() drm/mediatek: Fix return type of mtk_hdmi_bridge_mode_valid() drivers/md/md-bitmap: check the return value of md_bitmap_get_counter() md/raid0, raid10: Don't set discard sectors for request queue md/raid1: stop mdx_raid1 thread when raid1 array run failed drm/amd/display: Workaround to increase phantom pipe vactive in pipesplit drm/amd/display: fix array index out of bound error in bios parser nvme-auth: don't override ctrl keys before validation net: add atomic_long_t to net_device_stats fields ipv6/sit: use DEV_STATS_INC() to avoid data-races mrp: introduce active flags to prevent UAF when applicant uninit net: ethernet: mtk_eth_soc: drop packets to WDMA if the ring is full bpf/verifier: Use kmalloc_size_roundup() to match ksize() usage ppp: associate skb with a device at tx drm/amd/display: Fix display corruption w/ VSR enable bpf: Fix a BTF_ID_LIST bug with CONFIG_DEBUG_INFO_BTF not set bpf: Prevent decl_tag from being referenced in func_proto arg ethtool: avoiding integer overflow in ethtool_phys_id() media: dvb-frontends: fix leak of memory fw media: dvbdev: adopts refcnt to avoid UAF media: dvb-usb: fix memory leak in dvb_usb_adapter_init() media: mediatek: vcodec: Can't set dst buffer to done when lat decode error blk-mq: fix possible memleak when register 'hctx' failed ALSA: usb-audio: Add quirk for Tascam Model 12 drm/amdgpu: Fix potential double free and null pointer dereference drm/amd/display: Use the largest vready_offset in pipe group drm/amd/display: Fix DTBCLK disable requests and SRC_SEL programming ASoC: amd: yc: Add Xiaomi Redmi Book Pro 14 2022 into DMI table libbpf: Avoid enum forward-declarations in public API in C++ mode regulator: core: fix use_count leakage when handling boot-on wifi: mt76: do not run mt76u_status_worker if the device is not running hwmon: (nct6775) add ASUS CROSSHAIR VIII/TUF/ProArt B550M selftests/bpf: Fix conflicts with built-in functions in bpf_iter_ksym nfs: fix possible null-ptr-deref when parsing param mmc: f-sdh30: Add quirks for broken timeout clock capability mmc: renesas_sdhi: add quirk for broken register layout mmc: renesas_sdhi: better reset from HS400 mode mmc: sdhci-tegra: Issue CMD and DAT resets together media: si470x: Fix use-after-free in si470x_int_in_callback() clk: st: Fix memory leak in st_of_quadfs_setup() regulator: core: Use different devices for resource allocation and DT lookup ice: synchronize the misc IRQ when tearing down Tx tracker Bluetooth: hci_bcm: Add CYW4373A0 support Bluetooth: Add quirk to disable extended scanning Bluetooth: Add quirk to disable MWS Transport Configuration regulator: core: Fix resolve supply lookup issue crypto: hisilicon/hpre - fix resource leak in remove process scsi: lpfc: Fix hard lockup when reading the rx_monitor from debugfs scsi: ufs: Reduce the START STOP UNIT timeout crypto: hisilicon/qm - increase the memory of local variables Revert "PCI: Clear PCI_STATUS when setting up device" scsi: elx: libefc: Fix second parameter type in state callbacks hugetlbfs: fix null-ptr-deref in hugetlbfs_parse_param() scsi: smartpqi: Add new controller PCI IDs scsi: smartpqi: Correct device removal for multi-actuator devices drm/fsl-dcu: Fix return type of fsl_dcu_drm_connector_mode_valid() drm/sti: Fix return type of sti_{dvo,hda,hdmi}_connector_mode_valid() scsi: target: iscsi: Fix a race condition between login_work and the login thread orangefs: Fix kmemleak in orangefs_prepare_debugfs_help_string() orangefs: Fix kmemleak in orangefs_sysfs_init() orangefs: Fix kmemleak in orangefs_{kernel,client}_debug_init() hwmon: (jc42) Fix missing unlock on error in jc42_write() ASoC: sof_es8336: fix possible use-after-free in sof_es8336_remove() ASoC: Intel: Skylake: Fix driver hang during shutdown ASoC: mediatek: mt8173-rt5650-rt5514: fix refcount leak in mt8173_rt5650_rt5514_dev_probe() ASoC: audio-graph-card: fix refcount leak of cpu_ep in __graph_for_each_link() ASoC: rockchip: pdm: Add missing clk_disable_unprepare() in rockchip_pdm_runtime_resume() ASoC: mediatek: mt8183: fix refcount leak in mt8183_mt6358_ts3a227_max98357_dev_probe() ALSA: hda/hdmi: fix i915 silent stream programming flow ALSA: hda/hdmi: set default audio parameters for KAE silent-stream ALSA: hda/hdmi: fix stream-id config keep-alive for rt suspend ASoC: wm8994: Fix potential deadlock ASoC: rockchip: spdif: Add missing clk_disable_unprepare() in rk_spdif_runtime_resume() ASoC: rt5670: Remove unbalanced pm_runtime_put() drm/i915/display: Don't disable DDI/Transcoder when setting phy test pattern LoadPin: Ignore the "contents" argument of the LSM hooks lkdtm: cfi: Make PAC test work with GCC 7 and 8 pstore: Switch pmsg_lock to an rt_mutex to avoid priority inversion drm/amd/pm: avoid large variable on kernel stack perf debug: Set debug_peo_args and redirect_to_stderr variable to correct values in perf_quiet_option() perf tools: Make quiet mode consistent between tools perf probe: Check -v and -q options in the right place MIPS: ralink: mt7621: avoid to init common ralink reset controller perf test: Fix "all PMU test" to skip parametrized events afs: Fix lost servers_outstanding count cfi: Fix CFI failure with KASAN pstore: Make sure CONFIG_PSTORE_PMSG selects CONFIG_RT_MUTEXES ima: Simplify ima_lsm_copy_rule Input: iqs7222 - drop unused device node references Input: iqs7222 - report malformed properties Input: iqs7222 - add support for IQS7222A v1.13+ dt-bindings: input: iqs7222: Reduce 'linux,code' to optional dt-bindings: input: iqs7222: Correct minimum slider size dt-bindings: input: iqs7222: Add support for IQS7222A v1.13+ ALSA: usb-audio: Workaround for XRUN at prepare ALSA: usb-audio: add the quirk for KT0206 device ALSA: hda/realtek: Add quirk for Lenovo TianYi510Pro-14IOB ALSA: hda/hdmi: Add HP Device 0x8711 to force connect list HID: logitech-hidpp: Guard FF init code against non-USB devices usb: cdnsp: fix lack of ZLP for ep0 usb: xhci-mtk: fix leakage of shared hcd when fail to set wakeup irq arm64: dts: qcom: sm6350: fix USB-DP PHY registers arm64: dts: qcom: sm8250: fix USB-DP PHY registers dt-bindings: clocks: imx8mp: Add ID for usb suspend clock clk: imx: imx8mp: add shared clk gate for usb suspend clk usb: dwc3: Fix race between dwc3_set_mode and __dwc3_set_mode usb: dwc3: core: defer probe on ulpi_read_id timeout usb: dwc3: qcom: Fix memory leak in dwc3_qcom_interconnect_init xhci: Prevent infinite loop in transaction errors recovery for streams HID: wacom: Ensure bootloader PID is usable in hidraw mode HID: mcp2221: don't connect hidraw loop: Fix the max_loop commandline argument treatment when it is set to 0 9p: set req refcount to zero to avoid uninitialized usage security: Restrict CONFIG_ZERO_CALL_USED_REGS to gcc or clang > 15.0.6 reiserfs: Add missing calls to reiserfs_security_free() iio: fix memory leak in iio_device_register_eventset() iio: adc: ad_sigma_delta: do not use internal iio_dev lock iio: adc128s052: add proper .data members in adc128_of_match table iio: addac: ad74413r: fix integer promotion bug in ad74413_get_input_current_offset() regulator: core: fix deadlock on regulator enable spi: fsl_spi: Don't change speed while chipselect is active floppy: Fix memory leak in do_floppy_init() gcov: add support for checksum field test_maple_tree: add test for mas_spanning_rebalance() on insufficient data maple_tree: fix mas_spanning_rebalance() on insufficient data fbdev: fbcon: release buffer when fbcon_do_set_font() failed ovl: fix use inode directly in rcu-walk mode btrfs: do not BUG_ON() on ENOMEM when dropping extent items for a range mm/gup: disallow FOLL_FORCE|FOLL_WRITE on hugetlb mappings scsi: qla2xxx: Fix crash when I/O abort times out blk-iolatency: Fix memory leak on add_disk() failures io_uring/net: introduce IORING_SEND_ZC_REPORT_USAGE flag io_uring: add completion locking for iopoll io_uring: dont remove file from msg_ring reqs io_uring: improve io_double_lock_ctx fail handling io_uring/net: ensure compat import handlers clear free_iov io_uring/net: fix cleanup after recycle io_uring: protect cq_timeouts with timeout_lock io_uring: remove iopoll spinlock net: stmmac: fix errno when create_singlethread_workqueue() fails media: dvbdev: fix build warning due to comments media: dvbdev: fix refcnt bug drm/amd/display: revert Disable DRR actions during state commit mfd: qcom_rpm: Use devm_of_platform_populate() to simplify code pwm: tegra: Fix 32 bit build Linux 6.1.2 Change-Id: I8f7c080f3b8288ed319fc0e25aaefb7ad5cd6b84 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
commit
2712923303
@ -22,6 +22,7 @@ Date: Oct 25, 2019
|
||||
KernelVersion: 5.6.0
|
||||
Contact: dmaengine@vger.kernel.org
|
||||
Description: The largest number of work descriptors in a batch.
|
||||
It's not visible when the device does not support batch.
|
||||
|
||||
What: /sys/bus/dsa/devices/dsa<m>/max_work_queues_size
|
||||
Date: Oct 25, 2019
|
||||
@ -49,6 +50,8 @@ Description: The total number of read buffers supported by this device.
|
||||
The read buffers represent resources within the DSA
|
||||
implementation, and these resources are allocated by engines to
|
||||
support operations. See DSA spec v1.2 9.2.4 Total Read Buffers.
|
||||
It's not visible when the device does not support Read Buffer
|
||||
allocation control.
|
||||
|
||||
What: /sys/bus/dsa/devices/dsa<m>/max_transfer_size
|
||||
Date: Oct 25, 2019
|
||||
@ -122,6 +125,8 @@ Contact: dmaengine@vger.kernel.org
|
||||
Description: The maximum number of read buffers that may be in use at
|
||||
one time by operations that access low bandwidth memory in the
|
||||
device. See DSA spec v1.2 9.2.8 GENCFG on Global Read Buffer Limit.
|
||||
It's not visible when the device does not support Read Buffer
|
||||
allocation control.
|
||||
|
||||
What: /sys/bus/dsa/devices/dsa<m>/cmd_status
|
||||
Date: Aug 28, 2020
|
||||
@ -205,6 +210,7 @@ KernelVersion: 5.10.0
|
||||
Contact: dmaengine@vger.kernel.org
|
||||
Description: The max batch size for this workqueue. Cannot exceed device
|
||||
max batch size. Configurable parameter.
|
||||
It's not visible when the device does not support batch.
|
||||
|
||||
What: /sys/bus/dsa/devices/wq<m>.<n>/ats_disable
|
||||
Date: Nov 13, 2020
|
||||
@ -250,6 +256,8 @@ KernelVersion: 5.17.0
|
||||
Contact: dmaengine@vger.kernel.org
|
||||
Description: Enable the use of global read buffer limit for the group. See DSA
|
||||
spec v1.2 9.2.18 GRPCFG Use Global Read Buffer Limit.
|
||||
It's not visible when the device does not support Read Buffer
|
||||
allocation control.
|
||||
|
||||
What: /sys/bus/dsa/devices/group<m>.<n>/read_buffers_allowed
|
||||
Date: Dec 10, 2021
|
||||
@ -258,6 +266,8 @@ Contact: dmaengine@vger.kernel.org
|
||||
Description: Indicates max number of read buffers that may be in use at one time
|
||||
by all engines in the group. See DSA spec v1.2 9.2.18 GRPCFG Read
|
||||
Buffers Allowed.
|
||||
It's not visible when the device does not support Read Buffer
|
||||
allocation control.
|
||||
|
||||
What: /sys/bus/dsa/devices/group<m>.<n>/read_buffers_reserved
|
||||
Date: Dec 10, 2021
|
||||
@ -266,6 +276,8 @@ Contact: dmaengine@vger.kernel.org
|
||||
Description: Indicates the number of Read Buffers reserved for the use of
|
||||
engines in the group. See DSA spec v1.2 9.2.18 GRPCFG Read Buffers
|
||||
Reserved.
|
||||
It's not visible when the device does not support Read Buffer
|
||||
allocation control.
|
||||
|
||||
What: /sys/bus/dsa/devices/group<m>.<n>/desc_progress_limit
|
||||
Date: Sept 14, 2022
|
||||
|
@ -5,6 +5,9 @@ Contact: linux-mtd@lists.infradead.org
|
||||
Description: (RO) The JEDEC ID of the SPI NOR flash as reported by the
|
||||
flash device.
|
||||
|
||||
The attribute is not present if the flash doesn't support
|
||||
the "Read JEDEC ID" command (9Fh). This is the case for
|
||||
non-JEDEC compliant flashes.
|
||||
|
||||
What: /sys/bus/spi/devices/.../spi-nor/manufacturer
|
||||
Date: April 2021
|
||||
|
@ -1314,6 +1314,29 @@ watchdog work to be queued by the watchdog timer function, otherwise the NMI
|
||||
watchdog — if enabled — can detect a hard lockup condition.
|
||||
|
||||
|
||||
split_lock_mitigate (x86 only)
|
||||
==============================
|
||||
|
||||
On x86, each "split lock" imposes a system-wide performance penalty. On larger
|
||||
systems, large numbers of split locks from unprivileged users can result in
|
||||
denials of service to well-behaved and potentially more important users.
|
||||
|
||||
The kernel mitigates these bad users by detecting split locks and imposing
|
||||
penalties: forcing them to wait and only allowing one core to execute split
|
||||
locks at a time.
|
||||
|
||||
These mitigations can make those bad applications unbearably slow. Setting
|
||||
split_lock_mitigate=0 may restore some application performance, but will also
|
||||
increase system exposure to denial of service attacks from split lock users.
|
||||
|
||||
= ===================================================================
|
||||
0 Disable the mitigation mode - just warns the split lock on kernel log
|
||||
and exposes the system to denials of service from the split lockers.
|
||||
1 Enable the mitigation mode (this is the default) - penalizes the split
|
||||
lockers with intentional performance degradation.
|
||||
= ===================================================================
|
||||
|
||||
|
||||
stack_erasing
|
||||
=============
|
||||
|
||||
|
@ -473,9 +473,6 @@ patternProperties:
|
||||
Specifies whether the event is to be interpreted as a key (1)
|
||||
or a switch (5).
|
||||
|
||||
required:
|
||||
- linux,code
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
dependencies:
|
||||
@ -501,7 +498,7 @@ patternProperties:
|
||||
|
||||
azoteq,slider-size:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
minimum: 1
|
||||
maximum: 65535
|
||||
description:
|
||||
Specifies the slider's one-dimensional resolution, equal to the
|
||||
@ -575,9 +572,9 @@ patternProperties:
|
||||
linux,code: true
|
||||
|
||||
azoteq,gesture-max-ms:
|
||||
multipleOf: 4
|
||||
multipleOf: 16
|
||||
minimum: 0
|
||||
maximum: 1020
|
||||
maximum: 4080
|
||||
description:
|
||||
Specifies the length of time (in ms) within which a tap, swipe
|
||||
or flick gesture must be completed in order to be acknowledged
|
||||
@ -585,9 +582,9 @@ patternProperties:
|
||||
gesture applies to all remaining swipe or flick gestures.
|
||||
|
||||
azoteq,gesture-min-ms:
|
||||
multipleOf: 4
|
||||
multipleOf: 16
|
||||
minimum: 0
|
||||
maximum: 124
|
||||
maximum: 496
|
||||
description:
|
||||
Specifies the length of time (in ms) for which a tap gesture must
|
||||
be held in order to be acknowledged by the device.
|
||||
@ -620,9 +617,6 @@ patternProperties:
|
||||
GPIO, they must all be of the same type (proximity, touch or
|
||||
slider gesture).
|
||||
|
||||
required:
|
||||
- linux,code
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
@ -693,6 +687,7 @@ allOf:
|
||||
properties:
|
||||
azoteq,slider-size:
|
||||
multipleOf: 16
|
||||
minimum: 16
|
||||
maximum: 4080
|
||||
|
||||
azoteq,top-speed:
|
||||
@ -935,14 +930,14 @@ examples:
|
||||
|
||||
event-tap {
|
||||
linux,code = <KEY_PLAYPAUSE>;
|
||||
azoteq,gesture-max-ms = <600>;
|
||||
azoteq,gesture-min-ms = <24>;
|
||||
azoteq,gesture-max-ms = <400>;
|
||||
azoteq,gesture-min-ms = <32>;
|
||||
};
|
||||
|
||||
event-flick-pos {
|
||||
linux,code = <KEY_NEXTSONG>;
|
||||
azoteq,gesture-max-ms = <600>;
|
||||
azoteq,gesture-dist = <816>;
|
||||
azoteq,gesture-max-ms = <800>;
|
||||
azoteq,gesture-dist = <800>;
|
||||
};
|
||||
|
||||
event-flick-neg {
|
||||
|
@ -98,6 +98,10 @@ properties:
|
||||
type: object
|
||||
$ref: /schemas/regulator/qcom,spmi-regulator.yaml#
|
||||
|
||||
pwm:
|
||||
type: object
|
||||
$ref: /schemas/leds/leds-qcom-lpg.yaml#
|
||||
|
||||
patternProperties:
|
||||
"^adc@[0-9a-f]+$":
|
||||
type: object
|
||||
@ -123,10 +127,6 @@ patternProperties:
|
||||
type: object
|
||||
$ref: /schemas/power/reset/qcom,pon.yaml#
|
||||
|
||||
"pwm@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/leds/leds-qcom-lpg.yaml#
|
||||
|
||||
"^rtc@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/rtc/qcom-pm8xxx-rtc.yaml#
|
||||
|
@ -14,9 +14,6 @@ description: |+
|
||||
This PCIe host controller is based on the Synopsys DesignWare PCIe IP
|
||||
and thus inherits all the common properties defined in snps,dw-pcie.yaml.
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/pci/snps,dw-pcie.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
@ -61,7 +58,7 @@ properties:
|
||||
- const: pcie
|
||||
- const: pcie_bus
|
||||
- const: pcie_phy
|
||||
- const: pcie_inbound_axi for imx6sx-pcie, pcie_aux for imx8mq-pcie
|
||||
- enum: [ pcie_inbound_axi, pcie_aux ]
|
||||
|
||||
num-lanes:
|
||||
const: 1
|
||||
@ -175,6 +172,47 @@ required:
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/pci/snps,dw-pcie.yaml#
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: fsl,imx6sx-pcie
|
||||
then:
|
||||
properties:
|
||||
clock-names:
|
||||
items:
|
||||
- {}
|
||||
- {}
|
||||
- {}
|
||||
- const: pcie_inbound_axi
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: fsl,imx8mq-pcie
|
||||
then:
|
||||
properties:
|
||||
clock-names:
|
||||
items:
|
||||
- {}
|
||||
- {}
|
||||
- {}
|
||||
- const: pcie_aux
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
not:
|
||||
contains:
|
||||
enum:
|
||||
- fsl,imx6sx-pcie
|
||||
- fsl,imx8mq-pcie
|
||||
then:
|
||||
properties:
|
||||
clock-names:
|
||||
maxItems: 3
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
|
@ -36,7 +36,7 @@ properties:
|
||||
- const: mpu
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
maxItems: 2
|
||||
|
||||
clocks:
|
||||
items:
|
||||
@ -94,8 +94,9 @@ examples:
|
||||
#interrupt-cells = <1>;
|
||||
ranges = <0x81000000 0 0x40000000 0 0x40000000 0 0x00010000>,
|
||||
<0x82000000 0 0x50000000 0 0x50000000 0 0x20000000>;
|
||||
interrupts = <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "intr";
|
||||
interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "msi", "intr";
|
||||
interrupt-map-mask = <0 0 0 7>;
|
||||
interrupt-map =
|
||||
<0 0 0 1 &gic GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH
|
||||
|
@ -87,6 +87,8 @@ patternProperties:
|
||||
"wifi_led" "led" 1, 2
|
||||
"i2c" "i2c" 3, 4
|
||||
"uart1_0" "uart" 7, 8, 9, 10
|
||||
"uart1_rx_tx" "uart" 42, 43
|
||||
"uart1_cts_rts" "uart" 44, 45
|
||||
"pcie_clk" "pcie" 9
|
||||
"pcie_wake" "pcie" 10
|
||||
"spi1_0" "spi" 11, 12, 13, 14
|
||||
@ -98,9 +100,11 @@ patternProperties:
|
||||
"emmc_45" "emmc" 22, 23, 24, 25, 26, 27, 28, 29, 30,
|
||||
31, 32
|
||||
"spi1_1" "spi" 23, 24, 25, 26
|
||||
"uart1_2" "uart" 29, 30, 31, 32
|
||||
"uart1_2_rx_tx" "uart" 29, 30
|
||||
"uart1_2_cts_rts" "uart" 31, 32
|
||||
"uart1_1" "uart" 23, 24, 25, 26
|
||||
"uart2_0" "uart" 29, 30, 31, 32
|
||||
"uart2_0_rx_tx" "uart" 29, 30
|
||||
"uart2_0_cts_rts" "uart" 31, 32
|
||||
"spi0" "spi" 33, 34, 35, 36
|
||||
"spi0_wp_hold" "spi" 37, 38
|
||||
"uart1_3_rx_tx" "uart" 35, 36
|
||||
@ -157,7 +161,7 @@ patternProperties:
|
||||
then:
|
||||
properties:
|
||||
groups:
|
||||
enum: [emmc, emmc_rst]
|
||||
enum: [emmc_45, emmc_51]
|
||||
- if:
|
||||
properties:
|
||||
function:
|
||||
@ -221,8 +225,12 @@ patternProperties:
|
||||
then:
|
||||
properties:
|
||||
groups:
|
||||
enum: [uart1_0, uart1_1, uart1_2, uart1_3_rx_tx,
|
||||
uart1_3_cts_rts, uart2_0, uart2_1, uart0, uart1, uart2]
|
||||
items:
|
||||
enum: [uart1_0, uart1_rx_tx, uart1_cts_rts, uart1_1,
|
||||
uart1_2_rx_tx, uart1_2_cts_rts, uart1_3_rx_tx,
|
||||
uart1_3_cts_rts, uart2_0_rx_tx, uart2_0_cts_rts,
|
||||
uart2_1, uart0, uart1, uart2]
|
||||
maxItems: 2
|
||||
- if:
|
||||
properties:
|
||||
function:
|
||||
@ -356,6 +364,27 @@ examples:
|
||||
interrupt-parent = <&gic>;
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
pcie_pins: pcie-pins {
|
||||
mux {
|
||||
function = "pcie";
|
||||
groups = "pcie_clk", "pcie_wake", "pcie_pereset";
|
||||
};
|
||||
};
|
||||
|
||||
pwm_pins: pwm-pins {
|
||||
mux {
|
||||
function = "pwm";
|
||||
groups = "pwm0", "pwm1_0";
|
||||
};
|
||||
};
|
||||
|
||||
spi0_pins: spi0-pins {
|
||||
mux {
|
||||
function = "spi";
|
||||
groups = "spi0", "spi0_wp_hold";
|
||||
};
|
||||
};
|
||||
|
||||
uart1_pins: uart1-pins {
|
||||
mux {
|
||||
function = "uart";
|
||||
@ -363,6 +392,13 @@ examples:
|
||||
};
|
||||
};
|
||||
|
||||
uart1_3_pins: uart1-3-pins {
|
||||
mux {
|
||||
function = "uart";
|
||||
groups = "uart1_3_rx_tx", "uart1_3_cts_rts";
|
||||
};
|
||||
};
|
||||
|
||||
uart2_pins: uart2-pins {
|
||||
mux {
|
||||
function = "uart";
|
||||
|
@ -30,7 +30,9 @@ properties:
|
||||
maxItems: 1
|
||||
|
||||
"#pwm-cells":
|
||||
const: 2
|
||||
enum: [2, 3]
|
||||
description:
|
||||
The only flag supported by the controller is PWM_POLARITY_INVERTED.
|
||||
|
||||
microchip,sync-update-mask:
|
||||
description: |
|
||||
|
@ -109,7 +109,7 @@ audio-codec@1{
|
||||
reg = <1 0>;
|
||||
interrupts = <&msmgpio 54 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "intr2"
|
||||
reset-gpios = <&msmgpio 64 0>;
|
||||
reset-gpios = <&msmgpio 64 GPIO_ACTIVE_LOW>;
|
||||
slim-ifc-dev = <&wc9335_ifd>;
|
||||
clock-names = "mclk", "native";
|
||||
clocks = <&rpmcc RPM_SMD_DIV_CLK1>,
|
||||
|
@ -46,7 +46,7 @@ Optional properties:
|
||||
|
||||
- realtek,dmic-clk-driving-high : Set the high driving of the DMIC clock out.
|
||||
|
||||
- #sound-dai-cells: Should be set to '<0>'.
|
||||
- #sound-dai-cells: Should be set to '<1>'.
|
||||
|
||||
Pins on the device (for linking into audio routes) for RT5682:
|
||||
|
||||
|
@ -25,8 +25,8 @@ hardware, which may be as simple as a set of GPIO pins or as complex as
|
||||
a pair of FIFOs connected to dual DMA engines on the other side of the
|
||||
SPI shift register (maximizing throughput). Such drivers bridge between
|
||||
whatever bus they sit on (often the platform bus) and SPI, and expose
|
||||
the SPI side of their device as a :c:type:`struct spi_master
|
||||
<spi_master>`. SPI devices are children of that master,
|
||||
the SPI side of their device as a :c:type:`struct spi_controller
|
||||
<spi_controller>`. SPI devices are children of that master,
|
||||
represented as a :c:type:`struct spi_device <spi_device>` and
|
||||
manufactured from :c:type:`struct spi_board_info
|
||||
<spi_board_info>` descriptors which are usually provided by
|
||||
|
@ -83,9 +83,7 @@ configuration of fault-injection capabilities.
|
||||
- /sys/kernel/debug/fail*/times:
|
||||
|
||||
specifies how many times failures may happen at most. A value of -1
|
||||
means "no limit". Note, though, that this file only accepts unsigned
|
||||
values. So, if you want to specify -1, you better use 'printf' instead
|
||||
of 'echo', e.g.: $ printf %#x -1 > times
|
||||
means "no limit".
|
||||
|
||||
- /sys/kernel/debug/fail*/space:
|
||||
|
||||
@ -284,7 +282,7 @@ Application Examples
|
||||
echo Y > /sys/kernel/debug/$FAILTYPE/task-filter
|
||||
echo 10 > /sys/kernel/debug/$FAILTYPE/probability
|
||||
echo 100 > /sys/kernel/debug/$FAILTYPE/interval
|
||||
printf %#x -1 > /sys/kernel/debug/$FAILTYPE/times
|
||||
echo -1 > /sys/kernel/debug/$FAILTYPE/times
|
||||
echo 0 > /sys/kernel/debug/$FAILTYPE/space
|
||||
echo 2 > /sys/kernel/debug/$FAILTYPE/verbose
|
||||
echo Y > /sys/kernel/debug/$FAILTYPE/ignore-gfp-wait
|
||||
@ -338,7 +336,7 @@ Application Examples
|
||||
echo N > /sys/kernel/debug/$FAILTYPE/task-filter
|
||||
echo 10 > /sys/kernel/debug/$FAILTYPE/probability
|
||||
echo 100 > /sys/kernel/debug/$FAILTYPE/interval
|
||||
printf %#x -1 > /sys/kernel/debug/$FAILTYPE/times
|
||||
echo -1 > /sys/kernel/debug/$FAILTYPE/times
|
||||
echo 0 > /sys/kernel/debug/$FAILTYPE/space
|
||||
echo 2 > /sys/kernel/debug/$FAILTYPE/verbose
|
||||
echo Y > /sys/kernel/debug/$FAILTYPE/ignore-gfp-wait
|
||||
@ -369,7 +367,7 @@ Application Examples
|
||||
echo N > /sys/kernel/debug/$FAILTYPE/task-filter
|
||||
echo 100 > /sys/kernel/debug/$FAILTYPE/probability
|
||||
echo 0 > /sys/kernel/debug/$FAILTYPE/interval
|
||||
printf %#x -1 > /sys/kernel/debug/$FAILTYPE/times
|
||||
echo -1 > /sys/kernel/debug/$FAILTYPE/times
|
||||
echo 0 > /sys/kernel/debug/$FAILTYPE/space
|
||||
echo 1 > /sys/kernel/debug/$FAILTYPE/verbose
|
||||
|
||||
|
2
Makefile
2
Makefile
@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
VERSION = 6
|
||||
PATCHLEVEL = 1
|
||||
SUBLEVEL = 1
|
||||
SUBLEVEL = 2
|
||||
EXTRAVERSION =
|
||||
NAME = Hurr durr I'ma ninja sloth
|
||||
|
||||
|
@ -635,7 +635,7 @@ config ARCH_SUPPORTS_SHADOW_CALL_STACK
|
||||
config SHADOW_CALL_STACK
|
||||
bool "Shadow Call Stack"
|
||||
depends on ARCH_SUPPORTS_SHADOW_CALL_STACK
|
||||
depends on DYNAMIC_FTRACE_WITH_REGS || !FUNCTION_GRAPH_TRACER
|
||||
depends on DYNAMIC_FTRACE_WITH_ARGS || DYNAMIC_FTRACE_WITH_REGS || !FUNCTION_GRAPH_TRACER
|
||||
help
|
||||
This option enables the compiler's Shadow Call Stack, which
|
||||
uses a shadow stack to protect function return addresses from
|
||||
|
@ -75,7 +75,7 @@ register struct thread_info *__current_thread_info __asm__("$8");
|
||||
|
||||
/* Work to do on interrupt/exception return. */
|
||||
#define _TIF_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \
|
||||
_TIF_NOTIFY_RESUME)
|
||||
_TIF_NOTIFY_RESUME | _TIF_NOTIFY_SIGNAL)
|
||||
|
||||
/* Work to do on any return to userspace. */
|
||||
#define _TIF_ALLWORK_MASK (_TIF_WORK_MASK \
|
||||
|
@ -469,8 +469,10 @@ entSys:
|
||||
#ifdef CONFIG_AUDITSYSCALL
|
||||
lda $6, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT
|
||||
and $3, $6, $3
|
||||
#endif
|
||||
bne $3, strace
|
||||
#else
|
||||
blbs $3, strace /* check for SYSCALL_TRACE in disguise */
|
||||
#endif
|
||||
beq $4, 1f
|
||||
ldq $27, 0($5)
|
||||
1: jsr $26, ($27), sys_ni_syscall
|
||||
|
@ -84,7 +84,7 @@ pcie0_intc: interrupt-controller {
|
||||
|
||||
pcie2: pcie@2,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82002800 0 0x80000 0 0x2000>;
|
||||
assigned-addresses = <0x82001000 0 0x80000 0 0x2000>;
|
||||
reg = <0x1000 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
|
@ -592,7 +592,7 @@ pcie0_intc: interrupt-controller {
|
||||
|
||||
pcie1: pcie@2,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
|
||||
assigned-addresses = <0x82001000 0 0x44000 0 0x2000>;
|
||||
reg = <0x1000 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
|
@ -89,7 +89,7 @@ pcie1_intc: interrupt-controller {
|
||||
/* x1 port */
|
||||
pcie@2,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
|
||||
assigned-addresses = <0x82001000 0 0x40000 0 0x2000>;
|
||||
reg = <0x1000 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
@ -118,7 +118,7 @@ pcie2_intc: interrupt-controller {
|
||||
/* x1 port */
|
||||
pcie@3,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
|
||||
assigned-addresses = <0x82001800 0 0x44000 0 0x2000>;
|
||||
reg = <0x1800 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
|
@ -23,6 +23,12 @@ chosen {
|
||||
stdout-path = &uart0;
|
||||
};
|
||||
|
||||
aliases {
|
||||
ethernet0 = ð0;
|
||||
ethernet1 = ð1;
|
||||
ethernet2 = ð2;
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x40000000>; /* 1024 MB */
|
||||
@ -483,7 +489,17 @@ fixed-link {
|
||||
};
|
||||
};
|
||||
|
||||
/* port 6 is connected to eth0 */
|
||||
ports@6 {
|
||||
reg = <6>;
|
||||
label = "cpu";
|
||||
ethernet = <ð0>;
|
||||
phy-mode = "rgmii-id";
|
||||
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
full-duplex;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -93,7 +93,7 @@ pcie1_intc: interrupt-controller {
|
||||
/* x1 port */
|
||||
pcie2: pcie@2,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
|
||||
assigned-addresses = <0x82001000 0 0x40000 0 0x2000>;
|
||||
reg = <0x1000 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
@ -121,7 +121,7 @@ pcie2_intc: interrupt-controller {
|
||||
/* x1 port */
|
||||
pcie3: pcie@3,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
|
||||
assigned-addresses = <0x82001800 0 0x44000 0 0x2000>;
|
||||
reg = <0x1800 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
@ -152,7 +152,7 @@ pcie3_intc: interrupt-controller {
|
||||
*/
|
||||
pcie4: pcie@4,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x48000 0 0x2000>;
|
||||
assigned-addresses = <0x82002000 0 0x48000 0 0x2000>;
|
||||
reg = <0x2000 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
|
@ -463,7 +463,7 @@ pcie1_intc: interrupt-controller {
|
||||
/* x1 port */
|
||||
pcie@2,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
|
||||
assigned-addresses = <0x82001000 0 0x40000 0 0x2000>;
|
||||
reg = <0x1000 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
@ -492,7 +492,7 @@ pcie2_intc: interrupt-controller {
|
||||
/* x1 port */
|
||||
pcie@3,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
|
||||
assigned-addresses = <0x82001800 0 0x44000 0 0x2000>;
|
||||
reg = <0x1800 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
@ -524,7 +524,7 @@ pcie3_intc: interrupt-controller {
|
||||
*/
|
||||
pcie@4,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x48000 0 0x2000>;
|
||||
assigned-addresses = <0x82002000 0 0x48000 0 0x2000>;
|
||||
reg = <0x2000 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
|
@ -107,7 +107,7 @@ pcie1_intc: interrupt-controller {
|
||||
|
||||
pcie2: pcie@2,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
|
||||
assigned-addresses = <0x82001000 0 0x44000 0 0x2000>;
|
||||
reg = <0x1000 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
@ -135,7 +135,7 @@ pcie2_intc: interrupt-controller {
|
||||
|
||||
pcie3: pcie@3,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x48000 0 0x2000>;
|
||||
assigned-addresses = <0x82001800 0 0x48000 0 0x2000>;
|
||||
reg = <0x1800 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
@ -163,7 +163,7 @@ pcie3_intc: interrupt-controller {
|
||||
|
||||
pcie4: pcie@4,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x4c000 0 0x2000>;
|
||||
assigned-addresses = <0x82002000 0 0x4c000 0 0x2000>;
|
||||
reg = <0x2000 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
@ -191,7 +191,7 @@ pcie4_intc: interrupt-controller {
|
||||
|
||||
pcie5: pcie@5,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x80000 0 0x2000>;
|
||||
assigned-addresses = <0x82002800 0 0x80000 0 0x2000>;
|
||||
reg = <0x2800 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
|
@ -122,7 +122,7 @@ pcie1_intc: interrupt-controller {
|
||||
|
||||
pcie2: pcie@2,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
|
||||
assigned-addresses = <0x82001000 0 0x44000 0 0x2000>;
|
||||
reg = <0x1000 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
@ -150,7 +150,7 @@ pcie2_intc: interrupt-controller {
|
||||
|
||||
pcie3: pcie@3,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x48000 0 0x2000>;
|
||||
assigned-addresses = <0x82001800 0 0x48000 0 0x2000>;
|
||||
reg = <0x1800 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
@ -178,7 +178,7 @@ pcie3_intc: interrupt-controller {
|
||||
|
||||
pcie4: pcie@4,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x4c000 0 0x2000>;
|
||||
assigned-addresses = <0x82002000 0 0x4c000 0 0x2000>;
|
||||
reg = <0x2000 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
@ -206,7 +206,7 @@ pcie4_intc: interrupt-controller {
|
||||
|
||||
pcie5: pcie@5,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x80000 0 0x2000>;
|
||||
assigned-addresses = <0x82002800 0 0x80000 0 0x2000>;
|
||||
reg = <0x2800 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
@ -234,7 +234,7 @@ pcie5_intc: interrupt-controller {
|
||||
|
||||
pcie6: pcie@6,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x84000 0 0x2000>;
|
||||
assigned-addresses = <0x82003000 0 0x84000 0 0x2000>;
|
||||
reg = <0x3000 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
@ -262,7 +262,7 @@ pcie6_intc: interrupt-controller {
|
||||
|
||||
pcie7: pcie@7,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x88000 0 0x2000>;
|
||||
assigned-addresses = <0x82003800 0 0x88000 0 0x2000>;
|
||||
reg = <0x3800 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
@ -290,7 +290,7 @@ pcie7_intc: interrupt-controller {
|
||||
|
||||
pcie8: pcie@8,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x8c000 0 0x2000>;
|
||||
assigned-addresses = <0x82004000 0 0x8c000 0 0x2000>;
|
||||
reg = <0x4000 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
@ -318,7 +318,7 @@ pcie8_intc: interrupt-controller {
|
||||
|
||||
pcie9: pcie@9,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x42000 0 0x2000>;
|
||||
assigned-addresses = <0x82004800 0 0x42000 0 0x2000>;
|
||||
reg = <0x4800 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
|
@ -162,16 +162,9 @@ reserved-memory {
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
/* LPC FW cycle bridge region requires natural alignment */
|
||||
flash_memory: region@b8000000 {
|
||||
no-map;
|
||||
reg = <0xb8000000 0x04000000>; /* 64M */
|
||||
};
|
||||
|
||||
/* 48MB region from the end of flash to start of vga memory */
|
||||
ramoops@bc000000 {
|
||||
ramoops@b3e00000 {
|
||||
compatible = "ramoops";
|
||||
reg = <0xbc000000 0x200000>; /* 16 * (4 * 0x8000) */
|
||||
reg = <0xb3e00000 0x200000>; /* 16 * (4 * 0x8000) */
|
||||
record-size = <0x8000>;
|
||||
console-size = <0x8000>;
|
||||
ftrace-size = <0x8000>;
|
||||
@ -179,6 +172,12 @@ ramoops@bc000000 {
|
||||
max-reason = <3>; /* KMSG_DUMP_EMERG */
|
||||
};
|
||||
|
||||
/* LPC FW cycle bridge region requires natural alignment */
|
||||
flash_memory: region@b4000000 {
|
||||
no-map;
|
||||
reg = <0xb4000000 0x04000000>; /* 64M */
|
||||
};
|
||||
|
||||
/* VGA region is dictated by hardware strapping */
|
||||
vga_memory: region@bf000000 {
|
||||
no-map;
|
||||
|
@ -95,14 +95,9 @@ reserved-memory {
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
flash_memory: region@b8000000 {
|
||||
no-map;
|
||||
reg = <0xb8000000 0x04000000>; /* 64M */
|
||||
};
|
||||
|
||||
ramoops@bc000000 {
|
||||
ramoops@b3e00000 {
|
||||
compatible = "ramoops";
|
||||
reg = <0xbc000000 0x200000>; /* 16 * (4 * 0x8000) */
|
||||
reg = <0xb3e00000 0x200000>; /* 16 * (4 * 0x8000) */
|
||||
record-size = <0x8000>;
|
||||
console-size = <0x8000>;
|
||||
ftrace-size = <0x8000>;
|
||||
@ -110,6 +105,13 @@ ramoops@bc000000 {
|
||||
max-reason = <3>; /* KMSG_DUMP_EMERG */
|
||||
};
|
||||
|
||||
/* LPC FW cycle bridge region requires natural alignment */
|
||||
flash_memory: region@b4000000 {
|
||||
no-map;
|
||||
reg = <0xb4000000 0x04000000>; /* 64M */
|
||||
};
|
||||
|
||||
/* VGA region is dictated by hardware strapping */
|
||||
vga_memory: region@bf000000 {
|
||||
no-map;
|
||||
compatible = "shared-dma-pool";
|
||||
|
@ -139,7 +139,7 @@ pcie0_intc: interrupt-controller {
|
||||
pcie1: pcie@2 {
|
||||
device_type = "pci";
|
||||
status = "disabled";
|
||||
assigned-addresses = <0x82002800 0 0x80000 0 0x2000>;
|
||||
assigned-addresses = <0x82001000 0 0x80000 0 0x2000>;
|
||||
reg = <0x1000 0 0 0 0>;
|
||||
clocks = <&gate_clk 5>;
|
||||
marvell,pcie-port = <1>;
|
||||
|
@ -366,7 +366,7 @@ flash@0 {
|
||||
spi-max-frequency = <20000000>;
|
||||
spi-rx-bus-width = <2>;
|
||||
label = "bmc";
|
||||
partitions@80000000 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
@ -142,7 +142,7 @@ flash@0 {
|
||||
reg = <0>;
|
||||
spi-rx-bus-width = <2>;
|
||||
|
||||
partitions@80000000 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
@ -388,7 +388,7 @@ flash@0 {
|
||||
spi-max-frequency = <5000000>;
|
||||
spi-rx-bus-width = <2>;
|
||||
label = "bmc";
|
||||
partitions@80000000 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
@ -422,7 +422,7 @@ flash@1 {
|
||||
reg = <1>;
|
||||
spi-max-frequency = <5000000>;
|
||||
spi-rx-bus-width = <2>;
|
||||
partitions@88000000 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
@ -447,7 +447,7 @@ flash@0 {
|
||||
reg = <0>;
|
||||
spi-max-frequency = <5000000>;
|
||||
spi-rx-bus-width = <2>;
|
||||
partitions@A0000000 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
@ -74,7 +74,7 @@ flash@0 {
|
||||
spi-rx-bus-width = <2>;
|
||||
reg = <0>;
|
||||
spi-max-frequency = <5000000>;
|
||||
partitions@80000000 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
@ -135,7 +135,7 @@ flash@0 {
|
||||
spi-rx-bus-width = <2>;
|
||||
reg = <0>;
|
||||
spi-max-frequency = <5000000>;
|
||||
partitions@A0000000 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
@ -107,7 +107,7 @@ flash@0 {
|
||||
reg = <0>;
|
||||
spi-rx-bus-width = <2>;
|
||||
|
||||
partitions@80000000 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
@ -146,7 +146,7 @@ flash@1 {
|
||||
reg = <1>;
|
||||
npcm,fiu-rx-bus-width = <2>;
|
||||
|
||||
partitions@88000000 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
@ -173,7 +173,7 @@ flash@0 {
|
||||
reg = <0>;
|
||||
spi-rx-bus-width = <2>;
|
||||
|
||||
partitions@A0000000 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
@ -1615,7 +1615,7 @@ wifi {
|
||||
};
|
||||
|
||||
etb@1a01000 {
|
||||
compatible = "coresight-etb10", "arm,primecell";
|
||||
compatible = "arm,coresight-etb10", "arm,primecell";
|
||||
reg = <0x1a01000 0x1000>;
|
||||
|
||||
clocks = <&rpmcc RPM_QDSS_CLK>;
|
||||
|
@ -47,7 +47,7 @@ clcd: clcd@fc200000 {
|
||||
compatible = "arm,pl110", "arm,primecell";
|
||||
reg = <0xfc200000 0x1000>;
|
||||
interrupt-parent = <&vic1>;
|
||||
interrupts = <12>;
|
||||
interrupts = <13>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
@ -13,7 +13,6 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "stm32mp157.dtsi"
|
||||
#include "stm32mp15xc.dtsi"
|
||||
#include "stm32mp15xx-dhcor-som.dtsi"
|
||||
#include "stm32mp15xx-dhcor-avenger96.dtsi"
|
||||
|
||||
|
@ -100,7 +100,7 @@ wlan_pwr: regulator-wlan {
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
|
||||
gpios = <&gpioz 3 GPIO_ACTIVE_HIGH>;
|
||||
gpio = <&gpioz 3 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
};
|
||||
};
|
||||
|
@ -43,18 +43,21 @@
|
||||
static void __iomem *mmp_timer_base = TIMERS_VIRT_BASE;
|
||||
|
||||
/*
|
||||
* FIXME: the timer needs some delay to stablize the counter capture
|
||||
* Read the timer through the CVWR register. Delay is required after requesting
|
||||
* a read. The CR register cannot be directly read due to metastability issues
|
||||
* documented in the PXA168 software manual.
|
||||
*/
|
||||
static inline uint32_t timer_read(void)
|
||||
{
|
||||
int delay = 100;
|
||||
uint32_t val;
|
||||
int delay = 3;
|
||||
|
||||
__raw_writel(1, mmp_timer_base + TMR_CVWR(1));
|
||||
|
||||
while (delay--)
|
||||
cpu_relax();
|
||||
val = __raw_readl(mmp_timer_base + TMR_CVWR(1));
|
||||
|
||||
return __raw_readl(mmp_timer_base + TMR_CVWR(1));
|
||||
return val;
|
||||
}
|
||||
|
||||
static u64 notrace mmp_read_sched_clock(void)
|
||||
|
@ -412,7 +412,7 @@ nvme@27bcc0000 {
|
||||
resets = <&ps_ans2>;
|
||||
};
|
||||
|
||||
pcie0_dart_0: dart@681008000 {
|
||||
pcie0_dart_0: iommu@681008000 {
|
||||
compatible = "apple,t8103-dart";
|
||||
reg = <0x6 0x81008000 0x0 0x4000>;
|
||||
#iommu-cells = <1>;
|
||||
@ -421,7 +421,7 @@ pcie0_dart_0: dart@681008000 {
|
||||
power-domains = <&ps_apcie_gp>;
|
||||
};
|
||||
|
||||
pcie0_dart_1: dart@682008000 {
|
||||
pcie0_dart_1: iommu@682008000 {
|
||||
compatible = "apple,t8103-dart";
|
||||
reg = <0x6 0x82008000 0x0 0x4000>;
|
||||
#iommu-cells = <1>;
|
||||
@ -430,7 +430,7 @@ pcie0_dart_1: dart@682008000 {
|
||||
power-domains = <&ps_apcie_gp>;
|
||||
};
|
||||
|
||||
pcie0_dart_2: dart@683008000 {
|
||||
pcie0_dart_2: iommu@683008000 {
|
||||
compatible = "apple,t8103-dart";
|
||||
reg = <0x6 0x83008000 0x0 0x4000>;
|
||||
#iommu-cells = <1>;
|
||||
|
@ -125,9 +125,12 @@ &i2c0 {
|
||||
/delete-property/ mrvl,i2c-fast-mode;
|
||||
status = "okay";
|
||||
|
||||
/* MCP7940MT-I/MNY RTC */
|
||||
rtc@6f {
|
||||
compatible = "microchip,mcp7940x";
|
||||
reg = <0x6f>;
|
||||
interrupt-parent = <&gpiosb>;
|
||||
interrupts = <5 0>; /* GPIO2_5 */
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -26,14 +26,14 @@ chosen {
|
||||
stdout-path = "serial0:921600n8";
|
||||
};
|
||||
|
||||
cpus_fixed_vproc0: fixedregulator@0 {
|
||||
cpus_fixed_vproc0: regulator-vproc-buck0 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vproc_buck0";
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
};
|
||||
|
||||
cpus_fixed_vproc1: fixedregulator@1 {
|
||||
cpus_fixed_vproc1: regulator-vproc-buck1 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vproc_buck1";
|
||||
regulator-min-microvolt = <1000000>;
|
||||
@ -50,7 +50,7 @@ extcon_usb1: extcon_iddig1 {
|
||||
id-gpio = <&pio 14 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
usb_p0_vbus: regulator@2 {
|
||||
usb_p0_vbus: regulator-usb-p0-vbus {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "p0_vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
@ -59,7 +59,7 @@ usb_p0_vbus: regulator@2 {
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
usb_p1_vbus: regulator@3 {
|
||||
usb_p1_vbus: regulator-usb-p1-vbus {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "p1_vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
@ -68,7 +68,7 @@ usb_p1_vbus: regulator@3 {
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
usb_p2_vbus: regulator@4 {
|
||||
usb_p2_vbus: regulator-usb-p2-vbus {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "p2_vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
@ -77,7 +77,7 @@ usb_p2_vbus: regulator@4 {
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
usb_p3_vbus: regulator@5 {
|
||||
usb_p3_vbus: regulator-usb-p3-vbus {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "p3_vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
|
@ -160,70 +160,70 @@ sys_clk: dummyclk {
|
||||
#clock-cells = <0>;
|
||||
};
|
||||
|
||||
clk26m: oscillator@0 {
|
||||
clk26m: oscillator-26m {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <26000000>;
|
||||
clock-output-names = "clk26m";
|
||||
};
|
||||
|
||||
clk32k: oscillator@1 {
|
||||
clk32k: oscillator-32k {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
clock-output-names = "clk32k";
|
||||
};
|
||||
|
||||
clkfpc: oscillator@2 {
|
||||
clkfpc: oscillator-50m {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <50000000>;
|
||||
clock-output-names = "clkfpc";
|
||||
};
|
||||
|
||||
clkaud_ext_i_0: oscillator@3 {
|
||||
clkaud_ext_i_0: oscillator-aud0 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <6500000>;
|
||||
clock-output-names = "clkaud_ext_i_0";
|
||||
};
|
||||
|
||||
clkaud_ext_i_1: oscillator@4 {
|
||||
clkaud_ext_i_1: oscillator-aud1 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <196608000>;
|
||||
clock-output-names = "clkaud_ext_i_1";
|
||||
};
|
||||
|
||||
clkaud_ext_i_2: oscillator@5 {
|
||||
clkaud_ext_i_2: oscillator-aud2 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <180633600>;
|
||||
clock-output-names = "clkaud_ext_i_2";
|
||||
};
|
||||
|
||||
clki2si0_mck_i: oscillator@6 {
|
||||
clki2si0_mck_i: oscillator-i2s0 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <30000000>;
|
||||
clock-output-names = "clki2si0_mck_i";
|
||||
};
|
||||
|
||||
clki2si1_mck_i: oscillator@7 {
|
||||
clki2si1_mck_i: oscillator-i2s1 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <30000000>;
|
||||
clock-output-names = "clki2si1_mck_i";
|
||||
};
|
||||
|
||||
clki2si2_mck_i: oscillator@8 {
|
||||
clki2si2_mck_i: oscillator-i2s2 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <30000000>;
|
||||
clock-output-names = "clki2si2_mck_i";
|
||||
};
|
||||
|
||||
clktdmin_mclk_i: oscillator@9 {
|
||||
clktdmin_mclk_i: oscillator-mclk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <30000000>;
|
||||
@ -266,7 +266,7 @@ syscfg_pctl_a: syscfg_pctl_a@10005000 {
|
||||
reg = <0 0x10005000 0 0x1000>;
|
||||
};
|
||||
|
||||
pio: pinctrl@10005000 {
|
||||
pio: pinctrl@1000b000 {
|
||||
compatible = "mediatek,mt2712-pinctrl";
|
||||
reg = <0 0x1000b000 0 0x1000>;
|
||||
mediatek,pctl-regmap = <&syscfg_pctl_a>;
|
||||
|
@ -88,14 +88,14 @@ pmu {
|
||||
interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW 0>;
|
||||
};
|
||||
|
||||
clk26m: oscillator@0 {
|
||||
clk26m: oscillator-26m {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <26000000>;
|
||||
clock-output-names = "clk26m";
|
||||
};
|
||||
|
||||
clk32k: oscillator@1 {
|
||||
clk32k: oscillator-32k {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
@ -117,7 +117,7 @@ soc {
|
||||
compatible = "simple-bus";
|
||||
ranges;
|
||||
|
||||
gic: interrupt-controller@0c000000 {
|
||||
gic: interrupt-controller@c000000 {
|
||||
compatible = "arm,gic-v3";
|
||||
#interrupt-cells = <4>;
|
||||
interrupt-parent = <&gic>;
|
||||
@ -138,7 +138,7 @@ ppi_cluster1: interrupt-partition-1 {
|
||||
|
||||
};
|
||||
|
||||
sysirq: intpol-controller@0c53a650 {
|
||||
sysirq: intpol-controller@c53a650 {
|
||||
compatible = "mediatek,mt6779-sysirq",
|
||||
"mediatek,mt6577-sysirq";
|
||||
interrupt-controller;
|
||||
|
@ -95,7 +95,7 @@ cpu9: cpu@201 {
|
||||
};
|
||||
};
|
||||
|
||||
clk26m: oscillator@0 {
|
||||
clk26m: oscillator-26m {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <26000000>;
|
||||
|
@ -14,7 +14,7 @@ / {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
clk40m: oscillator@0 {
|
||||
clk40m: oscillator-40m {
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <40000000>;
|
||||
#clock-cells = <0>;
|
||||
@ -112,6 +112,12 @@ infracfg: infracfg@10001000 {
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
wed_pcie: wed-pcie@10003000 {
|
||||
compatible = "mediatek,mt7986-wed-pcie",
|
||||
"syscon";
|
||||
reg = <0 0x10003000 0 0x10>;
|
||||
};
|
||||
|
||||
topckgen: topckgen@1001b000 {
|
||||
compatible = "mediatek,mt7986-topckgen", "syscon";
|
||||
reg = <0 0x1001B000 0 0x1000>;
|
||||
@ -168,7 +174,7 @@ sgmiisys1: syscon@10070000 {
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
trng: trng@1020f000 {
|
||||
trng: rng@1020f000 {
|
||||
compatible = "mediatek,mt7986-rng",
|
||||
"mediatek,mt7623-rng";
|
||||
reg = <0 0x1020f000 0 0x100>;
|
||||
@ -228,12 +234,6 @@ ethsys: syscon@15000000 {
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
wed_pcie: wed-pcie@10003000 {
|
||||
compatible = "mediatek,mt7986-wed-pcie",
|
||||
"syscon";
|
||||
reg = <0 0x10003000 0 0x10>;
|
||||
};
|
||||
|
||||
wed0: wed@15010000 {
|
||||
compatible = "mediatek,mt7986-wed",
|
||||
"syscon";
|
||||
|
@ -1678,7 +1678,7 @@ gpu: gpu@13040000 {
|
||||
<GIC_SPI 278 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "job", "mmu", "gpu";
|
||||
|
||||
clocks = <&topckgen CLK_TOP_MFGPLL_CK>;
|
||||
clocks = <&mfgcfg CLK_MFG_BG3D>;
|
||||
|
||||
power-domains =
|
||||
<&spm MT8183_POWER_DOMAIN_MFG_CORE0>,
|
||||
|
@ -36,7 +36,7 @@ cpu0: cpu@0 {
|
||||
enable-method = "psci";
|
||||
performance-domains = <&performance 0>;
|
||||
clock-frequency = <1701000000>;
|
||||
capacity-dmips-mhz = <578>;
|
||||
capacity-dmips-mhz = <308>;
|
||||
cpu-idle-states = <&cpu_off_l &cluster_off_l>;
|
||||
next-level-cache = <&l2_0>;
|
||||
#cooling-cells = <2>;
|
||||
@ -49,7 +49,7 @@ cpu1: cpu@100 {
|
||||
enable-method = "psci";
|
||||
performance-domains = <&performance 0>;
|
||||
clock-frequency = <1701000000>;
|
||||
capacity-dmips-mhz = <578>;
|
||||
capacity-dmips-mhz = <308>;
|
||||
cpu-idle-states = <&cpu_off_l &cluster_off_l>;
|
||||
next-level-cache = <&l2_0>;
|
||||
#cooling-cells = <2>;
|
||||
@ -62,7 +62,7 @@ cpu2: cpu@200 {
|
||||
enable-method = "psci";
|
||||
performance-domains = <&performance 0>;
|
||||
clock-frequency = <1701000000>;
|
||||
capacity-dmips-mhz = <578>;
|
||||
capacity-dmips-mhz = <308>;
|
||||
cpu-idle-states = <&cpu_off_l &cluster_off_l>;
|
||||
next-level-cache = <&l2_0>;
|
||||
#cooling-cells = <2>;
|
||||
@ -75,7 +75,7 @@ cpu3: cpu@300 {
|
||||
enable-method = "psci";
|
||||
performance-domains = <&performance 0>;
|
||||
clock-frequency = <1701000000>;
|
||||
capacity-dmips-mhz = <578>;
|
||||
capacity-dmips-mhz = <308>;
|
||||
cpu-idle-states = <&cpu_off_l &cluster_off_l>;
|
||||
next-level-cache = <&l2_0>;
|
||||
#cooling-cells = <2>;
|
||||
|
@ -17,7 +17,7 @@ chosen {
|
||||
};
|
||||
|
||||
firmware {
|
||||
optee: optee@4fd00000 {
|
||||
optee: optee {
|
||||
compatible = "linaro,optee-tz";
|
||||
method = "smc";
|
||||
};
|
||||
@ -209,7 +209,7 @@ pins_cmd_dat {
|
||||
};
|
||||
};
|
||||
|
||||
i2c0_pins_a: i2c0@0 {
|
||||
i2c0_pins_a: i2c0 {
|
||||
pins1 {
|
||||
pinmux = <MT8516_PIN_58_SDA0__FUNC_SDA0_0>,
|
||||
<MT8516_PIN_59_SCL0__FUNC_SCL0_0>;
|
||||
@ -217,7 +217,7 @@ pins1 {
|
||||
};
|
||||
};
|
||||
|
||||
i2c2_pins_a: i2c2@0 {
|
||||
i2c2_pins_a: i2c2 {
|
||||
pins1 {
|
||||
pinmux = <MT8516_PIN_60_SDA2__FUNC_SDA2_0>,
|
||||
<MT8516_PIN_61_SCL2__FUNC_SCL2_0>;
|
||||
|
@ -1965,7 +1965,7 @@ pcie@140c0000 {
|
||||
|
||||
bus-range = <0x0 0xff>;
|
||||
|
||||
ranges = <0x43000000 0x35 0x40000000 0x35 0x40000000 0x2 0xe8000000>, /* prefetchable memory (11904 MB) */
|
||||
ranges = <0x43000000 0x35 0x40000000 0x35 0x40000000 0x2 0xc0000000>, /* prefetchable memory (11264 MB) */
|
||||
<0x02000000 0x0 0x40000000 0x38 0x28000000 0x0 0x08000000>, /* non-prefetchable memory (128 MB) */
|
||||
<0x01000000 0x0 0x2c100000 0x00 0x2c100000 0x0 0x00100000>; /* downstream I/O (1 MB) */
|
||||
|
||||
@ -2178,7 +2178,7 @@ pcie@14140000 {
|
||||
bus-range = <0x0 0xff>;
|
||||
|
||||
ranges = <0x43000000 0x21 0x00000000 0x21 0x00000000 0x0 0x28000000>, /* prefetchable memory (640 MB) */
|
||||
<0x02000000 0x0 0x40000000 0x21 0xe8000000 0x0 0x08000000>, /* non-prefetchable memory (128 MB) */
|
||||
<0x02000000 0x0 0x40000000 0x21 0x28000000 0x0 0x08000000>, /* non-prefetchable memory (128 MB) */
|
||||
<0x01000000 0x0 0x34100000 0x00 0x34100000 0x0 0x00100000>; /* downstream I/O (1 MB) */
|
||||
|
||||
interconnects = <&mc TEGRA234_MEMORY_CLIENT_PCIE3R &emc>,
|
||||
@ -2336,7 +2336,7 @@ pcie@141a0000 {
|
||||
|
||||
bus-range = <0x0 0xff>;
|
||||
|
||||
ranges = <0x43000000 0x27 0x40000000 0x27 0x40000000 0x3 0xe8000000>, /* prefetchable memory (16000 MB) */
|
||||
ranges = <0x43000000 0x28 0x00000000 0x28 0x00000000 0x3 0x28000000>, /* prefetchable memory (12928 MB) */
|
||||
<0x02000000 0x0 0x40000000 0x2b 0x28000000 0x0 0x08000000>, /* non-prefetchable memory (128 MB) */
|
||||
<0x01000000 0x0 0x3a100000 0x00 0x3a100000 0x0 0x00100000>; /* downstream I/O (1 MB) */
|
||||
|
||||
@ -2442,7 +2442,7 @@ pcie@141e0000 {
|
||||
|
||||
bus-range = <0x0 0xff>;
|
||||
|
||||
ranges = <0x43000000 0x2e 0x40000000 0x2e 0x40000000 0x3 0xe8000000>, /* prefetchable memory (16000 MB) */
|
||||
ranges = <0x43000000 0x30 0x00000000 0x30 0x00000000 0x2 0x28000000>, /* prefetchable memory (8832 MB) */
|
||||
<0x02000000 0x0 0x40000000 0x32 0x28000000 0x0 0x08000000>, /* non-prefetchable memory (128 MB) */
|
||||
<0x01000000 0x0 0x3e100000 0x00 0x3e100000 0x0 0x00100000>; /* downstream I/O (1 MB) */
|
||||
|
||||
|
@ -37,6 +37,8 @@ &blsp1_i2c3 {
|
||||
|
||||
&blsp1_spi1 {
|
||||
cs-select = <0>;
|
||||
pinctrl-0 = <&spi_0_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
|
||||
flash@0 {
|
||||
|
@ -1345,7 +1345,7 @@ bam_dmux_dma: dma-controller@4044000 {
|
||||
};
|
||||
|
||||
mpss: remoteproc@4080000 {
|
||||
compatible = "qcom,msm8916-mss-pil", "qcom,q6v5-pil";
|
||||
compatible = "qcom,msm8916-mss-pil";
|
||||
reg = <0x04080000 0x100>,
|
||||
<0x04020000 0x040>;
|
||||
|
||||
|
@ -144,82 +144,92 @@ cluster0_opp: opp-table-cluster0 {
|
||||
/* Nominal fmax for now */
|
||||
opp-307200000 {
|
||||
opp-hz = /bits/ 64 <307200000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-422400000 {
|
||||
opp-hz = /bits/ 64 <422400000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-480000000 {
|
||||
opp-hz = /bits/ 64 <480000000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-556800000 {
|
||||
opp-hz = /bits/ 64 <556800000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-652800000 {
|
||||
opp-hz = /bits/ 64 <652800000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-729600000 {
|
||||
opp-hz = /bits/ 64 <729600000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-844800000 {
|
||||
opp-hz = /bits/ 64 <844800000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-960000000 {
|
||||
opp-hz = /bits/ 64 <960000000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1036800000 {
|
||||
opp-hz = /bits/ 64 <1036800000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1113600000 {
|
||||
opp-hz = /bits/ 64 <1113600000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1190400000 {
|
||||
opp-hz = /bits/ 64 <1190400000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1228800000 {
|
||||
opp-hz = /bits/ 64 <1228800000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1324800000 {
|
||||
opp-hz = /bits/ 64 <1324800000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x5>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1363200000 {
|
||||
opp-hz = /bits/ 64 <1363200000>;
|
||||
opp-supported-hw = <0x2>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1401600000 {
|
||||
opp-hz = /bits/ 64 <1401600000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x5>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1478400000 {
|
||||
opp-hz = /bits/ 64 <1478400000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x1>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1497600000 {
|
||||
opp-hz = /bits/ 64 <1497600000>;
|
||||
opp-supported-hw = <0x04>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1593600000 {
|
||||
opp-hz = /bits/ 64 <1593600000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x1>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
};
|
||||
@ -232,127 +242,137 @@ cluster1_opp: opp-table-cluster1 {
|
||||
/* Nominal fmax for now */
|
||||
opp-307200000 {
|
||||
opp-hz = /bits/ 64 <307200000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-403200000 {
|
||||
opp-hz = /bits/ 64 <403200000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-480000000 {
|
||||
opp-hz = /bits/ 64 <480000000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-556800000 {
|
||||
opp-hz = /bits/ 64 <556800000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-652800000 {
|
||||
opp-hz = /bits/ 64 <652800000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-729600000 {
|
||||
opp-hz = /bits/ 64 <729600000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-806400000 {
|
||||
opp-hz = /bits/ 64 <806400000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-883200000 {
|
||||
opp-hz = /bits/ 64 <883200000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-940800000 {
|
||||
opp-hz = /bits/ 64 <940800000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1036800000 {
|
||||
opp-hz = /bits/ 64 <1036800000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1113600000 {
|
||||
opp-hz = /bits/ 64 <1113600000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1190400000 {
|
||||
opp-hz = /bits/ 64 <1190400000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1248000000 {
|
||||
opp-hz = /bits/ 64 <1248000000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1324800000 {
|
||||
opp-hz = /bits/ 64 <1324800000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1401600000 {
|
||||
opp-hz = /bits/ 64 <1401600000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1478400000 {
|
||||
opp-hz = /bits/ 64 <1478400000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1555200000 {
|
||||
opp-hz = /bits/ 64 <1555200000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1632000000 {
|
||||
opp-hz = /bits/ 64 <1632000000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1708800000 {
|
||||
opp-hz = /bits/ 64 <1708800000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1785600000 {
|
||||
opp-hz = /bits/ 64 <1785600000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x7>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1804800000 {
|
||||
opp-hz = /bits/ 64 <1804800000>;
|
||||
opp-supported-hw = <0x6>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1824000000 {
|
||||
opp-hz = /bits/ 64 <1824000000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x1>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1900800000 {
|
||||
opp-hz = /bits/ 64 <1900800000>;
|
||||
opp-supported-hw = <0x4>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1920000000 {
|
||||
opp-hz = /bits/ 64 <1920000000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x1>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1996800000 {
|
||||
opp-hz = /bits/ 64 <1996800000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x1>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-2073600000 {
|
||||
opp-hz = /bits/ 64 <2073600000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x1>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-2150400000 {
|
||||
opp-hz = /bits/ 64 <2150400000>;
|
||||
opp-supported-hw = <0x77>;
|
||||
opp-supported-hw = <0x1>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
};
|
||||
@ -1213,17 +1233,17 @@ gpu_opp_table: opp-table {
|
||||
compatible = "operating-points-v2";
|
||||
|
||||
/*
|
||||
* 624Mhz and 560Mhz are only available on speed
|
||||
* bin (1 << 0). All the rest are available on
|
||||
* all bins of the hardware
|
||||
* 624Mhz is only available on speed bins 0 and 3.
|
||||
* 560Mhz is only available on speed bins 0, 2 and 3.
|
||||
* All the rest are available on all bins of the hardware.
|
||||
*/
|
||||
opp-624000000 {
|
||||
opp-hz = /bits/ 64 <624000000>;
|
||||
opp-supported-hw = <0x01>;
|
||||
opp-supported-hw = <0x09>;
|
||||
};
|
||||
opp-560000000 {
|
||||
opp-hz = /bits/ 64 <560000000>;
|
||||
opp-supported-hw = <0x01>;
|
||||
opp-supported-hw = <0x0d>;
|
||||
};
|
||||
opp-510000000 {
|
||||
opp-hz = /bits/ 64 <510000000>;
|
||||
@ -3342,7 +3362,7 @@ wcd9335: codec@1{
|
||||
interrupt-names = "intr1", "intr2";
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
reset-gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;
|
||||
reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
|
||||
|
||||
slim-ifc-dev = <&tasha_ifd>;
|
||||
|
||||
|
266
arch/arm64/boot/dts/qcom/msm8996pro.dtsi
Normal file
266
arch/arm64/boot/dts/qcom/msm8996pro.dtsi
Normal file
@ -0,0 +1,266 @@
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
/*
|
||||
* Copyright (c) 2022, Linaro Limited
|
||||
*/
|
||||
|
||||
#include "msm8996.dtsi"
|
||||
|
||||
/ {
|
||||
/delete-node/ opp-table-cluster0;
|
||||
/delete-node/ opp-table-cluster1;
|
||||
|
||||
/*
|
||||
* On MSM8996 Pro the cpufreq driver shifts speed bins into the high
|
||||
* nibble of supported hw, so speed bin 0 becomes 0x10, speed bin 1
|
||||
* becomes 0x20, speed 2 becomes 0x40.
|
||||
*/
|
||||
|
||||
cluster0_opp: opp-table-cluster0 {
|
||||
compatible = "operating-points-v2-kryo-cpu";
|
||||
nvmem-cells = <&speedbin_efuse>;
|
||||
opp-shared;
|
||||
|
||||
opp-307200000 {
|
||||
opp-hz = /bits/ 64 <307200000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-384000000 {
|
||||
opp-hz = /bits/ 64 <384000000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-460800000 {
|
||||
opp-hz = /bits/ 64 <460800000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-537600000 {
|
||||
opp-hz = /bits/ 64 <537600000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-614400000 {
|
||||
opp-hz = /bits/ 64 <614400000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-691200000 {
|
||||
opp-hz = /bits/ 64 <691200000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-768000000 {
|
||||
opp-hz = /bits/ 64 <768000000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-844800000 {
|
||||
opp-hz = /bits/ 64 <844800000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-902400000 {
|
||||
opp-hz = /bits/ 64 <902400000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-979200000 {
|
||||
opp-hz = /bits/ 64 <979200000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1056000000 {
|
||||
opp-hz = /bits/ 64 <1056000000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1132800000 {
|
||||
opp-hz = /bits/ 64 <1132800000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1209600000 {
|
||||
opp-hz = /bits/ 64 <1209600000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1286400000 {
|
||||
opp-hz = /bits/ 64 <1286400000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1363200000 {
|
||||
opp-hz = /bits/ 64 <1363200000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1440000000 {
|
||||
opp-hz = /bits/ 64 <1440000000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1516800000 {
|
||||
opp-hz = /bits/ 64 <1516800000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1593600000 {
|
||||
opp-hz = /bits/ 64 <1593600000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1996800000 {
|
||||
opp-hz = /bits/ 64 <1996800000>;
|
||||
opp-supported-hw = <0x20>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-2188800000 {
|
||||
opp-hz = /bits/ 64 <2188800000>;
|
||||
opp-supported-hw = <0x10>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
};
|
||||
|
||||
cluster1_opp: opp-table-cluster1 {
|
||||
compatible = "operating-points-v2-kryo-cpu";
|
||||
nvmem-cells = <&speedbin_efuse>;
|
||||
opp-shared;
|
||||
|
||||
opp-307200000 {
|
||||
opp-hz = /bits/ 64 <307200000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-384000000 {
|
||||
opp-hz = /bits/ 64 <384000000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-460800000 {
|
||||
opp-hz = /bits/ 64 <460800000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-537600000 {
|
||||
opp-hz = /bits/ 64 <537600000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-614400000 {
|
||||
opp-hz = /bits/ 64 <614400000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-691200000 {
|
||||
opp-hz = /bits/ 64 <691200000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-748800000 {
|
||||
opp-hz = /bits/ 64 <748800000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-825600000 {
|
||||
opp-hz = /bits/ 64 <825600000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-902400000 {
|
||||
opp-hz = /bits/ 64 <902400000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-979200000 {
|
||||
opp-hz = /bits/ 64 <979200000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1056000000 {
|
||||
opp-hz = /bits/ 64 <1056000000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1132800000 {
|
||||
opp-hz = /bits/ 64 <1132800000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1209600000 {
|
||||
opp-hz = /bits/ 64 <1209600000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1286400000 {
|
||||
opp-hz = /bits/ 64 <1286400000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1363200000 {
|
||||
opp-hz = /bits/ 64 <1363200000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1440000000 {
|
||||
opp-hz = /bits/ 64 <1440000000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1516800000 {
|
||||
opp-hz = /bits/ 64 <1516800000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1593600000 {
|
||||
opp-hz = /bits/ 64 <1593600000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1670400000 {
|
||||
opp-hz = /bits/ 64 <1670400000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1747200000 {
|
||||
opp-hz = /bits/ 64 <1747200000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1824000000 {
|
||||
opp-hz = /bits/ 64 <1824000000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1900800000 {
|
||||
opp-hz = /bits/ 64 <1900800000>;
|
||||
opp-supported-hw = <0x70>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-1977600000 {
|
||||
opp-hz = /bits/ 64 <1977600000>;
|
||||
opp-supported-hw = <0x30>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-2054400000 {
|
||||
opp-hz = /bits/ 64 <2054400000>;
|
||||
opp-supported-hw = <0x30>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-2150400000 {
|
||||
opp-hz = /bits/ 64 <2150400000>;
|
||||
opp-supported-hw = <0x30>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-2246400000 {
|
||||
opp-hz = /bits/ 64 <2246400000>;
|
||||
opp-supported-hw = <0x10>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
opp-2342400000 {
|
||||
opp-hz = /bits/ 64 <2342400000>;
|
||||
opp-supported-hw = <0x10>;
|
||||
clock-latency-ns = <200000>;
|
||||
};
|
||||
};
|
||||
};
|
@ -3,6 +3,7 @@
|
||||
* Copyright (c) 2021, Luca Weiss <luca@z3ntu.xyz>
|
||||
*/
|
||||
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/spmi/spmi.h>
|
||||
|
||||
&spmi_bus {
|
||||
|
@ -163,7 +163,7 @@ vadc_vph_pwr: vph_pwr@83 {
|
||||
qcom,pre-scaling = <1 3>;
|
||||
};
|
||||
|
||||
vcoin: vcoin@83 {
|
||||
vcoin: vcoin@85 {
|
||||
reg = <ADC5_VCOIN>;
|
||||
qcom,decimation = <1024>;
|
||||
qcom,pre-scaling = <1 3>;
|
||||
|
@ -194,6 +194,12 @@ pinmux {
|
||||
pins = "gpio49", "gpio50", "gpio51", "gpio52";
|
||||
function = "mi2s_1";
|
||||
};
|
||||
|
||||
pinconf {
|
||||
pins = "gpio49", "gpio50", "gpio51", "gpio52";
|
||||
drive-strength = <2>;
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
&ts_reset_l {
|
||||
|
@ -10,7 +10,6 @@
|
||||
#include <dt-bindings/iio/qcom,spmi-adc7-pmr735a.h>
|
||||
#include "sc7280-idp.dtsi"
|
||||
#include "pmr735a.dtsi"
|
||||
#include "sc7280-herobrine-lte-sku.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Qualcomm Technologies, Inc. sc7280 IDP SKU1 platform";
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include "pmk8350.dtsi"
|
||||
|
||||
#include "sc7280-chrome-common.dtsi"
|
||||
#include "sc7280-herobrine-lte-sku.dtsi"
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
@ -34,7 +35,7 @@ wcd9385: audio-codec-1 {
|
||||
pinctrl-0 = <&wcd_reset_n>;
|
||||
pinctrl-1 = <&wcd_reset_n_sleep>;
|
||||
|
||||
reset-gpios = <&tlmm 83 GPIO_ACTIVE_HIGH>;
|
||||
reset-gpios = <&tlmm 83 GPIO_ACTIVE_LOW>;
|
||||
|
||||
qcom,rx-device = <&wcd_rx>;
|
||||
qcom,tx-device = <&wcd_tx>;
|
||||
|
@ -37,7 +37,7 @@ wcd9385: audio-codec-1 {
|
||||
pinctrl-0 = <&wcd_reset_n>, <&us_euro_hs_sel>;
|
||||
pinctrl-1 = <&wcd_reset_n_sleep>, <&us_euro_hs_sel>;
|
||||
|
||||
reset-gpios = <&tlmm 83 GPIO_ACTIVE_HIGH>;
|
||||
reset-gpios = <&tlmm 83 GPIO_ACTIVE_LOW>;
|
||||
us-euro-gpios = <&tlmm 81 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
qcom,rx-device = <&wcd_rx>;
|
||||
|
@ -779,7 +779,7 @@ rx-cts-rts {
|
||||
pins = "gpio17", "gpio18", "gpio19";
|
||||
function = "gpio";
|
||||
drive-strength = <2>;
|
||||
bias-no-pull;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -1436,7 +1436,7 @@ ap_suspend_l_assert: ap_suspend_l_assert {
|
||||
config {
|
||||
pins = "gpio126";
|
||||
function = "gpio";
|
||||
bias-no-pull;
|
||||
bias-disable;
|
||||
drive-strength = <2>;
|
||||
output-low;
|
||||
};
|
||||
@ -1446,7 +1446,7 @@ ap_suspend_l_deassert: ap_suspend_l_deassert {
|
||||
config {
|
||||
pins = "gpio126";
|
||||
function = "gpio";
|
||||
bias-no-pull;
|
||||
bias-disable;
|
||||
drive-strength = <2>;
|
||||
output-high;
|
||||
};
|
||||
|
@ -628,7 +628,7 @@ sde_dsi_suspend: sde-dsi-suspend {
|
||||
};
|
||||
|
||||
wcd_intr_default: wcd-intr-default {
|
||||
pins = "goui54";
|
||||
pins = "gpio54";
|
||||
function = "gpio";
|
||||
input-enable;
|
||||
bias-pull-down;
|
||||
|
@ -458,7 +458,7 @@ rpm_msg_ram: sram@45f0000 {
|
||||
sdhc_1: mmc@4744000 {
|
||||
compatible = "qcom,sm6125-sdhci", "qcom,sdhci-msm-v5";
|
||||
reg = <0x04744000 0x1000>, <0x04745000 0x1000>;
|
||||
reg-names = "hc", "core";
|
||||
reg-names = "hc", "cqhci";
|
||||
|
||||
interrupts = <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -485,6 +485,7 @@ sdhc_1: mmc@7c4000 {
|
||||
interrupts = <GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 644 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "hc_irq", "pwr_irq";
|
||||
iommus = <&apps_smmu 0x60 0x0>;
|
||||
|
||||
clocks = <&gcc GCC_SDCC1_AHB_CLK>,
|
||||
<&gcc GCC_SDCC1_APPS_CLK>,
|
||||
@ -1063,6 +1064,7 @@ sdhc_2: mmc@8804000 {
|
||||
interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "hc_irq", "pwr_irq";
|
||||
iommus = <&apps_smmu 0x560 0x0>;
|
||||
|
||||
clocks = <&gcc GCC_SDCC2_AHB_CLK>,
|
||||
<&gcc GCC_SDCC2_APPS_CLK>,
|
||||
@ -1148,15 +1150,11 @@ usb_1_ssphy: usb3-phy@88e9200 {
|
||||
dp_phy: dp-phy@88ea200 {
|
||||
reg = <0 0x088ea200 0 0x200>,
|
||||
<0 0x088ea400 0 0x200>,
|
||||
<0 0x088eac00 0 0x400>,
|
||||
<0 0x088eaa00 0 0x200>,
|
||||
<0 0x088ea600 0 0x200>,
|
||||
<0 0x088ea800 0 0x200>,
|
||||
<0 0x088eaa00 0 0x100>;
|
||||
<0 0x088ea800 0 0x200>;
|
||||
#phy-cells = <0>;
|
||||
#clock-cells = <1>;
|
||||
clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
|
||||
clock-names = "pipe0";
|
||||
clock-output-names = "usb3_phy_pipe_clk_src";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -2032,11 +2032,11 @@ ufs_mem_phy: phy@1d87000 {
|
||||
status = "disabled";
|
||||
|
||||
ufs_mem_phy_lanes: phy@1d87400 {
|
||||
reg = <0 0x01d87400 0 0x108>,
|
||||
<0 0x01d87600 0 0x1e0>,
|
||||
<0 0x01d87c00 0 0x1dc>,
|
||||
<0 0x01d87800 0 0x108>,
|
||||
<0 0x01d87a00 0 0x1e0>;
|
||||
reg = <0 0x01d87400 0 0x16c>,
|
||||
<0 0x01d87600 0 0x200>,
|
||||
<0 0x01d87c00 0 0x200>,
|
||||
<0 0x01d87800 0 0x16c>,
|
||||
<0 0x01d87a00 0 0x200>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -635,7 +635,7 @@ &soc {
|
||||
wcd938x: codec {
|
||||
compatible = "qcom,wcd9380-codec";
|
||||
#sound-dai-cells = <1>;
|
||||
reset-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
|
||||
reset-gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;
|
||||
vdd-buck-supply = <&vreg_s4a_1p8>;
|
||||
vdd-rxtx-supply = <&vreg_s4a_1p8>;
|
||||
vdd-io-supply = <&vreg_s4a_1p8>;
|
||||
|
@ -619,7 +619,7 @@ ts_int_default: ts-int-default {
|
||||
pins = "gpio39";
|
||||
function = "gpio";
|
||||
drive-strength = <2>;
|
||||
bias-disabled;
|
||||
bias-disable;
|
||||
input-enable;
|
||||
};
|
||||
|
||||
|
@ -2180,11 +2180,11 @@ ufs_mem_phy: phy@1d87000 {
|
||||
status = "disabled";
|
||||
|
||||
ufs_mem_phy_lanes: phy@1d87400 {
|
||||
reg = <0 0x01d87400 0 0x108>,
|
||||
<0 0x01d87600 0 0x1e0>,
|
||||
<0 0x01d87c00 0 0x1dc>,
|
||||
<0 0x01d87800 0 0x108>,
|
||||
<0 0x01d87a00 0 0x1e0>;
|
||||
reg = <0 0x01d87400 0 0x16c>,
|
||||
<0 0x01d87600 0 0x200>,
|
||||
<0 0x01d87c00 0 0x200>,
|
||||
<0 0x01d87800 0 0x16c>,
|
||||
<0 0x01d87a00 0 0x200>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
@ -2455,7 +2455,7 @@ data {
|
||||
pins = "gpio7";
|
||||
function = "dmic1_data";
|
||||
drive-strength = <2>;
|
||||
pull-down;
|
||||
bias-pull-down;
|
||||
input-enable;
|
||||
};
|
||||
};
|
||||
@ -2892,15 +2892,11 @@ usb_1_ssphy: usb3-phy@88e9200 {
|
||||
dp_phy: dp-phy@88ea200 {
|
||||
reg = <0 0x088ea200 0 0x200>,
|
||||
<0 0x088ea400 0 0x200>,
|
||||
<0 0x088eac00 0 0x400>,
|
||||
<0 0x088eaa00 0 0x200>,
|
||||
<0 0x088ea600 0 0x200>,
|
||||
<0 0x088ea800 0 0x200>,
|
||||
<0 0x088eaa00 0 0x100>;
|
||||
<0 0x088ea800 0 0x200>;
|
||||
#phy-cells = <0>;
|
||||
#clock-cells = <1>;
|
||||
clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
|
||||
clock-names = "pipe0";
|
||||
clock-output-names = "usb3_phy_pipe_clk_src";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -2142,11 +2142,11 @@ ufs_mem_phy: phy@1d87000 {
|
||||
status = "disabled";
|
||||
|
||||
ufs_mem_phy_lanes: phy@1d87400 {
|
||||
reg = <0 0x01d87400 0 0x108>,
|
||||
<0 0x01d87600 0 0x1e0>,
|
||||
<0 0x01d87c00 0 0x1dc>,
|
||||
<0 0x01d87800 0 0x108>,
|
||||
<0 0x01d87a00 0 0x1e0>;
|
||||
reg = <0 0x01d87400 0 0x188>,
|
||||
<0 0x01d87600 0 0x200>,
|
||||
<0 0x01d87c00 0 0x200>,
|
||||
<0 0x01d87800 0 0x188>,
|
||||
<0 0x01d87a00 0 0x200>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -556,8 +556,6 @@ &sdhc_2 {
|
||||
pinctrl-1 = <&sdc2_sleep_state &sdc2_card_det_n>;
|
||||
vmmc-supply = <&pm8350c_l9>;
|
||||
vqmmc-supply = <&pm8350c_l6>;
|
||||
/* Forbid SDR104/SDR50 - broken hw! */
|
||||
sdhci-caps-mask = <0x3 0x0>;
|
||||
no-sdio;
|
||||
no-mmc;
|
||||
status = "okay";
|
||||
|
@ -3161,11 +3161,11 @@ ufs_mem_phy: phy@1d87000 {
|
||||
status = "disabled";
|
||||
|
||||
ufs_mem_phy_lanes: phy@1d87400 {
|
||||
reg = <0 0x01d87400 0 0x108>,
|
||||
<0 0x01d87600 0 0x1e0>,
|
||||
<0 0x01d87c00 0 0x1dc>,
|
||||
<0 0x01d87800 0 0x108>,
|
||||
<0 0x01d87a00 0 0x1e0>;
|
||||
reg = <0 0x01d87400 0 0x188>,
|
||||
<0 0x01d87600 0 0x200>,
|
||||
<0 0x01d87c00 0 0x200>,
|
||||
<0 0x01d87800 0 0x188>,
|
||||
<0 0x01d87a00 0 0x200>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
@ -3192,6 +3192,9 @@ sdhc_2: sdhci@8804000 {
|
||||
bus-width = <4>;
|
||||
dma-coherent;
|
||||
|
||||
/* Forbid SDR104/SDR50 - broken hw! */
|
||||
sdhci-caps-mask = <0x3 0x0>;
|
||||
|
||||
status = "disabled";
|
||||
|
||||
sdhc2_opp_table: opp-table {
|
||||
|
@ -577,7 +577,7 @@ hscif0: serial@e6540000 {
|
||||
reg = <0 0xe6540000 0 0x60>;
|
||||
interrupts = <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cpg CPG_MOD 514>,
|
||||
<&cpg CPG_CORE R8A779F0_CLK_S0D3>,
|
||||
<&cpg CPG_CORE R8A779F0_CLK_SASYNCPERD1>,
|
||||
<&scif_clk>;
|
||||
clock-names = "fck", "brg_int", "scif_clk";
|
||||
dmas = <&dmac0 0x31>, <&dmac0 0x30>,
|
||||
@ -594,7 +594,7 @@ hscif1: serial@e6550000 {
|
||||
reg = <0 0xe6550000 0 0x60>;
|
||||
interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cpg CPG_MOD 515>,
|
||||
<&cpg CPG_CORE R8A779F0_CLK_S0D3>,
|
||||
<&cpg CPG_CORE R8A779F0_CLK_SASYNCPERD1>,
|
||||
<&scif_clk>;
|
||||
clock-names = "fck", "brg_int", "scif_clk";
|
||||
dmas = <&dmac0 0x33>, <&dmac0 0x32>,
|
||||
@ -611,7 +611,7 @@ hscif2: serial@e6560000 {
|
||||
reg = <0 0xe6560000 0 0x60>;
|
||||
interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cpg CPG_MOD 516>,
|
||||
<&cpg CPG_CORE R8A779F0_CLK_S0D3>,
|
||||
<&cpg CPG_CORE R8A779F0_CLK_SASYNCPERD1>,
|
||||
<&scif_clk>;
|
||||
clock-names = "fck", "brg_int", "scif_clk";
|
||||
dmas = <&dmac0 0x35>, <&dmac0 0x34>,
|
||||
@ -628,7 +628,7 @@ hscif3: serial@e66a0000 {
|
||||
reg = <0 0xe66a0000 0 0x60>;
|
||||
interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cpg CPG_MOD 517>,
|
||||
<&cpg CPG_CORE R8A779F0_CLK_S0D3>,
|
||||
<&cpg CPG_CORE R8A779F0_CLK_SASYNCPERD1>,
|
||||
<&scif_clk>;
|
||||
clock-names = "fck", "brg_int", "scif_clk";
|
||||
dmas = <&dmac0 0x37>, <&dmac0 0x36>,
|
||||
@ -657,7 +657,7 @@ scif0: serial@e6e60000 {
|
||||
reg = <0 0xe6e60000 0 64>;
|
||||
interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cpg CPG_MOD 702>,
|
||||
<&cpg CPG_CORE R8A779F0_CLK_S0D3_PER>,
|
||||
<&cpg CPG_CORE R8A779F0_CLK_SASYNCPERD1>,
|
||||
<&scif_clk>;
|
||||
clock-names = "fck", "brg_int", "scif_clk";
|
||||
dmas = <&dmac0 0x51>, <&dmac0 0x50>,
|
||||
@ -674,7 +674,7 @@ scif1: serial@e6e68000 {
|
||||
reg = <0 0xe6e68000 0 64>;
|
||||
interrupts = <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cpg CPG_MOD 703>,
|
||||
<&cpg CPG_CORE R8A779F0_CLK_S0D3_PER>,
|
||||
<&cpg CPG_CORE R8A779F0_CLK_SASYNCPERD1>,
|
||||
<&scif_clk>;
|
||||
clock-names = "fck", "brg_int", "scif_clk";
|
||||
dmas = <&dmac0 0x53>, <&dmac0 0x52>,
|
||||
@ -691,7 +691,7 @@ scif3: serial@e6c50000 {
|
||||
reg = <0 0xe6c50000 0 64>;
|
||||
interrupts = <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cpg CPG_MOD 704>,
|
||||
<&cpg CPG_CORE R8A779F0_CLK_S0D3_PER>,
|
||||
<&cpg CPG_CORE R8A779F0_CLK_SASYNCPERD1>,
|
||||
<&scif_clk>;
|
||||
clock-names = "fck", "brg_int", "scif_clk";
|
||||
dmas = <&dmac0 0x57>, <&dmac0 0x56>,
|
||||
@ -708,7 +708,7 @@ scif4: serial@e6c40000 {
|
||||
reg = <0 0xe6c40000 0 64>;
|
||||
interrupts = <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cpg CPG_MOD 705>,
|
||||
<&cpg CPG_CORE R8A779F0_CLK_S0D3_PER>,
|
||||
<&cpg CPG_CORE R8A779F0_CLK_SASYNCPERD1>,
|
||||
<&scif_clk>;
|
||||
clock-names = "fck", "brg_int", "scif_clk";
|
||||
dmas = <&dmac0 0x59>, <&dmac0 0x58>,
|
||||
|
@ -326,7 +326,7 @@ hscif0: serial@e6540000 {
|
||||
reg = <0 0xe6540000 0 96>;
|
||||
interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cpg CPG_MOD 514>,
|
||||
<&cpg CPG_CORE R8A779G0_CLK_S0D3_PER>,
|
||||
<&cpg CPG_CORE R8A779G0_CLK_SASYNCPERD1>,
|
||||
<&scif_clk>;
|
||||
clock-names = "fck", "brg_int", "scif_clk";
|
||||
power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
|
||||
|
@ -48,7 +48,7 @@ soc: soc {
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
gic: interrupt-controller@82000000 {
|
||||
gic: interrupt-controller@82010000 {
|
||||
compatible = "arm,gic-400";
|
||||
#interrupt-cells = <3>;
|
||||
#address-cells = <0>;
|
||||
@ -126,7 +126,7 @@ cpg: clock-controller@a3500000 {
|
||||
i2c0: i2c@a4030000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "renesas,i2c-r9a09g011", "renesas,rzv2m-i2c";
|
||||
compatible = "renesas,r9a09g011-i2c", "renesas,rzv2m-i2c";
|
||||
reg = <0 0xa4030000 0 0x80>;
|
||||
interrupts = <GIC_SPI 232 IRQ_TYPE_EDGE_RISING>,
|
||||
<GIC_SPI 236 IRQ_TYPE_EDGE_RISING>;
|
||||
@ -140,7 +140,7 @@ i2c0: i2c@a4030000 {
|
||||
i2c2: i2c@a4030100 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "renesas,i2c-r9a09g011", "renesas,rzv2m-i2c";
|
||||
compatible = "renesas,r9a09g011-i2c", "renesas,rzv2m-i2c";
|
||||
reg = <0 0xa4030100 0 0x80>;
|
||||
interrupts = <GIC_SPI 234 IRQ_TYPE_EDGE_RISING>,
|
||||
<GIC_SPI 238 IRQ_TYPE_EDGE_RISING>;
|
||||
|
@ -55,14 +55,14 @@ ufs_rst_n: ufs-rst-n-pins {
|
||||
samsung,pins = "gpf5-0";
|
||||
samsung,pin-function = <FSD_PIN_FUNC_2>;
|
||||
samsung,pin-pud = <FSD_PIN_PULL_NONE>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV2>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV4>;
|
||||
};
|
||||
|
||||
ufs_refclk_out: ufs-refclk-out-pins {
|
||||
samsung,pins = "gpf5-1";
|
||||
samsung,pin-function = <FSD_PIN_FUNC_2>;
|
||||
samsung,pin-pud = <FSD_PIN_PULL_NONE>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV2>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV4>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -239,105 +239,105 @@ pwm0_out: pwm0-out-pins {
|
||||
samsung,pins = "gpb6-1";
|
||||
samsung,pin-function = <FSD_PIN_FUNC_2>;
|
||||
samsung,pin-pud = <FSD_PIN_PULL_UP>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV2>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV4>;
|
||||
};
|
||||
|
||||
pwm1_out: pwm1-out-pins {
|
||||
samsung,pins = "gpb6-5";
|
||||
samsung,pin-function = <FSD_PIN_FUNC_2>;
|
||||
samsung,pin-pud = <FSD_PIN_PULL_UP>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV2>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV4>;
|
||||
};
|
||||
|
||||
hs_i2c0_bus: hs-i2c0-bus-pins {
|
||||
samsung,pins = "gpb0-0", "gpb0-1";
|
||||
samsung,pin-function = <FSD_PIN_FUNC_2>;
|
||||
samsung,pin-pud = <FSD_PIN_PULL_UP>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV1>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV4>;
|
||||
};
|
||||
|
||||
hs_i2c1_bus: hs-i2c1-bus-pins {
|
||||
samsung,pins = "gpb0-2", "gpb0-3";
|
||||
samsung,pin-function = <FSD_PIN_FUNC_2>;
|
||||
samsung,pin-pud = <FSD_PIN_PULL_UP>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV1>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV4>;
|
||||
};
|
||||
|
||||
hs_i2c2_bus: hs-i2c2-bus-pins {
|
||||
samsung,pins = "gpb0-4", "gpb0-5";
|
||||
samsung,pin-function = <FSD_PIN_FUNC_2>;
|
||||
samsung,pin-pud = <FSD_PIN_PULL_UP>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV1>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV4>;
|
||||
};
|
||||
|
||||
hs_i2c3_bus: hs-i2c3-bus-pins {
|
||||
samsung,pins = "gpb0-6", "gpb0-7";
|
||||
samsung,pin-function = <FSD_PIN_FUNC_2>;
|
||||
samsung,pin-pud = <FSD_PIN_PULL_UP>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV1>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV4>;
|
||||
};
|
||||
|
||||
hs_i2c4_bus: hs-i2c4-bus-pins {
|
||||
samsung,pins = "gpb1-0", "gpb1-1";
|
||||
samsung,pin-function = <FSD_PIN_FUNC_2>;
|
||||
samsung,pin-pud = <FSD_PIN_PULL_UP>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV1>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV4>;
|
||||
};
|
||||
|
||||
hs_i2c5_bus: hs-i2c5-bus-pins {
|
||||
samsung,pins = "gpb1-2", "gpb1-3";
|
||||
samsung,pin-function = <FSD_PIN_FUNC_2>;
|
||||
samsung,pin-pud = <FSD_PIN_PULL_UP>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV1>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV4>;
|
||||
};
|
||||
|
||||
hs_i2c6_bus: hs-i2c6-bus-pins {
|
||||
samsung,pins = "gpb1-4", "gpb1-5";
|
||||
samsung,pin-function = <FSD_PIN_FUNC_2>;
|
||||
samsung,pin-pud = <FSD_PIN_PULL_UP>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV1>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV4>;
|
||||
};
|
||||
|
||||
hs_i2c7_bus: hs-i2c7-bus-pins {
|
||||
samsung,pins = "gpb1-6", "gpb1-7";
|
||||
samsung,pin-function = <FSD_PIN_FUNC_2>;
|
||||
samsung,pin-pud = <FSD_PIN_PULL_UP>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV1>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV4>;
|
||||
};
|
||||
|
||||
uart0_data: uart0-data-pins {
|
||||
samsung,pins = "gpb7-0", "gpb7-1";
|
||||
samsung,pin-function = <FSD_PIN_FUNC_2>;
|
||||
samsung,pin-pud = <FSD_PIN_PULL_NONE>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV1>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV4>;
|
||||
};
|
||||
|
||||
uart1_data: uart1-data-pins {
|
||||
samsung,pins = "gpb7-4", "gpb7-5";
|
||||
samsung,pin-function = <FSD_PIN_FUNC_2>;
|
||||
samsung,pin-pud = <FSD_PIN_PULL_NONE>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV1>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV4>;
|
||||
};
|
||||
|
||||
spi0_bus: spi0-bus-pins {
|
||||
samsung,pins = "gpb4-0", "gpb4-2", "gpb4-3";
|
||||
samsung,pin-function = <FSD_PIN_FUNC_2>;
|
||||
samsung,pin-pud = <FSD_PIN_PULL_UP>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV1>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV4>;
|
||||
};
|
||||
|
||||
spi1_bus: spi1-bus-pins {
|
||||
samsung,pins = "gpb4-4", "gpb4-6", "gpb4-7";
|
||||
samsung,pin-function = <FSD_PIN_FUNC_2>;
|
||||
samsung,pin-pud = <FSD_PIN_PULL_UP>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV1>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV4>;
|
||||
};
|
||||
|
||||
spi2_bus: spi2-bus-pins {
|
||||
samsung,pins = "gpb5-0", "gpb5-2", "gpb5-3";
|
||||
samsung,pin-function = <FSD_PIN_FUNC_2>;
|
||||
samsung,pin-pud = <FSD_PIN_PULL_UP>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV1>;
|
||||
samsung,pin-drv = <FSD_PIN_DRV_LV4>;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -16,9 +16,9 @@
|
||||
#define FSD_PIN_PULL_UP 3
|
||||
|
||||
#define FSD_PIN_DRV_LV1 0
|
||||
#define FSD_PIN_DRV_LV2 2
|
||||
#define FSD_PIN_DRV_LV3 1
|
||||
#define FSD_PIN_DRV_LV4 3
|
||||
#define FSD_PIN_DRV_LV2 1
|
||||
#define FSD_PIN_DRV_LV4 2
|
||||
#define FSD_PIN_DRV_LV6 3
|
||||
|
||||
#define FSD_PIN_FUNC_INPUT 0
|
||||
#define FSD_PIN_FUNC_OUTPUT 1
|
||||
|
@ -120,7 +120,6 @@ crypto: crypto@4e00000 {
|
||||
dmas = <&main_udmap 0xc001>, <&main_udmap 0x4002>,
|
||||
<&main_udmap 0x4003>;
|
||||
dma-names = "tx", "rx1", "rx2";
|
||||
dma-coherent;
|
||||
|
||||
rng: rng@4e10000 {
|
||||
compatible = "inside-secure,safexcel-eip76";
|
||||
|
@ -386,7 +386,6 @@ mcu_crypto: crypto@40900000 {
|
||||
dmas = <&mcu_udmap 0xf501>, <&mcu_udmap 0x7502>,
|
||||
<&mcu_udmap 0x7503>;
|
||||
dma-names = "tx", "rx1", "rx2";
|
||||
dma-coherent;
|
||||
|
||||
rng: rng@40910000 {
|
||||
compatible = "inside-secure,safexcel-eip76";
|
||||
|
@ -337,7 +337,6 @@ main_crypto: crypto@4e00000 {
|
||||
dmas = <&main_udmap 0xc000>, <&main_udmap 0x4000>,
|
||||
<&main_udmap 0x4001>;
|
||||
dma-names = "tx", "rx1", "rx2";
|
||||
dma-coherent;
|
||||
|
||||
rng: rng@4e10000 {
|
||||
compatible = "inside-secure,safexcel-eip76";
|
||||
|
@ -60,7 +60,7 @@ main_gpio_intr: interrupt-controller@a00000 {
|
||||
#interrupt-cells = <1>;
|
||||
ti,sci = <&sms>;
|
||||
ti,sci-dev-id = <148>;
|
||||
ti,interrupt-ranges = <8 360 56>;
|
||||
ti,interrupt-ranges = <8 392 56>;
|
||||
};
|
||||
|
||||
main_pmx0: pinctrl@11c000 {
|
||||
|
@ -65,7 +65,7 @@ wkup_gpio_intr: interrupt-controller@42200000 {
|
||||
#interrupt-cells = <1>;
|
||||
ti,sci = <&sms>;
|
||||
ti,sci-dev-id = <125>;
|
||||
ti,interrupt-ranges = <16 928 16>;
|
||||
ti,interrupt-ranges = <16 960 16>;
|
||||
};
|
||||
|
||||
mcu_conf: syscon@40f00000 {
|
||||
|
@ -96,6 +96,17 @@ config CRYPTO_SHA3_ARM64
|
||||
Architecture: arm64 using:
|
||||
- ARMv8.2 Crypto Extensions
|
||||
|
||||
config CRYPTO_SM3_NEON
|
||||
tristate "Hash functions: SM3 (NEON)"
|
||||
depends on KERNEL_MODE_NEON
|
||||
select CRYPTO_HASH
|
||||
select CRYPTO_SM3
|
||||
help
|
||||
SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012)
|
||||
|
||||
Architecture: arm64 using:
|
||||
- NEON (Advanced SIMD) extensions
|
||||
|
||||
config CRYPTO_SM3_ARM64_CE
|
||||
tristate "Hash functions: SM3 (ARMv8.2 Crypto Extensions)"
|
||||
depends on KERNEL_MODE_NEON
|
||||
|
@ -17,6 +17,9 @@ sha512-ce-y := sha512-ce-glue.o sha512-ce-core.o
|
||||
obj-$(CONFIG_CRYPTO_SHA3_ARM64) += sha3-ce.o
|
||||
sha3-ce-y := sha3-ce-glue.o sha3-ce-core.o
|
||||
|
||||
obj-$(CONFIG_CRYPTO_SM3_NEON) += sm3-neon.o
|
||||
sm3-neon-y := sm3-neon-glue.o sm3-neon-core.o
|
||||
|
||||
obj-$(CONFIG_CRYPTO_SM3_ARM64_CE) += sm3-ce.o
|
||||
sm3-ce-y := sm3-ce-glue.o sm3-ce-core.o
|
||||
|
||||
|
601
arch/arm64/crypto/sm3-neon-core.S
Normal file
601
arch/arm64/crypto/sm3-neon-core.S
Normal file
@ -0,0 +1,601 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* sm3-neon-core.S - SM3 secure hash using NEON instructions
|
||||
*
|
||||
* Linux/arm64 port of the libgcrypt SM3 implementation for AArch64
|
||||
*
|
||||
* Copyright (C) 2021 Jussi Kivilinna <jussi.kivilinna@iki.fi>
|
||||
* Copyright (c) 2022 Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
|
||||
*/
|
||||
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/cfi_types.h>
|
||||
#include <asm/assembler.h>
|
||||
|
||||
/* Context structure */
|
||||
|
||||
#define state_h0 0
|
||||
#define state_h1 4
|
||||
#define state_h2 8
|
||||
#define state_h3 12
|
||||
#define state_h4 16
|
||||
#define state_h5 20
|
||||
#define state_h6 24
|
||||
#define state_h7 28
|
||||
|
||||
/* Stack structure */
|
||||
|
||||
#define STACK_W_SIZE (32 * 2 * 3)
|
||||
|
||||
#define STACK_W (0)
|
||||
#define STACK_SIZE (STACK_W + STACK_W_SIZE)
|
||||
|
||||
/* Register macros */
|
||||
|
||||
#define RSTATE x0
|
||||
#define RDATA x1
|
||||
#define RNBLKS x2
|
||||
#define RKPTR x28
|
||||
#define RFRAME x29
|
||||
|
||||
#define ra w3
|
||||
#define rb w4
|
||||
#define rc w5
|
||||
#define rd w6
|
||||
#define re w7
|
||||
#define rf w8
|
||||
#define rg w9
|
||||
#define rh w10
|
||||
|
||||
#define t0 w11
|
||||
#define t1 w12
|
||||
#define t2 w13
|
||||
#define t3 w14
|
||||
#define t4 w15
|
||||
#define t5 w16
|
||||
#define t6 w17
|
||||
|
||||
#define k_even w19
|
||||
#define k_odd w20
|
||||
|
||||
#define addr0 x21
|
||||
#define addr1 x22
|
||||
|
||||
#define s0 w23
|
||||
#define s1 w24
|
||||
#define s2 w25
|
||||
#define s3 w26
|
||||
|
||||
#define W0 v0
|
||||
#define W1 v1
|
||||
#define W2 v2
|
||||
#define W3 v3
|
||||
#define W4 v4
|
||||
#define W5 v5
|
||||
|
||||
#define XTMP0 v6
|
||||
#define XTMP1 v7
|
||||
#define XTMP2 v16
|
||||
#define XTMP3 v17
|
||||
#define XTMP4 v18
|
||||
#define XTMP5 v19
|
||||
#define XTMP6 v20
|
||||
|
||||
/* Helper macros. */
|
||||
|
||||
#define _(...) /*_*/
|
||||
|
||||
#define clear_vec(x) \
|
||||
movi x.8h, #0;
|
||||
|
||||
#define rolw(o, a, n) \
|
||||
ror o, a, #(32 - n);
|
||||
|
||||
/* Round function macros. */
|
||||
|
||||
#define GG1_1(x, y, z, o, t) \
|
||||
eor o, x, y;
|
||||
#define GG1_2(x, y, z, o, t) \
|
||||
eor o, o, z;
|
||||
#define GG1_3(x, y, z, o, t)
|
||||
|
||||
#define FF1_1(x, y, z, o, t) GG1_1(x, y, z, o, t)
|
||||
#define FF1_2(x, y, z, o, t)
|
||||
#define FF1_3(x, y, z, o, t) GG1_2(x, y, z, o, t)
|
||||
|
||||
#define GG2_1(x, y, z, o, t) \
|
||||
bic o, z, x;
|
||||
#define GG2_2(x, y, z, o, t) \
|
||||
and t, y, x;
|
||||
#define GG2_3(x, y, z, o, t) \
|
||||
eor o, o, t;
|
||||
|
||||
#define FF2_1(x, y, z, o, t) \
|
||||
eor o, x, y;
|
||||
#define FF2_2(x, y, z, o, t) \
|
||||
and t, x, y; \
|
||||
and o, o, z;
|
||||
#define FF2_3(x, y, z, o, t) \
|
||||
eor o, o, t;
|
||||
|
||||
#define R(i, a, b, c, d, e, f, g, h, k, K_LOAD, round, widx, wtype, IOP, iop_param) \
|
||||
K_LOAD(round); \
|
||||
ldr t5, [sp, #(wtype##_W1_ADDR(round, widx))]; \
|
||||
rolw(t0, a, 12); /* rol(a, 12) => t0 */ \
|
||||
IOP(1, iop_param); \
|
||||
FF##i##_1(a, b, c, t1, t2); \
|
||||
ldr t6, [sp, #(wtype##_W1W2_ADDR(round, widx))]; \
|
||||
add k, k, e; \
|
||||
IOP(2, iop_param); \
|
||||
GG##i##_1(e, f, g, t3, t4); \
|
||||
FF##i##_2(a, b, c, t1, t2); \
|
||||
IOP(3, iop_param); \
|
||||
add k, k, t0; \
|
||||
add h, h, t5; \
|
||||
add d, d, t6; /* w1w2 + d => d */ \
|
||||
IOP(4, iop_param); \
|
||||
rolw(k, k, 7); /* rol (t0 + e + t), 7) => k */ \
|
||||
GG##i##_2(e, f, g, t3, t4); \
|
||||
add h, h, k; /* h + w1 + k => h */ \
|
||||
IOP(5, iop_param); \
|
||||
FF##i##_3(a, b, c, t1, t2); \
|
||||
eor t0, t0, k; /* k ^ t0 => t0 */ \
|
||||
GG##i##_3(e, f, g, t3, t4); \
|
||||
add d, d, t1; /* FF(a,b,c) + d => d */ \
|
||||
IOP(6, iop_param); \
|
||||
add t3, t3, h; /* GG(e,f,g) + h => t3 */ \
|
||||
rolw(b, b, 9); /* rol(b, 9) => b */ \
|
||||
eor h, t3, t3, ror #(32-9); \
|
||||
IOP(7, iop_param); \
|
||||
add d, d, t0; /* t0 + d => d */ \
|
||||
rolw(f, f, 19); /* rol(f, 19) => f */ \
|
||||
IOP(8, iop_param); \
|
||||
eor h, h, t3, ror #(32-17); /* P0(t3) => h */
|
||||
|
||||
#define R1(a, b, c, d, e, f, g, h, k, K_LOAD, round, widx, wtype, IOP, iop_param) \
|
||||
R(1, ##a, ##b, ##c, ##d, ##e, ##f, ##g, ##h, ##k, K_LOAD, round, widx, wtype, IOP, iop_param)
|
||||
|
||||
#define R2(a, b, c, d, e, f, g, h, k, K_LOAD, round, widx, wtype, IOP, iop_param) \
|
||||
R(2, ##a, ##b, ##c, ##d, ##e, ##f, ##g, ##h, ##k, K_LOAD, round, widx, wtype, IOP, iop_param)
|
||||
|
||||
#define KL(round) \
|
||||
ldp k_even, k_odd, [RKPTR, #(4*(round))];
|
||||
|
||||
/* Input expansion macros. */
|
||||
|
||||
/* Byte-swapped input address. */
|
||||
#define IW_W_ADDR(round, widx, offs) \
|
||||
(STACK_W + ((round) / 4) * 64 + (offs) + ((widx) * 4))
|
||||
|
||||
/* Expanded input address. */
|
||||
#define XW_W_ADDR(round, widx, offs) \
|
||||
(STACK_W + ((((round) / 3) - 4) % 2) * 64 + (offs) + ((widx) * 4))
|
||||
|
||||
/* Rounds 1-12, byte-swapped input block addresses. */
|
||||
#define IW_W1_ADDR(round, widx) IW_W_ADDR(round, widx, 32)
|
||||
#define IW_W1W2_ADDR(round, widx) IW_W_ADDR(round, widx, 48)
|
||||
|
||||
/* Rounds 1-12, expanded input block addresses. */
|
||||
#define XW_W1_ADDR(round, widx) XW_W_ADDR(round, widx, 0)
|
||||
#define XW_W1W2_ADDR(round, widx) XW_W_ADDR(round, widx, 16)
|
||||
|
||||
/* Input block loading.
|
||||
* Interleaving within round function needed for in-order CPUs. */
|
||||
#define LOAD_W_VEC_1_1() \
|
||||
add addr0, sp, #IW_W1_ADDR(0, 0);
|
||||
#define LOAD_W_VEC_1_2() \
|
||||
add addr1, sp, #IW_W1_ADDR(4, 0);
|
||||
#define LOAD_W_VEC_1_3() \
|
||||
ld1 {W0.16b}, [RDATA], #16;
|
||||
#define LOAD_W_VEC_1_4() \
|
||||
ld1 {W1.16b}, [RDATA], #16;
|
||||
#define LOAD_W_VEC_1_5() \
|
||||
ld1 {W2.16b}, [RDATA], #16;
|
||||
#define LOAD_W_VEC_1_6() \
|
||||
ld1 {W3.16b}, [RDATA], #16;
|
||||
#define LOAD_W_VEC_1_7() \
|
||||
rev32 XTMP0.16b, W0.16b;
|
||||
#define LOAD_W_VEC_1_8() \
|
||||
rev32 XTMP1.16b, W1.16b;
|
||||
#define LOAD_W_VEC_2_1() \
|
||||
rev32 XTMP2.16b, W2.16b;
|
||||
#define LOAD_W_VEC_2_2() \
|
||||
rev32 XTMP3.16b, W3.16b;
|
||||
#define LOAD_W_VEC_2_3() \
|
||||
eor XTMP4.16b, XTMP1.16b, XTMP0.16b;
|
||||
#define LOAD_W_VEC_2_4() \
|
||||
eor XTMP5.16b, XTMP2.16b, XTMP1.16b;
|
||||
#define LOAD_W_VEC_2_5() \
|
||||
st1 {XTMP0.16b}, [addr0], #16;
|
||||
#define LOAD_W_VEC_2_6() \
|
||||
st1 {XTMP4.16b}, [addr0]; \
|
||||
add addr0, sp, #IW_W1_ADDR(8, 0);
|
||||
#define LOAD_W_VEC_2_7() \
|
||||
eor XTMP6.16b, XTMP3.16b, XTMP2.16b;
|
||||
#define LOAD_W_VEC_2_8() \
|
||||
ext W0.16b, XTMP0.16b, XTMP0.16b, #8; /* W0: xx, w0, xx, xx */
|
||||
#define LOAD_W_VEC_3_1() \
|
||||
mov W2.16b, XTMP1.16b; /* W2: xx, w6, w5, w4 */
|
||||
#define LOAD_W_VEC_3_2() \
|
||||
st1 {XTMP1.16b}, [addr1], #16;
|
||||
#define LOAD_W_VEC_3_3() \
|
||||
st1 {XTMP5.16b}, [addr1]; \
|
||||
ext W1.16b, XTMP0.16b, XTMP0.16b, #4; /* W1: xx, w3, w2, w1 */
|
||||
#define LOAD_W_VEC_3_4() \
|
||||
ext W3.16b, XTMP1.16b, XTMP2.16b, #12; /* W3: xx, w9, w8, w7 */
|
||||
#define LOAD_W_VEC_3_5() \
|
||||
ext W4.16b, XTMP2.16b, XTMP3.16b, #8; /* W4: xx, w12, w11, w10 */
|
||||
#define LOAD_W_VEC_3_6() \
|
||||
st1 {XTMP2.16b}, [addr0], #16;
|
||||
#define LOAD_W_VEC_3_7() \
|
||||
st1 {XTMP6.16b}, [addr0];
|
||||
#define LOAD_W_VEC_3_8() \
|
||||
ext W5.16b, XTMP3.16b, XTMP3.16b, #4; /* W5: xx, w15, w14, w13 */
|
||||
|
||||
#define LOAD_W_VEC_1(iop_num, ...) \
|
||||
LOAD_W_VEC_1_##iop_num()
|
||||
#define LOAD_W_VEC_2(iop_num, ...) \
|
||||
LOAD_W_VEC_2_##iop_num()
|
||||
#define LOAD_W_VEC_3(iop_num, ...) \
|
||||
LOAD_W_VEC_3_##iop_num()
|
||||
|
||||
/* Message scheduling. Note: 3 words per vector register.
|
||||
* Interleaving within round function needed for in-order CPUs. */
|
||||
#define SCHED_W_1_1(round, w0, w1, w2, w3, w4, w5) \
|
||||
/* Load (w[i - 16]) => XTMP0 */ \
|
||||
/* Load (w[i - 13]) => XTMP5 */ \
|
||||
ext XTMP0.16b, w0.16b, w0.16b, #12; /* XTMP0: w0, xx, xx, xx */
|
||||
#define SCHED_W_1_2(round, w0, w1, w2, w3, w4, w5) \
|
||||
ext XTMP5.16b, w1.16b, w1.16b, #12;
|
||||
#define SCHED_W_1_3(round, w0, w1, w2, w3, w4, w5) \
|
||||
ext XTMP0.16b, XTMP0.16b, w1.16b, #12; /* XTMP0: xx, w2, w1, w0 */
|
||||
#define SCHED_W_1_4(round, w0, w1, w2, w3, w4, w5) \
|
||||
ext XTMP5.16b, XTMP5.16b, w2.16b, #12;
|
||||
#define SCHED_W_1_5(round, w0, w1, w2, w3, w4, w5) \
|
||||
/* w[i - 9] == w3 */ \
|
||||
/* W3 ^ XTMP0 => XTMP0 */ \
|
||||
eor XTMP0.16b, XTMP0.16b, w3.16b;
|
||||
#define SCHED_W_1_6(round, w0, w1, w2, w3, w4, w5) \
|
||||
/* w[i - 3] == w5 */ \
|
||||
/* rol(XMM5, 15) ^ XTMP0 => XTMP0 */ \
|
||||
/* rol(XTMP5, 7) => XTMP1 */ \
|
||||
add addr0, sp, #XW_W1_ADDR((round), 0); \
|
||||
shl XTMP2.4s, w5.4s, #15;
|
||||
#define SCHED_W_1_7(round, w0, w1, w2, w3, w4, w5) \
|
||||
shl XTMP1.4s, XTMP5.4s, #7;
|
||||
#define SCHED_W_1_8(round, w0, w1, w2, w3, w4, w5) \
|
||||
sri XTMP2.4s, w5.4s, #(32-15);
|
||||
#define SCHED_W_2_1(round, w0, w1, w2, w3, w4, w5) \
|
||||
sri XTMP1.4s, XTMP5.4s, #(32-7);
|
||||
#define SCHED_W_2_2(round, w0, w1, w2, w3, w4, w5) \
|
||||
eor XTMP0.16b, XTMP0.16b, XTMP2.16b;
|
||||
#define SCHED_W_2_3(round, w0, w1, w2, w3, w4, w5) \
|
||||
/* w[i - 6] == W4 */ \
|
||||
/* W4 ^ XTMP1 => XTMP1 */ \
|
||||
eor XTMP1.16b, XTMP1.16b, w4.16b;
|
||||
#define SCHED_W_2_4(round, w0, w1, w2, w3, w4, w5) \
|
||||
/* P1(XTMP0) ^ XTMP1 => W0 */ \
|
||||
shl XTMP3.4s, XTMP0.4s, #15;
|
||||
#define SCHED_W_2_5(round, w0, w1, w2, w3, w4, w5) \
|
||||
shl XTMP4.4s, XTMP0.4s, #23;
|
||||
#define SCHED_W_2_6(round, w0, w1, w2, w3, w4, w5) \
|
||||
eor w0.16b, XTMP1.16b, XTMP0.16b;
|
||||
#define SCHED_W_2_7(round, w0, w1, w2, w3, w4, w5) \
|
||||
sri XTMP3.4s, XTMP0.4s, #(32-15);
|
||||
#define SCHED_W_2_8(round, w0, w1, w2, w3, w4, w5) \
|
||||
sri XTMP4.4s, XTMP0.4s, #(32-23);
|
||||
#define SCHED_W_3_1(round, w0, w1, w2, w3, w4, w5) \
|
||||
eor w0.16b, w0.16b, XTMP3.16b;
|
||||
#define SCHED_W_3_2(round, w0, w1, w2, w3, w4, w5) \
|
||||
/* Load (w[i - 3]) => XTMP2 */ \
|
||||
ext XTMP2.16b, w4.16b, w4.16b, #12;
|
||||
#define SCHED_W_3_3(round, w0, w1, w2, w3, w4, w5) \
|
||||
eor w0.16b, w0.16b, XTMP4.16b;
|
||||
#define SCHED_W_3_4(round, w0, w1, w2, w3, w4, w5) \
|
||||
ext XTMP2.16b, XTMP2.16b, w5.16b, #12;
|
||||
#define SCHED_W_3_5(round, w0, w1, w2, w3, w4, w5) \
|
||||
/* W1 ^ W2 => XTMP3 */ \
|
||||
eor XTMP3.16b, XTMP2.16b, w0.16b;
|
||||
#define SCHED_W_3_6(round, w0, w1, w2, w3, w4, w5)
|
||||
#define SCHED_W_3_7(round, w0, w1, w2, w3, w4, w5) \
|
||||
st1 {XTMP2.16b-XTMP3.16b}, [addr0];
|
||||
#define SCHED_W_3_8(round, w0, w1, w2, w3, w4, w5)
|
||||
|
||||
#define SCHED_W_W0W1W2W3W4W5_1(iop_num, round) \
|
||||
SCHED_W_1_##iop_num(round, W0, W1, W2, W3, W4, W5)
|
||||
#define SCHED_W_W0W1W2W3W4W5_2(iop_num, round) \
|
||||
SCHED_W_2_##iop_num(round, W0, W1, W2, W3, W4, W5)
|
||||
#define SCHED_W_W0W1W2W3W4W5_3(iop_num, round) \
|
||||
SCHED_W_3_##iop_num(round, W0, W1, W2, W3, W4, W5)
|
||||
|
||||
#define SCHED_W_W1W2W3W4W5W0_1(iop_num, round) \
|
||||
SCHED_W_1_##iop_num(round, W1, W2, W3, W4, W5, W0)
|
||||
#define SCHED_W_W1W2W3W4W5W0_2(iop_num, round) \
|
||||
SCHED_W_2_##iop_num(round, W1, W2, W3, W4, W5, W0)
|
||||
#define SCHED_W_W1W2W3W4W5W0_3(iop_num, round) \
|
||||
SCHED_W_3_##iop_num(round, W1, W2, W3, W4, W5, W0)
|
||||
|
||||
#define SCHED_W_W2W3W4W5W0W1_1(iop_num, round) \
|
||||
SCHED_W_1_##iop_num(round, W2, W3, W4, W5, W0, W1)
|
||||
#define SCHED_W_W2W3W4W5W0W1_2(iop_num, round) \
|
||||
SCHED_W_2_##iop_num(round, W2, W3, W4, W5, W0, W1)
|
||||
#define SCHED_W_W2W3W4W5W0W1_3(iop_num, round) \
|
||||
SCHED_W_3_##iop_num(round, W2, W3, W4, W5, W0, W1)
|
||||
|
||||
#define SCHED_W_W3W4W5W0W1W2_1(iop_num, round) \
|
||||
SCHED_W_1_##iop_num(round, W3, W4, W5, W0, W1, W2)
|
||||
#define SCHED_W_W3W4W5W0W1W2_2(iop_num, round) \
|
||||
SCHED_W_2_##iop_num(round, W3, W4, W5, W0, W1, W2)
|
||||
#define SCHED_W_W3W4W5W0W1W2_3(iop_num, round) \
|
||||
SCHED_W_3_##iop_num(round, W3, W4, W5, W0, W1, W2)
|
||||
|
||||
#define SCHED_W_W4W5W0W1W2W3_1(iop_num, round) \
|
||||
SCHED_W_1_##iop_num(round, W4, W5, W0, W1, W2, W3)
|
||||
#define SCHED_W_W4W5W0W1W2W3_2(iop_num, round) \
|
||||
SCHED_W_2_##iop_num(round, W4, W5, W0, W1, W2, W3)
|
||||
#define SCHED_W_W4W5W0W1W2W3_3(iop_num, round) \
|
||||
SCHED_W_3_##iop_num(round, W4, W5, W0, W1, W2, W3)
|
||||
|
||||
#define SCHED_W_W5W0W1W2W3W4_1(iop_num, round) \
|
||||
SCHED_W_1_##iop_num(round, W5, W0, W1, W2, W3, W4)
|
||||
#define SCHED_W_W5W0W1W2W3W4_2(iop_num, round) \
|
||||
SCHED_W_2_##iop_num(round, W5, W0, W1, W2, W3, W4)
|
||||
#define SCHED_W_W5W0W1W2W3W4_3(iop_num, round) \
|
||||
SCHED_W_3_##iop_num(round, W5, W0, W1, W2, W3, W4)
|
||||
|
||||
|
||||
/*
|
||||
* Transform blocks*64 bytes (blocks*16 32-bit words) at 'src'.
|
||||
*
|
||||
* void sm3_neon_transform(struct sm3_state *sst, u8 const *src,
|
||||
* int blocks)
|
||||
*/
|
||||
.text
|
||||
.align 3
|
||||
SYM_TYPED_FUNC_START(sm3_neon_transform)
|
||||
ldp ra, rb, [RSTATE, #0]
|
||||
ldp rc, rd, [RSTATE, #8]
|
||||
ldp re, rf, [RSTATE, #16]
|
||||
ldp rg, rh, [RSTATE, #24]
|
||||
|
||||
stp x28, x29, [sp, #-16]!
|
||||
stp x19, x20, [sp, #-16]!
|
||||
stp x21, x22, [sp, #-16]!
|
||||
stp x23, x24, [sp, #-16]!
|
||||
stp x25, x26, [sp, #-16]!
|
||||
mov RFRAME, sp
|
||||
|
||||
sub addr0, sp, #STACK_SIZE
|
||||
adr_l RKPTR, .LKtable
|
||||
and sp, addr0, #(~63)
|
||||
|
||||
/* Preload first block. */
|
||||
LOAD_W_VEC_1(1, 0)
|
||||
LOAD_W_VEC_1(2, 0)
|
||||
LOAD_W_VEC_1(3, 0)
|
||||
LOAD_W_VEC_1(4, 0)
|
||||
LOAD_W_VEC_1(5, 0)
|
||||
LOAD_W_VEC_1(6, 0)
|
||||
LOAD_W_VEC_1(7, 0)
|
||||
LOAD_W_VEC_1(8, 0)
|
||||
LOAD_W_VEC_2(1, 0)
|
||||
LOAD_W_VEC_2(2, 0)
|
||||
LOAD_W_VEC_2(3, 0)
|
||||
LOAD_W_VEC_2(4, 0)
|
||||
LOAD_W_VEC_2(5, 0)
|
||||
LOAD_W_VEC_2(6, 0)
|
||||
LOAD_W_VEC_2(7, 0)
|
||||
LOAD_W_VEC_2(8, 0)
|
||||
LOAD_W_VEC_3(1, 0)
|
||||
LOAD_W_VEC_3(2, 0)
|
||||
LOAD_W_VEC_3(3, 0)
|
||||
LOAD_W_VEC_3(4, 0)
|
||||
LOAD_W_VEC_3(5, 0)
|
||||
LOAD_W_VEC_3(6, 0)
|
||||
LOAD_W_VEC_3(7, 0)
|
||||
LOAD_W_VEC_3(8, 0)
|
||||
|
||||
.balign 16
|
||||
.Loop:
|
||||
/* Transform 0-3 */
|
||||
R1(ra, rb, rc, rd, re, rf, rg, rh, k_even, KL, 0, 0, IW, _, 0)
|
||||
R1(rd, ra, rb, rc, rh, re, rf, rg, k_odd, _, 1, 1, IW, _, 0)
|
||||
R1(rc, rd, ra, rb, rg, rh, re, rf, k_even, KL, 2, 2, IW, _, 0)
|
||||
R1(rb, rc, rd, ra, rf, rg, rh, re, k_odd, _, 3, 3, IW, _, 0)
|
||||
|
||||
/* Transform 4-7 + Precalc 12-14 */
|
||||
R1(ra, rb, rc, rd, re, rf, rg, rh, k_even, KL, 4, 0, IW, _, 0)
|
||||
R1(rd, ra, rb, rc, rh, re, rf, rg, k_odd, _, 5, 1, IW, _, 0)
|
||||
R1(rc, rd, ra, rb, rg, rh, re, rf, k_even, KL, 6, 2, IW, SCHED_W_W0W1W2W3W4W5_1, 12)
|
||||
R1(rb, rc, rd, ra, rf, rg, rh, re, k_odd, _, 7, 3, IW, SCHED_W_W0W1W2W3W4W5_2, 12)
|
||||
|
||||
/* Transform 8-11 + Precalc 12-17 */
|
||||
R1(ra, rb, rc, rd, re, rf, rg, rh, k_even, KL, 8, 0, IW, SCHED_W_W0W1W2W3W4W5_3, 12)
|
||||
R1(rd, ra, rb, rc, rh, re, rf, rg, k_odd, _, 9, 1, IW, SCHED_W_W1W2W3W4W5W0_1, 15)
|
||||
R1(rc, rd, ra, rb, rg, rh, re, rf, k_even, KL, 10, 2, IW, SCHED_W_W1W2W3W4W5W0_2, 15)
|
||||
R1(rb, rc, rd, ra, rf, rg, rh, re, k_odd, _, 11, 3, IW, SCHED_W_W1W2W3W4W5W0_3, 15)
|
||||
|
||||
/* Transform 12-14 + Precalc 18-20 */
|
||||
R1(ra, rb, rc, rd, re, rf, rg, rh, k_even, KL, 12, 0, XW, SCHED_W_W2W3W4W5W0W1_1, 18)
|
||||
R1(rd, ra, rb, rc, rh, re, rf, rg, k_odd, _, 13, 1, XW, SCHED_W_W2W3W4W5W0W1_2, 18)
|
||||
R1(rc, rd, ra, rb, rg, rh, re, rf, k_even, KL, 14, 2, XW, SCHED_W_W2W3W4W5W0W1_3, 18)
|
||||
|
||||
/* Transform 15-17 + Precalc 21-23 */
|
||||
R1(rb, rc, rd, ra, rf, rg, rh, re, k_odd, _, 15, 0, XW, SCHED_W_W3W4W5W0W1W2_1, 21)
|
||||
R2(ra, rb, rc, rd, re, rf, rg, rh, k_even, KL, 16, 1, XW, SCHED_W_W3W4W5W0W1W2_2, 21)
|
||||
R2(rd, ra, rb, rc, rh, re, rf, rg, k_odd, _, 17, 2, XW, SCHED_W_W3W4W5W0W1W2_3, 21)
|
||||
|
||||
/* Transform 18-20 + Precalc 24-26 */
|
||||
R2(rc, rd, ra, rb, rg, rh, re, rf, k_even, KL, 18, 0, XW, SCHED_W_W4W5W0W1W2W3_1, 24)
|
||||
R2(rb, rc, rd, ra, rf, rg, rh, re, k_odd, _, 19, 1, XW, SCHED_W_W4W5W0W1W2W3_2, 24)
|
||||
R2(ra, rb, rc, rd, re, rf, rg, rh, k_even, KL, 20, 2, XW, SCHED_W_W4W5W0W1W2W3_3, 24)
|
||||
|
||||
/* Transform 21-23 + Precalc 27-29 */
|
||||
R2(rd, ra, rb, rc, rh, re, rf, rg, k_odd, _, 21, 0, XW, SCHED_W_W5W0W1W2W3W4_1, 27)
|
||||
R2(rc, rd, ra, rb, rg, rh, re, rf, k_even, KL, 22, 1, XW, SCHED_W_W5W0W1W2W3W4_2, 27)
|
||||
R2(rb, rc, rd, ra, rf, rg, rh, re, k_odd, _, 23, 2, XW, SCHED_W_W5W0W1W2W3W4_3, 27)
|
||||
|
||||
/* Transform 24-26 + Precalc 30-32 */
|
||||
R2(ra, rb, rc, rd, re, rf, rg, rh, k_even, KL, 24, 0, XW, SCHED_W_W0W1W2W3W4W5_1, 30)
|
||||
R2(rd, ra, rb, rc, rh, re, rf, rg, k_odd, _, 25, 1, XW, SCHED_W_W0W1W2W3W4W5_2, 30)
|
||||
R2(rc, rd, ra, rb, rg, rh, re, rf, k_even, KL, 26, 2, XW, SCHED_W_W0W1W2W3W4W5_3, 30)
|
||||
|
||||
/* Transform 27-29 + Precalc 33-35 */
|
||||
R2(rb, rc, rd, ra, rf, rg, rh, re, k_odd, _, 27, 0, XW, SCHED_W_W1W2W3W4W5W0_1, 33)
|
||||
R2(ra, rb, rc, rd, re, rf, rg, rh, k_even, KL, 28, 1, XW, SCHED_W_W1W2W3W4W5W0_2, 33)
|
||||
R2(rd, ra, rb, rc, rh, re, rf, rg, k_odd, _, 29, 2, XW, SCHED_W_W1W2W3W4W5W0_3, 33)
|
||||
|
||||
/* Transform 30-32 + Precalc 36-38 */
|
||||
R2(rc, rd, ra, rb, rg, rh, re, rf, k_even, KL, 30, 0, XW, SCHED_W_W2W3W4W5W0W1_1, 36)
|
||||
R2(rb, rc, rd, ra, rf, rg, rh, re, k_odd, _, 31, 1, XW, SCHED_W_W2W3W4W5W0W1_2, 36)
|
||||
R2(ra, rb, rc, rd, re, rf, rg, rh, k_even, KL, 32, 2, XW, SCHED_W_W2W3W4W5W0W1_3, 36)
|
||||
|
||||
/* Transform 33-35 + Precalc 39-41 */
|
||||
R2(rd, ra, rb, rc, rh, re, rf, rg, k_odd, _, 33, 0, XW, SCHED_W_W3W4W5W0W1W2_1, 39)
|
||||
R2(rc, rd, ra, rb, rg, rh, re, rf, k_even, KL, 34, 1, XW, SCHED_W_W3W4W5W0W1W2_2, 39)
|
||||
R2(rb, rc, rd, ra, rf, rg, rh, re, k_odd, _, 35, 2, XW, SCHED_W_W3W4W5W0W1W2_3, 39)
|
||||
|
||||
/* Transform 36-38 + Precalc 42-44 */
|
||||
R2(ra, rb, rc, rd, re, rf, rg, rh, k_even, KL, 36, 0, XW, SCHED_W_W4W5W0W1W2W3_1, 42)
|
||||
R2(rd, ra, rb, rc, rh, re, rf, rg, k_odd, _, 37, 1, XW, SCHED_W_W4W5W0W1W2W3_2, 42)
|
||||
R2(rc, rd, ra, rb, rg, rh, re, rf, k_even, KL, 38, 2, XW, SCHED_W_W4W5W0W1W2W3_3, 42)
|
||||
|
||||
/* Transform 39-41 + Precalc 45-47 */
|
||||
R2(rb, rc, rd, ra, rf, rg, rh, re, k_odd, _, 39, 0, XW, SCHED_W_W5W0W1W2W3W4_1, 45)
|
||||
R2(ra, rb, rc, rd, re, rf, rg, rh, k_even, KL, 40, 1, XW, SCHED_W_W5W0W1W2W3W4_2, 45)
|
||||
R2(rd, ra, rb, rc, rh, re, rf, rg, k_odd, _, 41, 2, XW, SCHED_W_W5W0W1W2W3W4_3, 45)
|
||||
|
||||
/* Transform 42-44 + Precalc 48-50 */
|
||||
R2(rc, rd, ra, rb, rg, rh, re, rf, k_even, KL, 42, 0, XW, SCHED_W_W0W1W2W3W4W5_1, 48)
|
||||
R2(rb, rc, rd, ra, rf, rg, rh, re, k_odd, _, 43, 1, XW, SCHED_W_W0W1W2W3W4W5_2, 48)
|
||||
R2(ra, rb, rc, rd, re, rf, rg, rh, k_even, KL, 44, 2, XW, SCHED_W_W0W1W2W3W4W5_3, 48)
|
||||
|
||||
/* Transform 45-47 + Precalc 51-53 */
|
||||
R2(rd, ra, rb, rc, rh, re, rf, rg, k_odd, _, 45, 0, XW, SCHED_W_W1W2W3W4W5W0_1, 51)
|
||||
R2(rc, rd, ra, rb, rg, rh, re, rf, k_even, KL, 46, 1, XW, SCHED_W_W1W2W3W4W5W0_2, 51)
|
||||
R2(rb, rc, rd, ra, rf, rg, rh, re, k_odd, _, 47, 2, XW, SCHED_W_W1W2W3W4W5W0_3, 51)
|
||||
|
||||
/* Transform 48-50 + Precalc 54-56 */
|
||||
R2(ra, rb, rc, rd, re, rf, rg, rh, k_even, KL, 48, 0, XW, SCHED_W_W2W3W4W5W0W1_1, 54)
|
||||
R2(rd, ra, rb, rc, rh, re, rf, rg, k_odd, _, 49, 1, XW, SCHED_W_W2W3W4W5W0W1_2, 54)
|
||||
R2(rc, rd, ra, rb, rg, rh, re, rf, k_even, KL, 50, 2, XW, SCHED_W_W2W3W4W5W0W1_3, 54)
|
||||
|
||||
/* Transform 51-53 + Precalc 57-59 */
|
||||
R2(rb, rc, rd, ra, rf, rg, rh, re, k_odd, _, 51, 0, XW, SCHED_W_W3W4W5W0W1W2_1, 57)
|
||||
R2(ra, rb, rc, rd, re, rf, rg, rh, k_even, KL, 52, 1, XW, SCHED_W_W3W4W5W0W1W2_2, 57)
|
||||
R2(rd, ra, rb, rc, rh, re, rf, rg, k_odd, _, 53, 2, XW, SCHED_W_W3W4W5W0W1W2_3, 57)
|
||||
|
||||
/* Transform 54-56 + Precalc 60-62 */
|
||||
R2(rc, rd, ra, rb, rg, rh, re, rf, k_even, KL, 54, 0, XW, SCHED_W_W4W5W0W1W2W3_1, 60)
|
||||
R2(rb, rc, rd, ra, rf, rg, rh, re, k_odd, _, 55, 1, XW, SCHED_W_W4W5W0W1W2W3_2, 60)
|
||||
R2(ra, rb, rc, rd, re, rf, rg, rh, k_even, KL, 56, 2, XW, SCHED_W_W4W5W0W1W2W3_3, 60)
|
||||
|
||||
/* Transform 57-59 + Precalc 63 */
|
||||
R2(rd, ra, rb, rc, rh, re, rf, rg, k_odd, _, 57, 0, XW, SCHED_W_W5W0W1W2W3W4_1, 63)
|
||||
R2(rc, rd, ra, rb, rg, rh, re, rf, k_even, KL, 58, 1, XW, SCHED_W_W5W0W1W2W3W4_2, 63)
|
||||
R2(rb, rc, rd, ra, rf, rg, rh, re, k_odd, _, 59, 2, XW, SCHED_W_W5W0W1W2W3W4_3, 63)
|
||||
|
||||
/* Transform 60 */
|
||||
R2(ra, rb, rc, rd, re, rf, rg, rh, k_even, KL, 60, 0, XW, _, _)
|
||||
subs RNBLKS, RNBLKS, #1
|
||||
b.eq .Lend
|
||||
|
||||
/* Transform 61-63 + Preload next block */
|
||||
R2(rd, ra, rb, rc, rh, re, rf, rg, k_odd, _, 61, 1, XW, LOAD_W_VEC_1, _)
|
||||
ldp s0, s1, [RSTATE, #0]
|
||||
R2(rc, rd, ra, rb, rg, rh, re, rf, k_even, KL, 62, 2, XW, LOAD_W_VEC_2, _)
|
||||
ldp s2, s3, [RSTATE, #8]
|
||||
R2(rb, rc, rd, ra, rf, rg, rh, re, k_odd, _, 63, 0, XW, LOAD_W_VEC_3, _)
|
||||
|
||||
/* Update the chaining variables. */
|
||||
eor ra, ra, s0
|
||||
eor rb, rb, s1
|
||||
ldp s0, s1, [RSTATE, #16]
|
||||
eor rc, rc, s2
|
||||
ldp k_even, k_odd, [RSTATE, #24]
|
||||
eor rd, rd, s3
|
||||
eor re, re, s0
|
||||
stp ra, rb, [RSTATE, #0]
|
||||
eor rf, rf, s1
|
||||
stp rc, rd, [RSTATE, #8]
|
||||
eor rg, rg, k_even
|
||||
stp re, rf, [RSTATE, #16]
|
||||
eor rh, rh, k_odd
|
||||
stp rg, rh, [RSTATE, #24]
|
||||
b .Loop
|
||||
|
||||
.Lend:
|
||||
/* Transform 61-63 */
|
||||
R2(rd, ra, rb, rc, rh, re, rf, rg, k_odd, _, 61, 1, XW, _, _)
|
||||
ldp s0, s1, [RSTATE, #0]
|
||||
R2(rc, rd, ra, rb, rg, rh, re, rf, k_even, KL, 62, 2, XW, _, _)
|
||||
ldp s2, s3, [RSTATE, #8]
|
||||
R2(rb, rc, rd, ra, rf, rg, rh, re, k_odd, _, 63, 0, XW, _, _)
|
||||
|
||||
/* Update the chaining variables. */
|
||||
eor ra, ra, s0
|
||||
clear_vec(W0)
|
||||
eor rb, rb, s1
|
||||
clear_vec(W1)
|
||||
ldp s0, s1, [RSTATE, #16]
|
||||
clear_vec(W2)
|
||||
eor rc, rc, s2
|
||||
clear_vec(W3)
|
||||
ldp k_even, k_odd, [RSTATE, #24]
|
||||
clear_vec(W4)
|
||||
eor rd, rd, s3
|
||||
clear_vec(W5)
|
||||
eor re, re, s0
|
||||
clear_vec(XTMP0)
|
||||
stp ra, rb, [RSTATE, #0]
|
||||
clear_vec(XTMP1)
|
||||
eor rf, rf, s1
|
||||
clear_vec(XTMP2)
|
||||
stp rc, rd, [RSTATE, #8]
|
||||
clear_vec(XTMP3)
|
||||
eor rg, rg, k_even
|
||||
clear_vec(XTMP4)
|
||||
stp re, rf, [RSTATE, #16]
|
||||
clear_vec(XTMP5)
|
||||
eor rh, rh, k_odd
|
||||
clear_vec(XTMP6)
|
||||
stp rg, rh, [RSTATE, #24]
|
||||
|
||||
/* Clear message expansion area */
|
||||
add addr0, sp, #STACK_W
|
||||
st1 {W0.16b-W3.16b}, [addr0], #64
|
||||
st1 {W0.16b-W3.16b}, [addr0], #64
|
||||
st1 {W0.16b-W3.16b}, [addr0]
|
||||
|
||||
mov sp, RFRAME
|
||||
|
||||
ldp x25, x26, [sp], #16
|
||||
ldp x23, x24, [sp], #16
|
||||
ldp x21, x22, [sp], #16
|
||||
ldp x19, x20, [sp], #16
|
||||
ldp x28, x29, [sp], #16
|
||||
|
||||
ret
|
||||
SYM_FUNC_END(sm3_neon_transform)
|
||||
|
||||
|
||||
.section ".rodata", "a"
|
||||
|
||||
.align 4
|
||||
.LKtable:
|
||||
.long 0x79cc4519, 0xf3988a32, 0xe7311465, 0xce6228cb
|
||||
.long 0x9cc45197, 0x3988a32f, 0x7311465e, 0xe6228cbc
|
||||
.long 0xcc451979, 0x988a32f3, 0x311465e7, 0x6228cbce
|
||||
.long 0xc451979c, 0x88a32f39, 0x11465e73, 0x228cbce6
|
||||
.long 0x9d8a7a87, 0x3b14f50f, 0x7629ea1e, 0xec53d43c
|
||||
.long 0xd8a7a879, 0xb14f50f3, 0x629ea1e7, 0xc53d43ce
|
||||
.long 0x8a7a879d, 0x14f50f3b, 0x29ea1e76, 0x53d43cec
|
||||
.long 0xa7a879d8, 0x4f50f3b1, 0x9ea1e762, 0x3d43cec5
|
||||
.long 0x7a879d8a, 0xf50f3b14, 0xea1e7629, 0xd43cec53
|
||||
.long 0xa879d8a7, 0x50f3b14f, 0xa1e7629e, 0x43cec53d
|
||||
.long 0x879d8a7a, 0x0f3b14f5, 0x1e7629ea, 0x3cec53d4
|
||||
.long 0x79d8a7a8, 0xf3b14f50, 0xe7629ea1, 0xcec53d43
|
||||
.long 0x9d8a7a87, 0x3b14f50f, 0x7629ea1e, 0xec53d43c
|
||||
.long 0xd8a7a879, 0xb14f50f3, 0x629ea1e7, 0xc53d43ce
|
||||
.long 0x8a7a879d, 0x14f50f3b, 0x29ea1e76, 0x53d43cec
|
||||
.long 0xa7a879d8, 0x4f50f3b1, 0x9ea1e762, 0x3d43cec5
|
103
arch/arm64/crypto/sm3-neon-glue.c
Normal file
103
arch/arm64/crypto/sm3-neon-glue.c
Normal file
@ -0,0 +1,103 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* sm3-neon-glue.c - SM3 secure hash using NEON instructions
|
||||
*
|
||||
* Copyright (C) 2022 Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
|
||||
*/
|
||||
|
||||
#include <asm/neon.h>
|
||||
#include <asm/simd.h>
|
||||
#include <asm/unaligned.h>
|
||||
#include <crypto/internal/hash.h>
|
||||
#include <crypto/internal/simd.h>
|
||||
#include <crypto/sm3.h>
|
||||
#include <crypto/sm3_base.h>
|
||||
#include <linux/cpufeature.h>
|
||||
#include <linux/crypto.h>
|
||||
#include <linux/module.h>
|
||||
|
||||
|
||||
asmlinkage void sm3_neon_transform(struct sm3_state *sst, u8 const *src,
|
||||
int blocks);
|
||||
|
||||
static int sm3_neon_update(struct shash_desc *desc, const u8 *data,
|
||||
unsigned int len)
|
||||
{
|
||||
if (!crypto_simd_usable()) {
|
||||
sm3_update(shash_desc_ctx(desc), data, len);
|
||||
return 0;
|
||||
}
|
||||
|
||||
kernel_neon_begin();
|
||||
sm3_base_do_update(desc, data, len, sm3_neon_transform);
|
||||
kernel_neon_end();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int sm3_neon_final(struct shash_desc *desc, u8 *out)
|
||||
{
|
||||
if (!crypto_simd_usable()) {
|
||||
sm3_final(shash_desc_ctx(desc), out);
|
||||
return 0;
|
||||
}
|
||||
|
||||
kernel_neon_begin();
|
||||
sm3_base_do_finalize(desc, sm3_neon_transform);
|
||||
kernel_neon_end();
|
||||
|
||||
return sm3_base_finish(desc, out);
|
||||
}
|
||||
|
||||
static int sm3_neon_finup(struct shash_desc *desc, const u8 *data,
|
||||
unsigned int len, u8 *out)
|
||||
{
|
||||
if (!crypto_simd_usable()) {
|
||||
struct sm3_state *sctx = shash_desc_ctx(desc);
|
||||
|
||||
if (len)
|
||||
sm3_update(sctx, data, len);
|
||||
sm3_final(sctx, out);
|
||||
return 0;
|
||||
}
|
||||
|
||||
kernel_neon_begin();
|
||||
if (len)
|
||||
sm3_base_do_update(desc, data, len, sm3_neon_transform);
|
||||
sm3_base_do_finalize(desc, sm3_neon_transform);
|
||||
kernel_neon_end();
|
||||
|
||||
return sm3_base_finish(desc, out);
|
||||
}
|
||||
|
||||
static struct shash_alg sm3_alg = {
|
||||
.digestsize = SM3_DIGEST_SIZE,
|
||||
.init = sm3_base_init,
|
||||
.update = sm3_neon_update,
|
||||
.final = sm3_neon_final,
|
||||
.finup = sm3_neon_finup,
|
||||
.descsize = sizeof(struct sm3_state),
|
||||
.base.cra_name = "sm3",
|
||||
.base.cra_driver_name = "sm3-neon",
|
||||
.base.cra_blocksize = SM3_BLOCK_SIZE,
|
||||
.base.cra_module = THIS_MODULE,
|
||||
.base.cra_priority = 200,
|
||||
};
|
||||
|
||||
static int __init sm3_neon_init(void)
|
||||
{
|
||||
return crypto_register_shash(&sm3_alg);
|
||||
}
|
||||
|
||||
static void __exit sm3_neon_fini(void)
|
||||
{
|
||||
crypto_unregister_shash(&sm3_alg);
|
||||
}
|
||||
|
||||
module_init(sm3_neon_init);
|
||||
module_exit(sm3_neon_fini);
|
||||
|
||||
MODULE_DESCRIPTION("SM3 secure hash using NEON instructions");
|
||||
MODULE_AUTHOR("Jussi Kivilinna <jussi.kivilinna@iki.fi>");
|
||||
MODULE_AUTHOR("Tianjia Zhang <tianjia.zhang@linux.alibaba.com>");
|
||||
MODULE_LICENSE("GPL v2");
|
@ -311,13 +311,13 @@ static inline void compat_start_thread(struct pt_regs *regs, unsigned long pc,
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline bool is_ttbr0_addr(unsigned long addr)
|
||||
static __always_inline bool is_ttbr0_addr(unsigned long addr)
|
||||
{
|
||||
/* entry assembly clears tags for TTBR0 addrs */
|
||||
return addr < TASK_SIZE;
|
||||
}
|
||||
|
||||
static inline bool is_ttbr1_addr(unsigned long addr)
|
||||
static __always_inline bool is_ttbr1_addr(unsigned long addr)
|
||||
{
|
||||
/* TTBR1 addresses may have a tag if KASAN_SW_TAGS is in use */
|
||||
return arch_kasan_reset_tag(addr) >= PAGE_OFFSET;
|
||||
|
@ -366,6 +366,11 @@ static bool is_el1_mte_sync_tag_check_fault(unsigned long esr)
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool is_translation_fault(unsigned long esr)
|
||||
{
|
||||
return (esr & ESR_ELx_FSC_TYPE) == ESR_ELx_FSC_FAULT;
|
||||
}
|
||||
|
||||
static void __do_kernel_fault(unsigned long addr, unsigned long esr,
|
||||
struct pt_regs *regs)
|
||||
{
|
||||
@ -400,7 +405,8 @@ static void __do_kernel_fault(unsigned long addr, unsigned long esr,
|
||||
} else if (is_pkvm_stage2_abort(esr)) {
|
||||
msg = "access to hypervisor-protected memory";
|
||||
} else {
|
||||
if (kfence_handle_page_fault(addr, esr & ESR_ELx_WNR, regs))
|
||||
if (is_translation_fault(esr) &&
|
||||
kfence_handle_page_fault(addr, esr & ESR_ELx_WNR, regs))
|
||||
return;
|
||||
|
||||
msg = "paging request";
|
||||
|
@ -361,6 +361,8 @@ static struct clk clk_periph = {
|
||||
*/
|
||||
int clk_enable(struct clk *clk)
|
||||
{
|
||||
if (!clk)
|
||||
return 0;
|
||||
mutex_lock(&clocks_mutex);
|
||||
clk_enable_unlocked(clk);
|
||||
mutex_unlock(&clocks_mutex);
|
||||
|
@ -438,7 +438,7 @@ dm9000@6 {
|
||||
ingenic,nemc-tAW = <50>;
|
||||
ingenic,nemc-tSTRV = <100>;
|
||||
|
||||
reset-gpios = <&gpf 12 GPIO_ACTIVE_HIGH>;
|
||||
reset-gpios = <&gpf 12 GPIO_ACTIVE_LOW>;
|
||||
vcc-supply = <ð0_power>;
|
||||
|
||||
interrupt-parent = <&gpe>;
|
||||
|
@ -211,7 +211,7 @@ union cvmx_helper_link_info __cvmx_helper_board_link_get(int ipd_port)
|
||||
{
|
||||
union cvmx_helper_link_info result;
|
||||
|
||||
WARN(!octeon_is_simulation(),
|
||||
WARN_ONCE(!octeon_is_simulation(),
|
||||
"Using deprecated link status - please update your DT");
|
||||
|
||||
/* Unless we fix it later, all links are defaulted to down */
|
||||
|
@ -1096,7 +1096,7 @@ union cvmx_helper_link_info cvmx_helper_link_get(int ipd_port)
|
||||
if (index == 0)
|
||||
result = __cvmx_helper_rgmii_link_get(ipd_port);
|
||||
else {
|
||||
WARN(1, "Using deprecated link status - please update your DT");
|
||||
WARN_ONCE(1, "Using deprecated link status - please update your DT");
|
||||
result.s.full_duplex = 1;
|
||||
result.s.link_up = 1;
|
||||
result.s.speed = 1000;
|
||||
|
@ -75,7 +75,6 @@ ATTRIBUTE_GROUPS(vpe);
|
||||
|
||||
static void vpe_device_release(struct device *cd)
|
||||
{
|
||||
kfree(cd);
|
||||
}
|
||||
|
||||
static struct class vpe_class = {
|
||||
@ -157,6 +156,7 @@ int __init vpe_module_init(void)
|
||||
device_del(&vpe_device);
|
||||
|
||||
out_class:
|
||||
put_device(&vpe_device);
|
||||
class_unregister(&vpe_class);
|
||||
|
||||
out_chrdev:
|
||||
@ -169,7 +169,7 @@ void __exit vpe_module_exit(void)
|
||||
{
|
||||
struct vpe *v, *n;
|
||||
|
||||
device_del(&vpe_device);
|
||||
device_unregister(&vpe_device);
|
||||
class_unregister(&vpe_class);
|
||||
unregister_chrdev(major, VPE_MODULE_NAME);
|
||||
|
||||
|
@ -313,7 +313,6 @@ ATTRIBUTE_GROUPS(vpe);
|
||||
|
||||
static void vpe_device_release(struct device *cd)
|
||||
{
|
||||
kfree(cd);
|
||||
}
|
||||
|
||||
static struct class vpe_class = {
|
||||
@ -497,6 +496,7 @@ int __init vpe_module_init(void)
|
||||
device_del(&vpe_device);
|
||||
|
||||
out_class:
|
||||
put_device(&vpe_device);
|
||||
class_unregister(&vpe_class);
|
||||
|
||||
out_chrdev:
|
||||
@ -509,7 +509,7 @@ void __exit vpe_module_exit(void)
|
||||
{
|
||||
struct vpe *v, *n;
|
||||
|
||||
device_del(&vpe_device);
|
||||
device_unregister(&vpe_device);
|
||||
class_unregister(&vpe_class);
|
||||
unregister_chrdev(major, VPE_MODULE_NAME);
|
||||
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include <asm/bootinfo.h>
|
||||
#include <asm/addrspace.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/mach-ralink/ralink_regs.h>
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@ -81,7 +82,8 @@ static int __init plat_of_setup(void)
|
||||
__dt_register_buses(soc_info.compatible, "palmbus");
|
||||
|
||||
/* make sure that the reset controller is setup early */
|
||||
ralink_rst_init();
|
||||
if (ralink_soc != MT762X_SOC_MT7621AT)
|
||||
ralink_rst_init();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -69,6 +69,20 @@ temperature-sensor@4c {
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <12 IRQ_TYPE_LEVEL_LOW>, /* GPIO12 - ALERT pin */
|
||||
<13 IRQ_TYPE_LEVEL_LOW>; /* GPIO13 - CRIT pin */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
/* Local temperature sensor (SA56004ED internal) */
|
||||
channel@0 {
|
||||
reg = <0>;
|
||||
label = "board";
|
||||
};
|
||||
|
||||
/* Remote temperature sensor (D+/D- connected to P2020 CPU Temperature Diode) */
|
||||
channel@1 {
|
||||
reg = <1>;
|
||||
label = "cpu";
|
||||
};
|
||||
};
|
||||
|
||||
/* DDR3 SPD/EEPROM */
|
||||
|
@ -79,7 +79,7 @@
|
||||
#define H_NOT_ENOUGH_RESOURCES -44
|
||||
#define H_R_STATE -45
|
||||
#define H_RESCINDED -46
|
||||
#define H_P1 -54
|
||||
#define H_ABORTED -54
|
||||
#define H_P2 -55
|
||||
#define H_P3 -56
|
||||
#define H_P4 -57
|
||||
@ -100,7 +100,6 @@
|
||||
#define H_COP_HW -74
|
||||
#define H_STATE -75
|
||||
#define H_IN_USE -77
|
||||
#define H_ABORTED -78
|
||||
#define H_UNSUPPORTED_FLAG_START -256
|
||||
#define H_UNSUPPORTED_FLAG_END -511
|
||||
#define H_MULTI_THREADS_ACTIVE -9005
|
||||
|
@ -61,6 +61,7 @@ perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *re
|
||||
next_sp = fp[0];
|
||||
|
||||
if (next_sp == sp + STACK_INT_FRAME_SIZE &&
|
||||
validate_sp(sp, current, STACK_INT_FRAME_SIZE) &&
|
||||
fp[STACK_FRAME_MARKER] == STACK_FRAME_REGS_MARKER) {
|
||||
/*
|
||||
* This looks like an interrupt frame for an
|
||||
|
@ -79,6 +79,7 @@ REQUEST(__field(0, 8, partition_id)
|
||||
)
|
||||
#include I(REQUEST_END)
|
||||
|
||||
#ifdef ENABLE_EVENTS_COUNTERINFO_V6
|
||||
/*
|
||||
* Not available for counter_info_version >= 0x8, use
|
||||
* run_instruction_cycles_by_partition(0x100) instead.
|
||||
@ -92,6 +93,7 @@ REQUEST(__field(0, 8, partition_id)
|
||||
__count(0x10, 8, cycles)
|
||||
)
|
||||
#include I(REQUEST_END)
|
||||
#endif
|
||||
|
||||
#define REQUEST_NAME system_performance_capabilities
|
||||
#define REQUEST_NUM 0x40
|
||||
@ -103,6 +105,7 @@ REQUEST(__field(0, 1, perf_collect_privileged)
|
||||
)
|
||||
#include I(REQUEST_END)
|
||||
|
||||
#ifdef ENABLE_EVENTS_COUNTERINFO_V6
|
||||
#define REQUEST_NAME processor_bus_utilization_abc_links
|
||||
#define REQUEST_NUM 0x50
|
||||
#define REQUEST_IDX_KIND "hw_chip_id=?"
|
||||
@ -194,6 +197,7 @@ REQUEST(__field(0, 4, phys_processor_idx)
|
||||
__count(0x28, 8, instructions_completed)
|
||||
)
|
||||
#include I(REQUEST_END)
|
||||
#endif
|
||||
|
||||
/* Processor_core_power_mode (0x95) skipped, no counters */
|
||||
/* Affinity_domain_information_by_virtual_processor (0xA0) skipped,
|
||||
|
@ -70,9 +70,9 @@ static const struct attribute_group format_group = {
|
||||
.attrs = format_attrs,
|
||||
};
|
||||
|
||||
static const struct attribute_group event_group = {
|
||||
static struct attribute_group event_group = {
|
||||
.name = "events",
|
||||
.attrs = hv_gpci_event_attrs,
|
||||
/* .attrs is set in init */
|
||||
};
|
||||
|
||||
#define HV_CAPS_ATTR(_name, _format) \
|
||||
@ -330,6 +330,7 @@ static int hv_gpci_init(void)
|
||||
int r;
|
||||
unsigned long hret;
|
||||
struct hv_perf_caps caps;
|
||||
struct hv_gpci_request_buffer *arg;
|
||||
|
||||
hv_gpci_assert_offsets_correct();
|
||||
|
||||
@ -353,6 +354,36 @@ static int hv_gpci_init(void)
|
||||
/* sampling not supported */
|
||||
h_gpci_pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT;
|
||||
|
||||
arg = (void *)get_cpu_var(hv_gpci_reqb);
|
||||
memset(arg, 0, HGPCI_REQ_BUFFER_SIZE);
|
||||
|
||||
/*
|
||||
* hcall H_GET_PERF_COUNTER_INFO populates the output
|
||||
* counter_info_version value based on the system hypervisor.
|
||||
* Pass the counter request 0x10 corresponds to request type
|
||||
* 'Dispatch_timebase_by_processor', to get the supported
|
||||
* counter_info_version.
|
||||
*/
|
||||
arg->params.counter_request = cpu_to_be32(0x10);
|
||||
|
||||
r = plpar_hcall_norets(H_GET_PERF_COUNTER_INFO,
|
||||
virt_to_phys(arg), HGPCI_REQ_BUFFER_SIZE);
|
||||
if (r) {
|
||||
pr_devel("hcall failed, can't get supported counter_info_version: 0x%x\n", r);
|
||||
arg->params.counter_info_version_out = 0x8;
|
||||
}
|
||||
|
||||
/*
|
||||
* Use counter_info_version_out value to assign
|
||||
* required hv-gpci event list.
|
||||
*/
|
||||
if (arg->params.counter_info_version_out >= 0x8)
|
||||
event_group.attrs = hv_gpci_event_attrs;
|
||||
else
|
||||
event_group.attrs = hv_gpci_event_attrs_v6;
|
||||
|
||||
put_cpu_var(hv_gpci_reqb);
|
||||
|
||||
r = perf_pmu_register(&h_gpci_pmu, h_gpci_pmu.name, -1);
|
||||
if (r)
|
||||
return r;
|
||||
|
@ -26,6 +26,7 @@ enum {
|
||||
#define REQUEST_FILE "../hv-gpci-requests.h"
|
||||
#define NAME_LOWER hv_gpci
|
||||
#define NAME_UPPER HV_GPCI
|
||||
#define ENABLE_EVENTS_COUNTERINFO_V6
|
||||
#include "req-gen/perf.h"
|
||||
#undef REQUEST_FILE
|
||||
#undef NAME_LOWER
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user