Merge 6.1.16 into android14-6.1

Changes in 6.1.16
	HID: asus: use spinlock to protect concurrent accesses
	HID: asus: use spinlock to safely schedule workers
	powerpc/mm: Rearrange if-else block to avoid clang warning
	ata: ahci: Revert "ata: ahci: Add Tiger Lake UP{3,4} AHCI controller"
	ARM: OMAP2+: Fix memory leak in realtime_counter_init()
	arm64: dts: qcom: qcs404: use symbol names for PCIe resets
	arm64: dts: qcom: msm8996-tone: Fix USB taking 6 minutes to wake up
	arm64: dts: qcom: sm8150-kumano: Panel framebuffer is 2.5k instead of 4k
	arm64: dts: qcom: sm6350: Fix up the ramoops node
	arm64: dts: qcom: sm6125: Reorder HSUSB PHY clocks to match bindings
	arm64: dts: qcom: sm6125-seine: Clean up gpio-keys (volume down)
	arm64: dts: imx8m: Align SoC unique ID node unit address
	ARM: zynq: Fix refcount leak in zynq_early_slcr_init
	arm64: dts: mediatek: mt8195: Add power domain to U3PHY1 T-PHY
	arm64: dts: mediatek: mt8183: Fix systimer 13 MHz clock description
	arm64: dts: mediatek: mt8192: Fix systimer 13 MHz clock description
	arm64: dts: mediatek: mt8195: Fix systimer 13 MHz clock description
	arm64: dts: mediatek: mt8186: Fix systimer 13 MHz clock description
	arm64: dts: qcom: sdm845-db845c: fix audio codec interrupt pin name
	x86/acpi/boot: Do not register processors that cannot be onlined for x2APIC
	arm64: dts: qcom: sc7180: correct SPMI bus address cells
	arm64: dts: qcom: sc7280: correct SPMI bus address cells
	arm64: dts: qcom: sc8280xp: correct SPMI bus address cells
	arm64: dts: qcom: sc8280xp: Vote for CX in USB controllers
	arm64: dts: meson-gxl: jethub-j80: Fix WiFi MAC address node
	arm64: dts: meson-gxl: jethub-j80: Fix Bluetooth MAC node name
	arm64: dts: meson-axg: jethub-j1xx: Fix MAC address node names
	arm64: dts: meson-gx: Fix Ethernet MAC address unit name
	arm64: dts: meson-g12a: Fix internal Ethernet PHY unit name
	arm64: dts: meson-gx: Fix the SCPI DVFS node name and unit address
	cpuidle, intel_idle: Fix CPUIDLE_FLAG_IRQ_ENABLE *again*
	arm64: dts: ti: k3-am62: Enable SPI nodes at the board level
	arm64: dts: ti: k3-am62-main: Fix clocks for McSPI
	arm64: tegra: Fix duplicate regulator on Jetson TX1
	arm64: dts: msm8992-bullhead: add memory hole region
	arm64: dts: qcom: msm8992-bullhead: Fix cont_splash_mem size
	arm64: dts: qcom: msm8992-bullhead: Disable dfps_data_mem
	arm64: dts: qcom: ipq8074: correct USB3 QMP PHY-s clock output names
	arm64: dts: qcom: ipq8074: fix Gen2 PCIe QMP PHY
	arm64: dts: qcom: ipq8074: fix Gen3 PCIe QMP PHY
	arm64: dts: qcom: ipq8074: correct Gen2 PCIe ranges
	arm64: dts: qcom: ipq8074: fix Gen3 PCIe node
	arm64: dts: qcom: ipq8074: correct PCIe QMP PHY output clock names
	arm64: dts: meson: remove CPU opps below 1GHz for G12A boards
	ARM: OMAP1: call platform_device_put() in error case in omap1_dm_timer_init()
	arm64: dts: mediatek: mt8192: Mark scp_adsp clock as broken
	ARM: bcm2835_defconfig: Enable the framebuffer
	ARM: s3c: fix s3c64xx_set_timer_source prototype
	arm64: dts: ti: k3-j7200: Fix wakeup pinmux range
	ARM: dts: exynos: correct wr-active property in Exynos3250 Rinato
	ARM: imx: Call ida_simple_remove() for ida_simple_get
	arm64: dts: amlogic: meson-gx: fix SCPI clock dvfs node name
	arm64: dts: amlogic: meson-axg: fix SCPI clock dvfs node name
	arm64: dts: amlogic: meson-gx: add missing SCPI sensors compatible
	arm64: dts: amlogic: meson-axg-jethome-jethub-j1xx: fix supply name of USB controller node
	arm64: dts: amlogic: meson-gxl-s905d-sml5442tw: drop invalid clock-names property
	arm64: dts: amlogic: meson-gx: add missing unit address to rng node name
	arm64: dts: amlogic: meson-gxl-s905w-jethome-jethub-j80: fix invalid rtc node name
	arm64: dts: amlogic: meson-axg-jethome-jethub-j1xx: fix invalid rtc node name
	arm64: dts: amlogic: meson-gxl: add missing unit address to eth-phy-mux node name
	arm64: dts: amlogic: meson-gx-libretech-pc: fix update button name
	arm64: dts: amlogic: meson-sm1-bananapi-m5: fix adc keys node names
	arm64: dts: amlogic: meson-gxl-s905d-phicomm-n1: fix led node name
	arm64: dts: amlogic: meson-gxbb-kii-pro: fix led node name
	arm64: dts: amlogic: meson-sm1-odroid-hc4: fix active fan thermal trip
	locking/rwsem: Disable preemption in all down_read*() and up_read() code paths
	arm64: dts: renesas: beacon-renesom: Fix gpio expander reference
	arm64: dts: meson: radxa-zero: allow usb otg mode
	arm64: dts: meson: bananapi-m5: switch VDDIO_C pin to OPEN_DRAIN
	ARM: dts: sun8i: nanopi-duo2: Fix regulator GPIO reference
	ublk_drv: remove nr_aborted_queues from ublk_device
	ublk_drv: don't probe partitions if the ubq daemon isn't trusted
	ARM: dts: imx7s: correct iomuxc gpr mux controller cells
	sbitmap: remove redundant check in __sbitmap_queue_get_batch
	sbitmap: Use single per-bitmap counting to wake up queued tags
	sbitmap: correct wake_batch recalculation to avoid potential IO hung
	arm64: dts: mt8195: Fix CPU map for single-cluster SoC
	arm64: dts: mt8192: Fix CPU map for single-cluster SoC
	arm64: dts: mt8186: Fix CPU map for single-cluster SoC
	arm64: dts: mediatek: mt7622: Add missing pwm-cells to pwm node
	arm64: dts: mediatek: mt8186: Fix watchdog compatible
	arm64: dts: mediatek: mt8195: Fix watchdog compatible
	arm64: dts: mediatek: mt7986: Fix watchdog compatible
	ARM: dts: stm32: Update part number NVMEM description on stm32mp131
	blk-mq: avoid sleep in blk_mq_alloc_request_hctx
	blk-mq: remove stale comment for blk_mq_sched_mark_restart_hctx
	blk-mq: wait on correct sbitmap_queue in blk_mq_mark_tag_wait
	blk-mq: Fix potential io hung for shared sbitmap per tagset
	blk-mq: correct stale comment of .get_budget
	arm64: dts: qcom: msm8996: support using GPLL0 as kryocc input
	arm64: dts: qcom: msm8996 switch from RPM_SMD_BB_CLK1 to RPM_SMD_XO_CLK_SRC
	arm64: dts: qcom: sm8350: drop incorrect cells from serial
	arm64: dts: qcom: sm8450: drop incorrect cells from serial
	arm64: dts: qcom: msm8992-lg-bullhead: Correct memory overlaps with the SMEM and MPSS memory regions
	arm64: dts: qcom: msm8953: correct TLMM gpio-ranges
	arm64: dts: qcom: msm8992-*: Fix up comments
	arm64: dts: qcom: msm8992-lg-bullhead: Enable regulators
	s390/dasd: Fix potential memleak in dasd_eckd_init()
	sched/rt: pick_next_rt_entity(): check list_entry
	perf/x86/intel/ds: Fix the conversion from TSC to perf time
	x86/perf/zhaoxin: Add stepping check for ZXC
	KEYS: asymmetric: Fix ECDSA use via keyctl uapi
	block: ublk: check IO buffer based on flag need_get_data
	arm64: dts: qcom: pmk8350: Specify PBS register for PON
	arm64: dts: qcom: pmk8350: Use the correct PON compatible
	erofs: relinquish volume with mutex held
	block: sync mixed merged request's failfast with 1st bio's
	block: Fix io statistics for cgroup in throttle path
	block: bio-integrity: Copy flags when bio_integrity_payload is cloned
	block: use proper return value from bio_failfast()
	wifi: mt76: mt7915: add missing of_node_put()
	wifi: mt76: mt7921s: fix slab-out-of-bounds access in sdio host
	wifi: mt76: mt7915: check return value before accessing free_block_num
	wifi: mt76: mt7915: drop always true condition of __mt7915_reg_addr()
	wifi: mt76: mt7915: fix unintended sign extension of mt7915_hw_queue_read()
	wifi: mt76: fix coverity uninit_use_in_call in mt76_connac2_reverse_frag0_hdr_trans()
	wifi: rsi: Fix memory leak in rsi_coex_attach()
	wifi: rtlwifi: rtl8821ae: don't call kfree_skb() under spin_lock_irqsave()
	wifi: rtlwifi: rtl8188ee: don't call kfree_skb() under spin_lock_irqsave()
	wifi: rtlwifi: rtl8723be: don't call kfree_skb() under spin_lock_irqsave()
	wifi: iwlegacy: common: don't call dev_kfree_skb() under spin_lock_irqsave()
	wifi: libertas: fix memory leak in lbs_init_adapter()
	wifi: rtl8xxxu: don't call dev_kfree_skb() under spin_lock_irqsave()
	wifi: rtw89: 8852c: rfk: correct DACK setting
	wifi: rtw89: 8852c: rfk: correct DPK settings
	wifi: rtlwifi: Fix global-out-of-bounds bug in _rtl8812ae_phy_set_txpower_limit()
	libbpf: Fix btf__align_of() by taking into account field offsets
	wifi: ipw2x00: don't call dev_kfree_skb() under spin_lock_irqsave()
	wifi: ipw2200: fix memory leak in ipw_wdev_init()
	wifi: wilc1000: fix potential memory leak in wilc_mac_xmit()
	wifi: wilc1000: add missing unregister_netdev() in wilc_netdev_ifc_init()
	wifi: brcmfmac: fix potential memory leak in brcmf_netdev_start_xmit()
	wifi: brcmfmac: unmap dma buffer in brcmf_msgbuf_alloc_pktid()
	wifi: libertas_tf: don't call kfree_skb() under spin_lock_irqsave()
	wifi: libertas: if_usb: don't call kfree_skb() under spin_lock_irqsave()
	wifi: libertas: main: don't call kfree_skb() under spin_lock_irqsave()
	wifi: libertas: cmdresp: don't call kfree_skb() under spin_lock_irqsave()
	wifi: wl3501_cs: don't call kfree_skb() under spin_lock_irqsave()
	libbpf: Fix invalid return address register in s390
	crypto: x86/ghash - fix unaligned access in ghash_setkey()
	ACPICA: Drop port I/O validation for some regions
	genirq: Fix the return type of kstat_cpu_irqs_sum()
	rcu-tasks: Improve comments explaining tasks_rcu_exit_srcu purpose
	rcu-tasks: Remove preemption disablement around srcu_read_[un]lock() calls
	rcu-tasks: Fix synchronize_rcu_tasks() VS zap_pid_ns_processes()
	lib/mpi: Fix buffer overrun when SG is too long
	crypto: ccp - Avoid page allocation failure warning for SEV_GET_ID2
	platform/chrome: cros_ec_typec: Update port DP VDO
	ACPICA: nsrepair: handle cases without a return value correctly
	selftests/xsk: print correct payload for packet dump
	selftests/xsk: print correct error codes when exiting
	arm64/cpufeature: Fix field sign for DIT hwcap detection
	kselftest/arm64: Fix syscall-abi for systems without 128 bit SME
	workqueue: Protects wq_unbound_cpumask with wq_pool_attach_mutex
	s390/early: fix sclp_early_sccb variable lifetime
	s390/vfio-ap: fix an error handling path in vfio_ap_mdev_probe_queue()
	x86/signal: Fix the value returned by strict_sas_size()
	thermal/drivers/tsens: Drop msm8976-specific defines
	thermal/drivers/tsens: Sort out msm8976 vs msm8956 data
	thermal/drivers/tsens: fix slope values for msm8939
	thermal/drivers/tsens: limit num_sensors to 9 for msm8939
	wifi: rtw89: fix potential leak in rtw89_append_probe_req_ie()
	wifi: rtw89: Add missing check for alloc_workqueue
	wifi: rtl8xxxu: Fix memory leaks with RTL8723BU, RTL8192EU
	wifi: orinoco: check return value of hermes_write_wordrec()
	thermal/drivers/imx_sc_thermal: Drop empty platform remove function
	thermal/drivers/imx_sc_thermal: Fix the loop condition
	wifi: ath9k: htc_hst: free skb in ath9k_htc_rx_msg() if there is no callback function
	wifi: ath9k: hif_usb: clean up skbs if ath9k_hif_usb_rx_stream() fails
	wifi: ath9k: Fix potential stack-out-of-bounds write in ath9k_wmi_rsp_callback()
	wifi: ath11k: Fix memory leak in ath11k_peer_rx_frag_setup
	wifi: cfg80211: Fix extended KCK key length check in nl80211_set_rekey_data()
	ACPI: battery: Fix missing NUL-termination with large strings
	selftests/bpf: Fix build errors if CONFIG_NF_CONNTRACK=m
	crypto: ccp - Failure on re-initialization due to duplicate sysfs filename
	crypto: essiv - Handle EBUSY correctly
	crypto: seqiv - Handle EBUSY correctly
	powercap: fix possible name leak in powercap_register_zone()
	x86/microcode: Add a parameter to microcode_check() to store CPU capabilities
	x86/microcode: Check CPU capabilities after late microcode update correctly
	x86/microcode: Adjust late loading result reporting message
	selftests/bpf: Use consistent build-id type for liburandom_read.so
	selftests/bpf: Fix vmtest static compilation error
	crypto: xts - Handle EBUSY correctly
	leds: led-class: Add missing put_device() to led_put()
	s390/bpf: Add expoline to tail calls
	wifi: iwlwifi: mei: fix compilation errors in rfkill()
	kselftest/arm64: Fix enumeration of systems without 128 bit SME
	can: rcar_canfd: Fix R-Car V3U GAFLCFG field accesses
	selftests/bpf: Initialize tc in xdp_synproxy
	crypto: ccp - Flush the SEV-ES TMR memory before giving it to firmware
	bpftool: profile online CPUs instead of possible
	wifi: mt76: mt7915: call mt7915_mcu_set_thermal_throttling() only after init_work
	wifi: mt76: mt7915: fix memory leak in mt7915_mcu_exit
	wifi: mt76: mt7915: fix WED TxS reporting
	wifi: mt76: add memory barrier to SDIO queue kick
	wifi: mt76: mt7921: fix error code of return in mt7921_acpi_read
	net/mlx5: Enhance debug print in page allocation failure
	irqchip: Fix refcount leak in platform_irqchip_probe
	irqchip/alpine-msi: Fix refcount leak in alpine_msix_init_domains
	irqchip/irq-mvebu-gicp: Fix refcount leak in mvebu_gicp_probe
	irqchip/ti-sci: Fix refcount leak in ti_sci_intr_irq_domain_probe
	s390/mem_detect: fix detect_memory() error handling
	s390/vmem: fix empty page tables cleanup under KASAN
	s390/boot: cleanup decompressor header files
	s390/mem_detect: rely on diag260() if sclp_early_get_memsize() fails
	s390/boot: fix mem_detect extended area allocation
	net: add sock_init_data_uid()
	tun: tun_chr_open(): correctly initialize socket uid
	tap: tap_open(): correctly initialize socket uid
	OPP: fix error checking in opp_migrate_dentry()
	cpufreq: davinci: Fix clk use after free
	Bluetooth: hci_conn: Refactor hci_bind_bis() since it always succeeds
	Bluetooth: L2CAP: Fix potential user-after-free
	Bluetooth: hci_qca: get wakeup status from serdev device handle
	net: ipa: generic command param fix
	s390: vfio-ap: tighten the NIB validity check
	s390/ap: fix status returned by ap_aqic()
	s390/ap: fix status returned by ap_qact()
	libbpf: Fix alen calculation in libbpf_nla_dump_errormsg()
	xen/grant-dma-iommu: Implement a dummy probe_device() callback
	rds: rds_rm_zerocopy_callback() correct order for list_add_tail()
	crypto: rsa-pkcs1pad - Use akcipher_request_complete
	m68k: /proc/hardware should depend on PROC_FS
	RISC-V: time: initialize hrtimer based broadcast clock event device
	clocksource/drivers/riscv: Patch riscv_clock_next_event() jump before first use
	wifi: iwl3945: Add missing check for create_singlethread_workqueue
	wifi: iwl4965: Add missing check for create_singlethread_workqueue()
	wifi: mwifiex: fix loop iterator in mwifiex_update_ampdu_txwinsize()
	selftests/bpf: Fix out-of-srctree build
	ACPI: resource: Add IRQ overrides for MAINGEAR Vector Pro 2 models
	ACPI: resource: Do IRQ override on all TongFang GMxRGxx
	crypto: octeontx2 - Fix objects shared between several modules
	crypto: crypto4xx - Call dma_unmap_page when done
	wifi: mac80211: move color collision detection report in a delayed work
	wifi: mac80211: make rate u32 in sta_set_rate_info_rx()
	wifi: mac80211: fix non-MLO station association
	wifi: mac80211: Don't translate MLD addresses for multicast
	wifi: mac80211: avoid u32_encode_bits() warning
	wifi: mac80211: fix off-by-one link setting
	tools/lib/thermal: Fix thermal_sampling_exit()
	thermal/drivers/hisi: Drop second sensor hi3660
	selftests/bpf: Fix map_kptr test.
	wifi: mac80211: pass 'sta' to ieee80211_rx_data_set_sta()
	bpf: Zeroing allocated object from slab in bpf memory allocator
	selftests/bpf: Fix xdp_do_redirect on s390x
	can: esd_usb: Move mislocated storage of SJA1000_ECC_SEG bits in case of a bus error
	can: esd_usb: Make use of can_change_state() and relocate checking skb for NULL
	xsk: check IFF_UP earlier in Tx path
	LoongArch, bpf: Use 4 instructions for function address in JIT
	bpf: Fix global subprog context argument resolution logic
	irqchip/irq-brcmstb-l2: Set IRQ_LEVEL for level triggered interrupts
	irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts
	net/smc: fix potential panic dues to unprotected smc_llc_srv_add_link()
	net/smc: fix application data exception
	selftests/net: Interpret UDP_GRO cmsg data as an int value
	l2tp: Avoid possible recursive deadlock in l2tp_tunnel_register()
	net: bcmgenet: fix MoCA LED control
	net: lan966x: Fix possible deadlock inside PTP
	net/mlx4_en: Introduce flexible array to silence overflow warning
	selftest: fib_tests: Always cleanup before exit
	sefltests: netdevsim: wait for devlink instance after netns removal
	drm: Fix potential null-ptr-deref due to drmm_mode_config_init()
	drm/fourcc: Add missing big-endian XRGB1555 and RGB565 formats
	drm/bridge: ti-sn65dsi83: Fix delay after reset deassert to match spec
	drm: mxsfb: DRM_IMX_LCDIF should depend on ARCH_MXC
	drm: mxsfb: DRM_MXSFB should depend on ARCH_MXS || ARCH_MXC
	drm/bridge: megachips: Fix error handling in i2c_register_driver()
	drm/vkms: Fix memory leak in vkms_init()
	drm/vkms: Fix null-ptr-deref in vkms_release()
	drm/vc4: dpi: Fix format mapping for RGB565
	drm: tidss: Fix pixel format definition
	gpu: ipu-v3: common: Add of_node_put() for reference returned by of_graph_get_port_by_id()
	drm/vc4: drop all currently held locks if deadlock happens
	hwmon: (ftsteutates) Fix scaling of measurements
	drm/msm/dpu: check for null return of devm_kzalloc() in dpu_writeback_init()
	drm/msm/hdmi: Add missing check for alloc_ordered_workqueue
	pinctrl: qcom: pinctrl-msm8976: Correct function names for wcss pins
	pinctrl: stm32: Fix refcount leak in stm32_pctrl_get_irq_domain
	pinctrl: rockchip: Fix refcount leak in rockchip_pinctrl_parse_groups
	drm/vc4: hvs: Set AXI panic modes
	drm/vc4: hvs: SCALER_DISPBKGND_AUTOHS is only valid on HVS4
	drm/vc4: hvs: Correct interrupt masking bit assignment for HVS5
	drm/vc4: hvs: Fix colour order for xRGB1555 on HVS5
	drm/vc4: hdmi: Correct interlaced timings again
	drm/msm: clean event_thread->worker in case of an error
	drm/panel-edp: fix name for IVO product id 854b
	scsi: qla2xxx: Fix exchange oversubscription
	scsi: qla2xxx: Fix exchange oversubscription for management commands
	scsi: qla2xxx: edif: Fix clang warning
	ASoC: fsl_sai: initialize is_dsp_mode flag
	drm/bridge: tc358767: Set default CLRSIPO count
	drm/msm/adreno: Fix null ptr access in adreno_gpu_cleanup()
	ALSA: hda/ca0132: minor fix for allocation size
	drm/amdgpu: Use the sched from entity for amdgpu_cs trace
	drm/msm/gem: Add check for kmalloc
	drm/msm/dpu: Disallow unallocated resources to be returned
	drm/bridge: lt9611: fix sleep mode setup
	drm/bridge: lt9611: fix HPD reenablement
	drm/bridge: lt9611: fix polarity programming
	drm/bridge: lt9611: fix programming of video modes
	drm/bridge: lt9611: fix clock calculation
	drm/bridge: lt9611: pass a pointer to the of node
	regulator: tps65219: use IS_ERR() to detect an error pointer
	drm/mipi-dsi: Fix byte order of 16-bit DCS set/get brightness
	drm: exynos: dsi: Fix MIPI_DSI*_NO_* mode flags
	drm/msm/dsi: Allow 2 CTRLs on v2.5.0
	scsi: ufs: exynos: Fix DMA alignment for PAGE_SIZE != 4096
	drm/msm/dpu: sc7180: add missing WB2 clock control
	drm/msm: use strscpy instead of strncpy
	drm/msm/dpu: Add check for cstate
	drm/msm/dpu: Add check for pstates
	drm/msm/mdp5: Add check for kzalloc
	habanalabs: bugs fixes in timestamps buff alloc
	pinctrl: bcm2835: Remove of_node_put() in bcm2835_of_gpio_ranges_fallback()
	pinctrl: mediatek: Initialize variable pullen and pullup to zero
	pinctrl: mediatek: Initialize variable *buf to zero
	gpu: host1x: Fix mask for syncpoint increment register
	gpu: host1x: Don't skip assigning syncpoints to channels
	drm/tegra: firewall: Check for is_addr_reg existence in IMM check
	pinctrl: renesas: rzg2l: Fix configuring the GPIO pins as interrupts
	drm/msm/dpu: set pdpu->is_rt_pipe early in dpu_plane_sspp_atomic_update()
	drm/mediatek: dsi: Reduce the time of dsi from LP11 to sending cmd
	drm/mediatek: Use NULL instead of 0 for NULL pointer
	drm/mediatek: Drop unbalanced obj unref
	drm/mediatek: mtk_drm_crtc: Add checks for devm_kcalloc
	drm/mediatek: Clean dangling pointer on bind error path
	ASoC: soc-compress.c: fixup private_data on snd_soc_new_compress()
	dt-bindings: display: mediatek: Fix the fallback for mediatek,mt8186-disp-ccorr
	gpio: vf610: connect GPIO label to dev name
	ASoC: topology: Properly access value coming from topology file
	spi: dw_bt1: fix MUX_MMIO dependencies
	ASoC: mchp-spdifrx: fix controls which rely on rsr register
	ASoC: mchp-spdifrx: fix return value in case completion times out
	ASoC: mchp-spdifrx: fix controls that works with completion mechanism
	ASoC: mchp-spdifrx: disable all interrupts in mchp_spdifrx_dai_remove()
	dm: improve shrinker debug names
	regmap: apply reg_base and reg_downshift for single register ops
	ASoC: rsnd: fixup #endif position
	ASoC: mchp-spdifrx: Fix uninitialized use of mr in mchp_spdifrx_hw_params()
	ASoC: dt-bindings: meson: fix gx-card codec node regex
	regulator: tps65219: use generic set_bypass()
	hwmon: (asus-ec-sensors) add missing mutex path
	hwmon: (ltc2945) Handle error case in ltc2945_value_store
	ALSA: hda: Fix the control element identification for multiple codecs
	drm/amdgpu: fix enum odm_combine_mode mismatch
	scsi: mpt3sas: Fix a memory leak
	scsi: aic94xx: Add missing check for dma_map_single()
	HID: multitouch: Add quirks for flipped axes
	HID: retain initial quirks set up when creating HID devices
	ASoC: qcom: q6apm-lpass-dai: unprepare stream if its already prepared
	ASoC: qcom: q6apm-dai: fix race condition while updating the position pointer
	ASoC: qcom: q6apm-dai: Add SNDRV_PCM_INFO_BATCH flag
	ASoC: codecs: lpass: register mclk after runtime pm
	ASoC: codecs: lpass: fix incorrect mclk rate
	drm/amd/display: don't call dc_interrupt_set() for disabled crtcs
	HID: logitech-hidpp: Hard-code HID++ 1.0 fast scroll support
	spi: bcm63xx-hsspi: Fix multi-bit mode setting
	hwmon: (mlxreg-fan) Return zero speed for broken fan
	ASoC: tlv320adcx140: fix 'ti,gpio-config' DT property init
	dm: remove flush_scheduled_work() during local_exit()
	nfs4trace: fix state manager flag printing
	NFS: fix disabling of swap
	spi: synquacer: Fix timeout handling in synquacer_spi_transfer_one()
	ASoC: soc-dapm.h: fixup warning struct snd_pcm_substream not declared
	HID: bigben: use spinlock to protect concurrent accesses
	HID: bigben_worker() remove unneeded check on report_field
	HID: bigben: use spinlock to safely schedule workers
	hid: bigben_probe(): validate report count
	ALSA: hda/hdmi: Register with vga_switcheroo on Dual GPU Macbooks
	drm/shmem-helper: Fix locking for drm_gem_shmem_get_pages_sgt()
	NFSD: enhance inter-server copy cleanup
	NFSD: fix leaked reference count of nfsd4_ssc_umount_item
	nfsd: fix race to check ls_layouts
	nfsd: clean up potential nfsd_file refcount leaks in COPY codepath
	NFSD: fix problems with cleanup on errors in nfsd4_copy
	nfsd: fix courtesy client with deny mode handling in nfs4_upgrade_open
	nfsd: don't fsync nfsd_files on last close
	NFSD: copy the whole verifier in nfsd_copy_write_verifier
	cifs: Fix lost destroy smbd connection when MR allocate failed
	cifs: Fix warning and UAF when destroy the MR list
	cifs: use tcon allocation functions even for dummy tcon
	gfs2: jdata writepage fix
	perf llvm: Fix inadvertent file creation
	leds: led-core: Fix refcount leak in of_led_get()
	leds: is31fl319x: Wrap mutex_destroy() for devm_add_action_or_rest()
	leds: simatic-ipc-leds-gpio: Make sure we have the GPIO providing driver
	tools/tracing/rtla: osnoise_hist: use total duration for average calculation
	perf inject: Use perf_data__read() for auxtrace
	perf intel-pt: Do not try to queue auxtrace data on pipe
	perf test bpf: Skip test if kernel-debuginfo is not present
	perf tools: Fix auto-complete on aarch64
	sparc: allow PM configs for sparc32 COMPILE_TEST
	selftests: find echo binary to use -ne options
	selftests/ftrace: Fix bash specific "==" operator
	selftests: use printf instead of echo -ne
	perf record: Fix segfault with --overwrite and --max-size
	printf: fix errname.c list
	perf tests stat_all_metrics: Change true workload to sleep workload for system wide check
	objtool: add UACCESS exceptions for __tsan_volatile_read/write
	mfd: cs5535: Don't build on UML
	mfd: pcf50633-adc: Fix potential memleak in pcf50633_adc_async_read()
	dmaengine: idxd: Set traffic class values in GRPCFG on DSA 2.0
	RDMA/erdma: Fix refcount leak in erdma_mmap
	dmaengine: HISI_DMA should depend on ARCH_HISI
	RDMA/hns: Fix refcount leak in hns_roce_mmap
	iio: light: tsl2563: Do not hardcode interrupt trigger type
	usb: gadget: fusb300_udc: free irq on the error path in fusb300_probe()
	i2c: designware: fix i2c_dw_clk_rate() return size to be u32
	soundwire: cadence: Don't overflow the command FIFOs
	driver core: fix potential null-ptr-deref in device_add()
	kobject: modify kobject_get_path() to take a const *
	kobject: Fix slab-out-of-bounds in fill_kobj_path()
	alpha/boot/tools/objstrip: fix the check for ELF header
	media: uvcvideo: Check for INACTIVE in uvc_ctrl_is_accessible()
	media: uvcvideo: Implement mask for V4L2_CTRL_TYPE_MENU
	media: uvcvideo: Refactor uvc_ctrl_mappings_uvcXX
	media: uvcvideo: Refactor power_line_frequency_controls_limited
	coresight: etm4x: Fix accesses to TRCSEQRSTEVR and TRCSEQSTR
	coresight: cti: Prevent negative values of enable count
	coresight: cti: Add PM runtime call in enable_store
	usb: typec: intel_pmc_mux: Don't leak the ACPI device reference count
	PCI/IOV: Enlarge virtfn sysfs name buffer
	PCI: switchtec: Return -EFAULT for copy_to_user() errors
	PCI: endpoint: pci-epf-vntb: Clean up kernel_doc warning
	PCI: endpoint: pci-epf-vntb: Add epf_ntb_mw_bar_clear() num_mws kernel-doc
	hwtracing: hisi_ptt: Only add the supported devices to the filters list
	tty: serial: fsl_lpuart: disable Rx/Tx DMA in lpuart32_shutdown()
	tty: serial: fsl_lpuart: clear LPUART Status Register in lpuart32_shutdown()
	serial: tegra: Add missing clk_disable_unprepare() in tegra_uart_hw_init()
	Revert "char: pcmcia: cm4000_cs: Replace mdelay with usleep_range in set_protocol"
	eeprom: idt_89hpesx: Fix error handling in idt_init()
	applicom: Fix PCI device refcount leak in applicom_init()
	firmware: stratix10-svc: add missing gen_pool_destroy() in stratix10_svc_drv_probe()
	firmware: stratix10-svc: fix error handle while alloc/add device failed
	VMCI: check context->notify_page after call to get_user_pages_fast() to avoid GPF
	mei: pxp: Use correct macros to initialize uuid_le
	misc/mei/hdcp: Use correct macros to initialize uuid_le
	misc: fastrpc: Fix an error handling path in fastrpc_rpmsg_probe()
	driver core: fix resource leak in device_add()
	driver core: location: Free struct acpi_pld_info *pld before return false
	drivers: base: transport_class: fix possible memory leak
	drivers: base: transport_class: fix resource leak when transport_add_device() fails
	firmware: dmi-sysfs: Fix null-ptr-deref in dmi_sysfs_register_handle
	fotg210-udc: Add missing completion handler
	dmaengine: dw-edma: Fix missing src/dst address of interleaved xfers
	fpga: microchip-spi: move SPI I/O buffers out of stack
	fpga: microchip-spi: rewrite status polling in a time measurable way
	usb: early: xhci-dbc: Fix a potential out-of-bound memory access
	tty: serial: fsl_lpuart: Fix the wrong RXWATER setting for rx dma case
	RDMA/cxgb4: add null-ptr-check after ip_dev_find()
	usb: musb: mediatek: don't unregister something that wasn't registered
	usb: gadget: configfs: Restrict symlink creation is UDC already binded
	phy: mediatek: remove temporary variable @mask_
	PCI: mt7621: Delay phy ports initialization
	iommu: dart: Add suspend/resume support
	iommu: dart: Support >64 stream IDs
	iommu/dart: Fix apple_dart_device_group for PCI groups
	iommu/vt-d: Set No Execute Enable bit in PASID table entry
	power: supply: remove faulty cooling logic
	RDMA/cxgb4: Fix potential null-ptr-deref in pass_establish()
	usb: max-3421: Fix setting of I/O pins
	RDMA/irdma: Cap MSIX used to online CPUs + 1
	serial: fsl_lpuart: fix RS485 RTS polariy inverse issue
	tty: serial: imx: Handle RS485 DE signal active high
	tty: serial: imx: disable Ageing Timer interrupt request irq
	driver core: fw_devlink: Add DL_FLAG_CYCLE support to device links
	driver core: fw_devlink: Don't purge child fwnode's consumer links
	driver core: fw_devlink: Allow marking a fwnode link as being part of a cycle
	driver core: fw_devlink: Consolidate device link flag computation
	driver core: fw_devlink: Improve check for fwnode with no device/driver
	driver core: fw_devlink: Make cycle detection more robust
	mtd: mtdpart: Don't create platform device that'll never probe
	usb: host: fsl-mph-dr-of: reuse device_set_of_node_from_dev
	dmaengine: dw-edma: Fix readq_ch() return value truncation
	PCI: Fix dropping valid root bus resources with .end = zero
	phy: rockchip-typec: fix tcphy_get_mode error case
	PCI: qcom: Fix host-init error handling
	iw_cxgb4: Fix potential NULL dereference in c4iw_fill_res_cm_id_entry()
	iommu: Fix error unwind in iommu_group_alloc()
	iommu/amd: Do not identity map v2 capable device when snp is enabled
	dmaengine: sf-pdma: pdma_desc memory leak fix
	dmaengine: dw-axi-dmac: Do not dereference NULL structure
	dmaengine: ptdma: check for null desc before calling pt_cmd_callback
	iommu/vt-d: Fix error handling in sva enable/disable paths
	iommu/vt-d: Allow to use flush-queue when first level is default
	RDMA/rxe: cleanup some error handling in rxe_verbs.c
	RDMA/rxe: Fix missing memory barriers in rxe_queue.h
	IB/hfi1: Fix math bugs in hfi1_can_pin_pages()
	IB/hfi1: Fix sdma.h tx->num_descs off-by-one errors
	Revert "remoteproc: qcom_q6v5_mss: map/unmap metadata region before/after use"
	remoteproc: qcom_q6v5_mss: Use a carveout to authenticate modem headers
	media: ti: cal: fix possible memory leak in cal_ctx_create()
	media: platform: ti: Add missing check for devm_regulator_get
	media: imx: imx7-media-csi: fix missing clk_disable_unprepare() in imx7_csi_init()
	powerpc: Remove linker flag from KBUILD_AFLAGS
	s390/vdso: Drop '-shared' from KBUILD_CFLAGS_64
	builddeb: clean generated package content
	media: max9286: Fix memleak in max9286_v4l2_register()
	media: ov2740: Fix memleak in ov2740_init_controls()
	media: ov5675: Fix memleak in ov5675_init_controls()
	media: ov5640: Fix soft reset sequence and timings
	media: ov5640: Handle delays when no reset_gpio set
	media: mc: Get media_device directly from pad
	media: i2c: ov772x: Fix memleak in ov772x_probe()
	media: i2c: imx219: Split common registers from mode tables
	media: i2c: imx219: Fix binning for RAW8 capture
	media: platform: mtk-mdp3: Fix return value check in mdp_probe()
	media: camss: csiphy-3ph: avoid undefined behavior
	media: platform: mtk-mdp3: remove unused VIDEO_MEDIATEK_VPU config
	media: platform: mtk-mdp3: fix Kconfig dependencies
	media: v4l2-jpeg: correct the skip count in jpeg_parse_app14_data
	media: v4l2-jpeg: ignore the unknown APP14 marker
	media: hantro: Fix JPEG encoder ENUM_FRMSIZE on RK3399
	media: imx-jpeg: Apply clk_bulk api instead of operating specific clk
	media: amphion: correct the unspecified color space
	media: drivers/media/v4l2-core/v4l2-h264 : add detection of null pointers
	media: rc: Fix use-after-free bugs caused by ene_tx_irqsim()
	media: atomisp: Only set default_run_mode on first open of a stream/asd
	media: i2c: ov7670: 0 instead of -EINVAL was returned
	media: usb: siano: Fix use after free bugs caused by do_submit_urb
	media: saa7134: Use video_unregister_device for radio_dev
	rpmsg: glink: Avoid infinite loop on intent for missing channel
	rpmsg: glink: Release driver_override
	ARM: OMAP2+: omap4-common: Fix refcount leak bug
	arm64: dts: qcom: msm8996: Add additional A2NoC clocks
	udf: Define EFSCORRUPTED error code
	context_tracking: Fix noinstr vs KASAN
	exit: Detect and fix irq disabled state in oops
	ARM: dts: exynos: Use Exynos5420 compatible for the MIPI video phy
	fs: Use CHECK_DATA_CORRUPTION() when kernel bugs are detected
	blk-iocost: fix divide by 0 error in calc_lcoefs()
	blk-cgroup: dropping parent refcount after pd_free_fn() is done
	blk-cgroup: synchronize pd_free_fn() from blkg_free_workfn() and blkcg_deactivate_policy()
	trace/blktrace: fix memory leak with using debugfs_lookup()
	btrfs: scrub: improve tree block error reporting
	arm64: zynqmp: Enable hs termination flag for USB dwc3 controller
	cpuidle, intel_idle: Fix CPUIDLE_FLAG_INIT_XSTATE
	x86/fpu: Don't set TIF_NEED_FPU_LOAD for PF_IO_WORKER threads
	cpuidle: drivers: firmware: psci: Dont instrument suspend code
	cpuidle: lib/bug: Disable rcu_is_watching() during WARN/BUG
	perf/x86/intel/uncore: Add Meteor Lake support
	wifi: ath9k: Fix use-after-free in ath9k_hif_usb_disconnect()
	wifi: ath11k: fix monitor mode bringup crash
	wifi: brcmfmac: Fix potential stack-out-of-bounds in brcmf_c_preinit_dcmds()
	rcu: Make RCU_LOCKDEP_WARN() avoid early lockdep checks
	rcu: Suppress smp_processor_id() complaint in synchronize_rcu_expedited_wait()
	srcu: Delegate work to the boot cpu if using SRCU_SIZE_SMALL
	rcu-tasks: Make rude RCU-Tasks work well with CPU hotplug
	rcu-tasks: Handle queue-shrink/callback-enqueue race condition
	wifi: ath11k: debugfs: fix to work with multiple PCI devices
	thermal: intel: Fix unsigned comparison with less than zero
	timers: Prevent union confusion from unexpected restart_syscall()
	x86/bugs: Reset speculation control settings on init
	bpftool: Always disable stack protection for BPF objects
	wifi: brcmfmac: ensure CLM version is null-terminated to prevent stack-out-of-bounds
	wifi: mt7601u: fix an integer underflow
	inet: fix fast path in __inet_hash_connect()
	ice: restrict PTP HW clock freq adjustments to 100, 000, 000 PPB
	ice: add missing checks for PF vsi type
	ACPI: Don't build ACPICA with '-Os'
	bpf, docs: Fix modulo zero, division by zero, overflow, and underflow
	thermal: intel: intel_pch: Add support for Wellsburg PCH
	clocksource: Suspend the watchdog temporarily when high read latency detected
	crypto: hisilicon: Wipe entire pool on error
	net: bcmgenet: Add a check for oversized packets
	m68k: Check syscall_trace_enter() return code
	s390/mm,ptdump: avoid Kasan vs Memcpy Real markers swapping
	netfilter: nf_tables: NULL pointer dereference in nf_tables_updobj()
	can: isotp: check CAN address family in isotp_bind()
	gcc-plugins: drop -std=gnu++11 to fix GCC 13 build
	tools/power/x86/intel-speed-select: Add Emerald Rapid quirk
	wifi: mt76: dma: free rx_head in mt76_dma_rx_cleanup
	ACPI: video: Fix Lenovo Ideapad Z570 DMI match
	net/mlx5: fw_tracer: Fix debug print
	coda: Avoid partial allocation of sig_inputArgs
	uaccess: Add minimum bounds check on kernel buffer size
	s390/idle: mark arch_cpu_idle() noinstr
	time/debug: Fix memory leak with using debugfs_lookup()
	PM: domains: fix memory leak with using debugfs_lookup()
	PM: EM: fix memory leak with using debugfs_lookup()
	Bluetooth: Fix issue with Actions Semi ATS2851 based devices
	Bluetooth: btusb: Add new PID/VID 0489:e0f2 for MT7921
	Bluetooth: btusb: Add VID:PID 13d3:3529 for Realtek RTL8821CE
	wifi: rtw89: debug: avoid invalid access on RTW89_DBG_SEL_MAC_30
	hv_netvsc: Check status in SEND_RNDIS_PKT completion message
	s390/kfence: fix page fault reporting
	devlink: Fix TP_STRUCT_entry in trace of devlink health report
	scm: add user copy checks to put_cmsg()
	drm: panel-orientation-quirks: Add quirk for Lenovo Yoga Tab 3 X90F
	drm: panel-orientation-quirks: Add quirk for DynaBook K50
	drm/amd/display: Reduce expected sdp bandwidth for dcn321
	drm/amd/display: Revert Reduce delay when sink device not able to ACK 00340h write
	drm/amd/display: Fix potential null-deref in dm_resume
	drm/omap: dsi: Fix excessive stack usage
	HID: Add Mapping for System Microphone Mute
	drm/tiny: ili9486: Do not assume 8-bit only SPI controllers
	drm/amd/display: Defer DIG FIFO disable after VID stream enable
	drm/radeon: free iio for atombios when driver shutdown
	drm/amd: Avoid BUG() for case of SRIOV missing IP version
	drm/amdkfd: Page aligned memory reserve size
	scsi: lpfc: Fix use-after-free KFENCE violation during sysfs firmware write
	Revert "fbcon: don't lose the console font across generic->chip driver switch"
	drm/amd: Avoid ASSERT for some message failures
	drm: amd: display: Fix memory leakage
	drm/amd/display: fix mapping to non-allocated address
	HID: uclogic: Add frame type quirk
	HID: uclogic: Add battery quirk
	HID: uclogic: Add support for XP-PEN Deco Pro SW
	HID: uclogic: Add support for XP-PEN Deco Pro MW
	drm/msm/dsi: Add missing check for alloc_ordered_workqueue
	drm: rcar-du: Add quirk for H3 ES1.x pclk workaround
	drm: rcar-du: Fix setting a reserved bit in DPLLCR
	drm/drm_print: correct format problem
	drm/amd/display: Set hvm_enabled flag for S/G mode
	habanalabs: extend fatal messages to contain PCI info
	habanalabs: fix bug in timestamps registration code
	docs/scripts/gdb: add necessary make scripts_gdb step
	drm/msm/dpu: Add DSC hardware blocks to register snapshot
	ASoC: soc-compress: Reposition and add pcm_mutex
	ASoC: kirkwood: Iterate over array indexes instead of using pointer math
	regulator: max77802: Bounds check regulator id against opmode
	regulator: s5m8767: Bounds check id indexing into arrays
	Revert "drm/amdgpu: TA unload messages are not actually sent to psp when amdgpu is uninstalled"
	drm/amd/display: fix FCLK pstate change underflow
	gfs2: Improve gfs2_make_fs_rw error handling
	hwmon: (coretemp) Simplify platform device handling
	hwmon: (nct6775) Directly call ASUS ACPI WMI method
	hwmon: (nct6775) B650/B660/X670 ASUS boards support
	pinctrl: at91: use devm_kasprintf() to avoid potential leaks
	drm/amd/display: Do not commit pipe when updating DRR
	scsi: snic: Fix memory leak with using debugfs_lookup()
	scsi: ufs: core: Fix device management cmd timeout flow
	HID: logitech-hidpp: Don't restart communication if not necessary
	drm/amd/display: Enable P-state validation checks for DCN314
	drm: panel-orientation-quirks: Add quirk for Lenovo IdeaPad Duet 3 10IGL5
	drm/amd/display: Disable HUBP/DPP PG on DCN314 for now
	dm thin: add cond_resched() to various workqueue loops
	dm cache: add cond_resched() to various workqueue loops
	nfsd: zero out pointers after putting nfsd_files on COPY setup error
	nfsd: don't hand out delegation on setuid files being opened for write
	cifs: prevent data race in smb2_reconnect()
	drm/shmem-helper: Revert accidental non-GPL export
	driver core: fw_devlink: Avoid spurious error message
	wifi: rtl8xxxu: fixing transmisison failure for rtl8192eu
	scsi: mpt3sas: Remove usage of dma_get_required_mask() API
	firmware: coreboot: framebuffer: Ignore reserved pixel color bits
	block: don't allow multiple bios for IOCB_NOWAIT issue
	block: clear bio->bi_bdev when putting a bio back in the cache
	block: be a bit more careful in checking for NULL bdev while polling
	rtc: pm8xxx: fix set-alarm race
	ipmi: ipmb: Fix the MODULE_PARM_DESC associated to 'retry_time_ms'
	ipmi:ssif: resend_msg() cannot fail
	ipmi_ssif: Rename idle state and check
	io_uring: Replace 0-length array with flexible array
	io_uring: use user visible tail in io_uring_poll()
	io_uring: handle TIF_NOTIFY_RESUME when checking for task_work
	io_uring: add a conditional reschedule to the IOPOLL cancelation loop
	io_uring: add reschedule point to handle_tw_list()
	io_uring/rsrc: disallow multi-source reg buffers
	io_uring: remove MSG_NOSIGNAL from recvmsg
	io_uring: fix fget leak when fs don't support nowait buffered read
	s390/extmem: return correct segment type in __segment_load()
	s390: discard .interp section
	s390/kprobes: fix irq mask clobbering on kprobe reenter from post_handler
	s390/kprobes: fix current_kprobe never cleared after kprobes reenter
	KVM: s390: disable migration mode when dirty tracking is disabled
	cifs: Fix uninitialized memory read in smb3_qfs_tcon()
	cifs: Fix uninitialized memory reads for oparms.mode
	cifs: fix mount on old smb servers
	cifs: introduce cifs_io_parms in smb2_async_writev()
	cifs: split out smb3_use_rdma_offload() helper
	cifs: don't try to use rdma offload on encrypted connections
	cifs: Check the lease context if we actually got a lease
	cifs: return a single-use cfid if we did not get a lease
	scsi: mpi3mr: Fix missing mrioc->evtack_cmds initialization
	scsi: mpi3mr: Fix issues in mpi3mr_get_all_tgt_info()
	scsi: mpi3mr: Remove unnecessary memcpy() to alltgt_info->dmi
	btrfs: hold block group refcount during async discard
	locking/rwsem: Prevent non-first waiter from spinning in down_write() slowpath
	ksmbd: fix wrong data area length for smb2 lock request
	ksmbd: do not allow the actual frame length to be smaller than the rfc1002 length
	ksmbd: fix possible memory leak in smb2_lock()
	torture: Fix hang during kthread shutdown phase
	ARM: dts: exynos: correct HDMI phy compatible in Exynos4
	io_uring: mark task TASK_RUNNING before handling resume/task work
	hfs: fix missing hfs_bnode_get() in __hfs_bnode_create
	fs: hfsplus: fix UAF issue in hfsplus_put_super
	exfat: fix reporting fs error when reading dir beyond EOF
	exfat: fix unexpected EOF while reading dir
	exfat: redefine DIR_DELETED as the bad cluster number
	exfat: fix inode->i_blocks for non-512 byte sector size device
	fs: dlm: don't set stop rx flag after node reset
	fs: dlm: move sending fin message into state change handling
	fs: dlm: send FIN ack back in right cases
	f2fs: fix information leak in f2fs_move_inline_dirents()
	f2fs: retry to update the inode page given data corruption
	f2fs: fix cgroup writeback accounting with fs-layer encryption
	f2fs: fix kernel crash due to null io->bio
	ocfs2: fix defrag path triggering jbd2 ASSERT
	ocfs2: fix non-auto defrag path not working issue
	fs/cramfs/inode.c: initialize file_ra_state
	selftests/landlock: Skip overlayfs tests when not supported
	selftests/landlock: Test ptrace as much as possible with Yama
	udf: Truncate added extents on failed expansion
	udf: Do not bother merging very long extents
	udf: Do not update file length for failed writes to inline files
	udf: Preserve link count of system files
	udf: Detect system inodes linked into directory hierarchy
	udf: Fix file corruption when appending just after end of preallocated extent
	md: don't update recovery_cp when curr_resync is ACTIVE
	RDMA/siw: Fix user page pinning accounting
	KVM: Destroy target device if coalesced MMIO unregistration fails
	KVM: VMX: Fix crash due to uninitialized current_vmcs
	KVM: Register /dev/kvm as the _very_ last thing during initialization
	KVM: x86: Purge "highest ISR" cache when updating APICv state
	KVM: x86: Blindly get current x2APIC reg value on "nodecode write" traps
	KVM: x86: Don't inhibit APICv/AVIC on xAPIC ID "change" if APIC is disabled
	KVM: x86: Don't inhibit APICv/AVIC if xAPIC ID mismatch is due to 32-bit ID
	KVM: SVM: Flush the "current" TLB when activating AVIC
	KVM: SVM: Process ICR on AVIC IPI delivery failure due to invalid target
	KVM: SVM: Don't put/load AVIC when setting virtual APIC mode
	KVM: x86: Inject #GP if WRMSR sets reserved bits in APIC Self-IPI
	KVM: x86: Inject #GP on x2APIC WRMSR that sets reserved bits 63:32
	KVM: SVM: Fix potential overflow in SEV's send|receive_update_data()
	KVM: SVM: hyper-v: placate modpost section mismatch error
	selftests: x86: Fix incorrect kernel headers search path
	x86/virt: Force GIF=1 prior to disabling SVM (for reboot flows)
	x86/crash: Disable virt in core NMI crash handler to avoid double shootdown
	x86/reboot: Disable virtualization in an emergency if SVM is supported
	x86/reboot: Disable SVM, not just VMX, when stopping CPUs
	x86/kprobes: Fix __recover_optprobed_insn check optimizing logic
	x86/kprobes: Fix arch_check_optimized_kprobe check within optimized_kprobe range
	x86/microcode/amd: Remove load_microcode_amd()'s bsp parameter
	x86/microcode/AMD: Add a @cpu parameter to the reloading functions
	x86/microcode/AMD: Fix mixed steppings support
	x86/speculation: Allow enabling STIBP with legacy IBRS
	Documentation/hw-vuln: Document the interaction between IBRS and STIBP
	virt/sev-guest: Return -EIO if certificate buffer is not large enough
	brd: mark as nowait compatible
	brd: return 0/-error from brd_insert_page()
	brd: check for REQ_NOWAIT and set correct page allocation mask
	ima: fix error handling logic when file measurement failed
	ima: Align ima_file_mmap() parameters with mmap_file LSM hook
	selftests/powerpc: Fix incorrect kernel headers search path
	selftests/ftrace: Fix eprobe syntax test case to check filter support
	selftests: sched: Fix incorrect kernel headers search path
	selftests: core: Fix incorrect kernel headers search path
	selftests: pid_namespace: Fix incorrect kernel headers search path
	selftests: arm64: Fix incorrect kernel headers search path
	selftests: clone3: Fix incorrect kernel headers search path
	selftests: pidfd: Fix incorrect kernel headers search path
	selftests: membarrier: Fix incorrect kernel headers search path
	selftests: kcmp: Fix incorrect kernel headers search path
	selftests: media_tests: Fix incorrect kernel headers search path
	selftests: gpio: Fix incorrect kernel headers search path
	selftests: filesystems: Fix incorrect kernel headers search path
	selftests: user_events: Fix incorrect kernel headers search path
	selftests: ptp: Fix incorrect kernel headers search path
	selftests: sync: Fix incorrect kernel headers search path
	selftests: rseq: Fix incorrect kernel headers search path
	selftests: move_mount_set_group: Fix incorrect kernel headers search path
	selftests: mount_setattr: Fix incorrect kernel headers search path
	selftests: perf_events: Fix incorrect kernel headers search path
	selftests: ipc: Fix incorrect kernel headers search path
	selftests: futex: Fix incorrect kernel headers search path
	selftests: drivers: Fix incorrect kernel headers search path
	selftests: dmabuf-heaps: Fix incorrect kernel headers search path
	selftests: vm: Fix incorrect kernel headers search path
	selftests: seccomp: Fix incorrect kernel headers search path
	irqdomain: Fix association race
	irqdomain: Fix disassociation race
	irqdomain: Look for existing mapping only once
	irqdomain: Drop bogus fwspec-mapping error handling
	irqdomain: Refactor __irq_domain_alloc_irqs()
	irqdomain: Fix mapping-creation race
	irqdomain: Fix domain registration race
	crypto: qat - fix out-of-bounds read
	mm/damon/paddr: fix missing folio_put()
	ALSA: ice1712: Do not left ice->gpio_mutex locked in aureon_add_controls()
	ALSA: hda/realtek: Add quirk for HP EliteDesk 800 G6 Tower PC
	jbd2: fix data missing when reusing bh which is ready to be checkpointed
	ext4: optimize ea_inode block expansion
	ext4: refuse to create ea block when umounted
	cxl/pmem: Fix nvdimm registration races
	mtd: spi-nor: sfdp: Fix index value for SCCR dwords
	mtd: spi-nor: spansion: Consider reserved bits in CFR5 register
	mtd: spi-nor: Fix shift-out-of-bounds in spi_nor_set_erase_type
	dm: send just one event on resize, not two
	dm: add cond_resched() to dm_wq_work()
	dm: add cond_resched() to dm_wq_requeue_work()
	wifi: rtw88: use RTW_FLAG_POWERON flag to prevent to power on/off twice
	wifi: rtl8xxxu: Use a longer retry limit of 48
	wifi: ath11k: allow system suspend to survive ath11k
	wifi: cfg80211: Fix use after free for wext
	wifi: cfg80211: Set SSID if it is not already set
	cpuidle: add ARCH_SUSPEND_POSSIBLE dependencies
	qede: fix interrupt coalescing configuration
	thermal: intel: powerclamp: Fix cur_state for multi package system
	dm flakey: fix logic when corrupting a bio
	dm cache: free background tracker's queued work in btracker_destroy
	dm flakey: don't corrupt the zero page
	dm flakey: fix a bug with 32-bit highmem systems
	hwmon: (peci/cputemp) Fix off-by-one in coretemp_label allocation
	hwmon: (nct6775) Fix incorrect parenthesization in nct6775_write_fan_div()
	ARM: dts: qcom: sdx65: Add Qcom SMMU-500 as the fallback for IOMMU node
	ARM: dts: qcom: sdx55: Add Qcom SMMU-500 as the fallback for IOMMU node
	ARM: dts: exynos: correct TMU phandle in Exynos4210
	ARM: dts: exynos: correct TMU phandle in Exynos4
	ARM: dts: exynos: correct TMU phandle in Odroid XU3 family
	ARM: dts: exynos: correct TMU phandle in Exynos5250
	ARM: dts: exynos: correct TMU phandle in Odroid XU
	ARM: dts: exynos: correct TMU phandle in Odroid HC1
	arm64: mm: hugetlb: Disable HUGETLB_PAGE_OPTIMIZE_VMEMMAP
	fuse: add inode/permission checks to fileattr_get/fileattr_set
	rbd: avoid use-after-free in do_rbd_add() when rbd_dev_create() fails
	ceph: update the time stamps and try to drop the suid/sgid
	regulator: core: Use ktime_get_boottime() to determine how long a regulator was off
	panic: fix the panic_print NMI backtrace setting
	mm/hwpoison: convert TTU_IGNORE_HWPOISON to TTU_HWPOISON
	alpha: fix FEN fault handling
	dax/kmem: Fix leak of memory-hotplug resources
	mips: fix syscall_get_nr
	media: ipu3-cio2: Fix PM runtime usage_count in driver unbind
	remoteproc/mtk_scp: Move clk ops outside send_lock
	docs: gdbmacros: print newest record
	mm: memcontrol: deprecate charge moving
	mm/thp: check and bail out if page in deferred queue already
	ktest.pl: Give back console on Ctrt^C on monitor
	kprobes: Fix to handle forcibly unoptimized kprobes on freeing_list
	ktest.pl: Fix missing "end_monitor" when machine check fails
	ktest.pl: Add RUN_TIMEOUT option with default unlimited
	memory tier: release the new_memtier in find_create_memory_tier()
	ring-buffer: Handle race between rb_move_tail and rb_check_pages
	tools/bootconfig: fix single & used for logical condition
	tracing/eprobe: Fix to add filter on eprobe description in README file
	iommu/amd: Add a length limitation for the ivrs_acpihid command-line parameter
	iommu/amd: Improve page fault error reporting
	scsi: aacraid: Allocate cmd_priv with scsicmd
	scsi: qla2xxx: Fix link failure in NPIV environment
	scsi: qla2xxx: Check if port is online before sending ELS
	scsi: qla2xxx: Fix DMA-API call trace on NVMe LS requests
	scsi: qla2xxx: Remove unintended flag clearing
	scsi: qla2xxx: Fix erroneous link down
	scsi: qla2xxx: Remove increment of interface err cnt
	scsi: ses: Don't attach if enclosure has no components
	scsi: ses: Fix slab-out-of-bounds in ses_enclosure_data_process()
	scsi: ses: Fix possible addl_desc_ptr out-of-bounds accesses
	scsi: ses: Fix possible desc_ptr out-of-bounds accesses
	scsi: ses: Fix slab-out-of-bounds in ses_intf_remove()
	RISC-V: add a spin_shadow_stack declaration
	riscv: Avoid enabling interrupts in die()
	riscv: mm: fix regression due to update_mmu_cache change
	riscv: jump_label: Fixup unaligned arch_static_branch function
	riscv, mm: Perform BPF exhandler fixup on page fault
	riscv: ftrace: Remove wasted nops for !RISCV_ISA_C
	riscv: ftrace: Reduce the detour code size to half
	MIPS: DTS: CI20: fix otg power gpio
	PCI/PM: Observe reset delay irrespective of bridge_d3
	PCI: Unify delay handling for reset and resume
	PCI: hotplug: Allow marking devices as disconnected during bind/unbind
	PCI: Avoid FLR for AMD FCH AHCI adapters
	PCI/DPC: Await readiness of secondary bus after reset
	bus: mhi: ep: Only send -ENOTCONN status if client driver is available
	bus: mhi: ep: Move chan->lock to the start of processing queued ch ring
	bus: mhi: ep: Save channel state locally during suspend and resume
	iommu/vt-d: Avoid superfluous IOTLB tracking in lazy mode
	iommu/vt-d: Fix PASID directory pointer coherency
	vfio/type1: exclude mdevs from VFIO_UPDATE_VADDR
	vfio/type1: prevent underflow of locked_vm via exec()
	vfio/type1: track locked_vm per dma
	vfio/type1: restore locked_vm
	drm/amd: Fix initialization for nbio 7.5.1
	drm/i915/quirks: Add inverted backlight quirk for HP 14-r206nv
	drm/radeon: Fix eDP for single-display iMac11,2
	drm/i915: Don't use stolen memory for ring buffers with LLC
	drm/i915: Don't use BAR mappings for ring buffers with LLC
	drm/gud: Fix UBSAN warning
	drm/edid: fix AVI infoframe aspect ratio handling
	drm/edid: fix parsing of 3D modes from HDMI VSDB
	qede: avoid uninitialized entries in coal_entry array
	brd: use radix_tree_maybe_preload instead of radix_tree_preload
	sbitmap: Advance the queue index before waking up a queue
	wait: Return number of exclusive waiters awaken
	sbitmap: Try each queue to wake up at least one waiter
	kbuild: Port silent mode detection to future gnu make.
	net: avoid double iput when sock_alloc_file fails
	Linux 6.1.16

Change-Id: I705caf70ee547e6d55f38d133bdcd50713aed745
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Greg Kroah-Hartman 2023-03-13 11:48:28 +00:00
commit 2cb73a87e4
842 changed files with 8139 additions and 4782 deletions

View File

@ -86,6 +86,8 @@ Brief summary of control files.
memory.swappiness set/show swappiness parameter of vmscan memory.swappiness set/show swappiness parameter of vmscan
(See sysctl's vm.swappiness) (See sysctl's vm.swappiness)
memory.move_charge_at_immigrate set/show controls of moving charges memory.move_charge_at_immigrate set/show controls of moving charges
This knob is deprecated and shouldn't be
used.
memory.oom_control set/show oom controls. memory.oom_control set/show oom controls.
memory.numa_stat show the number of memory usage per numa memory.numa_stat show the number of memory usage per numa
node node
@ -716,8 +718,15 @@ NOTE2:
It is recommended to set the soft limit always below the hard limit, It is recommended to set the soft limit always below the hard limit,
otherwise the hard limit will take precedence. otherwise the hard limit will take precedence.
8. Move charges at task migration 8. Move charges at task migration (DEPRECATED!)
================================= ===============================================
THIS IS DEPRECATED!
It's expensive and unreliable! It's better practice to launch workload
tasks directly from inside their target cgroup. Use dedicated workload
cgroups to allow fine-grained policy adjustments without having to
move physical pages between control domains.
Users can move charges associated with a task along with task migration, that Users can move charges associated with a task along with task migration, that
is, uncharge task's pages from the old cgroup and charge them to the new cgroup. is, uncharge task's pages from the old cgroup and charge them to the new cgroup.

View File

@ -479,8 +479,16 @@ Spectre variant 2
On Intel Skylake-era systems the mitigation covers most, but not all, On Intel Skylake-era systems the mitigation covers most, but not all,
cases. See :ref:`[3] <spec_ref3>` for more details. cases. See :ref:`[3] <spec_ref3>` for more details.
On CPUs with hardware mitigation for Spectre variant 2 (e.g. Enhanced On CPUs with hardware mitigation for Spectre variant 2 (e.g. IBRS
IBRS on x86), retpoline is automatically disabled at run time. or enhanced IBRS on x86), retpoline is automatically disabled at run time.
Systems which support enhanced IBRS (eIBRS) enable IBRS protection once at
boot, by setting the IBRS bit, and they're automatically protected against
Spectre v2 variant attacks, including cross-thread branch target injections
on SMT systems (STIBP). In other words, eIBRS enables STIBP too.
Legacy IBRS systems clear the IBRS bit on exit to userspace and
therefore explicitly enable STIBP for that
The retpoline mitigation is turned on by default on vulnerable The retpoline mitigation is turned on by default on vulnerable
CPUs. It can be forced on or off by the administrator CPUs. It can be forced on or off by the administrator
@ -504,9 +512,12 @@ Spectre variant 2
For Spectre variant 2 mitigation, individual user programs For Spectre variant 2 mitigation, individual user programs
can be compiled with return trampolines for indirect branches. can be compiled with return trampolines for indirect branches.
This protects them from consuming poisoned entries in the branch This protects them from consuming poisoned entries in the branch
target buffer left by malicious software. Alternatively, the target buffer left by malicious software.
programs can disable their indirect branch speculation via prctl()
(See :ref:`Documentation/userspace-api/spec_ctrl.rst <set_spec_ctrl>`). On legacy IBRS systems, at return to userspace, implicit STIBP is disabled
because the kernel clears the IBRS bit. In this case, the userspace programs
can disable indirect branch speculation via prctl() (See
:ref:`Documentation/userspace-api/spec_ctrl.rst <set_spec_ctrl>`).
On x86, this will turn on STIBP to guard against attacks from the On x86, this will turn on STIBP to guard against attacks from the
sibling thread when the user program is running, and use IBPB to sibling thread when the user program is running, and use IBPB to
flush the branch target buffer when switching to/from the program. flush the branch target buffer when switching to/from the program.

View File

@ -312,10 +312,10 @@ define dmesg
set var $prev_flags = $info->flags set var $prev_flags = $info->flags
end end
set var $id = ($id + 1) & $id_mask
if ($id == $end_id) if ($id == $end_id)
loop_break loop_break
end end
set var $id = ($id + 1) & $id_mask
end end
end end
document dmesg document dmesg

View File

@ -99,19 +99,26 @@ code value description
BPF_ADD 0x00 dst += src BPF_ADD 0x00 dst += src
BPF_SUB 0x10 dst -= src BPF_SUB 0x10 dst -= src
BPF_MUL 0x20 dst \*= src BPF_MUL 0x20 dst \*= src
BPF_DIV 0x30 dst /= src BPF_DIV 0x30 dst = (src != 0) ? (dst / src) : 0
BPF_OR 0x40 dst \|= src BPF_OR 0x40 dst \|= src
BPF_AND 0x50 dst &= src BPF_AND 0x50 dst &= src
BPF_LSH 0x60 dst <<= src BPF_LSH 0x60 dst <<= src
BPF_RSH 0x70 dst >>= src BPF_RSH 0x70 dst >>= src
BPF_NEG 0x80 dst = ~src BPF_NEG 0x80 dst = ~src
BPF_MOD 0x90 dst %= src BPF_MOD 0x90 dst = (src != 0) ? (dst % src) : dst
BPF_XOR 0xa0 dst ^= src BPF_XOR 0xa0 dst ^= src
BPF_MOV 0xb0 dst = src BPF_MOV 0xb0 dst = src
BPF_ARSH 0xc0 sign extending shift right BPF_ARSH 0xc0 sign extending shift right
BPF_END 0xd0 byte swap operations (see `Byte swap instructions`_ below) BPF_END 0xd0 byte swap operations (see `Byte swap instructions`_ below)
======== ===== ========================================================== ======== ===== ==========================================================
Underflow and overflow are allowed during arithmetic operations, meaning
the 64-bit or 32-bit value will wrap. If eBPF program execution would
result in division by zero, the destination register is instead set to zero.
If execution would result in modulo by zero, for ``BPF_ALU64`` the value of
the destination register is unchanged whereas for ``BPF_ALU`` the upper
32 bits of the destination register are zeroed.
``BPF_ADD | BPF_X | BPF_ALU`` means:: ``BPF_ADD | BPF_X | BPF_ALU`` means::
dst_reg = (u32) dst_reg + (u32) src_reg; dst_reg = (u32) dst_reg + (u32) src_reg;
@ -128,6 +135,11 @@ BPF_END 0xd0 byte swap operations (see `Byte swap instructions`_ below)
src_reg = src_reg ^ imm32 src_reg = src_reg ^ imm32
Also note that the division and modulo operations are unsigned. Thus, for
``BPF_ALU``, 'imm' is first interpreted as an unsigned 32-bit value, whereas
for ``BPF_ALU64``, 'imm' is first sign extended to 64 bits and the result
interpreted as an unsigned 64-bit value. There are no instructions for
signed division or modulo.
Byte swap instructions Byte swap instructions
~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~

View File

@ -39,6 +39,10 @@ Setup
this mode. In this case, you should build the kernel with this mode. In this case, you should build the kernel with
CONFIG_RANDOMIZE_BASE disabled if the architecture supports KASLR. CONFIG_RANDOMIZE_BASE disabled if the architecture supports KASLR.
- Build the gdb scripts (required on kernels v5.1 and above)::
make scripts_gdb
- Enable the gdb stub of QEMU/KVM, either - Enable the gdb stub of QEMU/KVM, either
- at VM startup time by appending "-s" to the QEMU command line - at VM startup time by appending "-s" to the QEMU command line

View File

@ -32,7 +32,7 @@ properties:
- items: - items:
- enum: - enum:
- mediatek,mt8186-disp-ccorr - mediatek,mt8186-disp-ccorr
- const: mediatek,mt8183-disp-ccorr - const: mediatek,mt8192-disp-ccorr
reg: reg:
maxItems: 1 maxItems: 1

View File

@ -62,7 +62,7 @@ patternProperties:
description: phandle of the CPU DAI description: phandle of the CPU DAI
patternProperties: patternProperties:
"^codec-[0-9]+$": "^codec(-[0-9]+)?$":
type: object type: object
additionalProperties: false additionalProperties: false
description: |- description: |-

View File

@ -22,6 +22,10 @@ enhancements. It can monitor up to 4 voltages, 16 temperatures and
8 fans. It also contains an integrated watchdog which is currently 8 fans. It also contains an integrated watchdog which is currently
implemented in this driver. implemented in this driver.
The 4 voltages require a board-specific multiplier, since the BMC can
only measure voltages up to 3.3V and thus relies on voltage dividers.
Consult your motherboard manual for details.
To clear a temperature or fan alarm, execute the following command with the To clear a temperature or fan alarm, execute the following command with the
correct path to the alarm file:: correct path to the alarm file::

View File

@ -4483,6 +4483,18 @@ not holding a previously reported uncorrected error).
:Parameters: struct kvm_s390_cmma_log (in, out) :Parameters: struct kvm_s390_cmma_log (in, out)
:Returns: 0 on success, a negative value on error :Returns: 0 on success, a negative value on error
Errors:
====== =============================================================
ENOMEM not enough memory can be allocated to complete the task
ENXIO if CMMA is not enabled
EINVAL if KVM_S390_CMMA_PEEK is not set but migration mode was not enabled
EINVAL if KVM_S390_CMMA_PEEK is not set but dirty tracking has been
disabled (and thus migration mode was automatically disabled)
EFAULT if the userspace address is invalid or if no page table is
present for the addresses (e.g. when using hugepages).
====== =============================================================
This ioctl is used to get the values of the CMMA bits on the s390 This ioctl is used to get the values of the CMMA bits on the s390
architecture. It is meant to be used in two scenarios: architecture. It is meant to be used in two scenarios:
@ -4563,12 +4575,6 @@ mask is unused.
values points to the userspace buffer where the result will be stored. values points to the userspace buffer where the result will be stored.
This ioctl can fail with -ENOMEM if not enough memory can be allocated to
complete the task, with -ENXIO if CMMA is not enabled, with -EINVAL if
KVM_S390_CMMA_PEEK is not set but migration mode was not enabled, with
-EFAULT if the userspace address is invalid or if no page table is
present for the addresses (e.g. when using hugepages).
4.108 KVM_S390_SET_CMMA_BITS 4.108 KVM_S390_SET_CMMA_BITS
---------------------------- ----------------------------

View File

@ -302,6 +302,10 @@ Allows userspace to start migration mode, needed for PGSTE migration.
Setting this attribute when migration mode is already active will have Setting this attribute when migration mode is already active will have
no effects. no effects.
Dirty tracking must be enabled on all memslots, else -EINVAL is returned. When
dirty tracking is disabled on any memslot, migration mode is automatically
stopped.
:Parameters: none :Parameters: none
:Returns: -ENOMEM if there is not enough free memory to start migration mode; :Returns: -ENOMEM if there is not enough free memory to start migration mode;
-EINVAL if the state of the VM is invalid (e.g. no memory defined); -EINVAL if the state of the VM is invalid (e.g. no memory defined);

View File

@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
VERSION = 6 VERSION = 6
PATCHLEVEL = 1 PATCHLEVEL = 1
SUBLEVEL = 15 SUBLEVEL = 16
EXTRAVERSION = EXTRAVERSION =
NAME = Hurr durr I'ma ninja sloth NAME = Hurr durr I'ma ninja sloth
@ -93,10 +93,17 @@ endif
# If the user is running make -s (silent mode), suppress echoing of # If the user is running make -s (silent mode), suppress echoing of
# commands # commands
# make-4.0 (and later) keep single letter options in the 1st word of MAKEFLAGS.
ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),) ifeq ($(filter 3.%,$(MAKE_VERSION)),)
quiet=silent_ silence:=$(findstring s,$(firstword -$(MAKEFLAGS)))
KBUILD_VERBOSE = 0 else
silence:=$(findstring s,$(filter-out --%,$(MAKEFLAGS)))
endif
ifeq ($(silence),s)
quiet=silent_
KBUILD_VERBOSE = 0
endif endif
export quiet Q KBUILD_VERBOSE export quiet Q KBUILD_VERBOSE

View File

@ -148,7 +148,7 @@ main (int argc, char *argv[])
#ifdef __ELF__ #ifdef __ELF__
elf = (struct elfhdr *) buf; elf = (struct elfhdr *) buf;
if (elf->e_ident[0] == 0x7f && str_has_prefix((char *)elf->e_ident + 1, "ELF")) { if (memcmp(&elf->e_ident[EI_MAG0], ELFMAG, SELFMAG) == 0) {
if (elf->e_type != ET_EXEC) { if (elf->e_type != ET_EXEC) {
fprintf(stderr, "%s: %s is not an ELF executable\n", fprintf(stderr, "%s: %s is not an ELF executable\n",
prog_name, inname); prog_name, inname);

View File

@ -233,7 +233,21 @@ do_entIF(unsigned long type, struct pt_regs *regs)
{ {
int signo, code; int signo, code;
if ((regs->ps & ~IPL_MAX) == 0) { if (type == 3) { /* FEN fault */
/* Irritating users can call PAL_clrfen to disable the
FPU for the process. The kernel will then trap in
do_switch_stack and undo_switch_stack when we try
to save and restore the FP registers.
Given that GCC by default generates code that uses the
FP registers, PAL_clrfen is not useful except for DoS
attacks. So turn the bleeding FPU back on and be done
with it. */
current_thread_info()->pcb.flags |= 1;
__reload_thread(&current_thread_info()->pcb);
return;
}
if (!user_mode(regs)) {
if (type == 1) { if (type == 1) {
const unsigned int *data const unsigned int *data
= (const unsigned int *) regs->pc; = (const unsigned int *) regs->pc;
@ -366,20 +380,6 @@ do_entIF(unsigned long type, struct pt_regs *regs)
} }
break; break;
case 3: /* FEN fault */
/* Irritating users can call PAL_clrfen to disable the
FPU for the process. The kernel will then trap in
do_switch_stack and undo_switch_stack when we try
to save and restore the FP registers.
Given that GCC by default generates code that uses the
FP registers, PAL_clrfen is not useful except for DoS
attacks. So turn the bleeding FPU back on and be done
with it. */
current_thread_info()->pcb.flags |= 1;
__reload_thread(&current_thread_info()->pcb);
return;
case 5: /* illoc */ case 5: /* illoc */
default: /* unexpected instruction-fault type */ default: /* unexpected instruction-fault type */
; ;

View File

@ -250,7 +250,7 @@ &fimd {
i80-if-timings { i80-if-timings {
cs-setup = <0>; cs-setup = <0>;
wr-setup = <0>; wr-setup = <0>;
wr-act = <1>; wr-active = <1>;
wr-hold = <0>; wr-hold = <0>;
}; };
}; };

View File

@ -10,7 +10,7 @@
/ { / {
thermal-zones { thermal-zones {
cpu_thermal: cpu-thermal { cpu_thermal: cpu-thermal {
thermal-sensors = <&tmu 0>; thermal-sensors = <&tmu>;
polling-delay-passive = <0>; polling-delay-passive = <0>;
polling-delay = <0>; polling-delay = <0>;
trips { trips {

View File

@ -605,7 +605,7 @@ i2c_8: i2c@138e0000 {
status = "disabled"; status = "disabled";
hdmi_i2c_phy: hdmiphy@38 { hdmi_i2c_phy: hdmiphy@38 {
compatible = "exynos4210-hdmiphy"; compatible = "samsung,exynos4210-hdmiphy";
reg = <0x38>; reg = <0x38>;
}; };
}; };

View File

@ -393,7 +393,6 @@ &cpu_alert2 {
&cpu_thermal { &cpu_thermal {
polling-delay-passive = <0>; polling-delay-passive = <0>;
polling-delay = <0>; polling-delay = <0>;
thermal-sensors = <&tmu 0>;
}; };
&gic { &gic {

View File

@ -1107,7 +1107,7 @@ timer {
&cpu_thermal { &cpu_thermal {
polling-delay-passive = <0>; polling-delay-passive = <0>;
polling-delay = <0>; polling-delay = <0>;
thermal-sensors = <&tmu 0>; thermal-sensors = <&tmu>;
cooling-maps { cooling-maps {
map0 { map0 {

View File

@ -120,7 +120,6 @@ &clock_audss {
}; };
&cpu0_thermal { &cpu0_thermal {
thermal-sensors = <&tmu_cpu0 0>;
polling-delay-passive = <0>; polling-delay-passive = <0>;
polling-delay = <0>; polling-delay = <0>;

View File

@ -592,7 +592,7 @@ dp_phy: dp-video-phy {
}; };
mipi_phy: mipi-video-phy { mipi_phy: mipi-video-phy {
compatible = "samsung,s5pv210-mipi-video-phy"; compatible = "samsung,exynos5420-mipi-video-phy";
syscon = <&pmu_system_controller>; syscon = <&pmu_system_controller>;
#phy-cells = <1>; #phy-cells = <1>;
}; };

View File

@ -31,7 +31,7 @@ led-1 {
thermal-zones { thermal-zones {
cpu0_thermal: cpu0-thermal { cpu0_thermal: cpu0-thermal {
thermal-sensors = <&tmu_cpu0 0>; thermal-sensors = <&tmu_cpu0>;
trips { trips {
cpu0_alert0: cpu-alert-0 { cpu0_alert0: cpu-alert-0 {
temperature = <70000>; /* millicelsius */ temperature = <70000>; /* millicelsius */
@ -86,7 +86,7 @@ map1 {
}; };
}; };
cpu1_thermal: cpu1-thermal { cpu1_thermal: cpu1-thermal {
thermal-sensors = <&tmu_cpu1 0>; thermal-sensors = <&tmu_cpu1>;
trips { trips {
cpu1_alert0: cpu-alert-0 { cpu1_alert0: cpu-alert-0 {
temperature = <70000>; temperature = <70000>;
@ -130,7 +130,7 @@ map1 {
}; };
}; };
cpu2_thermal: cpu2-thermal { cpu2_thermal: cpu2-thermal {
thermal-sensors = <&tmu_cpu2 0>; thermal-sensors = <&tmu_cpu2>;
trips { trips {
cpu2_alert0: cpu-alert-0 { cpu2_alert0: cpu-alert-0 {
temperature = <70000>; temperature = <70000>;
@ -174,7 +174,7 @@ map1 {
}; };
}; };
cpu3_thermal: cpu3-thermal { cpu3_thermal: cpu3-thermal {
thermal-sensors = <&tmu_cpu3 0>; thermal-sensors = <&tmu_cpu3>;
trips { trips {
cpu3_alert0: cpu-alert-0 { cpu3_alert0: cpu-alert-0 {
temperature = <70000>; temperature = <70000>;
@ -218,7 +218,7 @@ map1 {
}; };
}; };
gpu_thermal: gpu-thermal { gpu_thermal: gpu-thermal {
thermal-sensors = <&tmu_gpu 0>; thermal-sensors = <&tmu_gpu>;
trips { trips {
gpu_alert0: gpu-alert-0 { gpu_alert0: gpu-alert-0 {
temperature = <70000>; temperature = <70000>;

View File

@ -50,7 +50,7 @@ fan0: pwm-fan {
thermal-zones { thermal-zones {
cpu0_thermal: cpu0-thermal { cpu0_thermal: cpu0-thermal {
thermal-sensors = <&tmu_cpu0 0>; thermal-sensors = <&tmu_cpu0>;
polling-delay-passive = <250>; polling-delay-passive = <250>;
polling-delay = <0>; polling-delay = <0>;
trips { trips {
@ -139,7 +139,7 @@ cpu0_cooling_map4: map4 {
}; };
}; };
cpu1_thermal: cpu1-thermal { cpu1_thermal: cpu1-thermal {
thermal-sensors = <&tmu_cpu1 0>; thermal-sensors = <&tmu_cpu1>;
polling-delay-passive = <250>; polling-delay-passive = <250>;
polling-delay = <0>; polling-delay = <0>;
trips { trips {
@ -212,7 +212,7 @@ cpu1_cooling_map4: map4 {
}; };
}; };
cpu2_thermal: cpu2-thermal { cpu2_thermal: cpu2-thermal {
thermal-sensors = <&tmu_cpu2 0>; thermal-sensors = <&tmu_cpu2>;
polling-delay-passive = <250>; polling-delay-passive = <250>;
polling-delay = <0>; polling-delay = <0>;
trips { trips {
@ -285,7 +285,7 @@ cpu2_cooling_map4: map4 {
}; };
}; };
cpu3_thermal: cpu3-thermal { cpu3_thermal: cpu3-thermal {
thermal-sensors = <&tmu_cpu3 0>; thermal-sensors = <&tmu_cpu3>;
polling-delay-passive = <250>; polling-delay-passive = <250>;
polling-delay = <0>; polling-delay = <0>;
trips { trips {
@ -358,7 +358,7 @@ cpu3_cooling_map4: map4 {
}; };
}; };
gpu_thermal: gpu-thermal { gpu_thermal: gpu-thermal {
thermal-sensors = <&tmu_gpu 0>; thermal-sensors = <&tmu_gpu>;
polling-delay-passive = <250>; polling-delay-passive = <250>;
polling-delay = <0>; polling-delay = <0>;
trips { trips {

View File

@ -513,7 +513,7 @@ gpr: iomuxc-gpr@30340000 {
mux: mux-controller { mux: mux-controller {
compatible = "mmio-mux"; compatible = "mmio-mux";
#mux-control-cells = <0>; #mux-control-cells = <1>;
mux-reg-masks = <0x14 0x00000010>; mux-reg-masks = <0x14 0x00000010>;
}; };

View File

@ -577,7 +577,7 @@ pil-reloc@94c {
}; };
apps_smmu: iommu@15000000 { apps_smmu: iommu@15000000 {
compatible = "qcom,sdx55-smmu-500", "arm,mmu-500"; compatible = "qcom,sdx55-smmu-500", "qcom,smmu-500", "arm,mmu-500";
reg = <0x15000000 0x20000>; reg = <0x15000000 0x20000>;
#iommu-cells = <2>; #iommu-cells = <2>;
#global-interrupts = <1>; #global-interrupts = <1>;

View File

@ -455,7 +455,7 @@ pil-reloc@94c {
}; };
apps_smmu: iommu@15000000 { apps_smmu: iommu@15000000 {
compatible = "qcom,sdx65-smmu-500", "arm,mmu-500"; compatible = "qcom,sdx65-smmu-500", "qcom,smmu-500", "arm,mmu-500";
reg = <0x15000000 0x40000>; reg = <0x15000000 0x40000>;
#iommu-cells = <2>; #iommu-cells = <2>;
#global-interrupts = <1>; #global-interrupts = <1>;

View File

@ -405,6 +405,7 @@ bsec: efuse@5c005000 {
part_number_otp: part_number_otp@4 { part_number_otp: part_number_otp@4 {
reg = <0x4 0x2>; reg = <0x4 0x2>;
bits = <0 12>;
}; };
ts_cal1: calib@5c { ts_cal1: calib@5c {
reg = <0x5c 0x2>; reg = <0x5c 0x2>;

View File

@ -57,7 +57,7 @@ reg_vdd_cpux: vdd-cpux-regulator {
regulator-ramp-delay = <50>; /* 4ms */ regulator-ramp-delay = <50>; /* 4ms */
enable-active-high; enable-active-high;
enable-gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */ enable-gpios = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */ gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
gpios-states = <0x1>; gpios-states = <0x1>;
states = <1100000 0>, <1300000 1>; states = <1100000 0>, <1300000 1>;

View File

@ -107,6 +107,7 @@ CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_DRM=y CONFIG_DRM=y
CONFIG_DRM_V3D=y CONFIG_DRM_V3D=y
CONFIG_DRM_VC4=y CONFIG_DRM_VC4=y
CONFIG_FB=y
CONFIG_FB_SIMPLE=y CONFIG_FB_SIMPLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_SOUND=y CONFIG_SOUND=y

View File

@ -99,6 +99,7 @@ struct mmdc_pmu {
cpumask_t cpu; cpumask_t cpu;
struct hrtimer hrtimer; struct hrtimer hrtimer;
unsigned int active_events; unsigned int active_events;
int id;
struct device *dev; struct device *dev;
struct perf_event *mmdc_events[MMDC_NUM_COUNTERS]; struct perf_event *mmdc_events[MMDC_NUM_COUNTERS];
struct hlist_node node; struct hlist_node node;
@ -433,8 +434,6 @@ static enum hrtimer_restart mmdc_pmu_timer_handler(struct hrtimer *hrtimer)
static int mmdc_pmu_init(struct mmdc_pmu *pmu_mmdc, static int mmdc_pmu_init(struct mmdc_pmu *pmu_mmdc,
void __iomem *mmdc_base, struct device *dev) void __iomem *mmdc_base, struct device *dev)
{ {
int mmdc_num;
*pmu_mmdc = (struct mmdc_pmu) { *pmu_mmdc = (struct mmdc_pmu) {
.pmu = (struct pmu) { .pmu = (struct pmu) {
.task_ctx_nr = perf_invalid_context, .task_ctx_nr = perf_invalid_context,
@ -452,15 +451,16 @@ static int mmdc_pmu_init(struct mmdc_pmu *pmu_mmdc,
.active_events = 0, .active_events = 0,
}; };
mmdc_num = ida_simple_get(&mmdc_ida, 0, 0, GFP_KERNEL); pmu_mmdc->id = ida_simple_get(&mmdc_ida, 0, 0, GFP_KERNEL);
return mmdc_num; return pmu_mmdc->id;
} }
static int imx_mmdc_remove(struct platform_device *pdev) static int imx_mmdc_remove(struct platform_device *pdev)
{ {
struct mmdc_pmu *pmu_mmdc = platform_get_drvdata(pdev); struct mmdc_pmu *pmu_mmdc = platform_get_drvdata(pdev);
ida_simple_remove(&mmdc_ida, pmu_mmdc->id);
cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node); cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node);
perf_pmu_unregister(&pmu_mmdc->pmu); perf_pmu_unregister(&pmu_mmdc->pmu);
iounmap(pmu_mmdc->mmdc_base); iounmap(pmu_mmdc->mmdc_base);
@ -474,7 +474,6 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
{ {
struct mmdc_pmu *pmu_mmdc; struct mmdc_pmu *pmu_mmdc;
char *name; char *name;
int mmdc_num;
int ret; int ret;
const struct of_device_id *of_id = const struct of_device_id *of_id =
of_match_device(imx_mmdc_dt_ids, &pdev->dev); of_match_device(imx_mmdc_dt_ids, &pdev->dev);
@ -497,14 +496,14 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
cpuhp_mmdc_state = ret; cpuhp_mmdc_state = ret;
} }
mmdc_num = mmdc_pmu_init(pmu_mmdc, mmdc_base, &pdev->dev); ret = mmdc_pmu_init(pmu_mmdc, mmdc_base, &pdev->dev);
pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk; if (ret < 0)
if (mmdc_num == 0) goto pmu_free;
name = "mmdc";
else
name = devm_kasprintf(&pdev->dev,
GFP_KERNEL, "mmdc%d", mmdc_num);
name = devm_kasprintf(&pdev->dev,
GFP_KERNEL, "mmdc%d", ret);
pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk;
pmu_mmdc->devtype_data = (struct fsl_mmdc_devtype_data *)of_id->data; pmu_mmdc->devtype_data = (struct fsl_mmdc_devtype_data *)of_id->data;
hrtimer_init(&pmu_mmdc->hrtimer, CLOCK_MONOTONIC, hrtimer_init(&pmu_mmdc->hrtimer, CLOCK_MONOTONIC,
@ -525,6 +524,7 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
pmu_register_err: pmu_register_err:
pr_warn("MMDC Perf PMU failed (%d), disabled\n", ret); pr_warn("MMDC Perf PMU failed (%d), disabled\n", ret);
ida_simple_remove(&mmdc_ida, pmu_mmdc->id);
cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node); cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node);
hrtimer_cancel(&pmu_mmdc->hrtimer); hrtimer_cancel(&pmu_mmdc->hrtimer);
pmu_free: pmu_free:

View File

@ -158,7 +158,7 @@ static int __init omap1_dm_timer_init(void)
kfree(pdata); kfree(pdata);
err_free_pdev: err_free_pdev:
platform_device_unregister(pdev); platform_device_put(pdev);
return ret; return ret;
} }

View File

@ -140,6 +140,7 @@ static int __init omap4_sram_init(void)
__func__); __func__);
else else
sram_sync = (void __iomem *)gen_pool_alloc(sram_pool, PAGE_SIZE); sram_sync = (void __iomem *)gen_pool_alloc(sram_pool, PAGE_SIZE);
of_node_put(np);
return 0; return 0;
} }

View File

@ -76,6 +76,7 @@ static void __init realtime_counter_init(void)
} }
rate = clk_get_rate(sys_clk); rate = clk_get_rate(sys_clk);
clk_put(sys_clk);
if (soc_is_dra7xx()) { if (soc_is_dra7xx()) {
/* /*

View File

@ -173,7 +173,8 @@ static struct samsung_pwm_variant s3c64xx_pwm_variant = {
.tclk_mask = (1 << 7) | (1 << 6) | (1 << 5), .tclk_mask = (1 << 7) | (1 << 6) | (1 << 5),
}; };
void __init s3c64xx_set_timer_source(unsigned int event, unsigned int source) void __init s3c64xx_set_timer_source(enum s3c64xx_timer_mode event,
enum s3c64xx_timer_mode source)
{ {
s3c64xx_pwm_variant.output_mask = BIT(SAMSUNG_PWM_NUM) - 1; s3c64xx_pwm_variant.output_mask = BIT(SAMSUNG_PWM_NUM) - 1;
s3c64xx_pwm_variant.output_mask &= ~(BIT(event) | BIT(source)); s3c64xx_pwm_variant.output_mask &= ~(BIT(event) | BIT(source));

View File

@ -213,6 +213,7 @@ int __init zynq_early_slcr_init(void)
zynq_slcr_regmap = syscon_regmap_lookup_by_compatible("xlnx,zynq-slcr"); zynq_slcr_regmap = syscon_regmap_lookup_by_compatible("xlnx,zynq-slcr");
if (IS_ERR(zynq_slcr_regmap)) { if (IS_ERR(zynq_slcr_regmap)) {
pr_err("%s: failed to find zynq-slcr\n", __func__); pr_err("%s: failed to find zynq-slcr\n", __func__);
of_node_put(np);
return -ENODEV; return -ENODEV;
} }

View File

@ -101,7 +101,6 @@ config ARM64
select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT
select ARCH_WANT_FRAME_POINTERS select ARCH_WANT_FRAME_POINTERS
select ARCH_WANT_HUGE_PMD_SHARE if ARM64_4K_PAGES || (ARM64_16K_PAGES && !ARM64_VA_BITS_36) select ARCH_WANT_HUGE_PMD_SHARE if ARM64_4K_PAGES || (ARM64_16K_PAGES && !ARM64_VA_BITS_36)
select ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP
select ARCH_WANT_LD_ORPHAN_WARN select ARCH_WANT_LD_ORPHAN_WARN
select ARCH_WANTS_NO_INSTR select ARCH_WANTS_NO_INSTR
select ARCH_WANTS_THP_SWAP if ARM64_4K_PAGES select ARCH_WANTS_THP_SWAP if ARM64_4K_PAGES

View File

@ -168,15 +168,15 @@ sn: sn@32 {
reg = <0x32 0x20>; reg = <0x32 0x20>;
}; };
eth_mac: eth_mac@0 { eth_mac: eth-mac@0 {
reg = <0x0 0x6>; reg = <0x0 0x6>;
}; };
bt_mac: bt_mac@6 { bt_mac: bt-mac@6 {
reg = <0x6 0x6>; reg = <0x6 0x6>;
}; };
wifi_mac: wifi_mac@c { wifi_mac: wifi-mac@c {
reg = <0xc 0x6>; reg = <0xc 0x6>;
}; };
@ -217,7 +217,7 @@ &i2c1 {
pinctrl-names = "default"; pinctrl-names = "default";
/* RTC */ /* RTC */
pcf8563: pcf8563@51 { pcf8563: rtc@51 {
compatible = "nxp,pcf8563"; compatible = "nxp,pcf8563";
reg = <0x51>; reg = <0x51>;
status = "okay"; status = "okay";
@ -303,7 +303,7 @@ &uart_AO_B {
&usb { &usb {
status = "okay"; status = "okay";
phy-supply = <&usb_pwr>; vbus-supply = <&usb_pwr>;
}; };
&spicc1 { &spicc1 {

View File

@ -152,7 +152,7 @@ scpi {
scpi_clocks: clocks { scpi_clocks: clocks {
compatible = "arm,scpi-clocks"; compatible = "arm,scpi-clocks";
scpi_dvfs: clock-controller { scpi_dvfs: clocks-0 {
compatible = "arm,scpi-dvfs-clocks"; compatible = "arm,scpi-dvfs-clocks";
#clock-cells = <1>; #clock-cells = <1>;
clock-indices = <0>; clock-indices = <0>;
@ -161,7 +161,7 @@ scpi_dvfs: clock-controller {
}; };
scpi_sensors: sensors { scpi_sensors: sensors {
compatible = "amlogic,meson-gxbb-scpi-sensors"; compatible = "amlogic,meson-gxbb-scpi-sensors", "arm,scpi-sensors";
#thermal-sensor-cells = <1>; #thermal-sensor-cells = <1>;
}; };
}; };

View File

@ -1694,7 +1694,7 @@ int_mdio: mdio@1 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
internal_ephy: ethernet_phy@8 { internal_ephy: ethernet-phy@8 {
compatible = "ethernet-phy-id0180.3301", compatible = "ethernet-phy-id0180.3301",
"ethernet-phy-ieee802.3-c22"; "ethernet-phy-ieee802.3-c22";
interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;

View File

@ -401,5 +401,4 @@ &uart_AO {
&usb { &usb {
status = "okay"; status = "okay";
dr_mode = "host";
}; };

View File

@ -57,26 +57,6 @@ cpu_opp_table: opp-table {
compatible = "operating-points-v2"; compatible = "operating-points-v2";
opp-shared; opp-shared;
opp-100000000 {
opp-hz = /bits/ 64 <100000000>;
opp-microvolt = <731000>;
};
opp-250000000 {
opp-hz = /bits/ 64 <250000000>;
opp-microvolt = <731000>;
};
opp-500000000 {
opp-hz = /bits/ 64 <500000000>;
opp-microvolt = <731000>;
};
opp-667000000 {
opp-hz = /bits/ 64 <666666666>;
opp-microvolt = <731000>;
};
opp-1000000000 { opp-1000000000 {
opp-hz = /bits/ 64 <1000000000>; opp-hz = /bits/ 64 <1000000000>;
opp-microvolt = <731000>; opp-microvolt = <731000>;

View File

@ -17,7 +17,7 @@ adc-keys {
io-channel-names = "buttons"; io-channel-names = "buttons";
keyup-threshold-microvolt = <1800000>; keyup-threshold-microvolt = <1800000>;
update-button { button-update {
label = "update"; label = "update";
linux,code = <KEY_VENDOR>; linux,code = <KEY_VENDOR>;
press-threshold-microvolt = <1300000>; press-threshold-microvolt = <1300000>;

View File

@ -232,7 +232,7 @@ sn: sn@14 {
reg = <0x14 0x10>; reg = <0x14 0x10>;
}; };
eth_mac: eth_mac@34 { eth_mac: eth-mac@34 {
reg = <0x34 0x10>; reg = <0x34 0x10>;
}; };
@ -249,7 +249,7 @@ scpi {
scpi_clocks: clocks { scpi_clocks: clocks {
compatible = "arm,scpi-clocks"; compatible = "arm,scpi-clocks";
scpi_dvfs: scpi_clocks@0 { scpi_dvfs: clocks-0 {
compatible = "arm,scpi-dvfs-clocks"; compatible = "arm,scpi-dvfs-clocks";
#clock-cells = <1>; #clock-cells = <1>;
clock-indices = <0>; clock-indices = <0>;
@ -531,7 +531,7 @@ periphs: bus@c8834000 {
#size-cells = <2>; #size-cells = <2>;
ranges = <0x0 0x0 0x0 0xc8834000 0x0 0x2000>; ranges = <0x0 0x0 0x0 0xc8834000 0x0 0x2000>;
hwrng: rng { hwrng: rng@0 {
compatible = "amlogic,meson-rng"; compatible = "amlogic,meson-rng";
reg = <0x0 0x0 0x0 0x4>; reg = <0x0 0x0 0x0 0x4>;
}; };

View File

@ -16,7 +16,7 @@ / {
leds { leds {
compatible = "gpio-leds"; compatible = "gpio-leds";
status { led {
gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_LOW>; gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_LOW>;
default-state = "off"; default-state = "off";
color = <LED_COLOR_ID_RED>; color = <LED_COLOR_ID_RED>;

View File

@ -18,7 +18,7 @@ cvbs-connector {
leds { leds {
compatible = "gpio-leds"; compatible = "gpio-leds";
status { led {
label = "n1:white:status"; label = "n1:white:status";
gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>; gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>;
default-state = "on"; default-state = "on";

View File

@ -79,6 +79,5 @@ bluetooth {
enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
max-speed = <2000000>; max-speed = <2000000>;
clocks = <&wifi32k>; clocks = <&wifi32k>;
clock-names = "lpo";
}; };
}; };

View File

@ -86,11 +86,11 @@ sdio_pwrseq: sdio-pwrseq {
}; };
&efuse { &efuse {
bt_mac: bt_mac@6 { bt_mac: bt-mac@6 {
reg = <0x6 0x6>; reg = <0x6 0x6>;
}; };
wifi_mac: wifi_mac@C { wifi_mac: wifi-mac@c {
reg = <0xc 0x6>; reg = <0xc 0x6>;
}; };
}; };
@ -239,7 +239,7 @@ &i2c_B {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&i2c_b_pins>; pinctrl-0 = <&i2c_b_pins>;
pcf8563: pcf8563@51 { pcf8563: rtc@51 {
compatible = "nxp,pcf8563"; compatible = "nxp,pcf8563";
reg = <0x51>; reg = <0x51>;
status = "okay"; status = "okay";

View File

@ -759,7 +759,7 @@ mux {
}; };
}; };
eth-phy-mux { eth-phy-mux@55c {
compatible = "mdio-mux-mmioreg", "mdio-mux"; compatible = "mdio-mux-mmioreg", "mdio-mux";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;

View File

@ -17,13 +17,13 @@ / {
compatible = "bananapi,bpi-m5", "amlogic,sm1"; compatible = "bananapi,bpi-m5", "amlogic,sm1";
model = "Banana Pi BPI-M5"; model = "Banana Pi BPI-M5";
adc_keys { adc-keys {
compatible = "adc-keys"; compatible = "adc-keys";
io-channels = <&saradc 2>; io-channels = <&saradc 2>;
io-channel-names = "buttons"; io-channel-names = "buttons";
keyup-threshold-microvolt = <1800000>; keyup-threshold-microvolt = <1800000>;
key { button-sw3 {
label = "SW3"; label = "SW3";
linux,code = <BTN_3>; linux,code = <BTN_3>;
press-threshold-microvolt = <1700000>; press-threshold-microvolt = <1700000>;
@ -123,7 +123,7 @@ vddio_c: regulator-vddio_c {
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>; regulator-max-microvolt = <3300000>;
enable-gpio = <&gpio_ao GPIOE_2 GPIO_ACTIVE_HIGH>; enable-gpio = <&gpio_ao GPIOE_2 GPIO_OPEN_DRAIN>;
enable-active-high; enable-active-high;
regulator-always-on; regulator-always-on;

View File

@ -76,9 +76,17 @@ sound {
}; };
&cpu_thermal { &cpu_thermal {
trips {
cpu_active: cpu-active {
temperature = <60000>; /* millicelsius */
hysteresis = <2000>; /* millicelsius */
type = "active";
};
};
cooling-maps { cooling-maps {
map { map {
trip = <&cpu_passive>; trip = <&cpu_active>;
cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
}; };
}; };

View File

@ -562,7 +562,7 @@ ocotp: efuse@30350000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
imx8mm_uid: unique-id@410 { imx8mm_uid: unique-id@4 {
reg = <0x4 0x8>; reg = <0x4 0x8>;
}; };

View File

@ -563,7 +563,7 @@ ocotp: efuse@30350000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
imx8mn_uid: unique-id@410 { imx8mn_uid: unique-id@4 {
reg = <0x4 0x8>; reg = <0x4 0x8>;
}; };

View File

@ -424,7 +424,7 @@ ocotp: efuse@30350000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
imx8mp_uid: unique-id@420 { imx8mp_uid: unique-id@8 {
reg = <0x8 0x8>; reg = <0x8 0x8>;
}; };

View File

@ -592,7 +592,7 @@ ocotp: efuse@30350000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
imx8mq_uid: soc-uid@410 { imx8mq_uid: soc-uid@4 {
reg = <0x4 0x8>; reg = <0x4 0x8>;
}; };

View File

@ -435,6 +435,7 @@ uart3: serial@11005000 {
pwm: pwm@11006000 { pwm: pwm@11006000 {
compatible = "mediatek,mt7622-pwm"; compatible = "mediatek,mt7622-pwm";
reg = <0 0x11006000 0 0x1000>; reg = <0 0x11006000 0 0x1000>;
#pwm-cells = <2>;
interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_LOW>; interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_LOW>;
clocks = <&topckgen CLK_TOP_PWM_SEL>, clocks = <&topckgen CLK_TOP_PWM_SEL>,
<&pericfg CLK_PERI_PWM_PD>, <&pericfg CLK_PERI_PWM_PD>,

View File

@ -125,8 +125,7 @@ topckgen: topckgen@1001b000 {
}; };
watchdog: watchdog@1001c000 { watchdog: watchdog@1001c000 {
compatible = "mediatek,mt7986-wdt", compatible = "mediatek,mt7986-wdt";
"mediatek,mt6589-wdt";
reg = <0 0x1001c000 0 0x1000>; reg = <0 0x1001c000 0 0x1000>;
interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
#reset-cells = <1>; #reset-cells = <1>;

View File

@ -585,6 +585,15 @@ psci {
method = "smc"; method = "smc";
}; };
clk13m: fixed-factor-clock-13m {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&clk26m>;
clock-div = <2>;
clock-mult = <1>;
clock-output-names = "clk13m";
};
clk26m: oscillator { clk26m: oscillator {
compatible = "fixed-clock"; compatible = "fixed-clock";
#clock-cells = <0>; #clock-cells = <0>;
@ -968,8 +977,7 @@ systimer: timer@10017000 {
"mediatek,mt6765-timer"; "mediatek,mt6765-timer";
reg = <0 0x10017000 0 0x1000>; reg = <0 0x10017000 0 0x1000>;
interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&topckgen CLK_TOP_CLK13M>; clocks = <&clk13m>;
clock-names = "clk13m";
}; };
iommu: iommu@10205000 { iommu: iommu@10205000 {

View File

@ -47,14 +47,12 @@ core4 {
core5 { core5 {
cpu = <&cpu5>; cpu = <&cpu5>;
}; };
};
cluster1 { core6 {
core0 {
cpu = <&cpu6>; cpu = <&cpu6>;
}; };
core1 { core7 {
cpu = <&cpu7>; cpu = <&cpu7>;
}; };
}; };
@ -211,10 +209,12 @@ l3_0: l3-cache {
}; };
}; };
clk13m: oscillator-13m { clk13m: fixed-factor-clock-13m {
compatible = "fixed-clock"; compatible = "fixed-factor-clock";
#clock-cells = <0>; #clock-cells = <0>;
clock-frequency = <13000000>; clocks = <&clk26m>;
clock-div = <2>;
clock-mult = <1>;
clock-output-names = "clk13m"; clock-output-names = "clk13m";
}; };
@ -330,8 +330,7 @@ pio: pinctrl@10005000 {
}; };
watchdog: watchdog@10007000 { watchdog: watchdog@10007000 {
compatible = "mediatek,mt8186-wdt", compatible = "mediatek,mt8186-wdt";
"mediatek,mt6589-wdt";
mediatek,disable-extrst; mediatek,disable-extrst;
reg = <0 0x10007000 0 0x1000>; reg = <0 0x10007000 0 0x1000>;
#reset-cells = <1>; #reset-cells = <1>;

View File

@ -29,6 +29,15 @@ aliases {
rdma4 = &rdma4; rdma4 = &rdma4;
}; };
clk13m: fixed-factor-clock-13m {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&clk26m>;
clock-div = <2>;
clock-mult = <1>;
clock-output-names = "clk13m";
};
clk26m: oscillator0 { clk26m: oscillator0 {
compatible = "fixed-clock"; compatible = "fixed-clock";
#clock-cells = <0>; #clock-cells = <0>;
@ -149,19 +158,16 @@ core2 {
core3 { core3 {
cpu = <&cpu3>; cpu = <&cpu3>;
}; };
}; core4 {
cluster1 {
core0 {
cpu = <&cpu4>; cpu = <&cpu4>;
}; };
core1 { core5 {
cpu = <&cpu5>; cpu = <&cpu5>;
}; };
core2 { core6 {
cpu = <&cpu6>; cpu = <&cpu6>;
}; };
core3 { core7 {
cpu = <&cpu7>; cpu = <&cpu7>;
}; };
}; };
@ -531,8 +537,7 @@ systimer: timer@10017000 {
"mediatek,mt6765-timer"; "mediatek,mt6765-timer";
reg = <0 0x10017000 0 0x1000>; reg = <0 0x10017000 0 0x1000>;
interrupts = <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH 0>; interrupts = <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH 0>;
clocks = <&topckgen CLK_TOP_CSW_F26M_D2>; clocks = <&clk13m>;
clock-names = "clk13m";
}; };
pwrap: pwrap@10026000 { pwrap: pwrap@10026000 {
@ -575,6 +580,8 @@ scp_adsp: clock-controller@10720000 {
compatible = "mediatek,mt8192-scp_adsp"; compatible = "mediatek,mt8192-scp_adsp";
reg = <0 0x10720000 0 0x1000>; reg = <0 0x10720000 0 0x1000>;
#clock-cells = <1>; #clock-cells = <1>;
/* power domain dependency not upstreamed */
status = "fail";
}; };
uart0: serial@11002000 { uart0: serial@11002000 {

View File

@ -150,22 +150,20 @@ core2 {
core3 { core3 {
cpu = <&cpu3>; cpu = <&cpu3>;
}; };
};
cluster1 { core4 {
core0 {
cpu = <&cpu4>; cpu = <&cpu4>;
}; };
core1 { core5 {
cpu = <&cpu5>; cpu = <&cpu5>;
}; };
core2 { core6 {
cpu = <&cpu6>; cpu = <&cpu6>;
}; };
core3 { core7 {
cpu = <&cpu7>; cpu = <&cpu7>;
}; };
}; };
@ -244,6 +242,15 @@ sound: mt8195-sound {
status = "disabled"; status = "disabled";
}; };
clk13m: fixed-factor-clock-13m {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&clk26m>;
clock-div = <2>;
clock-mult = <1>;
clock-output-names = "clk13m";
};
clk26m: oscillator-26m { clk26m: oscillator-26m {
compatible = "fixed-clock"; compatible = "fixed-clock";
#clock-cells = <0>; #clock-cells = <0>;
@ -683,8 +690,7 @@ power-domain@MT8195_POWER_DOMAIN_AUDIO {
}; };
watchdog: watchdog@10007000 { watchdog: watchdog@10007000 {
compatible = "mediatek,mt8195-wdt", compatible = "mediatek,mt8195-wdt";
"mediatek,mt6589-wdt";
mediatek,disable-extrst; mediatek,disable-extrst;
reg = <0 0x10007000 0 0x100>; reg = <0 0x10007000 0 0x100>;
#reset-cells = <1>; #reset-cells = <1>;
@ -701,7 +707,7 @@ systimer: timer@10017000 {
"mediatek,mt6765-timer"; "mediatek,mt6765-timer";
reg = <0 0x10017000 0 0x1000>; reg = <0 0x10017000 0 0x1000>;
interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH 0>; interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH 0>;
clocks = <&topckgen CLK_TOP_CLK26M_D2>; clocks = <&clk13m>;
}; };
pwrap: pwrap@10024000 { pwrap: pwrap@10024000 {
@ -1410,6 +1416,7 @@ u3phy1: t-phy@11e30000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0 0 0x11e30000 0xe00>; ranges = <0 0 0x11e30000 0xe00>;
power-domains = <&spm MT8195_POWER_DOMAIN_SSUSB_PCIE_PHY>;
status = "disabled"; status = "disabled";
u2port1: usb-phy@0 { u2port1: usb-phy@0 {

View File

@ -1666,7 +1666,7 @@ vdd_hdmi: regulator-vdd-hdmi {
vin-supply = <&vdd_5v0_sys>; vin-supply = <&vdd_5v0_sys>;
}; };
vdd_cam_1v2: regulator-vdd-cam-1v8 { vdd_cam_1v2: regulator-vdd-cam-1v2 {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
regulator-name = "vdd-cam-1v2"; regulator-name = "vdd-cam-1v2";
regulator-min-microvolt = <1200000>; regulator-min-microvolt = <1200000>;

View File

@ -137,7 +137,7 @@ usb1_ssphy: phy@58200 {
#clock-cells = <0>; #clock-cells = <0>;
clocks = <&gcc GCC_USB1_PIPE_CLK>; clocks = <&gcc GCC_USB1_PIPE_CLK>;
clock-names = "pipe0"; clock-names = "pipe0";
clock-output-names = "gcc_usb1_pipe_clk_src"; clock-output-names = "usb3phy_1_cc_pipe_clk";
}; };
}; };
@ -180,7 +180,7 @@ usb0_ssphy: phy@78200 {
#clock-cells = <0>; #clock-cells = <0>;
clocks = <&gcc GCC_USB0_PIPE_CLK>; clocks = <&gcc GCC_USB0_PIPE_CLK>;
clock-names = "pipe0"; clock-names = "pipe0";
clock-output-names = "gcc_usb0_pipe_clk_src"; clock-output-names = "usb3phy_0_cc_pipe_clk";
}; };
}; };
@ -197,9 +197,9 @@ qusb_phy_0: phy@79000 {
status = "disabled"; status = "disabled";
}; };
pcie_qmp0: phy@86000 { pcie_qmp0: phy@84000 {
compatible = "qcom,ipq8074-qmp-pcie-phy"; compatible = "qcom,ipq8074-qmp-gen3-pcie-phy";
reg = <0x00086000 0x1c4>; reg = <0x00084000 0x1bc>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges; ranges;
@ -213,15 +213,16 @@ pcie_qmp0: phy@86000 {
"common"; "common";
status = "disabled"; status = "disabled";
pcie_phy0: phy@86200 { pcie_phy0: phy@84200 {
reg = <0x86200 0x16c>, reg = <0x84200 0x16c>,
<0x86400 0x200>, <0x84400 0x200>,
<0x86800 0x4f4>; <0x84800 0x1f0>,
<0x84c00 0xf4>;
#phy-cells = <0>; #phy-cells = <0>;
#clock-cells = <0>; #clock-cells = <0>;
clocks = <&gcc GCC_PCIE0_PIPE_CLK>; clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
clock-names = "pipe0"; clock-names = "pipe0";
clock-output-names = "pcie_0_pipe_clk"; clock-output-names = "pcie20_phy0_pipe_clk";
}; };
}; };
@ -242,14 +243,14 @@ pcie_qmp1: phy@8e000 {
status = "disabled"; status = "disabled";
pcie_phy1: phy@8e200 { pcie_phy1: phy@8e200 {
reg = <0x8e200 0x16c>, reg = <0x8e200 0x130>,
<0x8e400 0x200>, <0x8e400 0x200>,
<0x8e800 0x4f4>; <0x8e800 0x1f8>;
#phy-cells = <0>; #phy-cells = <0>;
#clock-cells = <0>; #clock-cells = <0>;
clocks = <&gcc GCC_PCIE1_PIPE_CLK>; clocks = <&gcc GCC_PCIE1_PIPE_CLK>;
clock-names = "pipe0"; clock-names = "pipe0";
clock-output-names = "pcie_1_pipe_clk"; clock-output-names = "pcie20_phy1_pipe_clk";
}; };
}; };
@ -750,9 +751,9 @@ pcie1: pci@10000000 {
phy-names = "pciephy"; phy-names = "pciephy";
ranges = <0x81000000 0 0x10200000 0x10200000 ranges = <0x81000000 0 0x10200000 0x10200000
0 0x100000 /* downstream I/O */ 0 0x10000>, /* downstream I/O */
0x82000000 0 0x10300000 0x10300000 <0x82000000 0 0x10220000 0x10220000
0 0xd00000>; /* non-prefetchable memory */ 0 0xfde0000>; /* non-prefetchable memory */
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "msi"; interrupt-names = "msi";
@ -795,16 +796,18 @@ IRQ_TYPE_LEVEL_HIGH>, /* int_c */
}; };
pcie0: pci@20000000 { pcie0: pci@20000000 {
compatible = "qcom,pcie-ipq8074"; compatible = "qcom,pcie-ipq8074-gen3";
reg = <0x20000000 0xf1d>, reg = <0x20000000 0xf1d>,
<0x20000f20 0xa8>, <0x20000f20 0xa8>,
<0x00080000 0x2000>, <0x20001000 0x1000>,
<0x00080000 0x4000>,
<0x20100000 0x1000>; <0x20100000 0x1000>;
reg-names = "dbi", "elbi", "parf", "config"; reg-names = "dbi", "elbi", "atu", "parf", "config";
device_type = "pci"; device_type = "pci";
linux,pci-domain = <0>; linux,pci-domain = <0>;
bus-range = <0x00 0xff>; bus-range = <0x00 0xff>;
num-lanes = <1>; num-lanes = <1>;
max-link-speed = <3>;
#address-cells = <3>; #address-cells = <3>;
#size-cells = <2>; #size-cells = <2>;
@ -812,9 +815,9 @@ pcie0: pci@20000000 {
phy-names = "pciephy"; phy-names = "pciephy";
ranges = <0x81000000 0 0x20200000 0x20200000 ranges = <0x81000000 0 0x20200000 0x20200000
0 0x100000 /* downstream I/O */ 0 0x10000>, /* downstream I/O */
0x82000000 0 0x20300000 0x20300000 <0x82000000 0 0x20220000 0x20220000
0 0xd00000>; /* non-prefetchable memory */ 0 0xfde0000>; /* non-prefetchable memory */
interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "msi"; interrupt-names = "msi";
@ -832,28 +835,30 @@ IRQ_TYPE_LEVEL_HIGH>, /* int_c */
clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>, clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>,
<&gcc GCC_PCIE0_AXI_M_CLK>, <&gcc GCC_PCIE0_AXI_M_CLK>,
<&gcc GCC_PCIE0_AXI_S_CLK>, <&gcc GCC_PCIE0_AXI_S_CLK>,
<&gcc GCC_PCIE0_AHB_CLK>, <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>,
<&gcc GCC_PCIE0_AUX_CLK>; <&gcc GCC_PCIE0_RCHNG_CLK>;
clock-names = "iface", clock-names = "iface",
"axi_m", "axi_m",
"axi_s", "axi_s",
"ahb", "axi_bridge",
"aux"; "rchng";
resets = <&gcc GCC_PCIE0_PIPE_ARES>, resets = <&gcc GCC_PCIE0_PIPE_ARES>,
<&gcc GCC_PCIE0_SLEEP_ARES>, <&gcc GCC_PCIE0_SLEEP_ARES>,
<&gcc GCC_PCIE0_CORE_STICKY_ARES>, <&gcc GCC_PCIE0_CORE_STICKY_ARES>,
<&gcc GCC_PCIE0_AXI_MASTER_ARES>, <&gcc GCC_PCIE0_AXI_MASTER_ARES>,
<&gcc GCC_PCIE0_AXI_SLAVE_ARES>, <&gcc GCC_PCIE0_AXI_SLAVE_ARES>,
<&gcc GCC_PCIE0_AHB_ARES>, <&gcc GCC_PCIE0_AHB_ARES>,
<&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>; <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>,
<&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>;
reset-names = "pipe", reset-names = "pipe",
"sleep", "sleep",
"sticky", "sticky",
"axi_m", "axi_m",
"axi_s", "axi_s",
"ahb", "ahb",
"axi_m_sticky"; "axi_m_sticky",
"axi_s_sticky";
status = "disabled"; status = "disabled";
}; };
}; };

View File

@ -455,7 +455,7 @@ tlmm: pinctrl@1000000 {
reg = <0x1000000 0x300000>; reg = <0x1000000 0x300000>;
interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
gpio-controller; gpio-controller;
gpio-ranges = <&tlmm 0 0 155>; gpio-ranges = <&tlmm 0 0 142>;
#gpio-cells = <2>; #gpio-cells = <2>;
interrupt-controller; interrupt-controller;
#interrupt-cells = <2>; #interrupt-cells = <2>;

View File

@ -1,5 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
/* Copyright (c) Jean Thomas <virgule@jeanthomas.me> /*
* Copyright (c) Jean Thomas <virgule@jeanthomas.me>
*/ */
/dts-v1/; /dts-v1/;

View File

@ -1,5 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
/* Copyright (c) Jean Thomas <virgule@jeanthomas.me> /*
* Copyright (c) Jean Thomas <virgule@jeanthomas.me>
*/ */
/dts-v1/; /dts-v1/;

View File

@ -1,7 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
/* Copyright (c) 2015, LGE Inc. All rights reserved. /*
* Copyright (c) 2015, LGE Inc. All rights reserved.
* Copyright (c) 2016, The Linux Foundation. All rights reserved. * Copyright (c) 2016, The Linux Foundation. All rights reserved.
* Copyright (c) 2021, Petr Vorel <petr.vorel@gmail.com> * Copyright (c) 2021-2022, Petr Vorel <petr.vorel@gmail.com>
* Copyright (c) 2022, Dominik Kobinski <dominikkobinski314@gmail.com>
*/ */
/dts-v1/; /dts-v1/;
@ -13,6 +15,9 @@
/* cont_splash_mem has different memory mapping */ /* cont_splash_mem has different memory mapping */
/delete-node/ &cont_splash_mem; /delete-node/ &cont_splash_mem;
/* disabled on downstream, conflicts with cont_splash_mem */
/delete-node/ &dfps_data_mem;
/ { / {
model = "LG Nexus 5X"; model = "LG Nexus 5X";
compatible = "lg,bullhead", "qcom,msm8992"; compatible = "lg,bullhead", "qcom,msm8992";
@ -47,7 +52,17 @@ ramoops@1ff00000 {
}; };
cont_splash_mem: memory@3400000 { cont_splash_mem: memory@3400000 {
reg = <0 0x03400000 0 0x1200000>; reg = <0 0x03400000 0 0xc00000>;
no-map;
};
reserved@5000000 {
reg = <0x0 0x05000000 0x0 0x1a00000>;
no-map;
};
reserved@6c00000 {
reg = <0x0 0x06c00000 0x0 0x400000>;
no-map; no-map;
}; };
}; };
@ -79,8 +94,8 @@ pm8994_regulators: pm8994-regulators {
/* S1, S2, S6 and S12 are managed by RPMPD */ /* S1, S2, S6 and S12 are managed by RPMPD */
pm8994_s1: s1 { pm8994_s1: s1 {
regulator-min-microvolt = <800000>; regulator-min-microvolt = <1025000>;
regulator-max-microvolt = <800000>; regulator-max-microvolt = <1025000>;
}; };
pm8994_s2: s2 { pm8994_s2: s2 {
@ -236,9 +251,8 @@ pm8994_l25: l25 {
}; };
pm8994_l26: l26 { pm8994_l26: l26 {
/* TODO: value from downstream
regulator-min-microvolt = <987500>; regulator-min-microvolt = <987500>;
fails to apply */ regulator-max-microvolt = <987500>;
}; };
pm8994_l27: l27 { pm8994_l27: l27 {
@ -252,19 +266,13 @@ pm8994_l28: l28 {
}; };
pm8994_l29: l29 { pm8994_l29: l29 {
/* TODO: Unsupported voltage range.
regulator-min-microvolt = <2800000>; regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>; regulator-max-microvolt = <2800000>;
qcom,init-voltage = <2800000>;
*/
}; };
pm8994_l30: l30 { pm8994_l30: l30 {
/* TODO: get this verified
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>; regulator-max-microvolt = <1800000>;
qcom,init-voltage = <1800000>;
*/
}; };
pm8994_l31: l31 { pm8994_l31: l31 {
@ -273,11 +281,8 @@ pm8994_l31: l31 {
}; };
pm8994_l32: l32 { pm8994_l32: l32 {
/* TODO: get this verified
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>; regulator-max-microvolt = <1800000>;
qcom,init-voltage = <1800000>;
*/
}; };
}; };

View File

@ -1,5 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
/* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved. /*
* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
*/ */
#include "msm8994.dtsi" #include "msm8994.dtsi"

View File

@ -944,10 +944,6 @@ touch_int_sleep: touch-int-sleep {
}; };
}; };
/*
* For reasons that are currently unknown (but probably related to fusb301), USB takes about
* 6 minutes to wake up (nothing interesting in kernel logs), but then it works as it should.
*/
&usb3 { &usb3 {
status = "okay"; status = "okay";
qcom,select-utmi-as-pipe-clk; qcom,select-utmi-as-pipe-clk;
@ -956,6 +952,7 @@ &usb3 {
&usb3_dwc3 { &usb3_dwc3 {
extcon = <&usb3_id>; extcon = <&usb3_id>;
dr_mode = "peripheral"; dr_mode = "peripheral";
maximum-speed = "high-speed";
phys = <&hsusb_phy1>; phys = <&hsusb_phy1>;
phy-names = "usb2-phy"; phy-names = "usb2-phy";
snps,hird-threshold = /bits/ 8 <0>; snps,hird-threshold = /bits/ 8 <0>;

View File

@ -712,7 +712,7 @@ gcc: clock-controller@300000 {
#power-domain-cells = <1>; #power-domain-cells = <1>;
reg = <0x00300000 0x90000>; reg = <0x00300000 0x90000>;
clocks = <&rpmcc RPM_SMD_BB_CLK1>, clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
<&rpmcc RPM_SMD_LN_BB_CLK>, <&rpmcc RPM_SMD_LN_BB_CLK>,
<&sleep_clk>, <&sleep_clk>,
<&pciephy_0>, <&pciephy_0>,
@ -829,9 +829,11 @@ a2noc: interconnect@583000 {
compatible = "qcom,msm8996-a2noc"; compatible = "qcom,msm8996-a2noc";
reg = <0x00583000 0x7000>; reg = <0x00583000 0x7000>;
#interconnect-cells = <1>; #interconnect-cells = <1>;
clock-names = "bus", "bus_a"; clock-names = "bus", "bus_a", "aggre2_ufs_axi", "ufs_axi";
clocks = <&rpmcc RPM_SMD_AGGR2_NOC_CLK>, clocks = <&rpmcc RPM_SMD_AGGR2_NOC_CLK>,
<&rpmcc RPM_SMD_AGGR2_NOC_A_CLK>; <&rpmcc RPM_SMD_AGGR2_NOC_A_CLK>,
<&gcc GCC_AGGRE2_UFS_AXI_CLK>,
<&gcc GCC_UFS_AXI_CLK>;
}; };
mnoc: interconnect@5a4000 { mnoc: interconnect@5a4000 {
@ -1050,7 +1052,7 @@ dsi0_phy: dsi-phy@994400 {
#clock-cells = <1>; #clock-cells = <1>;
#phy-cells = <0>; #phy-cells = <0>;
clocks = <&mmcc MDSS_AHB_CLK>, <&rpmcc RPM_SMD_BB_CLK1>; clocks = <&mmcc MDSS_AHB_CLK>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
clock-names = "iface", "ref"; clock-names = "iface", "ref";
status = "disabled"; status = "disabled";
}; };
@ -1118,7 +1120,7 @@ dsi1_phy: dsi-phy@996400 {
#clock-cells = <1>; #clock-cells = <1>;
#phy-cells = <0>; #phy-cells = <0>;
clocks = <&mmcc MDSS_AHB_CLK>, <&rpmcc RPM_SMD_BB_CLK1>; clocks = <&mmcc MDSS_AHB_CLK>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
clock-names = "iface", "ref"; clock-names = "iface", "ref";
status = "disabled"; status = "disabled";
}; };
@ -2932,8 +2934,8 @@ kryocc: clock-controller@6400000 {
compatible = "qcom,msm8996-apcc"; compatible = "qcom,msm8996-apcc";
reg = <0x06400000 0x90000>; reg = <0x06400000 0x90000>;
clock-names = "xo"; clock-names = "xo", "sys_apcs_aux";
clocks = <&rpmcc RPM_SMD_BB_CLK1>; clocks = <&rpmcc RPM_SMD_XO_A_CLK_SRC>, <&apcs_glb>;
#clock-cells = <1>; #clock-cells = <1>;
}; };
@ -3052,7 +3054,7 @@ sdhc1: mmc@7464900 {
clock-names = "iface", "core", "xo"; clock-names = "iface", "core", "xo";
clocks = <&gcc GCC_SDCC1_AHB_CLK>, clocks = <&gcc GCC_SDCC1_AHB_CLK>,
<&gcc GCC_SDCC1_APPS_CLK>, <&gcc GCC_SDCC1_APPS_CLK>,
<&rpmcc RPM_SMD_BB_CLK1>; <&rpmcc RPM_SMD_XO_CLK_SRC>;
resets = <&gcc GCC_SDCC1_BCR>; resets = <&gcc GCC_SDCC1_BCR>;
pinctrl-names = "default", "sleep"; pinctrl-names = "default", "sleep";
@ -3076,7 +3078,7 @@ sdhc2: mmc@74a4900 {
clock-names = "iface", "core", "xo"; clock-names = "iface", "core", "xo";
clocks = <&gcc GCC_SDCC2_AHB_CLK>, clocks = <&gcc GCC_SDCC2_AHB_CLK>,
<&gcc GCC_SDCC2_APPS_CLK>, <&gcc GCC_SDCC2_APPS_CLK>,
<&rpmcc RPM_SMD_BB_CLK1>; <&rpmcc RPM_SMD_XO_CLK_SRC>;
resets = <&gcc GCC_SDCC2_BCR>; resets = <&gcc GCC_SDCC2_BCR>;
pinctrl-names = "default", "sleep"; pinctrl-names = "default", "sleep";
@ -3383,7 +3385,7 @@ adsp_pil: remoteproc@9300000 {
interrupt-names = "wdog", "fatal", "ready", interrupt-names = "wdog", "fatal", "ready",
"handover", "stop-ack"; "handover", "stop-ack";
clocks = <&rpmcc RPM_SMD_BB_CLK1>; clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
clock-names = "xo"; clock-names = "xo";
memory-region = <&adsp_mem>; memory-region = <&adsp_mem>;

View File

@ -16,8 +16,9 @@ pmk8350: pmic@0 {
#size-cells = <0>; #size-cells = <0>;
pmk8350_pon: pon@1300 { pmk8350_pon: pon@1300 {
compatible = "qcom,pm8998-pon"; compatible = "qcom,pmk8350-pon";
reg = <0x1300>; reg = <0x1300>, <0x800>;
reg-names = "hlos", "pbs";
pon_pwrkey: pwrkey { pon_pwrkey: pwrkey {
compatible = "qcom,pmk8350-pwrkey"; compatible = "qcom,pmk8350-pwrkey";

View File

@ -792,7 +792,7 @@ pcie_phy: phy@7786000 {
clocks = <&gcc GCC_PCIE_0_PIPE_CLK>; clocks = <&gcc GCC_PCIE_0_PIPE_CLK>;
resets = <&gcc GCC_PCIEPHY_0_PHY_BCR>, resets = <&gcc GCC_PCIEPHY_0_PHY_BCR>,
<&gcc 21>; <&gcc GCC_PCIE_0_PIPE_ARES>;
reset-names = "phy", "pipe"; reset-names = "phy", "pipe";
clock-output-names = "pcie_0_pipe_clk"; clock-output-names = "pcie_0_pipe_clk";
@ -1322,12 +1322,12 @@ pcie: pci@10000000 {
<&gcc GCC_PCIE_0_SLV_AXI_CLK>; <&gcc GCC_PCIE_0_SLV_AXI_CLK>;
clock-names = "iface", "aux", "master_bus", "slave_bus"; clock-names = "iface", "aux", "master_bus", "slave_bus";
resets = <&gcc 18>, resets = <&gcc GCC_PCIE_0_AXI_MASTER_ARES>,
<&gcc 17>, <&gcc GCC_PCIE_0_AXI_SLAVE_ARES>,
<&gcc 15>, <&gcc GCC_PCIE_0_AXI_MASTER_STICKY_ARES>,
<&gcc 19>, <&gcc GCC_PCIE_0_CORE_STICKY_ARES>,
<&gcc GCC_PCIE_0_BCR>, <&gcc GCC_PCIE_0_BCR>,
<&gcc 16>; <&gcc GCC_PCIE_0_AHB_ARES>;
reset-names = "axi_m", reset-names = "axi_m",
"axi_s", "axi_s",
"axi_m_sticky", "axi_m_sticky",

View File

@ -3238,8 +3238,8 @@ spmi_bus: spmi@c440000 {
interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>; interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>;
qcom,ee = <0>; qcom,ee = <0>;
qcom,channel = <0>; qcom,channel = <0>;
#address-cells = <1>; #address-cells = <2>;
#size-cells = <1>; #size-cells = <0>;
interrupt-controller; interrupt-controller;
#interrupt-cells = <4>; #interrupt-cells = <4>;
cell-index = <0>; cell-index = <0>;

View File

@ -4242,8 +4242,8 @@ spmi_bus: spmi@c440000 {
interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>; interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>;
qcom,ee = <0>; qcom,ee = <0>;
qcom,channel = <0>; qcom,channel = <0>;
#address-cells = <1>; #address-cells = <2>;
#size-cells = <1>; #size-cells = <0>;
interrupt-controller; interrupt-controller;
#interrupt-cells = <4>; #interrupt-cells = <4>;
}; };

View File

@ -1287,6 +1287,7 @@ usb_0: usb@a6f8800 {
"ss_phy_irq"; "ss_phy_irq";
power-domains = <&gcc USB30_PRIM_GDSC>; power-domains = <&gcc USB30_PRIM_GDSC>;
required-opps = <&rpmhpd_opp_nom>;
resets = <&gcc GCC_USB30_PRIM_BCR>; resets = <&gcc GCC_USB30_PRIM_BCR>;
@ -1341,6 +1342,7 @@ usb_1: usb@a8f8800 {
"ss_phy_irq"; "ss_phy_irq";
power-domains = <&gcc USB30_SEC_GDSC>; power-domains = <&gcc USB30_SEC_GDSC>;
required-opps = <&rpmhpd_opp_nom>;
resets = <&gcc GCC_USB30_SEC_BCR>; resets = <&gcc GCC_USB30_SEC_BCR>;
@ -1470,8 +1472,8 @@ spmi_bus: spmi@c440000 {
interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>; interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>;
qcom,ee = <0>; qcom,ee = <0>;
qcom,channel = <0>; qcom,channel = <0>;
#address-cells = <1>; #address-cells = <2>;
#size-cells = <1>; #size-cells = <0>;
interrupt-controller; interrupt-controller;
#interrupt-cells = <4>; #interrupt-cells = <4>;
}; };

View File

@ -969,7 +969,7 @@ sdc2_card_det_n: sd-card-det-n {
}; };
wcd_intr_default: wcd_intr_default { wcd_intr_default: wcd_intr_default {
pins = <54>; pins = "gpio54";
function = "gpio"; function = "gpio";
input-enable; input-enable;

View File

@ -40,17 +40,18 @@ extcon_usb: extcon-usb {
}; };
gpio-keys { gpio-keys {
status = "okay";
compatible = "gpio-keys"; compatible = "gpio-keys";
autorepeat;
key-vol-dn { pinctrl-0 = <&vol_down_n>;
pinctrl-names = "default";
key-volume-down {
label = "Volume Down"; label = "Volume Down";
gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; gpios = <&tlmm 47 GPIO_ACTIVE_LOW>;
linux,input-type = <1>;
linux,code = <KEY_VOLUMEDOWN>; linux,code = <KEY_VOLUMEDOWN>;
gpio-key,wakeup;
debounce-interval = <15>; debounce-interval = <15>;
linux,can-disable;
wakeup-source;
}; };
}; };
@ -108,6 +109,14 @@ &sdhc_1 {
&tlmm { &tlmm {
gpio-reserved-ranges = <22 2>, <28 6>; gpio-reserved-ranges = <22 2>, <28 6>;
vol_down_n: vol-down-n-state {
pins = "gpio47";
function = "gpio";
drive-strength = <2>;
bias-disable;
input-enable;
};
}; };
&usb3 { &usb3 {

View File

@ -442,9 +442,9 @@ hsusb_phy1: phy@1613000 {
reg = <0x01613000 0x180>; reg = <0x01613000 0x180>;
#phy-cells = <0>; #phy-cells = <0>;
clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, clocks = <&gcc GCC_AHB2PHY_USB_CLK>,
<&gcc GCC_AHB2PHY_USB_CLK>; <&rpmcc RPM_SMD_XO_CLK_SRC>;
clock-names = "ref", "cfg_ahb"; clock-names = "cfg_ahb", "ref";
resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>; resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
status = "disabled"; status = "disabled";

View File

@ -342,13 +342,12 @@ last_log_region: memory@ffbc0000 {
}; };
ramoops: ramoops@ffc00000 { ramoops: ramoops@ffc00000 {
compatible = "removed-dma-pool", "ramoops"; compatible = "ramoops";
reg = <0 0xffc00000 0 0x00100000>; reg = <0 0xffc00000 0 0x100000>;
record-size = <0x1000>; record-size = <0x1000>;
console-size = <0x40000>; console-size = <0x40000>;
ftrace-size = <0x0>;
msg-size = <0x20000 0x20000>; msg-size = <0x20000 0x20000>;
cc-size = <0x0>; ecc-size = <16>;
no-map; no-map;
}; };

View File

@ -33,9 +33,10 @@ chosen {
framebuffer: framebuffer@9c000000 { framebuffer: framebuffer@9c000000 {
compatible = "simple-framebuffer"; compatible = "simple-framebuffer";
reg = <0 0x9c000000 0 0x2300000>; reg = <0 0x9c000000 0 0x2300000>;
width = <1644>; /* Griffin BL initializes in 2.5k mode, not 4k */
height = <3840>; width = <1096>;
stride = <(1644 * 4)>; height = <2560>;
stride = <(1096 * 4)>;
format = "a8r8g8b8"; format = "a8r8g8b8";
/* /*
* That's (going to be) a lot of clocks, but it's necessary due * That's (going to be) a lot of clocks, but it's necessary due

View File

@ -1043,8 +1043,6 @@ uart2: serial@98c000 {
interrupts = <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&rpmhpd SM8350_CX>; power-domains = <&rpmhpd SM8350_CX>;
operating-points-v2 = <&qup_opp_table_100mhz>; operating-points-v2 = <&qup_opp_table_100mhz>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled"; status = "disabled";
}; };

View File

@ -991,8 +991,6 @@ uart20: serial@894000 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&qup_uart20_default>; pinctrl-0 = <&qup_uart20_default>;
interrupts = <GIC_SPI 587 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 587 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled"; status = "disabled";
}; };
@ -1387,8 +1385,6 @@ uart7: serial@99c000 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&qup_uart7_tx>, <&qup_uart7_rx>; pinctrl-0 = <&qup_uart7_tx>, <&qup_uart7_rx>;
interrupts = <GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled"; status = "disabled";
}; };
}; };

View File

@ -437,20 +437,6 @@ wm8962_endpoint: endpoint {
}; };
}; };
/* 0 - lcd_reset */
/* 1 - lcd_pwr */
/* 2 - lcd_select */
/* 3 - backlight-enable */
/* 4 - Touch_shdwn */
/* 5 - LCD_H_pol */
/* 6 - lcd_V_pol */
gpio_exp1: gpio@20 {
compatible = "onnn,pca9654";
reg = <0x20>;
gpio-controller;
#gpio-cells = <2>;
};
touchscreen@26 { touchscreen@26 {
compatible = "ilitek,ili2117"; compatible = "ilitek,ili2117";
reg = <0x26>; reg = <0x26>;
@ -482,6 +468,16 @@ hd3ss3220_out_ep: endpoint {
}; };
}; };
}; };
gpio_exp1: gpio@70 {
compatible = "nxp,pca9538";
reg = <0x70>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "lcd_reset", "lcd_pwr", "lcd_select",
"backlight-enable", "Touch_shdwn",
"LCD_H_pol", "lcd_V_pol";
};
}; };
&lvds0 { &lvds0 {

View File

@ -306,7 +306,8 @@ main_spi0: spi@20100000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
power-domains = <&k3_pds 141 TI_SCI_PD_EXCLUSIVE>; power-domains = <&k3_pds 141 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 172 0>; clocks = <&k3_clks 141 0>;
status = "disabled";
}; };
main_spi1: spi@20110000 { main_spi1: spi@20110000 {
@ -316,7 +317,8 @@ main_spi1: spi@20110000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
power-domains = <&k3_pds 142 TI_SCI_PD_EXCLUSIVE>; power-domains = <&k3_pds 142 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 173 0>; clocks = <&k3_clks 142 0>;
status = "disabled";
}; };
main_spi2: spi@20120000 { main_spi2: spi@20120000 {
@ -326,7 +328,8 @@ main_spi2: spi@20120000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
power-domains = <&k3_pds 143 TI_SCI_PD_EXCLUSIVE>; power-domains = <&k3_pds 143 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 174 0>; clocks = <&k3_clks 143 0>;
status = "disabled";
}; };
main_gpio_intr: interrupt-controller@a00000 { main_gpio_intr: interrupt-controller@a00000 {

View File

@ -42,6 +42,7 @@ mcu_spi0: spi@4b00000 {
#size-cells = <0>; #size-cells = <0>;
power-domains = <&k3_pds 147 TI_SCI_PD_EXCLUSIVE>; power-domains = <&k3_pds 147 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 147 0>; clocks = <&k3_clks 147 0>;
status = "disabled";
}; };
mcu_spi1: spi@4b10000 { mcu_spi1: spi@4b10000 {
@ -52,6 +53,7 @@ mcu_spi1: spi@4b10000 {
#size-cells = <0>; #size-cells = <0>;
power-domains = <&k3_pds 148 TI_SCI_PD_EXCLUSIVE>; power-domains = <&k3_pds 148 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 148 0>; clocks = <&k3_clks 148 0>;
status = "disabled";
}; };
mcu_gpio_intr: interrupt-controller@4210000 { mcu_gpio_intr: interrupt-controller@4210000 {

View File

@ -80,7 +80,7 @@ vdd_sd_dv: gpio-regulator-TLV71033 {
}; };
}; };
&wkup_pmx0 { &wkup_pmx2 {
mcu_cpsw_pins_default: mcu-cpsw-pins-default { mcu_cpsw_pins_default: mcu-cpsw-pins-default {
pinctrl-single,pins = < pinctrl-single,pins = <
J721E_WKUP_IOPAD(0x0068, PIN_OUTPUT, 0) /* MCU_RGMII1_TX_CTL */ J721E_WKUP_IOPAD(0x0068, PIN_OUTPUT, 0) /* MCU_RGMII1_TX_CTL */

View File

@ -56,7 +56,34 @@ chipid@43000014 {
wkup_pmx0: pinctrl@4301c000 { wkup_pmx0: pinctrl@4301c000 {
compatible = "pinctrl-single"; compatible = "pinctrl-single";
/* Proxy 0 addressing */ /* Proxy 0 addressing */
reg = <0x00 0x4301c000 0x00 0x178>; reg = <0x00 0x4301c000 0x00 0x34>;
#pinctrl-cells = <1>;
pinctrl-single,register-width = <32>;
pinctrl-single,function-mask = <0xffffffff>;
};
wkup_pmx1: pinctrl@0x4301c038 {
compatible = "pinctrl-single";
/* Proxy 0 addressing */
reg = <0x00 0x4301c038 0x00 0x8>;
#pinctrl-cells = <1>;
pinctrl-single,register-width = <32>;
pinctrl-single,function-mask = <0xffffffff>;
};
wkup_pmx2: pinctrl@0x4301c068 {
compatible = "pinctrl-single";
/* Proxy 0 addressing */
reg = <0x00 0x4301c068 0x00 0xec>;
#pinctrl-cells = <1>;
pinctrl-single,register-width = <32>;
pinctrl-single,function-mask = <0xffffffff>;
};
wkup_pmx3: pinctrl@0x4301c174 {
compatible = "pinctrl-single";
/* Proxy 0 addressing */
reg = <0x00 0x4301c174 0x00 0x20>;
#pinctrl-cells = <1>; #pinctrl-cells = <1>;
pinctrl-single,register-width = <32>; pinctrl-single,register-width = <32>;
pinctrl-single,function-mask = <0xffffffff>; pinctrl-single,function-mask = <0xffffffff>;

View File

@ -825,6 +825,7 @@ dwc3_0: usb@fe200000 {
clock-names = "bus_early", "ref"; clock-names = "bus_early", "ref";
iommus = <&smmu 0x860>; iommus = <&smmu 0x860>;
snps,quirk-frame-length-adjustment = <0x20>; snps,quirk-frame-length-adjustment = <0x20>;
snps,resume-hs-terminations;
/* dma-coherent; */ /* dma-coherent; */
}; };
}; };
@ -851,6 +852,7 @@ dwc3_1: usb@fe300000 {
clock-names = "bus_early", "ref"; clock-names = "bus_early", "ref";
iommus = <&smmu 0x861>; iommus = <&smmu 0x861>;
snps,quirk-frame-length-adjustment = <0x20>; snps,quirk-frame-length-adjustment = <0x20>;
snps,resume-hs-terminations;
/* dma-coherent; */ /* dma-coherent; */
}; };
}; };

View File

@ -2757,7 +2757,7 @@ static const struct arm64_cpu_capabilities arm64_elf_hwcaps[] = {
HWCAP_CAP(SYS_ID_AA64PFR0_EL1, ID_AA64PFR0_EL1_FP_SHIFT, 4, FTR_SIGNED, 1, CAP_HWCAP, KERNEL_HWCAP_FPHP), HWCAP_CAP(SYS_ID_AA64PFR0_EL1, ID_AA64PFR0_EL1_FP_SHIFT, 4, FTR_SIGNED, 1, CAP_HWCAP, KERNEL_HWCAP_FPHP),
HWCAP_CAP(SYS_ID_AA64PFR0_EL1, ID_AA64PFR0_EL1_AdvSIMD_SHIFT, 4, FTR_SIGNED, 0, CAP_HWCAP, KERNEL_HWCAP_ASIMD), HWCAP_CAP(SYS_ID_AA64PFR0_EL1, ID_AA64PFR0_EL1_AdvSIMD_SHIFT, 4, FTR_SIGNED, 0, CAP_HWCAP, KERNEL_HWCAP_ASIMD),
HWCAP_CAP(SYS_ID_AA64PFR0_EL1, ID_AA64PFR0_EL1_AdvSIMD_SHIFT, 4, FTR_SIGNED, 1, CAP_HWCAP, KERNEL_HWCAP_ASIMDHP), HWCAP_CAP(SYS_ID_AA64PFR0_EL1, ID_AA64PFR0_EL1_AdvSIMD_SHIFT, 4, FTR_SIGNED, 1, CAP_HWCAP, KERNEL_HWCAP_ASIMDHP),
HWCAP_CAP(SYS_ID_AA64PFR0_EL1, ID_AA64PFR0_EL1_DIT_SHIFT, 4, FTR_SIGNED, 1, CAP_HWCAP, KERNEL_HWCAP_DIT), HWCAP_CAP(SYS_ID_AA64PFR0_EL1, ID_AA64PFR0_EL1_DIT_SHIFT, 4, FTR_UNSIGNED, 1, CAP_HWCAP, KERNEL_HWCAP_DIT),
HWCAP_CAP(SYS_ID_AA64ISAR1_EL1, ID_AA64ISAR1_EL1_DPB_SHIFT, 4, FTR_UNSIGNED, 1, CAP_HWCAP, KERNEL_HWCAP_DCPOP), HWCAP_CAP(SYS_ID_AA64ISAR1_EL1, ID_AA64ISAR1_EL1_DPB_SHIFT, 4, FTR_UNSIGNED, 1, CAP_HWCAP, KERNEL_HWCAP_DCPOP),
HWCAP_CAP(SYS_ID_AA64ISAR1_EL1, ID_AA64ISAR1_EL1_DPB_SHIFT, 4, FTR_UNSIGNED, 2, CAP_HWCAP, KERNEL_HWCAP_DCPODP), HWCAP_CAP(SYS_ID_AA64ISAR1_EL1, ID_AA64ISAR1_EL1_DPB_SHIFT, 4, FTR_UNSIGNED, 2, CAP_HWCAP, KERNEL_HWCAP_DCPODP),
HWCAP_CAP(SYS_ID_AA64ISAR1_EL1, ID_AA64ISAR1_EL1_JSCVT_SHIFT, 4, FTR_UNSIGNED, 1, CAP_HWCAP, KERNEL_HWCAP_JSCVT), HWCAP_CAP(SYS_ID_AA64ISAR1_EL1, ID_AA64ISAR1_EL1_JSCVT_SHIFT, 4, FTR_UNSIGNED, 1, CAP_HWCAP, KERNEL_HWCAP_JSCVT),

View File

@ -782,7 +782,7 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx, bool ext
if (ret < 0) if (ret < 0)
return ret; return ret;
move_imm(ctx, t1, func_addr, is32); move_addr(ctx, t1, func_addr);
emit_insn(ctx, jirl, t1, LOONGARCH_GPR_RA, 0); emit_insn(ctx, jirl, t1, LOONGARCH_GPR_RA, 0);
move_reg(ctx, regmap[BPF_REG_0], LOONGARCH_GPR_A0); move_reg(ctx, regmap[BPF_REG_0], LOONGARCH_GPR_A0);
break; break;

View File

@ -80,6 +80,27 @@ static inline void emit_sext_32(struct jit_ctx *ctx, enum loongarch_gpr reg, boo
emit_insn(ctx, addiw, reg, reg, 0); emit_insn(ctx, addiw, reg, reg, 0);
} }
static inline void move_addr(struct jit_ctx *ctx, enum loongarch_gpr rd, u64 addr)
{
u64 imm_11_0, imm_31_12, imm_51_32, imm_63_52;
/* lu12iw rd, imm_31_12 */
imm_31_12 = (addr >> 12) & 0xfffff;
emit_insn(ctx, lu12iw, rd, imm_31_12);
/* ori rd, rd, imm_11_0 */
imm_11_0 = addr & 0xfff;
emit_insn(ctx, ori, rd, rd, imm_11_0);
/* lu32id rd, imm_51_32 */
imm_51_32 = (addr >> 32) & 0xfffff;
emit_insn(ctx, lu32id, rd, imm_51_32);
/* lu52id rd, rd, imm_63_52 */
imm_63_52 = (addr >> 52) & 0xfff;
emit_insn(ctx, lu52id, rd, rd, imm_63_52);
}
static inline void move_imm(struct jit_ctx *ctx, enum loongarch_gpr rd, long imm, bool is32) static inline void move_imm(struct jit_ctx *ctx, enum loongarch_gpr rd, long imm, bool is32)
{ {
long imm_11_0, imm_31_12, imm_51_32, imm_63_52, imm_51_0, imm_51_31; long imm_11_0, imm_31_12, imm_51_32, imm_63_52, imm_51_0, imm_51_31;

View File

@ -45,6 +45,8 @@ do_trace:
jbsr syscall_trace_enter jbsr syscall_trace_enter
RESTORE_SWITCH_STACK RESTORE_SWITCH_STACK
addql #4,%sp addql #4,%sp
addql #1,%d0
jeq ret_from_exception
movel %sp@(PT_OFF_ORIG_D0),%d1 movel %sp@(PT_OFF_ORIG_D0),%d1
movel #-ENOSYS,%d0 movel #-ENOSYS,%d0
cmpl #NR_syscalls,%d1 cmpl #NR_syscalls,%d1

View File

@ -19,6 +19,7 @@ config HEARTBEAT
# We have a dedicated heartbeat LED. :-) # We have a dedicated heartbeat LED. :-)
config PROC_HARDWARE config PROC_HARDWARE
bool "/proc/hardware support" bool "/proc/hardware support"
depends on PROC_FS
help help
Say Y here to support the /proc/hardware file, which gives you Say Y here to support the /proc/hardware file, which gives you
access to information about the machine you're running on, access to information about the machine you're running on,

View File

@ -90,6 +90,8 @@ ENTRY(system_call)
jbsr syscall_trace_enter jbsr syscall_trace_enter
RESTORE_SWITCH_STACK RESTORE_SWITCH_STACK
addql #4,%sp addql #4,%sp
addql #1,%d0
jeq ret_from_exception
movel %d3,%a0 movel %d3,%a0
jbsr %a0@ jbsr %a0@
movel %d0,%sp@(PT_OFF_D0) /* save the return value */ movel %d0,%sp@(PT_OFF_D0) /* save the return value */

View File

@ -184,9 +184,12 @@ do_trace_entry:
jbsr syscall_trace_enter jbsr syscall_trace_enter
RESTORE_SWITCH_STACK RESTORE_SWITCH_STACK
addql #4,%sp addql #4,%sp
addql #1,%d0 | optimization for cmpil #-1,%d0
jeq ret_from_syscall
movel %sp@(PT_OFF_ORIG_D0),%d0 movel %sp@(PT_OFF_ORIG_D0),%d0
cmpl #NR_syscalls,%d0 cmpl #NR_syscalls,%d0
jcs syscall jcs syscall
jra ret_from_syscall
badsys: badsys:
movel #-ENOSYS,%sp@(PT_OFF_D0) movel #-ENOSYS,%sp@(PT_OFF_D0)
jra ret_from_syscall jra ret_from_syscall

View File

@ -113,7 +113,7 @@ otg_power: fixedregulator@2 {
regulator-min-microvolt = <5000000>; regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>; regulator-max-microvolt = <5000000>;
gpio = <&gpf 14 GPIO_ACTIVE_LOW>; gpio = <&gpf 15 GPIO_ACTIVE_LOW>;
enable-active-high; enable-active-high;
}; };
}; };

View File

@ -38,7 +38,7 @@ static inline bool mips_syscall_is_indirect(struct task_struct *task,
static inline long syscall_get_nr(struct task_struct *task, static inline long syscall_get_nr(struct task_struct *task,
struct pt_regs *regs) struct pt_regs *regs)
{ {
return current_thread_info()->syscall; return task_thread_info(task)->syscall;
} }
static inline void mips_syscall_update_nr(struct task_struct *task, static inline void mips_syscall_update_nr(struct task_struct *task,

View File

@ -90,7 +90,7 @@ aflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -mlittle-endian
ifeq ($(HAS_BIARCH),y) ifeq ($(HAS_BIARCH),y)
KBUILD_CFLAGS += -m$(BITS) KBUILD_CFLAGS += -m$(BITS)
KBUILD_AFLAGS += -m$(BITS) -Wl,-a$(BITS) KBUILD_AFLAGS += -m$(BITS)
KBUILD_LDFLAGS += -m elf$(BITS)$(LDEMULATION) KBUILD_LDFLAGS += -m elf$(BITS)$(LDEMULATION)
endif endif

View File

@ -1179,15 +1179,12 @@ static inline void __radix__flush_tlb_range(struct mm_struct *mm,
} }
} }
} else { } else {
bool hflush = false; bool hflush;
unsigned long hstart, hend; unsigned long hstart, hend;
if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE)) { hstart = (start + PMD_SIZE - 1) & PMD_MASK;
hstart = (start + PMD_SIZE - 1) & PMD_MASK; hend = end & PMD_MASK;
hend = end & PMD_MASK; hflush = IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) && hstart < hend;
if (hstart < hend)
hflush = true;
}
if (type == FLUSH_TYPE_LOCAL) { if (type == FLUSH_TYPE_LOCAL) {
asm volatile("ptesync": : :"memory"); asm volatile("ptesync": : :"memory");

View File

@ -11,7 +11,11 @@ LDFLAGS_vmlinux :=
ifeq ($(CONFIG_DYNAMIC_FTRACE),y) ifeq ($(CONFIG_DYNAMIC_FTRACE),y)
LDFLAGS_vmlinux := --no-relax LDFLAGS_vmlinux := --no-relax
KBUILD_CPPFLAGS += -DCC_USING_PATCHABLE_FUNCTION_ENTRY KBUILD_CPPFLAGS += -DCC_USING_PATCHABLE_FUNCTION_ENTRY
CC_FLAGS_FTRACE := -fpatchable-function-entry=8 ifeq ($(CONFIG_RISCV_ISA_C),y)
CC_FLAGS_FTRACE := -fpatchable-function-entry=4
else
CC_FLAGS_FTRACE := -fpatchable-function-entry=2
endif
endif endif
ifeq ($(CONFIG_CMODEL_MEDLOW),y) ifeq ($(CONFIG_CMODEL_MEDLOW),y)

View File

@ -42,6 +42,14 @@ struct dyn_arch_ftrace {
* 2) jalr: setting low-12 offset to ra, jump to ra, and set ra to * 2) jalr: setting low-12 offset to ra, jump to ra, and set ra to
* return address (original pc + 4) * return address (original pc + 4)
* *
*<ftrace enable>:
* 0: auipc t0/ra, 0x?
* 4: jalr t0/ra, ?(t0/ra)
*
*<ftrace disable>:
* 0: nop
* 4: nop
*
* Dynamic ftrace generates probes to call sites, so we must deal with * Dynamic ftrace generates probes to call sites, so we must deal with
* both auipc and jalr at the same time. * both auipc and jalr at the same time.
*/ */
@ -52,25 +60,43 @@ struct dyn_arch_ftrace {
#define AUIPC_OFFSET_MASK (0xfffff000) #define AUIPC_OFFSET_MASK (0xfffff000)
#define AUIPC_PAD (0x00001000) #define AUIPC_PAD (0x00001000)
#define JALR_SHIFT 20 #define JALR_SHIFT 20
#define JALR_BASIC (0x000080e7) #define JALR_RA (0x000080e7)
#define AUIPC_BASIC (0x00000097) #define AUIPC_RA (0x00000097)
#define JALR_T0 (0x000282e7)
#define AUIPC_T0 (0x00000297)
#define NOP4 (0x00000013) #define NOP4 (0x00000013)
#define make_call(caller, callee, call) \ #define to_jalr_t0(offset) \
(((offset & JALR_OFFSET_MASK) << JALR_SHIFT) | JALR_T0)
#define to_auipc_t0(offset) \
((offset & JALR_SIGN_MASK) ? \
(((offset & AUIPC_OFFSET_MASK) + AUIPC_PAD) | AUIPC_T0) : \
((offset & AUIPC_OFFSET_MASK) | AUIPC_T0))
#define make_call_t0(caller, callee, call) \
do { \ do { \
call[0] = to_auipc_insn((unsigned int)((unsigned long)callee - \ unsigned int offset = \
(unsigned long)caller)); \ (unsigned long) callee - (unsigned long) caller; \
call[1] = to_jalr_insn((unsigned int)((unsigned long)callee - \ call[0] = to_auipc_t0(offset); \
(unsigned long)caller)); \ call[1] = to_jalr_t0(offset); \
} while (0) } while (0)
#define to_jalr_insn(offset) \ #define to_jalr_ra(offset) \
(((offset & JALR_OFFSET_MASK) << JALR_SHIFT) | JALR_BASIC) (((offset & JALR_OFFSET_MASK) << JALR_SHIFT) | JALR_RA)
#define to_auipc_insn(offset) \ #define to_auipc_ra(offset) \
((offset & JALR_SIGN_MASK) ? \ ((offset & JALR_SIGN_MASK) ? \
(((offset & AUIPC_OFFSET_MASK) + AUIPC_PAD) | AUIPC_BASIC) : \ (((offset & AUIPC_OFFSET_MASK) + AUIPC_PAD) | AUIPC_RA) : \
((offset & AUIPC_OFFSET_MASK) | AUIPC_BASIC)) ((offset & AUIPC_OFFSET_MASK) | AUIPC_RA))
#define make_call_ra(caller, callee, call) \
do { \
unsigned int offset = \
(unsigned long) callee - (unsigned long) caller; \
call[0] = to_auipc_ra(offset); \
call[1] = to_jalr_ra(offset); \
} while (0)
/* /*
* Let auipc+jalr be the basic *mcount unit*, so we make it 8 bytes here. * Let auipc+jalr be the basic *mcount unit*, so we make it 8 bytes here.

View File

@ -18,6 +18,7 @@ static __always_inline bool arch_static_branch(struct static_key * const key,
const bool branch) const bool branch)
{ {
asm_volatile_goto( asm_volatile_goto(
" .align 2 \n\t"
" .option push \n\t" " .option push \n\t"
" .option norelax \n\t" " .option norelax \n\t"
" .option norvc \n\t" " .option norvc \n\t"
@ -39,6 +40,7 @@ static __always_inline bool arch_static_branch_jump(struct static_key * const ke
const bool branch) const bool branch)
{ {
asm_volatile_goto( asm_volatile_goto(
" .align 2 \n\t"
" .option push \n\t" " .option push \n\t"
" .option norelax \n\t" " .option norelax \n\t"
" .option norvc \n\t" " .option norvc \n\t"

Some files were not shown because too many files have changed in this diff Show More