This is the 6.1.53 stable release
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmUBaBUACgkQONu9yGCS
aT6OkBAArqBSUyCYQJrhoUlFYBnBqF7BLSkj0GwINGSUOlt5ilJ3kZwH9ftjvpWp
ZtO0Rp/1yH2H5PpcsaLljPl055Sf30e0oCkz6vX16vy17NGnzI4rJi55+nRZbFRH
tBMhMjblgIJoTiTPEQPSGghENok+QzJ9Imffo4/Wru3w5ytkBnGcPPXreHJw+8V5
Pjhzg5tcjhz23rk2wzVtR4VfEqWaHQaapv49rKB1Yls578WYn4QXl4jgUyB7rCo7
9vBB7xy77H1hr9m8ifB/9v1ToV/vw6L1xGPWWWbhsSikFAMBoq34SCsq+6RdeURo
43CCcFsx1s5acM7NQWvxkoV5Hgl8Hc3WgFsx5eVBlNd+vS6ezkgdYuGmN76t+dF/
hZ7XGEoEFuoz9NKQC/5rKjdBd2p/IQYx6vf8EpK0IxFPD4h+DY9pn0FvwuAmxAcA
M41xLYGbXX5l/QJR016B1AYiB3DqVxRRRyQT0yNip+PDAh2N06MOJ84KgMSR9lg7
jyeFKZM2vQ619RopMIspuHTWxNiMw7x94aUhBnY1oD+fDzaRn+VNL8po6QYHLK8U
QTDhrWplTbTuGIF72h+1IyX1aUj6ozoCewl9Y9ry1u9jBb7LZoupVd0s1dwqORIk
2OSo74pDu5F2BT+4hEcCpDRcYvWlfKbZWBunRrMqvHN8BON0Mks=
=aFyS
-----END PGP SIGNATURE-----
Merge 6.1.53 into android14-6.1-lts
Changes in 6.1.53
Revert "bridge: Add extack warning when enabling STP in netns."
Partially revert "drm/amd/display: Fix possible underflow for displays with large vblank"
scsi: ufs: Try harder to change the power mode
Revert "Revert drm/amd/display: Enable Freesync Video Mode by default"
ARM: dts: imx: Set default tuning step for imx7d usdhc
ALSA: hda/realtek: Enable 4 amplifiers instead of 2 on a HP platform
powerpc/boot: Disable power10 features after BOOTAFLAGS assignment
media: uapi: HEVC: Add num_delta_pocs_of_ref_rps_idx field
Revert "MIPS: unhide PATA_PLATFORM"
phy: qcom-snps-femto-v2: use qcom_snps_hsphy_suspend/resume error code
media: amphion: use dev_err_probe
media: pulse8-cec: handle possible ping error
media: pci: cx23885: fix error handling for cx23885 ATSC boards
9p: virtio: fix unlikely null pointer deref in handle_rerror
9p: virtio: make sure 'offs' is initialized in zc_request
ksmbd: fix out of bounds in smb3_decrypt_req()
ksmbd: validate session id and tree id in compound request
ksmbd: no response from compound read
ksmbd: fix out of bounds in init_smb2_rsp_hdr()
ASoC: da7219: Flush pending AAD IRQ when suspending
ASoC: da7219: Check for failure reading AAD IRQ events
ASoC: nau8821: Add DMI quirk mechanism for active-high jack-detect
ethernet: atheros: fix return value check in atl1c_tso_csum()
m68k: Fix invalid .section syntax
s390/dasd: use correct number of retries for ERP requests
s390/dasd: fix hanging device after request requeue
fs/nls: make load_nls() take a const parameter
ASoC: rt5682-sdw: fix for JD event handling in ClockStop Mode0
ASoc: codecs: ES8316: Fix DMIC config
ASoC: rt711: fix for JD event handling in ClockStop Mode0
ASoC: rt711-sdca: fix for JD event handling in ClockStop Mode0
ASoC: atmel: Fix the 8K sample parameter in I2SC master
ALSA: usb-audio: Add quirk for Microsoft Modern Wireless Headset
platform/x86: intel: hid: Always call BTNL ACPI method
platform/x86/intel/hid: Add HP Dragonfly G2 to VGBS DMI quirks
platform/x86: think-lmi: Use kfree_sensitive instead of kfree
platform/x86: asus-wmi: Fix setting RGB mode on some TUF laptops
platform/x86: huawei-wmi: Silence ambient light sensor
drm/amd/smu: use AverageGfxclkFrequency* to replace previous GFX Curr Clock
drm/amd/display: Guard DCN31 PHYD32CLK logic against chip family
drm/amd/display: Exit idle optimizations before attempt to access PHY
ovl: Always reevaluate the file signature for IMA
ata: pata_arasan_cf: Use dev_err_probe() instead dev_err() in data_xfer()
ALSA: usb-audio: Update for native DSD support quirks
staging: fbtft: ili9341: use macro FBTFT_REGISTER_SPI_DRIVER
security: keys: perform capable check only on privileged operations
kprobes: Prohibit probing on CFI preamble symbol
clk: fixed-mmio: make COMMON_CLK_FIXED_MMIO depend on HAS_IOMEM
vmbus_testing: fix wrong python syntax for integer value comparison
Revert "wifi: ath6k: silence false positive -Wno-dangling-pointer warning on GCC 12"
net: dsa: microchip: KSZ9477 register regmap alignment to 32 bit boundaries
net: annotate data-races around sk->sk_{rcv|snd}timeo
net: usb: qmi_wwan: add Quectel EM05GV2
wifi: brcmfmac: Fix field-spanning write in brcmf_scan_params_v2_to_v1()
powerpc/powermac: Use early_* IO variants in via_calibrate_decr()
idmaengine: make FSL_EDMA and INTEL_IDMA64 depends on HAS_IOMEM
platform/x86/amd/pmf: Fix unsigned comparison with less than zero
scsi: lpfc: Remove reftag check in DIF paths
scsi: qedi: Fix potential deadlock on &qedi_percpu->p_work_lock
net: hns3: restore user pause configure when disable autoneg
drm/amdgpu: Match against exact bootloader status
wifi: cfg80211: remove links only on AP
wifi: mac80211: Use active_links instead of valid_links in Tx
netlabel: fix shift wrapping bug in netlbl_catmap_setlong()
bnx2x: fix page fault following EEH recovery
cifs: fix sockaddr comparison in iface_cmp
cifs: fix max_credits implementation
sctp: handle invalid error codes without calling BUG()
scsi: aacraid: Reply queue mapping to CPUs based on IRQ affinity
scsi: storvsc: Always set no_report_opcodes
scsi: lpfc: Fix incorrect big endian type assignment in bsg loopback path
LoongArch: Let pmd_present() return true when splitting pmd
LoongArch: Fix the write_fcsr() macro
ALSA: seq: oss: Fix racy open/close of MIDI devices
net: sfp: handle 100G/25G active optical cables in sfp_parse_support
tracing: Introduce pipe_cpumask to avoid race on trace_pipes
platform/mellanox: Fix mlxbf-tmfifo not handling all virtio CONSOLE notifications
of: property: Simplify of_link_to_phandle()
cpufreq: intel_pstate: set stale CPU frequency to minimum
crypto: rsa-pkcs1pad - Use helper to set reqsize
tpm: Enable hwrng only for Pluton on AMD CPUs
KVM: x86/mmu: Use kstrtobool() instead of strtobool()
KVM: x86/mmu: Add "never" option to allow sticky disabling of nx_huge_pages
net: Avoid address overwrite in kernel_connect
drm/amd/display: ensure async flips are only accepted for fast updates
udf: Check consistency of Space Bitmap Descriptor
udf: Handle error when adding extent to a file
Input: i8042 - add quirk for TUXEDO Gemini 17 Gen1/Clevo PD70PN
Revert "PCI: tegra194: Enable support for 256 Byte payload"
Revert "net: macsec: preserve ingress frame ordering"
tools lib subcmd: Add install target
tools lib subcmd: Make install_headers clearer
tools lib subcmd: Add dependency test to install_headers
tools/resolve_btfids: Use pkg-config to locate libelf
tools/resolve_btfids: Install subcmd headers
tools/resolve_btfids: Alter how HOSTCC is forced
tools/resolve_btfids: Compile resolve_btfids as host program
tools/resolve_btfids: Tidy HOST_OVERRIDES
tools/resolve_btfids: Pass HOSTCFLAGS as EXTRA_CFLAGS to prepare targets
tools/resolve_btfids: Fix setting HOSTCFLAGS
reiserfs: Check the return value from __getblk()
eventfd: prevent underflow for eventfd semaphores
fs: Fix error checking for d_hash_and_lookup()
iomap: Remove large folio handling in iomap_invalidate_folio()
tmpfs: verify {g,u}id mount options correctly
selftests/harness: Actually report SKIP for signal tests
vfs, security: Fix automount superblock LSM init problem, preventing NFS sb sharing
ARM: ptrace: Restore syscall restart tracing
ARM: ptrace: Restore syscall skipping for tracers
refscale: Fix uninitalized use of wait_queue_head_t
OPP: Fix passing 0 to PTR_ERR in _opp_attach_genpd()
selftests/resctrl: Add resctrl.h into build deps
selftests/resctrl: Don't leak buffer in fill_cache()
selftests/resctrl: Unmount resctrl FS if child fails to run benchmark
selftests/resctrl: Close perf value read fd on errors
arm64/ptrace: Clean up error handling path in sve_set_common()
sched/psi: Select KERNFS as needed
x86/decompressor: Don't rely on upper 32 bits of GPRs being preserved
arm64/sme: Don't use streaming mode to probe the maximum SME VL
arm64/fpsimd: Only provide the length to cpufeature for xCR registers
sched/rt: Fix sysctl_sched_rr_timeslice intial value
perf/imx_ddr: don't enable counter0 if none of 4 counters are used
selftests/futex: Order calls to futex_lock_pi
s390/pkey: fix/harmonize internal keyblob headers
s390/pkey: fix PKEY_TYPE_EP11_AES handling in PKEY_GENSECK2 IOCTL
s390/pkey: fix PKEY_TYPE_EP11_AES handling for sysfs attributes
s390/paes: fix PKEY_TYPE_EP11_AES handling for secure keyblobs
irqchip/loongson-eiointc: Fix return value checking of eiointc_index
ACPI: x86: s2idle: Post-increment variables when getting constraints
ACPI: x86: s2idle: Fix a logic error parsing AMD constraints table
thermal/of: Fix potential uninitialized value access
cpufreq: amd-pstate-ut: Remove module parameter access
cpufreq: amd-pstate-ut: Fix kernel panic when loading the driver
x86/efistub: Fix PCI ROM preservation in mixed mode
cpufreq: powernow-k8: Use related_cpus instead of cpus in driver.exit()
selftests/bpf: Fix bpf_nf failure upon test rerun
bpftool: use a local copy of perf_event to fix accessing :: Bpf_cookie
bpftool: Define a local bpf_perf_link to fix accessing its fields
bpftool: Use a local copy of BPF_LINK_TYPE_PERF_EVENT in pid_iter.bpf.c
bpftool: Use a local bpf_perf_event_value to fix accessing its fields
libbpf: Fix realloc API handling in zero-sized edge cases
bpf: Clear the probe_addr for uprobe
bpf: Fix an error in verifying a field in a union
crypto: qat - change value of default idle filter
tcp: tcp_enter_quickack_mode() should be static
hwrng: nomadik - keep clock enabled while hwrng is registered
hwrng: pic32 - use devm_clk_get_enabled
regmap: rbtree: Use alloc_flags for memory allocations
wifi: rtw89: debug: Fix error handling in rtw89_debug_priv_btc_manual_set()
wifi: mt76: mt7921: fix non-PSC channel scan fail
udp: re-score reuseport groups when connected sockets are present
bpf: reject unhashed sockets in bpf_sk_assign
wifi: mt76: testmode: add nla_policy for MT76_TM_ATTR_TX_LENGTH
spi: tegra20-sflash: fix to check return value of platform_get_irq() in tegra_sflash_probe()
can: gs_usb: gs_usb_receive_bulk_callback(): count RX overflow errors also in case of OOM
wifi: mt76: mt7915: fix power-limits while chan_switch
wifi: mwifiex: Fix OOB and integer underflow when rx packets
wifi: mwifiex: fix error recovery in PCIE buffer descriptor management
selftests/bpf: fix static assert compilation issue for test_cls_*.c
kbuild: rust_is_available: remove -v option
kbuild: rust_is_available: fix version check when CC has multiple arguments
kbuild: rust_is_available: add check for `bindgen` invocation
kbuild: rust_is_available: fix confusion when a version appears in the path
crypto: stm32 - Properly handle pm_runtime_get failing
crypto: api - Use work queue in crypto_destroy_instance
Bluetooth: nokia: fix value check in nokia_bluetooth_serdev_probe()
Bluetooth: Fix potential use-after-free when clear keys
Bluetooth: hci_sync: Don't double print name in add/remove adv_monitor
Bluetooth: hci_sync: Avoid use-after-free in dbg for hci_add_adv_monitor()
net: tcp: fix unexcepted socket die when snd_wnd is 0
selftests/bpf: Fix repeat option when kfunc_call verification fails
selftests/bpf: Clean up fmod_ret in bench_rename test script
net-memcg: Fix scope of sockmem pressure indicators
ice: ice_aq_check_events: fix off-by-one check when filling buffer
crypto: caam - fix unchecked return value error
hwrng: iproc-rng200 - Implement suspend and resume calls
lwt: Fix return values of BPF xmit ops
lwt: Check LWTUNNEL_XMIT_CONTINUE strictly
fs: ocfs2: namei: check return value of ocfs2_add_entry()
net: annotate data-races around sk->sk_lingertime
wifi: mwifiex: fix memory leak in mwifiex_histogram_read()
wifi: mwifiex: Fix missed return in oob checks failed path
ARM: dts: Add .dts files missing from the build
samples/bpf: fix bio latency check with tracepoint
samples/bpf: fix broken map lookup probe
wifi: ath9k: fix races between ath9k_wmi_cmd and ath9k_wmi_ctrl_rx
wifi: ath9k: protect WMI command response buffer replacement with a lock
wifi: nl80211/cfg80211: add forgotten nla_policy for BSS color attribute
mac80211: make ieee80211_tx_info padding explicit
wifi: mwifiex: avoid possible NULL skb pointer dereference
Bluetooth: btusb: Do not call kfree_skb() under spin_lock_irqsave()
arm64: mm: use ptep_clear() instead of pte_clear() in clear_flush()
wifi: ath9k: use IS_ERR() with debugfs_create_dir()
ice: avoid executing commands on other ports when driving sync
net: arcnet: Do not call kfree_skb() under local_irq_disable()
mlxsw: i2c: Fix chunk size setting in output mailbox buffer
mlxsw: i2c: Limit single transaction buffer size
mlxsw: core_hwmon: Adjust module label names based on MTCAP sensor counter
hwmon: (tmp513) Fix the channel number in tmp51x_is_visible()
octeontx2-pf: Refactor schedular queue alloc/free calls
octeontx2-pf: Fix PFC TX scheduler free
cteonxt2-pf: Fix backpressure config for multiple PFC priorities to work simultaneously
sfc: Check firmware supports Ethernet PTP filter
net/sched: sch_hfsc: Ensure inner classes have fsc curve
netrom: Deny concurrent connect().
drm/bridge: tc358764: Fix debug print parameter order
ASoC: cs43130: Fix numerator/denominator mixup
quota: factor out dquot_write_dquot()
quota: rename dquot_active() to inode_quota_active()
quota: add new helper dquot_active()
quota: fix dqput() to follow the guarantees dquot_srcu should provide
drm/amd/display: Do not set drr on pipe commit
drm/hyperv: Fix a compilation issue because of not including screen_info.h
ASoC: stac9766: fix build errors with REGMAP_AC97
soc: qcom: ocmem: Add OCMEM hardware version print
soc: qcom: ocmem: Fix NUM_PORTS & NUM_MACROS macros
arm64: dts: qcom: sm6350: Fix ZAP region
arm64: dts: qcom: sm8250: correct dynamic power coefficients
arm64: dts: qcom: msm8916-l8150: correct light sensor VDDIO supply
arm64: dts: qcom: sm8250-edo: Add gpio line names for TLMM
arm64: dts: qcom: sm8250-edo: Add GPIO line names for PMIC GPIOs
arm64: dts: qcom: sm8250-edo: Rectify gpio-keys
arm64: dts: qcom: sc8280xp-crd: Correct vreg_misc_3p3 GPIO
arm64: dts: qcom: sc8280xp: Add missing SCM interconnect
arm64: dts: qcom: msm8996: Add missing interrupt to the USB2 controller
arm64: dts: qcom: sdm845-tama: Set serial indices and stdout-path
arm64: dts: qcom: sm8350: Fix CPU idle state residency times
arm64: dts: qcom: sm8350: Add missing LMH interrupts to cpufreq
arm64: dts: qcom: sm8350: Use proper CPU compatibles
arm64: dts: qcom: pm8350: fix thermal zone name
arm64: dts: qcom: pm8350b: fix thermal zone name
arm64: dts: qcom: pmr735b: fix thermal zone name
arm64: dts: qcom: pmk8350: fix ADC-TM compatible string
arm64: dts: qcom: sm8250: Mark PCIe hosts as DMA coherent
ARM: dts: stm32: Rename mdio0 to mdio
ARM: dts: stm32: YAML validation fails for Argon Boards
ARM: dts: stm32: adopt generic iio bindings for adc channels on emstamp-argon
ARM: dts: stm32: Add missing detach mailbox for emtrion emSBC-Argon
ARM: dts: stm32: YAML validation fails for Odyssey Boards
ARM: dts: stm32: Add missing detach mailbox for Odyssey SoM
ARM: dts: stm32: Update to generic ADC channel binding on DHSOM systems
ARM: dts: stm32: Add missing detach mailbox for DHCOM SoM
firmware: ti_sci: Use system_state to determine polling
drm/amdgpu: avoid integer overflow warning in amdgpu_device_resize_fb_bar()
ARM: dts: BCM53573: Drop nonexistent #usb-cells
ARM: dts: BCM53573: Add cells sizes to PCIe node
ARM: dts: BCM53573: Use updated "spi-gpio" binding properties
arm64: tegra: Fix HSUART for Jetson AGX Orin
arm64: dts: qcom: sm8250-sony-xperia: correct GPIO keys wakeup again
arm64: dts: qcom: pm6150l: Add missing short interrupt
arm64: dts: qcom: pm660l: Add missing short interrupt
arm64: dts: qcom: pmi8994: Add missing OVP interrupt
arm64: tegra: Fix HSUART for Smaug
drm/etnaviv: fix dumping of active MMU context
block: cleanup queue_wc_store
block: don't allow enabling a cache on devices that don't support it
x86/mm: Fix PAT bit missing from page protection modify mask
drm/bridge: anx7625: Use common macros for DP power sequencing commands
drm/bridge: anx7625: Use common macros for HDCP capabilities
ARM: dts: samsung: s3c6410-mini6410: correct ethernet reg addresses (split)
ARM: dts: s5pv210: add dummy 5V regulator for backlight on SMDKv210
ARM: dts: samsung: s5pv210-smdkv210: correct ethernet reg addresses (split)
drm: adv7511: Fix low refresh rate register for ADV7533/5
ARM: dts: BCM53573: Fix Ethernet info for Luxul devices
arm64: dts: qcom: sdm845: Add missing RPMh power domain to GCC
arm64: dts: qcom: sdm845: Fix the min frequency of "ice_core_clk"
arm64: dts: qcom: msm8996-gemini: fix touchscreen VIO supply
drm/amdgpu: Update min() to min_t() in 'amdgpu_info_ioctl'
md: Factor out is_md_suspended helper
md: Change active_io to percpu
md: restore 'noio_flag' for the last mddev_resume()
md/raid10: factor out dereference_rdev_and_rrdev()
md/raid10: use dereference_rdev_and_rrdev() to get devices
md/md-bitmap: remove unnecessary local variable in backlog_store()
md/md-bitmap: hold 'reconfig_mutex' in backlog_store()
drm/msm: Update dev core dump to not print backwards
drm/tegra: dpaux: Fix incorrect return value of platform_get_irq
of: unittest: fix null pointer dereferencing in of_unittest_find_node_by_name()
arm64: dts: qcom: sm8150: Fix the I2C7 interrupt
ARM: dts: BCM53573: Fix Tenda AC9 switch CPU port
drm/armada: Fix off-by-one error in armada_overlay_get_property()
drm/repaper: Reduce temporary buffer size in repaper_fb_dirty()
drm/panel: simple: Add missing connector type and pixel format for AUO T215HVN01
ima: Remove deprecated IMA_TRUSTED_KEYRING Kconfig
drm: xlnx: zynqmp_dpsub: Add missing check for dma_set_mask
soc: qcom: smem: Fix incompatible types in comparison
drm/msm/mdp5: Don't leak some plane state
firmware: meson_sm: fix to avoid potential NULL pointer dereference
drm/msm/dpu: fix the irq index in dpu_encoder_phys_wb_wait_for_commit_done
smackfs: Prevent underflow in smk_set_cipso()
drm/amd/pm: fix variable dereferenced issue in amdgpu_device_attr_create()
drm/msm/a2xx: Call adreno_gpu_init() earlier
audit: fix possible soft lockup in __audit_inode_child()
block/mq-deadline: use correct way to throttling write requests
io_uring: fix drain stalls by invalid SQE
drm/mediatek: dp: Add missing error checks in mtk_dp_parse_capabilities
bus: ti-sysc: Fix build warning for 64-bit build
drm/mediatek: Remove freeing not dynamic allocated memory
ARM: dts: qcom: ipq4019: correct SDHCI XO clock
drm/mediatek: Fix potential memory leak if vmap() fail
arm64: dts: qcom: apq8016-sbc: Fix ov5640 regulator supply names
arm64: dts: qcom: msm8998: Drop bus clock reference from MMSS SMMU
arm64: dts: qcom: msm8998: Add missing power domain to MMSS SMMU
arm64: dts: qcom: msm8996: Fix dsi1 interrupts
arm64: dts: qcom: sc8280xp-x13s: Unreserve NC pins
bus: ti-sysc: Fix cast to enum warning
md/raid5-cache: fix a deadlock in r5l_exit_log()
md/raid5-cache: fix null-ptr-deref for r5l_flush_stripe_to_raid()
firmware: cs_dsp: Fix new control name check
md: add error_handlers for raid0 and linear
md/raid0: Factor out helper for mapping and submitting a bio
md/raid0: Fix performance regression for large sequential writes
md: raid0: account for split bio in iostat accounting
ASoC: SOF: amd: clear dsp to host interrupt status
of: overlay: Call of_changeset_init() early
of: unittest: Fix overlay type in apply/revert check
ALSA: ac97: Fix possible error value of *rac97
ipmi:ssif: Add check for kstrdup
ipmi:ssif: Fix a memory leak when scanning for an adapter
clk: qcom: gpucc-sm6350: Introduce index-based clk lookup
clk: qcom: gpucc-sm6350: Fix clock source names
clk: qcom: gcc-sc8280xp: Add EMAC GDSCs
clk: qcom: gcc-sc8280xp: Add missing GDSC flags
dt-bindings: clock: qcom,gcc-sc8280xp: Add missing GDSCs
clk: qcom: gcc-sc8280xp: Add missing GDSCs
clk: rockchip: rk3568: Fix PLL rate setting for 78.75MHz
PCI: apple: Initialize pcie->nvecs before use
PCI: qcom-ep: Switch MHI bus master clock off during L1SS
drivers: clk: keystone: Fix parameter judgment in _of_pll_clk_init()
PCI/DOE: Fix destroy_work_on_stack() race
clk: sunxi-ng: Modify mismatched function name
clk: qcom: gcc-sc7180: Fix up gcc_sdcc2_apps_clk_src
EDAC/igen6: Fix the issue of no error events
ext4: correct grp validation in ext4_mb_good_group
ext4: avoid potential data overflow in next_linear_group
clk: qcom: gcc-sm8250: Fix gcc_sdcc2_apps_clk_src
kvm/vfio: Prepare for accepting vfio device fd
kvm/vfio: ensure kvg instance stays around in kvm_vfio_group_add()
clk: qcom: reset: Use the correct type of sleep/delay based on length
clk: qcom: gcc-sm6350: Fix gcc_sdcc2_apps_clk_src
PCI: microchip: Correct the DED and SEC interrupt bit offsets
PCI: Mark NVIDIA T4 GPUs to avoid bus reset
pinctrl: mcp23s08: check return value of devm_kasprintf()
PCI: Allow drivers to request exclusive config regions
PCI: Add locking to RMW PCI Express Capability Register accessors
PCI: pciehp: Use RMW accessors for changing LNKCTL
PCI/ASPM: Use RMW accessors for changing LNKCTL
clk: qcom: gcc-sm8450: Use floor ops for SDCC RCGs
clk: imx: pllv4: Fix SPLL2 MULT range
clk: imx: imx8ulp: update SPLL2 type
clk: imx8mp: fix sai4 clock
clk: imx: composite-8m: fix clock pauses when set_rate would be a no-op
powerpc/radix: Move some functions into #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
vfio/type1: fix cap_migration information leak
nvdimm: Fix memleak of pmu attr_groups in unregister_nvdimm_pmu()
nvdimm: Fix dereference after free in register_nvdimm_pmu()
powerpc/fadump: reset dump area size if fadump memory reserve fails
powerpc/perf: Convert fsl_emb notifier to state machine callbacks
drm/amdgpu: Use RMW accessors for changing LNKCTL
drm/radeon: Use RMW accessors for changing LNKCTL
net/mlx5: Use RMW accessors for changing LNKCTL
wifi: ath11k: Use RMW accessors for changing LNKCTL
wifi: ath10k: Use RMW accessors for changing LNKCTL
NFSv4.2: Rework scratch handling for READ_PLUS
NFSv4.2: Fix READ_PLUS smatch warnings
NFSv4.2: Fix up READ_PLUS alignment
NFSv4.2: Fix READ_PLUS size calculations
powerpc: Don't include lppaca.h in paca.h
powerpc/pseries: Rework lppaca_shared_proc() to avoid DEBUG_PREEMPT
nfs/blocklayout: Use the passed in gfp flags
powerpc/pseries: Fix hcall tracepoints with JUMP_LABEL=n
powerpc/mpc5xxx: Add missing fwnode_handle_put()
powerpc/iommu: Fix notifiers being shared by PCI and VIO buses
ext4: fix unttached inode after power cut with orphan file feature enabled
jfs: validate max amount of blocks before allocation.
fs: lockd: avoid possible wrong NULL parameter
NFSD: da_addr_body field missing in some GETDEVICEINFO replies
NFS: Guard against READDIR loop when entry names exceed MAXNAMELEN
NFSv4.2: fix handling of COPY ERR_OFFLOAD_NO_REQ
pNFS: Fix assignment of xprtdata.cred
cgroup/cpuset: Inherit parent's load balance state in v2
RDMA/qedr: Remove a duplicate assignment in irdma_query_ah()
media: ov5640: fix low resolution image abnormal issue
media: ad5820: Drop unsupported ad5823 from i2c_ and of_device_id tables
media: i2c: tvp5150: check return value of devm_kasprintf()
media: v4l2-core: Fix a potential resource leak in v4l2_fwnode_parse_link()
iommu/amd/iommu_v2: Fix pasid_state refcount dec hit 0 warning on pasid unbind
iommu: rockchip: Fix directory table address encoding
drivers: usb: smsusb: fix error handling code in smsusb_init_device
media: dib7000p: Fix potential division by zero
media: dvb-usb: m920x: Fix a potential memory leak in m920x_i2c_xfer()
media: cx24120: Add retval check for cx24120_message_send()
RDMA/siw: Fabricate a GID on tun and loopback devices
scsi: hisi_sas: Fix warnings detected by sparse
scsi: hisi_sas: Fix normally completed I/O analysed as failed
dt-bindings: extcon: maxim,max77843: restrict connector properties
media: amphion: reinit vpu if reqbufs output 0
media: amphion: add helper function to get id name
media: mtk-jpeg: Fix use after free bug due to uncanceled work
media: rkvdec: increase max supported height for H.264
media: amphion: fix CHECKED_RETURN issues reported by coverity
media: amphion: fix REVERSE_INULL issues reported by coverity
media: amphion: fix UNINIT issues reported by coverity
media: amphion: fix UNUSED_VALUE issue reported by coverity
media: amphion: ensure the bitops don't cross boundaries
media: mediatek: vcodec: Return NULL if no vdec_fb is found
media: mediatek: vcodec: fix potential double free
media: mediatek: vcodec: fix resource leaks in vdec_msg_queue_init()
usb: phy: mxs: fix getting wrong state with mxs_phy_is_otg_host()
scsi: RDMA/srp: Fix residual handling
scsi: iscsi: Rename iscsi_set_param() to iscsi_if_set_param()
scsi: iscsi: Add length check for nlattr payload
scsi: iscsi: Add strlen() check in iscsi_if_set{_host}_param()
scsi: be2iscsi: Add length check when parsing nlattrs
scsi: qla4xxx: Add length check when parsing nlattrs
iio: accel: adxl313: Fix adxl313_i2c_id[] table
serial: sprd: Assign sprd_port after initialized to avoid wrong access
serial: sprd: Fix DMA buffer leak issue
x86/APM: drop the duplicate APM_MINOR_DEV macro
RDMA/rxe: Split rxe_run_task() into two subroutines
RDMA/rxe: Fix incomplete state save in rxe_requester
scsi: qedf: Do not touch __user pointer in qedf_dbg_stop_io_on_error_cmd_read() directly
scsi: qedf: Do not touch __user pointer in qedf_dbg_debug_cmd_read() directly
scsi: qedf: Do not touch __user pointer in qedf_dbg_fp_int_cmd_read() directly
RDMA/irdma: Replace one-element array with flexible-array member
coresight: tmc: Explicit type conversions to prevent integer overflow
interconnect: qcom: qcm2290: Enable sync state
dma-buf/sync_file: Fix docs syntax
driver core: test_async: fix an error code
driver core: Call dma_cleanup() on the test_remove path
kernfs: add stub helper for kernfs_generic_poll()
extcon: cht_wc: add POWER_SUPPLY dependency
iommu/mediatek: Remove unused "mapping" member from mtk_iommu_data
iommu/mediatek: Fix two IOMMU share pagetable issue
iommu/sprd: Add missing force_aperture
RDMA/hns: Fix port active speed
RDMA/hns: Fix incorrect post-send with direct wqe of wr-list
RDMA/hns: Fix inaccurate error label name in init instance
RDMA/hns: Fix CQ and QP cache affinity
IB/uverbs: Fix an potential error pointer dereference
fsi: aspeed: Reset master errors after CFAM reset
iommu/qcom: Disable and reset context bank before programming
iommu/vt-d: Fix to flush cache of PASID directory table
platform/x86: dell-sysman: Fix reference leak
media: cec: core: add adap_nb_transmit_canceled() callback
media: cec: core: add adap_unconfigured() callback
media: go7007: Remove redundant if statement
media: venus: hfi_venus: Only consider sys_idle_indicator on V1
docs: ABI: fix spelling/grammar in SBEFIFO timeout interface
USB: gadget: core: Add missing kerneldoc for vbus_work
USB: gadget: f_mass_storage: Fix unused variable warning
drivers: base: Free devm resources when unregistering a device
HID: input: Support devices sending Eraser without Invert
media: ov5640: Enable MIPI interface in ov5640_set_power_mipi()
media: ov5640: Fix initial RESETB state and annotate timings
media: i2c: ov2680: Set V4L2_CTRL_FLAG_MODIFY_LAYOUT on flips
media: ov2680: Remove auto-gain and auto-exposure controls
media: ov2680: Fix ov2680_bayer_order()
media: ov2680: Fix vflip / hflip set functions
media: ov2680: Remove VIDEO_V4L2_SUBDEV_API ifdef-s
media: ov2680: Don't take the lock for try_fmt calls
media: ov2680: Add ov2680_fill_format() helper function
media: ov2680: Fix ov2680_set_fmt() which == V4L2_SUBDEV_FORMAT_TRY not working
media: ov2680: Fix regulators being left enabled on ov2680_power_on() errors
media: i2c: rdacm21: Fix uninitialized value
f2fs: fix to avoid mmap vs set_compress_option case
f2fs: judge whether discard_unit is section only when have CONFIG_BLK_DEV_ZONED
f2fs: Only lfs mode is allowed with zoned block device feature
Revert "f2fs: fix to do sanity check on extent cache correctly"
cgroup:namespace: Remove unused cgroup_namespaces_init()
coresight: trbe: Fix TRBE potential sleep in atomic context
RDMA/irdma: Prevent zero-length STAG registration
scsi: core: Use 32-bit hostnum in scsi_host_lookup()
scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock
interconnect: qcom: sm8450: Enable sync_state
interconnect: qcom: bcm-voter: Improve enable_mask handling
interconnect: qcom: bcm-voter: Use enable_maks for keepalive voting
serial: tegra: handle clk prepare error in tegra_uart_hw_init()
amba: bus: fix refcount leak
Revert "IB/isert: Fix incorrect release of isert connection"
RDMA/siw: Balance the reference of cep->kref in the error path
RDMA/siw: Correct wrong debug message
RDMA/efa: Fix wrong resources deallocation order
HID: logitech-dj: Fix error handling in logi_dj_recv_switch_to_dj_mode()
HID: uclogic: Correct devm device reference for hidinput input_dev name
HID: multitouch: Correct devm device reference for hidinput input_dev name
platform/x86/amd/pmf: Fix a missing cleanup path
tick/rcu: Fix false positive "softirq work is pending" messages
x86/speculation: Mark all Skylake CPUs as vulnerable to GDS
tracing: Remove extra space at the end of hwlat_detector/mode
tracing: Fix race issue between cpu buffer write and swap
mtd: rawnand: brcmnand: Fix mtd oobsize
dmaengine: idxd: Modify the dependence of attribute pasid_enabled
phy/rockchip: inno-hdmi: use correct vco_div_5 macro on rk3328
phy/rockchip: inno-hdmi: round fractal pixclock in rk3328 recalc_rate
phy/rockchip: inno-hdmi: do not power on rk3328 post pll on reg write
rpmsg: glink: Add check for kstrdup
leds: pwm: Fix error code in led_pwm_create_fwnode()
leds: multicolor: Use rounded division when calculating color components
leds: Fix BUG_ON check for LED_COLOR_ID_MULTI that is always false
leds: trigger: tty: Do not use LED_ON/OFF constants, use led_blink_set_oneshot instead
mtd: spi-nor: Check bus width while setting QE bit
mtd: rawnand: fsmc: handle clk prepare error in fsmc_nand_resume()
um: Fix hostaudio build errors
dmaengine: ste_dma40: Add missing IRQ check in d40_probe
Drivers: hv: vmbus: Don't dereference ACPI root object handle
cpufreq: Fix the race condition while updating the transition_task of policy
virtio_ring: fix avail_wrap_counter in virtqueue_add_packed
igmp: limit igmpv3_newpack() packet size to IP_MAX_MTU
netfilter: ipset: add the missing IP_SET_HASH_WITH_NET0 macro for ip_set_hash_netportnet.c
netfilter: nft_exthdr: Fix non-linear header modification
netfilter: xt_u32: validate user space input
netfilter: xt_sctp: validate the flag_info count
skbuff: skb_segment, Call zero copy functions before using skbuff frags
igb: set max size RX buffer when store bad packet is enabled
PM / devfreq: Fix leak in devfreq_dev_release()
ALSA: pcm: Fix missing fixup call in compat hw_refine ioctl
rcu: dump vmalloc memory info safely
printk: ringbuffer: Fix truncating buffer size min_t cast
scsi: core: Fix the scsi_set_resid() documentation
mm/vmalloc: add a safer version of find_vm_area() for debug
cpu/hotplug: Prevent self deadlock on CPU hot-unplug
media: i2c: ccs: Check rules is non-NULL
media: i2c: Add a camera sensor top level menu
PCI: rockchip: Use 64-bit mask on MSI 64-bit PCI address
ipmi_si: fix a memleak in try_smi_init()
ARM: OMAP2+: Fix -Warray-bounds warning in _pwrdm_state_switch()
XArray: Do not return sibling entries from xa_load()
io_uring: break iopolling on signal
backlight/gpio_backlight: Compare against struct fb_info.device
backlight/bd6107: Compare against struct fb_info.device
backlight/lv5207lp: Compare against struct fb_info.device
drm/amd/display: register edp_backlight_control() for DCN301
xtensa: PMU: fix base address for the newer hardware
LoongArch: mm: Add p?d_leaf() definitions
i3c: master: svc: fix probe failure when no i3c device exist
arm64: csum: Fix OoB access in IP checksum code for negative lengths
ALSA: hda/cirrus: Fix broken audio on hardware with two CS42L42 codecs.
media: dvb: symbol fixup for dvb_attach()
media: venus: hfi_venus: Write to VIDC_CTRL_INIT after unmasking interrupts
Revert "scsi: qla2xxx: Fix buffer overrun"
scsi: mpt3sas: Perform additional retries if doorbell read returns 0
PCI: Free released resource after coalescing
PCI: hv: Fix a crash in hv_pci_restore_msi_msg() during hibernation
PCI/PM: Only read PCI_PM_CTRL register when available
ntb: Drop packets when qp link is down
ntb: Clean up tx tail index on link down
ntb: Fix calculation ntb_transport_tx_free_entry()
Revert "PCI: Mark NVIDIA T4 GPUs to avoid bus reset"
block: don't add or resize partition on the disk with GENHD_FL_NO_PART
procfs: block chmod on /proc/thread-self/comm
parisc: Fix /proc/cpuinfo output for lscpu
drm/amd/display: Add smu write msg id fail retry process
bpf: Fix issue in verifying allow_ptr_leaks
dlm: fix plock lookup when using multiple lockspaces
dccp: Fix out of bounds access in DCCP error handler
x86/sev: Make enc_dec_hypercall() accept a size instead of npages
r8169: fix ASPM-related issues on a number of systems with NIC version from RTL8168h
X.509: if signature is unsupported skip validation
net: handle ARPHRD_PPP in dev_is_mac_header_xmit()
fsverity: skip PKCS#7 parser when keyring is empty
x86/MCE: Always save CS register on AMD Zen IF Poison errors
platform/chrome: chromeos_acpi: print hex string for ACPI_TYPE_BUFFER
mmc: renesas_sdhi: register irqs before registering controller
pstore/ram: Check start of empty przs during init
arm64: sdei: abort running SDEI handlers during crash
s390/dcssblk: fix kernel crash with list_add corruption
s390/ipl: add missing secure/has_secure file to ipl type 'unknown'
s390/dasd: fix string length handling
crypto: stm32 - fix loop iterating through scatterlist for DMA
cpufreq: brcmstb-avs-cpufreq: Fix -Warray-bounds bug
of: property: fw_devlink: Add a devlink for panel followers
usb: typec: tcpm: set initial svdm version based on pd revision
usb: typec: bus: verify partner exists in typec_altmode_attention
USB: core: Unite old scheme and new scheme descriptor reads
USB: core: Change usb_get_device_descriptor() API
USB: core: Fix race by not overwriting udev->descriptor in hub_port_init()
USB: core: Fix oversight in SuperSpeed initialization
x86/sgx: Break up long non-preemptible delays in sgx_vepc_release()
perf/x86/uncore: Correct the number of CHAs on EMR
serial: sc16is7xx: remove obsolete out_thread label
serial: sc16is7xx: fix regression with GPIO configuration
tracing: Zero the pipe cpumask on alloc to avoid spurious -EBUSY
Revert "drm/amd/display: Do not set drr on pipe commit"
md: Free resources in __md_stop
NFSv4.2: Fix a potential double free with READ_PLUS
NFSv4.2: Rework scratch handling for READ_PLUS (again)
md: fix regression for null-ptr-deference in __md_stop()
clk: Mark a fwnode as initialized when using CLK_OF_DECLARE() macro
treewide: Fix probing of devices in DT overlays
clk: Avoid invalid function names in CLK_OF_DECLARE()
udf: initialize newblock to 0
Linux 6.1.53
Change-Id: I6f5858bce0f20963ae42515eac36ac14cb686f24
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
commit
dbb69752f7
703 changed files with 5858 additions and 3166 deletions
|
|
@ -5,6 +5,6 @@ Description:
|
|||
Indicates whether or not this SBE device has experienced a
|
||||
timeout; i.e. the SBE did not respond within the time allotted
|
||||
by the driver. A value of 1 indicates that a timeout has
|
||||
ocurred and no transfers have completed since the timeout. A
|
||||
value of 0 indicates that no timeout has ocurred, or if one
|
||||
has, more recent transfers have completed successful.
|
||||
occurred and no transfers have completed since the timeout. A
|
||||
value of 0 indicates that no timeout has occurred, or if one
|
||||
has, more recent transfers have completed successfully.
|
||||
|
|
|
|||
|
|
@ -134,4 +134,4 @@ KernelVersion: 5.19
|
|||
Description:
|
||||
Returns the verified boot data block shared between the
|
||||
firmware verification step and the kernel verification step
|
||||
(binary).
|
||||
(hex dump).
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ properties:
|
|||
|
||||
connector:
|
||||
$ref: /schemas/connector/usb-connector.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
ports:
|
||||
$ref: /schemas/graph.yaml#/properties/ports
|
||||
|
|
|
|||
|
|
@ -1190,11 +1190,11 @@ Members of interest:
|
|||
- pointer to scsi_device object that this command is
|
||||
associated with.
|
||||
resid
|
||||
- an LLD should set this signed integer to the requested
|
||||
- an LLD should set this unsigned integer to the requested
|
||||
transfer length (i.e. 'request_bufflen') less the number
|
||||
of bytes that are actually transferred. 'resid' is
|
||||
preset to 0 so an LLD can ignore it if it cannot detect
|
||||
underruns (overruns should be rare). If possible an LLD
|
||||
underruns (overruns should not be reported). An LLD
|
||||
should set 'resid' prior to invoking 'done'. The most
|
||||
interesting case is data transfers from a SCSI target
|
||||
device (e.g. READs) that underrun.
|
||||
|
|
|
|||
|
|
@ -2923,6 +2923,13 @@ This structure contains all loop filter related parameters. See sections
|
|||
- ``poc_lt_curr[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
|
||||
- PocLtCurr as described in section 8.3.2 "Decoding process for reference
|
||||
picture set": provides the index of the long term references in DPB array.
|
||||
* - __u8
|
||||
- ``num_delta_pocs_of_ref_rps_idx``
|
||||
- When the short_term_ref_pic_set_sps_flag in the slice header is equal to 0,
|
||||
it is the same as the derived value NumDeltaPocs[RefRpsIdx]. It can be used to parse
|
||||
the RPS data in slice headers instead of skipping it with @short_term_ref_pic_set_size.
|
||||
When the value of short_term_ref_pic_set_sps_flag in the slice header is
|
||||
equal to 1, num_delta_pocs_of_ref_rps_idx shall be set to 0.
|
||||
* - struct :c:type:`v4l2_hevc_dpb_entry`
|
||||
- ``dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
|
||||
- The decoded picture buffer, for meta-data about reference frames.
|
||||
|
|
|
|||
6
Makefile
6
Makefile
|
|
@ -1,7 +1,7 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
VERSION = 6
|
||||
PATCHLEVEL = 1
|
||||
SUBLEVEL = 52
|
||||
SUBLEVEL = 53
|
||||
EXTRAVERSION =
|
||||
NAME = Curry Ramen
|
||||
|
||||
|
|
@ -1356,7 +1356,7 @@ prepare0: archprepare
|
|||
# All the preparing..
|
||||
prepare: prepare0
|
||||
ifdef CONFIG_RUST
|
||||
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/rust_is_available.sh -v
|
||||
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/rust_is_available.sh
|
||||
$(Q)$(MAKE) $(build)=rust
|
||||
endif
|
||||
|
||||
|
|
@ -1858,7 +1858,7 @@ $(DOC_TARGETS):
|
|||
# "Is Rust available?" target
|
||||
PHONY += rustavailable
|
||||
rustavailable:
|
||||
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/rust_is_available.sh -v && echo "Rust is available!"
|
||||
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/rust_is_available.sh && echo "Rust is available!"
|
||||
|
||||
# Documentation target
|
||||
#
|
||||
|
|
|
|||
|
|
@ -331,6 +331,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
|
|||
kirkwood-iconnect.dtb \
|
||||
kirkwood-iomega_ix2_200.dtb \
|
||||
kirkwood-is2.dtb \
|
||||
kirkwood-km_fixedeth.dtb \
|
||||
kirkwood-km_kirkwood.dtb \
|
||||
kirkwood-l-50.dtb \
|
||||
kirkwood-laplug.dtb \
|
||||
|
|
@ -861,7 +862,10 @@ dtb-$(CONFIG_ARCH_OMAP3) += \
|
|||
am3517-craneboard.dtb \
|
||||
am3517-evm.dtb \
|
||||
am3517_mt_ventoux.dtb \
|
||||
logicpd-torpedo-35xx-devkit.dtb \
|
||||
logicpd-torpedo-37xx-devkit.dtb \
|
||||
logicpd-torpedo-37xx-devkit-28.dtb \
|
||||
logicpd-som-lv-35xx-devkit.dtb \
|
||||
logicpd-som-lv-37xx-devkit.dtb \
|
||||
omap3430-sdp.dtb \
|
||||
omap3-beagle.dtb \
|
||||
|
|
@ -1527,6 +1531,8 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \
|
|||
armada-388-helios4.dtb \
|
||||
armada-388-rd.dtb
|
||||
dtb-$(CONFIG_MACH_ARMADA_39X) += \
|
||||
armada-390-db.dtb \
|
||||
armada-395-gp.dtb \
|
||||
armada-398-db.dtb
|
||||
dtb-$(CONFIG_MACH_ARMADA_XP) += \
|
||||
armada-xp-axpwifiap.dtb \
|
||||
|
|
@ -1556,6 +1562,7 @@ dtb-$(CONFIG_MACH_DOVE) += \
|
|||
dtb-$(CONFIG_ARCH_MEDIATEK) += \
|
||||
mt2701-evb.dtb \
|
||||
mt6580-evbp1.dtb \
|
||||
mt6582-prestigio-pmt5008-3g.dtb \
|
||||
mt6589-aquaris5.dtb \
|
||||
mt6589-fairphone-fp1.dtb \
|
||||
mt6592-evb.dtb \
|
||||
|
|
@ -1608,6 +1615,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
|
|||
aspeed-bmc-intel-s2600wf.dtb \
|
||||
aspeed-bmc-inspur-fp5280g2.dtb \
|
||||
aspeed-bmc-inspur-nf5280m6.dtb \
|
||||
aspeed-bmc-inspur-on5263m5.dtb \
|
||||
aspeed-bmc-lenovo-hr630.dtb \
|
||||
aspeed-bmc-lenovo-hr855xg2.dtb \
|
||||
aspeed-bmc-microsoft-olympus.dtb \
|
||||
|
|
|
|||
|
|
@ -46,3 +46,16 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
&gmac0 {
|
||||
phy-mode = "rgmii";
|
||||
phy-handle = <&bcm54210e>;
|
||||
|
||||
mdio {
|
||||
/delete-node/ switch@1e;
|
||||
|
||||
bcm54210e: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -83,3 +83,16 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
&gmac0 {
|
||||
phy-mode = "rgmii";
|
||||
phy-handle = <&bcm54210e>;
|
||||
|
||||
mdio {
|
||||
/delete-node/ switch@1e;
|
||||
|
||||
bcm54210e: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -135,8 +135,8 @@
|
|||
label = "lan4";
|
||||
};
|
||||
|
||||
port@5 {
|
||||
reg = <5>;
|
||||
port@8 {
|
||||
reg = <8>;
|
||||
label = "cpu";
|
||||
ethernet = <&gmac0>;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -127,6 +127,9 @@
|
|||
|
||||
pcie0: pcie@2000 {
|
||||
reg = <0x00002000 0x1000>;
|
||||
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
};
|
||||
|
||||
usb2: usb2@4000 {
|
||||
|
|
@ -156,8 +159,6 @@
|
|||
};
|
||||
|
||||
ohci: usb@d000 {
|
||||
#usb-cells = <0>;
|
||||
|
||||
compatible = "generic-ohci";
|
||||
reg = <0xd000 0x1000>;
|
||||
interrupt-parent = <&gic>;
|
||||
|
|
|
|||
|
|
@ -60,9 +60,9 @@
|
|||
spi {
|
||||
compatible = "spi-gpio";
|
||||
num-chipselects = <1>;
|
||||
gpio-sck = <&chipcommon 21 0>;
|
||||
gpio-miso = <&chipcommon 22 0>;
|
||||
gpio-mosi = <&chipcommon 23 0>;
|
||||
sck-gpios = <&chipcommon 21 0>;
|
||||
miso-gpios = <&chipcommon 22 0>;
|
||||
mosi-gpios = <&chipcommon 23 0>;
|
||||
cs-gpios = <&chipcommon 24 0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
|
|
|||
|
|
@ -1184,6 +1184,8 @@
|
|||
<&clks IMX7D_USDHC1_ROOT_CLK>;
|
||||
clock-names = "ipg", "ahb", "per";
|
||||
bus-width = <4>;
|
||||
fsl,tuning-step = <2>;
|
||||
fsl,tuning-start-tap = <20>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
|
@ -1196,6 +1198,8 @@
|
|||
<&clks IMX7D_USDHC2_ROOT_CLK>;
|
||||
clock-names = "ipg", "ahb", "per";
|
||||
bus-width = <4>;
|
||||
fsl,tuning-step = <2>;
|
||||
fsl,tuning-start-tap = <20>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
|
@ -1208,6 +1212,8 @@
|
|||
<&clks IMX7D_USDHC3_ROOT_CLK>;
|
||||
clock-names = "ipg", "ahb", "per";
|
||||
bus-width = <4>;
|
||||
fsl,tuning-step = <2>;
|
||||
fsl,tuning-start-tap = <20>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -228,9 +228,12 @@
|
|||
interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "hc_irq", "pwr_irq";
|
||||
bus-width = <8>;
|
||||
clocks = <&gcc GCC_SDCC1_AHB_CLK>, <&gcc GCC_SDCC1_APPS_CLK>,
|
||||
<&gcc GCC_DCD_XO_CLK>;
|
||||
clock-names = "iface", "core", "xo";
|
||||
clocks = <&gcc GCC_SDCC1_AHB_CLK>,
|
||||
<&gcc GCC_SDCC1_APPS_CLK>,
|
||||
<&xo>;
|
||||
clock-names = "iface",
|
||||
"core",
|
||||
"xo";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@
|
|||
|
||||
ethernet@18000000 {
|
||||
compatible = "davicom,dm9000";
|
||||
reg = <0x18000000 0x2 0x18000004 0x2>;
|
||||
reg = <0x18000000 0x2>, <0x18000004 0x2>;
|
||||
interrupt-parent = <&gpn>;
|
||||
interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
|
||||
davicom,no-eeprom;
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@
|
|||
|
||||
ethernet@a8000000 {
|
||||
compatible = "davicom,dm9000";
|
||||
reg = <0xA8000000 0x2 0xA8000002 0x2>;
|
||||
reg = <0xa8000000 0x2>, <0xa8000002 0x2>;
|
||||
interrupt-parent = <&gph1>;
|
||||
interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
|
||||
local-mac-address = [00 00 de ad be ef];
|
||||
|
|
@ -55,6 +55,14 @@
|
|||
default-brightness-level = <6>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pwm3_out>;
|
||||
power-supply = <&dc5v_reg>;
|
||||
};
|
||||
|
||||
dc5v_reg: regulator-0 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "DC5V";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -68,11 +68,6 @@
|
|||
reg = <0x38000000 0x10000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
gpu_reserved: gpu@dc000000 {
|
||||
reg = <0xdc000000 0x4000000>;
|
||||
no-map;
|
||||
};
|
||||
};
|
||||
|
||||
led: gpio_leds {
|
||||
|
|
@ -102,9 +97,11 @@
|
|||
adc1: adc@0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&adc1_in6_pins_a>;
|
||||
st,min-sample-time-nsecs = <5000>;
|
||||
st,adc-channels = <6>;
|
||||
status = "disabled";
|
||||
channel@6 {
|
||||
reg = <6>;
|
||||
st,min-sample-time-ns = <5000>;
|
||||
};
|
||||
};
|
||||
|
||||
adc2: adc@100 {
|
||||
|
|
@ -173,7 +170,7 @@
|
|||
phy-handle = <&phy0>;
|
||||
st,eth-ref-clk-sel;
|
||||
|
||||
mdio0 {
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,dwmac-mdio";
|
||||
|
|
@ -183,10 +180,6 @@
|
|||
};
|
||||
};
|
||||
|
||||
&gpu {
|
||||
contiguous-area = <&gpu_reserved>;
|
||||
};
|
||||
|
||||
&hash1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
|
@ -375,8 +368,8 @@
|
|||
&m4_rproc {
|
||||
memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
|
||||
<&vdev0vring1>, <&vdev0buffer>;
|
||||
mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
|
||||
mbox-names = "vq0", "vq1", "shutdown";
|
||||
mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>;
|
||||
mbox-names = "vq0", "vq1", "shutdown", "detach";
|
||||
interrupt-parent = <&exti>;
|
||||
interrupts = <68 1>;
|
||||
interrupt-names = "wdg";
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@
|
|||
max-speed = <1000>;
|
||||
phy-handle = <&phy0>;
|
||||
|
||||
mdio0 {
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,dwmac-mdio";
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@
|
|||
phy-handle = <ðphy>;
|
||||
status = "okay";
|
||||
|
||||
mdio0 {
|
||||
mdio {
|
||||
compatible = "snps,dwmac-mdio";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
|
|
|||
|
|
@ -62,11 +62,6 @@
|
|||
reg = <0x38000000 0x10000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
gpu_reserved: gpu@d4000000 {
|
||||
reg = <0xd4000000 0x4000000>;
|
||||
no-map;
|
||||
};
|
||||
};
|
||||
|
||||
led {
|
||||
|
|
@ -80,11 +75,6 @@
|
|||
};
|
||||
};
|
||||
|
||||
&gpu {
|
||||
contiguous-area = <&gpu_reserved>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c2_pins_a>;
|
||||
|
|
@ -240,8 +230,8 @@
|
|||
&m4_rproc {
|
||||
memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
|
||||
<&vdev0vring1>, <&vdev0buffer>;
|
||||
mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
|
||||
mbox-names = "vq0", "vq1", "shutdown";
|
||||
mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>;
|
||||
mbox-names = "vq0", "vq1", "shutdown", "detach";
|
||||
interrupt-parent = <&exti>;
|
||||
interrupts = <68 1>;
|
||||
status = "okay";
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@
|
|||
assigned-clock-rates = <125000000>; /* Clock PLL4 to 750Mhz in ATF/U-Boot */
|
||||
st,eth-clk-sel;
|
||||
|
||||
mdio0 {
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,dwmac-mdio";
|
||||
|
|
|
|||
|
|
@ -80,17 +80,19 @@
|
|||
vdda-supply = <&vdda>;
|
||||
vref-supply = <&vdda>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
adc1: adc@0 {
|
||||
st,min-sample-time-nsecs = <5000>;
|
||||
st,adc-channels = <0>;
|
||||
status = "okay";
|
||||
&adc1 {
|
||||
channel@0 {
|
||||
reg = <0>;
|
||||
st,min-sample-time-ns = <5000>;
|
||||
};
|
||||
};
|
||||
|
||||
adc2: adc@100 {
|
||||
st,adc-channels = <1>;
|
||||
st,min-sample-time-nsecs = <5000>;
|
||||
status = "okay";
|
||||
&adc2 {
|
||||
channel@1 {
|
||||
reg = <1>;
|
||||
st,min-sample-time-ns = <5000>;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -125,7 +127,7 @@
|
|||
max-speed = <100>;
|
||||
phy-handle = <&phy0>;
|
||||
|
||||
mdio0 {
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,dwmac-mdio";
|
||||
|
|
@ -414,8 +416,8 @@
|
|||
&m4_rproc {
|
||||
memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
|
||||
<&vdev0vring1>, <&vdev0buffer>;
|
||||
mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
|
||||
mbox-names = "vq0", "vq1", "shutdown";
|
||||
mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>;
|
||||
mbox-names = "vq0", "vq1", "shutdown", "detach";
|
||||
interrupt-parent = <&exti>;
|
||||
interrupts = <68 1>;
|
||||
status = "okay";
|
||||
|
|
|
|||
|
|
@ -112,17 +112,39 @@
|
|||
vdda-supply = <&vdda>;
|
||||
vref-supply = <&vdda>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
adc1: adc@0 {
|
||||
st,adc-channels = <0 1 6>;
|
||||
st,min-sample-time-nsecs = <5000>;
|
||||
status = "okay";
|
||||
&adc1 {
|
||||
channel@0 {
|
||||
reg = <0>;
|
||||
st,min-sample-time-ns = <5000>;
|
||||
};
|
||||
|
||||
adc2: adc@100 {
|
||||
st,adc-channels = <0 1 2>;
|
||||
st,min-sample-time-nsecs = <5000>;
|
||||
status = "okay";
|
||||
channel@1 {
|
||||
reg = <1>;
|
||||
st,min-sample-time-ns = <5000>;
|
||||
};
|
||||
|
||||
channel@6 {
|
||||
reg = <6>;
|
||||
st,min-sample-time-ns = <5000>;
|
||||
};
|
||||
};
|
||||
|
||||
&adc2 {
|
||||
channel@0 {
|
||||
reg = <0>;
|
||||
st,min-sample-time-ns = <5000>;
|
||||
};
|
||||
|
||||
channel@1 {
|
||||
reg = <1>;
|
||||
st,min-sample-time-ns = <5000>;
|
||||
};
|
||||
|
||||
channel@2 {
|
||||
reg = <2>;
|
||||
st,min-sample-time-ns = <5000>;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -151,7 +173,7 @@
|
|||
max-speed = <1000>;
|
||||
phy-handle = <&phy0>;
|
||||
|
||||
mdio0 {
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,dwmac-mdio";
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@
|
|||
max-speed = <1000>;
|
||||
phy-handle = <&phy0>;
|
||||
|
||||
mdio0 {
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,dwmac-mdio";
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@
|
|||
max-speed = <1000>;
|
||||
phy-handle = <&phy0>;
|
||||
|
||||
mdio0 {
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,dwmac-mdio";
|
||||
|
|
|
|||
|
|
@ -25,6 +25,9 @@ static inline int syscall_get_nr(struct task_struct *task,
|
|||
if (IS_ENABLED(CONFIG_AEABI) && !IS_ENABLED(CONFIG_OABI_COMPAT))
|
||||
return task_thread_info(task)->abi_syscall;
|
||||
|
||||
if (task_thread_info(task)->abi_syscall == -1)
|
||||
return -1;
|
||||
|
||||
return task_thread_info(task)->abi_syscall & __NR_SYSCALL_MASK;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -103,6 +103,7 @@ slow_work_pending:
|
|||
cmp r0, #0
|
||||
beq no_work_pending
|
||||
movlt scno, #(__NR_restart_syscall - __NR_SYSCALL_BASE)
|
||||
str scno, [tsk, #TI_ABI_SYSCALL] @ make sure tracers see update
|
||||
ldmia sp, {r0 - r6} @ have to reload r0 - r6
|
||||
b local_restart @ ... and off we go
|
||||
ENDPROC(ret_fast_syscall)
|
||||
|
|
|
|||
|
|
@ -785,8 +785,9 @@ long arch_ptrace(struct task_struct *child, long request,
|
|||
break;
|
||||
|
||||
case PTRACE_SET_SYSCALL:
|
||||
task_thread_info(child)->abi_syscall = data &
|
||||
__NR_SYSCALL_MASK;
|
||||
if (data != -1)
|
||||
data &= __NR_SYSCALL_MASK;
|
||||
task_thread_info(child)->abi_syscall = data;
|
||||
ret = 0;
|
||||
break;
|
||||
|
||||
|
|
|
|||
|
|
@ -174,7 +174,7 @@ static int _pwrdm_state_switch(struct powerdomain *pwrdm, int flag)
|
|||
break;
|
||||
case PWRDM_STATE_PREV:
|
||||
prev = pwrdm_read_prev_pwrst(pwrdm);
|
||||
if (pwrdm->state != prev)
|
||||
if (prev >= 0 && pwrdm->state != prev)
|
||||
pwrdm->state_counter[prev]++;
|
||||
if (prev == PWRDM_POWER_RET)
|
||||
_update_logic_membank_counters(pwrdm);
|
||||
|
|
|
|||
|
|
@ -1312,6 +1312,7 @@
|
|||
|
||||
uartd: serial@70006300 {
|
||||
compatible = "nvidia,tegra30-hsuart";
|
||||
reset-names = "serial";
|
||||
status = "okay";
|
||||
|
||||
bluetooth {
|
||||
|
|
|
|||
|
|
@ -2004,6 +2004,7 @@
|
|||
|
||||
serial@3100000 {
|
||||
compatible = "nvidia,tegra194-hsuart";
|
||||
reset-names = "serial";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -289,9 +289,9 @@
|
|||
clock-names = "xclk";
|
||||
clock-frequency = <23880000>;
|
||||
|
||||
vdddo-supply = <&camera_vdddo_1v8>;
|
||||
vdda-supply = <&camera_vdda_2v8>;
|
||||
vddd-supply = <&camera_vddd_1v5>;
|
||||
DOVDD-supply = <&camera_vdddo_1v8>;
|
||||
AVDD-supply = <&camera_vdda_2v8>;
|
||||
DVDD-supply = <&camera_vddd_1v5>;
|
||||
|
||||
/* No camera mezzanine by default */
|
||||
status = "disabled";
|
||||
|
|
|
|||
|
|
@ -163,7 +163,7 @@
|
|||
pinctrl-0 = <&light_int_default>;
|
||||
|
||||
vdd-supply = <&pm8916_l17>;
|
||||
vio-supply = <&pm8916_l6>;
|
||||
vddio-supply = <&pm8916_l6>;
|
||||
};
|
||||
|
||||
gyroscope@68 {
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@
|
|||
#size-cells = <0>;
|
||||
interrupt-parent = <&tlmm>;
|
||||
interrupts = <125 IRQ_TYPE_LEVEL_LOW>;
|
||||
vdda-supply = <&vreg_l6a_1p8>;
|
||||
vio-supply = <&vreg_l6a_1p8>;
|
||||
vdd-supply = <&vdd_3v2_tp>;
|
||||
reset-gpios = <&tlmm 89 GPIO_ACTIVE_LOW>;
|
||||
|
||||
|
|
|
|||
|
|
@ -1063,7 +1063,7 @@
|
|||
reg-names = "dsi_ctrl";
|
||||
|
||||
interrupt-parent = <&mdss>;
|
||||
interrupts = <4>;
|
||||
interrupts = <5>;
|
||||
|
||||
clocks = <&mmcc MDSS_MDP_CLK>,
|
||||
<&mmcc MDSS_BYTE1_CLK>,
|
||||
|
|
@ -3292,6 +3292,9 @@
|
|||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
interrupts = <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "hs_phy_irq";
|
||||
|
||||
clocks = <&gcc GCC_PERIPH_NOC_USB20_AHB_CLK>,
|
||||
<&gcc GCC_USB20_MASTER_CLK>,
|
||||
<&gcc GCC_USB20_MOCK_UTMI_CLK>,
|
||||
|
|
|
|||
|
|
@ -2418,10 +2418,10 @@
|
|||
|
||||
clocks = <&mmcc MNOC_AHB_CLK>,
|
||||
<&mmcc BIMC_SMMU_AHB_CLK>,
|
||||
<&rpmcc RPM_SMD_MMAXI_CLK>,
|
||||
<&mmcc BIMC_SMMU_AXI_CLK>;
|
||||
clock-names = "iface-mm", "iface-smmu",
|
||||
"bus-mm", "bus-smmu";
|
||||
clock-names = "iface-mm",
|
||||
"iface-smmu",
|
||||
"bus-smmu";
|
||||
|
||||
#global-interrupts = <0>;
|
||||
interrupts =
|
||||
|
|
@ -2445,6 +2445,8 @@
|
|||
<GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
power-domains = <&mmcc BIMC_SMMU_GDSC>;
|
||||
};
|
||||
|
||||
remoteproc_adsp: remoteproc@17300000 {
|
||||
|
|
|
|||
|
|
@ -75,8 +75,9 @@
|
|||
pm6150l_wled: leds@d800 {
|
||||
compatible = "qcom,pm6150l-wled";
|
||||
reg = <0xd800>, <0xd900>;
|
||||
interrupts = <0x5 0xd8 0x1 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "ovp";
|
||||
interrupts = <0x5 0xd8 0x1 IRQ_TYPE_EDGE_RISING>,
|
||||
<0x5 0xd8 0x2 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "ovp", "short";
|
||||
label = "backlight";
|
||||
|
||||
status = "disabled";
|
||||
|
|
|
|||
|
|
@ -74,8 +74,9 @@
|
|||
pm660l_wled: leds@d800 {
|
||||
compatible = "qcom,pm660l-wled";
|
||||
reg = <0xd800>, <0xd900>;
|
||||
interrupts = <0x3 0xd8 0x1 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "ovp";
|
||||
interrupts = <0x3 0xd8 0x1 IRQ_TYPE_EDGE_RISING>,
|
||||
<0x3 0xd8 0x2 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "ovp", "short";
|
||||
label = "backlight";
|
||||
|
||||
status = "disabled";
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
/ {
|
||||
thermal-zones {
|
||||
pm8350_thermal: pm8350c-thermal {
|
||||
pm8350_thermal: pm8350-thermal {
|
||||
polling-delay-passive = <100>;
|
||||
polling-delay = <0>;
|
||||
thermal-sensors = <&pm8350_temp_alarm>;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
/ {
|
||||
thermal-zones {
|
||||
pm8350b_thermal: pm8350c-thermal {
|
||||
pm8350b_thermal: pm8350b-thermal {
|
||||
polling-delay-passive = <100>;
|
||||
polling-delay = <0>;
|
||||
thermal-sensors = <&pm8350b_temp_alarm>;
|
||||
|
|
|
|||
|
|
@ -54,8 +54,9 @@
|
|||
pmi8994_wled: wled@d800 {
|
||||
compatible = "qcom,pmi8994-wled";
|
||||
reg = <0xd800>, <0xd900>;
|
||||
interrupts = <3 0xd8 0x02 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "short";
|
||||
interrupts = <0x3 0xd8 0x1 IRQ_TYPE_EDGE_RISING>,
|
||||
<0x3 0xd8 0x2 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "ovp", "short";
|
||||
qcom,cabc;
|
||||
qcom,external-pfet;
|
||||
status = "disabled";
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
};
|
||||
|
||||
pmk8350_adc_tm: adc-tm@3400 {
|
||||
compatible = "qcom,adc-tm7";
|
||||
compatible = "qcom,spmi-adc-tm5-gen2";
|
||||
reg = <0x3400>;
|
||||
interrupts = <0x0 0x34 0x0 IRQ_TYPE_EDGE_RISING>;
|
||||
#address-cells = <1>;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
/ {
|
||||
thermal-zones {
|
||||
pmr735a_thermal: pmr735a-thermal {
|
||||
pmr735b_thermal: pmr735b-thermal {
|
||||
polling-delay-passive = <100>;
|
||||
polling-delay = <0>;
|
||||
thermal-sensors = <&pmr735b_temp_alarm>;
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@
|
|||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
|
||||
gpio = <&pmc8280_1_gpios 1 GPIO_ACTIVE_HIGH>;
|
||||
gpio = <&pmc8280_1_gpios 2 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
|
||||
pinctrl-names = "default";
|
||||
|
|
@ -364,7 +364,7 @@
|
|||
};
|
||||
|
||||
misc_3p3_reg_en: misc-3p3-reg-en-state {
|
||||
pins = "gpio1";
|
||||
pins = "gpio2";
|
||||
function = "normal";
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -347,7 +347,7 @@
|
|||
};
|
||||
|
||||
&tlmm {
|
||||
gpio-reserved-ranges = <70 2>, <74 6>, <83 4>, <125 2>, <128 2>, <154 7>;
|
||||
gpio-reserved-ranges = <70 2>, <74 6>, <125 2>, <128 2>, <154 4>;
|
||||
|
||||
kybd_default: kybd-default-state {
|
||||
disable {
|
||||
|
|
|
|||
|
|
@ -396,6 +396,7 @@
|
|||
firmware {
|
||||
scm: scm {
|
||||
compatible = "qcom,scm-sc8280xp", "qcom,scm";
|
||||
interconnects = <&aggre2_noc MASTER_CRYPTO 0 &mc_virt SLAVE_EBI1 0>;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,15 @@
|
|||
qcom,msm-id = <321 0x20001>; /* SDM845 v2.1 */
|
||||
qcom,board-id = <8 0>;
|
||||
|
||||
aliases {
|
||||
serial0 = &uart6;
|
||||
serial1 = &uart9;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
|
|
|
|||
|
|
@ -1099,6 +1099,7 @@
|
|||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
#power-domain-cells = <1>;
|
||||
power-domains = <&rpmhpd SDM845_CX>;
|
||||
};
|
||||
|
||||
qfprom@784000 {
|
||||
|
|
@ -2520,7 +2521,7 @@
|
|||
<0 0>,
|
||||
<0 0>,
|
||||
<0 0>,
|
||||
<0 300000000>;
|
||||
<75000000 300000000>;
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -306,11 +306,6 @@
|
|||
no-map;
|
||||
};
|
||||
|
||||
pil_gpu_mem: memory@8b715400 {
|
||||
reg = <0 0x8b715400 0 0x2000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
pil_modem_mem: memory@8b800000 {
|
||||
reg = <0 0x8b800000 0 0xf800000>;
|
||||
no-map;
|
||||
|
|
@ -331,6 +326,11 @@
|
|||
no-map;
|
||||
};
|
||||
|
||||
pil_gpu_mem: memory@f0d00000 {
|
||||
reg = <0 0xf0d00000 0 0x1000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
debug_region: memory@ffb00000 {
|
||||
reg = <0 0xffb00000 0 0xc0000>;
|
||||
no-map;
|
||||
|
|
|
|||
|
|
@ -1196,7 +1196,7 @@
|
|||
dma-names = "tx", "rx";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&qup_i2c7_default>;
|
||||
interrupts = <GIC_SPI 607 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupts = <GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
|
|
|
|||
|
|
@ -14,3 +14,236 @@
|
|||
};
|
||||
|
||||
/delete-node/ &vreg_l7f_1p8;
|
||||
|
||||
&pm8009_gpios {
|
||||
gpio-line-names = "NC", /* GPIO_1 */
|
||||
"CAM_PWR_LD_EN",
|
||||
"WIDEC_PWR_EN",
|
||||
"NC";
|
||||
};
|
||||
|
||||
&pm8150_gpios {
|
||||
gpio-line-names = "VOL_DOWN_N", /* GPIO_1 */
|
||||
"OPTION_2",
|
||||
"NC",
|
||||
"PM_SLP_CLK_IN",
|
||||
"OPTION_1",
|
||||
"NC",
|
||||
"NC",
|
||||
"SP_ARI_PWR_ALARM",
|
||||
"NC",
|
||||
"NC"; /* GPIO_10 */
|
||||
};
|
||||
|
||||
&pm8150b_gpios {
|
||||
gpio-line-names = "SNAPSHOT_N", /* GPIO_1 */
|
||||
"FOCUS_N",
|
||||
"NC",
|
||||
"NC",
|
||||
"RF_LCD_ID_EN",
|
||||
"NC",
|
||||
"NC",
|
||||
"LCD_ID",
|
||||
"NC",
|
||||
"WLC_EN_N", /* GPIO_10 */
|
||||
"NC",
|
||||
"RF_ID";
|
||||
};
|
||||
|
||||
&pm8150l_gpios {
|
||||
gpio-line-names = "NC", /* GPIO_1 */
|
||||
"PM3003A_EN",
|
||||
"NC",
|
||||
"NC",
|
||||
"NC",
|
||||
"AUX2_THERM",
|
||||
"BB_HP_EN",
|
||||
"FP_LDO_EN",
|
||||
"PMX_RESET_N",
|
||||
"AUX3_THERM", /* GPIO_10 */
|
||||
"DTV_PWR_EN",
|
||||
"PM3003A_MODE";
|
||||
};
|
||||
|
||||
&tlmm {
|
||||
gpio-line-names = "AP_CTI_IN", /* GPIO_0 */
|
||||
"MDM2AP_ERR_FATAL",
|
||||
"AP_CTI_OUT",
|
||||
"MDM2AP_STATUS",
|
||||
"NFC_I2C_SDA",
|
||||
"NFC_I2C_SCL",
|
||||
"NFC_EN",
|
||||
"NFC_CLK_REQ",
|
||||
"NFC_ESE_PWR_REQ",
|
||||
"DVDT_WRT_DET_AND",
|
||||
"SPK_AMP_RESET_N", /* GPIO_10 */
|
||||
"SPK_AMP_INT_N",
|
||||
"APPS_I2C_1_SDA",
|
||||
"APPS_I2C_1_SCL",
|
||||
"NC",
|
||||
"TX_GTR_THRES_IN",
|
||||
"HST_BT_UART_CTS",
|
||||
"HST_BT_UART_RFR",
|
||||
"HST_BT_UART_TX",
|
||||
"HST_BT_UART_RX",
|
||||
"HST_WLAN_EN", /* GPIO_20 */
|
||||
"HST_BT_EN",
|
||||
"RGBC_IR_PWR_EN",
|
||||
"FP_INT_N",
|
||||
"NC",
|
||||
"NC",
|
||||
"NC",
|
||||
"NC",
|
||||
"NFC_ESE_SPI_MISO",
|
||||
"NFC_ESE_SPI_MOSI",
|
||||
"NFC_ESE_SPI_SCLK", /* GPIO_30 */
|
||||
"NFC_ESE_SPI_CS_N",
|
||||
"WCD_RST_N",
|
||||
"NC",
|
||||
"SDM_DEBUG_UART_TX",
|
||||
"SDM_DEBUG_UART_RX",
|
||||
"TS_I2C_SDA",
|
||||
"TS_I2C_SCL",
|
||||
"TS_INT_N",
|
||||
"FP_SPI_MISO", /* GPIO_40 */
|
||||
"FP_SPI_MOSI",
|
||||
"FP_SPI_SCLK",
|
||||
"FP_SPI_CS_N",
|
||||
"APPS_I2C_0_SDA",
|
||||
"APPS_I2C_0_SCL",
|
||||
"DISP_ERR_FG",
|
||||
"UIM2_DETECT_EN",
|
||||
"NC",
|
||||
"NC",
|
||||
"NC", /* GPIO_50 */
|
||||
"NC",
|
||||
"MDM_UART_CTS",
|
||||
"MDM_UART_RFR",
|
||||
"MDM_UART_TX",
|
||||
"MDM_UART_RX",
|
||||
"AP2MDM_STATUS",
|
||||
"AP2MDM_ERR_FATAL",
|
||||
"MDM_IPC_HS_UART_TX",
|
||||
"MDM_IPC_HS_UART_RX",
|
||||
"NC", /* GPIO_60 */
|
||||
"NC",
|
||||
"NC",
|
||||
"NC",
|
||||
"NC",
|
||||
"USB_CC_DIR",
|
||||
"DISP_VSYNC",
|
||||
"NC",
|
||||
"NC",
|
||||
"CAM_PWR_B_CS",
|
||||
"NC", /* GPIO_70 */
|
||||
"CAM_PWR_A_CS",
|
||||
"SBU_SW_SEL",
|
||||
"SBU_SW_OE",
|
||||
"FP_RESET_N",
|
||||
"FP_RESET_N",
|
||||
"DISP_RESET_N",
|
||||
"DEBUG_GPIO0",
|
||||
"TRAY_DET",
|
||||
"CAM2_RST_N",
|
||||
"PCIE0_RST_N",
|
||||
"PCIE0_CLK_REQ_N", /* GPIO_80 */
|
||||
"PCIE0_WAKE_N",
|
||||
"DVDT_ENABLE",
|
||||
"DVDT_WRT_DET_OR",
|
||||
"NC",
|
||||
"PCIE2_RST_N",
|
||||
"PCIE2_CLK_REQ_N",
|
||||
"PCIE2_WAKE_N",
|
||||
"MDM_VFR_IRQ0",
|
||||
"MDM_VFR_IRQ1",
|
||||
"SW_SERVICE", /* GPIO_90 */
|
||||
"CAM_SOF",
|
||||
"CAM1_RST_N",
|
||||
"CAM0_RST_N",
|
||||
"CAM0_MCLK",
|
||||
"CAM1_MCLK",
|
||||
"CAM2_MCLK",
|
||||
"CAM3_MCLK",
|
||||
"CAM4_MCLK",
|
||||
"TOF_RST_N",
|
||||
"NC", /* GPIO_100 */
|
||||
"CCI0_I2C_SDA",
|
||||
"CCI0_I2C_SCL",
|
||||
"CCI1_I2C_SDA",
|
||||
"CCI1_I2C_SCL_",
|
||||
"CCI2_I2C_SDA",
|
||||
"CCI2_I2C_SCL",
|
||||
"CCI3_I2C_SDA",
|
||||
"CCI3_I2C_SCL",
|
||||
"CAM3_RST_N",
|
||||
"NFC_DWL_REQ", /* GPIO_110 */
|
||||
"NFC_IRQ",
|
||||
"XVS",
|
||||
"NC",
|
||||
"RF_ID_EXTENSION",
|
||||
"SPK_AMP_I2C_SDA",
|
||||
"SPK_AMP_I2C_SCL",
|
||||
"NC",
|
||||
"NC",
|
||||
"WLC_I2C_SDA",
|
||||
"WLC_I2C_SCL", /* GPIO_120 */
|
||||
"ACC_COVER_OPEN",
|
||||
"ALS_PROX_INT_N",
|
||||
"ACCEL_INT",
|
||||
"WLAN_SW_CTRL",
|
||||
"CAMSENSOR_I2C_SDA",
|
||||
"CAMSENSOR_I2C_SCL",
|
||||
"UDON_SWITCH_SEL",
|
||||
"WDOG_DISABLE",
|
||||
"BAROMETER_INT",
|
||||
"NC", /* GPIO_130 */
|
||||
"NC",
|
||||
"FORCED_USB_BOOT",
|
||||
"NC",
|
||||
"NC",
|
||||
"WLC_INT_N",
|
||||
"NC",
|
||||
"NC",
|
||||
"RGBC_IR_INT",
|
||||
"NC",
|
||||
"NC", /* GPIO_140 */
|
||||
"NC",
|
||||
"BT_SLIMBUS_CLK",
|
||||
"BT_SLIMBUS_DATA",
|
||||
"HW_ID_0",
|
||||
"HW_ID_1",
|
||||
"WCD_SWR_TX_CLK",
|
||||
"WCD_SWR_TX_DATA0",
|
||||
"WCD_SWR_TX_DATA1",
|
||||
"WCD_SWR_RX_CLK",
|
||||
"WCD_SWR_RX_DATA0", /* GPIO_150 */
|
||||
"WCD_SWR_RX_DATA1",
|
||||
"SDM_DMIC_CLK1",
|
||||
"SDM_DMIC_DATA1",
|
||||
"SDM_DMIC_CLK2",
|
||||
"SDM_DMIC_DATA2",
|
||||
"SPK_AMP_I2S_CLK",
|
||||
"SPK_AMP_I2S_WS",
|
||||
"SPK_AMP_I2S_ASP_DIN",
|
||||
"SPK_AMP_I2S_ASP_DOUT",
|
||||
"COMPASS_I2C_SDA", /* GPIO_160 */
|
||||
"COMPASS_I2C_SCL",
|
||||
"NC",
|
||||
"NC",
|
||||
"SSC_SPI_1_MISO",
|
||||
"SSC_SPI_1_MOSI",
|
||||
"SSC_SPI_1_CLK",
|
||||
"SSC_SPI_1_CS_N",
|
||||
"NC",
|
||||
"NC",
|
||||
"SSC_SENSOR_I2C_SDA", /* GPIO_170 */
|
||||
"SSC_SENSOR_I2C_SCL",
|
||||
"NC",
|
||||
"NC",
|
||||
"NC",
|
||||
"NC",
|
||||
"HST_BLE_SNS_UART6_TX",
|
||||
"HST_BLE_SNS_UART6_RX",
|
||||
"HST_WLAN_UART_TX",
|
||||
"HST_WLAN_UART_RX";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -20,6 +20,8 @@
|
|||
};
|
||||
|
||||
&gpio_keys {
|
||||
pinctrl-0 = <&focus_n &snapshot_n &vol_down_n &g_assist_n>;
|
||||
|
||||
g-assist-key {
|
||||
label = "Google Assistant Key";
|
||||
linux,code = <KEY_LEFTMETA>;
|
||||
|
|
@ -30,6 +32,247 @@
|
|||
};
|
||||
};
|
||||
|
||||
&pm8009_gpios {
|
||||
gpio-line-names = "NC", /* GPIO_1 */
|
||||
"NC",
|
||||
"WIDEC_PWR_EN",
|
||||
"NC";
|
||||
};
|
||||
|
||||
&pm8150_gpios {
|
||||
gpio-line-names = "VOL_DOWN_N", /* GPIO_1 */
|
||||
"OPTION_2",
|
||||
"NC",
|
||||
"PM_SLP_CLK_IN",
|
||||
"OPTION_1",
|
||||
"G_ASSIST_N",
|
||||
"NC",
|
||||
"SP_ARI_PWR_ALARM",
|
||||
"NC",
|
||||
"NC"; /* GPIO_10 */
|
||||
|
||||
g_assist_n: g-assist-n-state {
|
||||
pins = "gpio6";
|
||||
function = "normal";
|
||||
power-source = <1>;
|
||||
bias-pull-up;
|
||||
input-enable;
|
||||
};
|
||||
};
|
||||
|
||||
&pm8150b_gpios {
|
||||
gpio-line-names = "SNAPSHOT_N", /* GPIO_1 */
|
||||
"FOCUS_N",
|
||||
"NC",
|
||||
"NC",
|
||||
"RF_LCD_ID_EN",
|
||||
"NC",
|
||||
"NC",
|
||||
"LCD_ID",
|
||||
"NC",
|
||||
"NC", /* GPIO_10 */
|
||||
"NC",
|
||||
"RF_ID";
|
||||
};
|
||||
|
||||
&pm8150l_gpios {
|
||||
gpio-line-names = "NC", /* GPIO_1 */
|
||||
"PM3003A_EN",
|
||||
"NC",
|
||||
"NC",
|
||||
"NC",
|
||||
"AUX2_THERM",
|
||||
"BB_HP_EN",
|
||||
"FP_LDO_EN",
|
||||
"PMX_RESET_N",
|
||||
"NC", /* GPIO_10 */
|
||||
"NC",
|
||||
"PM3003A_MODE";
|
||||
};
|
||||
|
||||
&tlmm {
|
||||
gpio-line-names = "AP_CTI_IN", /* GPIO_0 */
|
||||
"MDM2AP_ERR_FATAL",
|
||||
"AP_CTI_OUT",
|
||||
"MDM2AP_STATUS",
|
||||
"NFC_I2C_SDA",
|
||||
"NFC_I2C_SCL",
|
||||
"NFC_EN",
|
||||
"NFC_CLK_REQ",
|
||||
"NFC_ESE_PWR_REQ",
|
||||
"DVDT_WRT_DET_AND",
|
||||
"SPK_AMP_RESET_N", /* GPIO_10 */
|
||||
"SPK_AMP_INT_N",
|
||||
"APPS_I2C_1_SDA",
|
||||
"APPS_I2C_1_SCL",
|
||||
"NC",
|
||||
"TX_GTR_THRES_IN",
|
||||
"HST_BT_UART_CTS",
|
||||
"HST_BT_UART_RFR",
|
||||
"HST_BT_UART_TX",
|
||||
"HST_BT_UART_RX",
|
||||
"HST_WLAN_EN", /* GPIO_20 */
|
||||
"HST_BT_EN",
|
||||
"RGBC_IR_PWR_EN",
|
||||
"FP_INT_N",
|
||||
"NC",
|
||||
"NC",
|
||||
"NC",
|
||||
"NC",
|
||||
"NFC_ESE_SPI_MISO",
|
||||
"NFC_ESE_SPI_MOSI",
|
||||
"NFC_ESE_SPI_SCLK", /* GPIO_30 */
|
||||
"NFC_ESE_SPI_CS_N",
|
||||
"WCD_RST_N",
|
||||
"NC",
|
||||
"SDM_DEBUG_UART_TX",
|
||||
"SDM_DEBUG_UART_RX",
|
||||
"TS_I2C_SDA",
|
||||
"TS_I2C_SCL",
|
||||
"TS_INT_N",
|
||||
"FP_SPI_MISO", /* GPIO_40 */
|
||||
"FP_SPI_MOSI",
|
||||
"FP_SPI_SCLK",
|
||||
"FP_SPI_CS_N",
|
||||
"APPS_I2C_0_SDA",
|
||||
"APPS_I2C_0_SCL",
|
||||
"DISP_ERR_FG",
|
||||
"UIM2_DETECT_EN",
|
||||
"NC",
|
||||
"NC",
|
||||
"NC", /* GPIO_50 */
|
||||
"NC",
|
||||
"MDM_UART_CTS",
|
||||
"MDM_UART_RFR",
|
||||
"MDM_UART_TX",
|
||||
"MDM_UART_RX",
|
||||
"AP2MDM_STATUS",
|
||||
"AP2MDM_ERR_FATAL",
|
||||
"MDM_IPC_HS_UART_TX",
|
||||
"MDM_IPC_HS_UART_RX",
|
||||
"NC", /* GPIO_60 */
|
||||
"NC",
|
||||
"NC",
|
||||
"NC",
|
||||
"NC",
|
||||
"USB_CC_DIR",
|
||||
"DISP_VSYNC",
|
||||
"NC",
|
||||
"NC",
|
||||
"CAM_PWR_B_CS",
|
||||
"NC", /* GPIO_70 */
|
||||
"FRONTC_PWR_EN",
|
||||
"SBU_SW_SEL",
|
||||
"SBU_SW_OE",
|
||||
"FP_RESET_N",
|
||||
"FP_RESET_N",
|
||||
"DISP_RESET_N",
|
||||
"DEBUG_GPIO0",
|
||||
"TRAY_DET",
|
||||
"CAM2_RST_N",
|
||||
"PCIE0_RST_N",
|
||||
"PCIE0_CLK_REQ_N", /* GPIO_80 */
|
||||
"PCIE0_WAKE_N",
|
||||
"DVDT_ENABLE",
|
||||
"DVDT_WRT_DET_OR",
|
||||
"NC",
|
||||
"PCIE2_RST_N",
|
||||
"PCIE2_CLK_REQ_N",
|
||||
"PCIE2_WAKE_N",
|
||||
"MDM_VFR_IRQ0",
|
||||
"MDM_VFR_IRQ1",
|
||||
"SW_SERVICE", /* GPIO_90 */
|
||||
"CAM_SOF",
|
||||
"CAM1_RST_N",
|
||||
"CAM0_RST_N",
|
||||
"CAM0_MCLK",
|
||||
"CAM1_MCLK",
|
||||
"CAM2_MCLK",
|
||||
"CAM3_MCLK",
|
||||
"NC",
|
||||
"NC",
|
||||
"NC", /* GPIO_100 */
|
||||
"CCI0_I2C_SDA",
|
||||
"CCI0_I2C_SCL",
|
||||
"CCI1_I2C_SDA",
|
||||
"CCI1_I2C_SCL_",
|
||||
"CCI2_I2C_SDA",
|
||||
"CCI2_I2C_SCL",
|
||||
"CCI3_I2C_SDA",
|
||||
"CCI3_I2C_SCL",
|
||||
"CAM3_RST_N",
|
||||
"NFC_DWL_REQ", /* GPIO_110 */
|
||||
"NFC_IRQ",
|
||||
"XVS",
|
||||
"NC",
|
||||
"RF_ID_EXTENSION",
|
||||
"SPK_AMP_I2C_SDA",
|
||||
"SPK_AMP_I2C_SCL",
|
||||
"NC",
|
||||
"NC",
|
||||
"NC",
|
||||
"NC",
|
||||
"ACC_COVER_OPEN",
|
||||
"ALS_PROX_INT_N",
|
||||
"ACCEL_INT",
|
||||
"WLAN_SW_CTRL",
|
||||
"CAMSENSOR_I2C_SDA",
|
||||
"CAMSENSOR_I2C_SCL",
|
||||
"UDON_SWITCH_SEL",
|
||||
"WDOG_DISABLE",
|
||||
"BAROMETER_INT",
|
||||
"NC", /* GPIO_130 */
|
||||
"NC",
|
||||
"FORCED_USB_BOOT",
|
||||
"NC",
|
||||
"NC",
|
||||
"NC",
|
||||
"NC",
|
||||
"NC",
|
||||
"RGBC_IR_INT",
|
||||
"NC",
|
||||
"NC", /* GPIO_140 */
|
||||
"NC",
|
||||
"BT_SLIMBUS_CLK",
|
||||
"BT_SLIMBUS_DATA",
|
||||
"HW_ID_0",
|
||||
"HW_ID_1",
|
||||
"WCD_SWR_TX_CLK",
|
||||
"WCD_SWR_TX_DATA0",
|
||||
"WCD_SWR_TX_DATA1",
|
||||
"WCD_SWR_RX_CLK",
|
||||
"WCD_SWR_RX_DATA0", /* GPIO_150 */
|
||||
"WCD_SWR_RX_DATA1",
|
||||
"SDM_DMIC_CLK1",
|
||||
"SDM_DMIC_DATA1",
|
||||
"SDM_DMIC_CLK2",
|
||||
"SDM_DMIC_DATA2",
|
||||
"SPK_AMP_I2S_CLK",
|
||||
"SPK_AMP_I2S_WS",
|
||||
"SPK_AMP_I2S_ASP_DIN",
|
||||
"SPK_AMP_I2S_ASP_DOUT",
|
||||
"COMPASS_I2C_SDA", /* GPIO_160 */
|
||||
"COMPASS_I2C_SCL",
|
||||
"NC",
|
||||
"NC",
|
||||
"SSC_SPI_1_MISO",
|
||||
"SSC_SPI_1_MOSI",
|
||||
"SSC_SPI_1_CLK",
|
||||
"SSC_SPI_1_CS_N",
|
||||
"NC",
|
||||
"NC",
|
||||
"SSC_SENSOR_I2C_SDA", /* GPIO_170 */
|
||||
"SSC_SENSOR_I2C_SCL",
|
||||
"NC",
|
||||
"NC",
|
||||
"NC",
|
||||
"NC",
|
||||
"HST_BLE_SNS_UART6_TX",
|
||||
"HST_BLE_SNS_UART6_RX",
|
||||
"HST_WLAN_UART_TX",
|
||||
"HST_WLAN_UART_RX";
|
||||
};
|
||||
|
||||
&vreg_l2f_1p3 {
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
|
|
|
|||
|
|
@ -51,12 +51,26 @@
|
|||
gpio_keys: gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
/*
|
||||
* Camera focus (light press) and camera snapshot (full press)
|
||||
* seem not to work properly.. Adding the former one stalls the CPU
|
||||
* and the latter kills the volume down key for whatever reason. In any
|
||||
* case, they are both on &pm8150b_gpios: camera focus(2), camera snapshot(1).
|
||||
*/
|
||||
pinctrl-0 = <&focus_n &snapshot_n &vol_down_n>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
key-camera-focus {
|
||||
label = "Camera Focus";
|
||||
linux,code = <KEY_CAMERA_FOCUS>;
|
||||
gpios = <&pm8150b_gpios 2 GPIO_ACTIVE_LOW>;
|
||||
debounce-interval = <15>;
|
||||
linux,can-disable;
|
||||
wakeup-source;
|
||||
};
|
||||
|
||||
key-camera-snapshot {
|
||||
label = "Camera Snapshot";
|
||||
linux,code = <KEY_CAMERA>;
|
||||
gpios = <&pm8150b_gpios 1 GPIO_ACTIVE_LOW>;
|
||||
debounce-interval = <15>;
|
||||
linux,can-disable;
|
||||
wakeup-source;
|
||||
};
|
||||
|
||||
key-vol-down {
|
||||
label = "Volume Down";
|
||||
|
|
@ -546,6 +560,34 @@
|
|||
vdda-pll-supply = <&vreg_l9a_1p2>;
|
||||
};
|
||||
|
||||
&pm8150_gpios {
|
||||
vol_down_n: vol-down-n-state {
|
||||
pins = "gpio1";
|
||||
function = "normal";
|
||||
power-source = <0>;
|
||||
bias-pull-up;
|
||||
input-enable;
|
||||
};
|
||||
};
|
||||
|
||||
&pm8150b_gpios {
|
||||
snapshot_n: snapshot-n-state {
|
||||
pins = "gpio1";
|
||||
function = "normal";
|
||||
power-source = <0>;
|
||||
bias-pull-up;
|
||||
input-enable;
|
||||
};
|
||||
|
||||
focus_n: focus-n-state {
|
||||
pins = "gpio2";
|
||||
function = "normal";
|
||||
power-source = <0>;
|
||||
bias-pull-up;
|
||||
input-enable;
|
||||
};
|
||||
};
|
||||
|
||||
&pon_pwrkey {
|
||||
status = "okay";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@
|
|||
reg = <0x0 0x0>;
|
||||
enable-method = "psci";
|
||||
capacity-dmips-mhz = <448>;
|
||||
dynamic-power-coefficient = <205>;
|
||||
dynamic-power-coefficient = <105>;
|
||||
next-level-cache = <&L2_0>;
|
||||
power-domains = <&CPU_PD0>;
|
||||
power-domain-names = "psci";
|
||||
|
|
@ -123,7 +123,7 @@
|
|||
reg = <0x0 0x100>;
|
||||
enable-method = "psci";
|
||||
capacity-dmips-mhz = <448>;
|
||||
dynamic-power-coefficient = <205>;
|
||||
dynamic-power-coefficient = <105>;
|
||||
next-level-cache = <&L2_100>;
|
||||
power-domains = <&CPU_PD1>;
|
||||
power-domain-names = "psci";
|
||||
|
|
@ -144,7 +144,7 @@
|
|||
reg = <0x0 0x200>;
|
||||
enable-method = "psci";
|
||||
capacity-dmips-mhz = <448>;
|
||||
dynamic-power-coefficient = <205>;
|
||||
dynamic-power-coefficient = <105>;
|
||||
next-level-cache = <&L2_200>;
|
||||
power-domains = <&CPU_PD2>;
|
||||
power-domain-names = "psci";
|
||||
|
|
@ -165,7 +165,7 @@
|
|||
reg = <0x0 0x300>;
|
||||
enable-method = "psci";
|
||||
capacity-dmips-mhz = <448>;
|
||||
dynamic-power-coefficient = <205>;
|
||||
dynamic-power-coefficient = <105>;
|
||||
next-level-cache = <&L2_300>;
|
||||
power-domains = <&CPU_PD3>;
|
||||
power-domain-names = "psci";
|
||||
|
|
@ -1862,6 +1862,7 @@
|
|||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pcie0_default_state>;
|
||||
dma-coherent;
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
|
|
@ -1968,6 +1969,7 @@
|
|||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pcie1_default_state>;
|
||||
dma-coherent;
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
|
|
@ -2076,6 +2078,7 @@
|
|||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pcie2_default_state>;
|
||||
dma-coherent;
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@
|
|||
|
||||
CPU0: cpu@0 {
|
||||
device_type = "cpu";
|
||||
compatible = "qcom,kryo685";
|
||||
compatible = "arm,cortex-a55";
|
||||
reg = <0x0 0x0>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&L2_0>;
|
||||
|
|
@ -82,7 +82,7 @@
|
|||
|
||||
CPU1: cpu@100 {
|
||||
device_type = "cpu";
|
||||
compatible = "qcom,kryo685";
|
||||
compatible = "arm,cortex-a55";
|
||||
reg = <0x0 0x100>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&L2_100>;
|
||||
|
|
@ -98,7 +98,7 @@
|
|||
|
||||
CPU2: cpu@200 {
|
||||
device_type = "cpu";
|
||||
compatible = "qcom,kryo685";
|
||||
compatible = "arm,cortex-a55";
|
||||
reg = <0x0 0x200>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&L2_200>;
|
||||
|
|
@ -114,7 +114,7 @@
|
|||
|
||||
CPU3: cpu@300 {
|
||||
device_type = "cpu";
|
||||
compatible = "qcom,kryo685";
|
||||
compatible = "arm,cortex-a55";
|
||||
reg = <0x0 0x300>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&L2_300>;
|
||||
|
|
@ -130,7 +130,7 @@
|
|||
|
||||
CPU4: cpu@400 {
|
||||
device_type = "cpu";
|
||||
compatible = "qcom,kryo685";
|
||||
compatible = "arm,cortex-a78";
|
||||
reg = <0x0 0x400>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&L2_400>;
|
||||
|
|
@ -146,7 +146,7 @@
|
|||
|
||||
CPU5: cpu@500 {
|
||||
device_type = "cpu";
|
||||
compatible = "qcom,kryo685";
|
||||
compatible = "arm,cortex-a78";
|
||||
reg = <0x0 0x500>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&L2_500>;
|
||||
|
|
@ -163,7 +163,7 @@
|
|||
|
||||
CPU6: cpu@600 {
|
||||
device_type = "cpu";
|
||||
compatible = "qcom,kryo685";
|
||||
compatible = "arm,cortex-a78";
|
||||
reg = <0x0 0x600>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&L2_600>;
|
||||
|
|
@ -179,7 +179,7 @@
|
|||
|
||||
CPU7: cpu@700 {
|
||||
device_type = "cpu";
|
||||
compatible = "qcom,kryo685";
|
||||
compatible = "arm,cortex-x1";
|
||||
reg = <0x0 0x700>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&L2_700>;
|
||||
|
|
@ -236,8 +236,8 @@
|
|||
compatible = "arm,idle-state";
|
||||
idle-state-name = "silver-rail-power-collapse";
|
||||
arm,psci-suspend-param = <0x40000004>;
|
||||
entry-latency-us = <355>;
|
||||
exit-latency-us = <909>;
|
||||
entry-latency-us = <360>;
|
||||
exit-latency-us = <531>;
|
||||
min-residency-us = <3934>;
|
||||
local-timer-stop;
|
||||
};
|
||||
|
|
@ -246,8 +246,8 @@
|
|||
compatible = "arm,idle-state";
|
||||
idle-state-name = "gold-rail-power-collapse";
|
||||
arm,psci-suspend-param = <0x40000004>;
|
||||
entry-latency-us = <241>;
|
||||
exit-latency-us = <1461>;
|
||||
entry-latency-us = <702>;
|
||||
exit-latency-us = <1061>;
|
||||
min-residency-us = <4488>;
|
||||
local-timer-stop;
|
||||
};
|
||||
|
|
@ -2072,6 +2072,13 @@
|
|||
<0 0x18593000 0 0x1000>;
|
||||
reg-names = "freq-domain0", "freq-domain1", "freq-domain2";
|
||||
|
||||
interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "dcvsh-irq-0",
|
||||
"dcvsh-irq-1",
|
||||
"dcvsh-irq-2";
|
||||
|
||||
clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GCC_GPLL0>;
|
||||
clock-names = "xo", "alternate";
|
||||
|
||||
|
|
|
|||
|
|
@ -17,6 +17,9 @@
|
|||
|
||||
#include <asm/virt.h>
|
||||
|
||||
DECLARE_PER_CPU(struct sdei_registered_event *, sdei_active_normal_event);
|
||||
DECLARE_PER_CPU(struct sdei_registered_event *, sdei_active_critical_event);
|
||||
|
||||
extern unsigned long sdei_exit_mode;
|
||||
|
||||
/* Software Delegated Exception entry point from firmware*/
|
||||
|
|
@ -29,6 +32,9 @@ asmlinkage void __sdei_asm_entry_trampoline(unsigned long event_num,
|
|||
unsigned long pc,
|
||||
unsigned long pstate);
|
||||
|
||||
/* Abort a running handler. Context is discarded. */
|
||||
void __sdei_handler_abort(void);
|
||||
|
||||
/*
|
||||
* The above entry point does the minimum to call C code. This function does
|
||||
* anything else, before calling the driver.
|
||||
|
|
|
|||
|
|
@ -993,9 +993,13 @@ SYM_CODE_START(__sdei_asm_handler)
|
|||
|
||||
mov x19, x1
|
||||
|
||||
#if defined(CONFIG_VMAP_STACK) || defined(CONFIG_SHADOW_CALL_STACK)
|
||||
/* Store the registered-event for crash_smp_send_stop() */
|
||||
ldrb w4, [x19, #SDEI_EVENT_PRIORITY]
|
||||
#endif
|
||||
cbnz w4, 1f
|
||||
adr_this_cpu dst=x5, sym=sdei_active_normal_event, tmp=x6
|
||||
b 2f
|
||||
1: adr_this_cpu dst=x5, sym=sdei_active_critical_event, tmp=x6
|
||||
2: str x19, [x5]
|
||||
|
||||
#ifdef CONFIG_VMAP_STACK
|
||||
/*
|
||||
|
|
@ -1062,6 +1066,14 @@ SYM_CODE_START(__sdei_asm_handler)
|
|||
|
||||
ldr_l x2, sdei_exit_mode
|
||||
|
||||
/* Clear the registered-event seen by crash_smp_send_stop() */
|
||||
ldrb w3, [x4, #SDEI_EVENT_PRIORITY]
|
||||
cbnz w3, 1f
|
||||
adr_this_cpu dst=x5, sym=sdei_active_normal_event, tmp=x6
|
||||
b 2f
|
||||
1: adr_this_cpu dst=x5, sym=sdei_active_critical_event, tmp=x6
|
||||
2: str xzr, [x5]
|
||||
|
||||
alternative_if_not ARM64_UNMAP_KERNEL_AT_EL0
|
||||
sdei_handler_exit exit_mode=x2
|
||||
alternative_else_nop_endif
|
||||
|
|
@ -1072,4 +1084,15 @@ alternative_else_nop_endif
|
|||
#endif
|
||||
SYM_CODE_END(__sdei_asm_handler)
|
||||
NOKPROBE(__sdei_asm_handler)
|
||||
|
||||
SYM_CODE_START(__sdei_handler_abort)
|
||||
mov_q x0, SDEI_1_0_FN_SDEI_EVENT_COMPLETE_AND_RESUME
|
||||
adr x1, 1f
|
||||
ldr_l x2, sdei_exit_mode
|
||||
sdei_handler_exit exit_mode=x2
|
||||
// exit the handler and jump to the next instruction.
|
||||
// Exit will stomp x0-x17, PSTATE, ELR_ELx, and SPSR_ELx.
|
||||
1: ret
|
||||
SYM_CODE_END(__sdei_handler_abort)
|
||||
NOKPROBE(__sdei_handler_abort)
|
||||
#endif /* CONFIG_ARM_SDE_INTERFACE */
|
||||
|
|
|
|||
|
|
@ -1133,9 +1133,6 @@ void sve_kernel_enable(const struct arm64_cpu_capabilities *__always_unused p)
|
|||
*/
|
||||
u64 read_zcr_features(void)
|
||||
{
|
||||
u64 zcr;
|
||||
unsigned int vq_max;
|
||||
|
||||
/*
|
||||
* Set the maximum possible VL, and write zeroes to all other
|
||||
* bits to see if they stick.
|
||||
|
|
@ -1143,12 +1140,8 @@ u64 read_zcr_features(void)
|
|||
sve_kernel_enable(NULL);
|
||||
write_sysreg_s(ZCR_ELx_LEN_MASK, SYS_ZCR_EL1);
|
||||
|
||||
zcr = read_sysreg_s(SYS_ZCR_EL1);
|
||||
zcr &= ~(u64)ZCR_ELx_LEN_MASK; /* find sticky 1s outside LEN field */
|
||||
vq_max = sve_vq_from_vl(sve_get_vl());
|
||||
zcr |= vq_max - 1; /* set LEN field to maximum effective value */
|
||||
|
||||
return zcr;
|
||||
/* Return LEN value that would be written to get the maximum VL */
|
||||
return sve_vq_from_vl(sve_get_vl()) - 1;
|
||||
}
|
||||
|
||||
void __init sve_setup(void)
|
||||
|
|
@ -1292,11 +1285,7 @@ void fa64_kernel_enable(const struct arm64_cpu_capabilities *__always_unused p)
|
|||
*/
|
||||
u64 read_smcr_features(void)
|
||||
{
|
||||
u64 smcr;
|
||||
unsigned int vq_max;
|
||||
|
||||
sme_kernel_enable(NULL);
|
||||
sme_smstart_sm();
|
||||
|
||||
/*
|
||||
* Set the maximum possible VL.
|
||||
|
|
@ -1304,14 +1293,8 @@ u64 read_smcr_features(void)
|
|||
write_sysreg_s(read_sysreg_s(SYS_SMCR_EL1) | SMCR_ELx_LEN_MASK,
|
||||
SYS_SMCR_EL1);
|
||||
|
||||
smcr = read_sysreg_s(SYS_SMCR_EL1);
|
||||
smcr &= ~(u64)SMCR_ELx_LEN_MASK; /* Only the LEN field */
|
||||
vq_max = sve_vq_from_vl(sve_get_vl());
|
||||
smcr |= vq_max - 1; /* set LEN field to maximum effective value */
|
||||
|
||||
sme_smstop_sm();
|
||||
|
||||
return smcr;
|
||||
/* Return LEN value that would be written to get the maximum VL */
|
||||
return sve_vq_from_vl(sme_get_vl()) - 1;
|
||||
}
|
||||
|
||||
void __init sme_setup(void)
|
||||
|
|
|
|||
|
|
@ -896,7 +896,8 @@ static int sve_set_common(struct task_struct *target,
|
|||
break;
|
||||
default:
|
||||
WARN_ON_ONCE(1);
|
||||
return -EINVAL;
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -47,6 +47,9 @@ DEFINE_PER_CPU(unsigned long *, sdei_shadow_call_stack_normal_ptr);
|
|||
DEFINE_PER_CPU(unsigned long *, sdei_shadow_call_stack_critical_ptr);
|
||||
#endif
|
||||
|
||||
DEFINE_PER_CPU(struct sdei_registered_event *, sdei_active_normal_event);
|
||||
DEFINE_PER_CPU(struct sdei_registered_event *, sdei_active_critical_event);
|
||||
|
||||
static void _free_sdei_stack(unsigned long * __percpu *ptr, int cpu)
|
||||
{
|
||||
unsigned long *p;
|
||||
|
|
|
|||
|
|
@ -1053,10 +1053,8 @@ void crash_smp_send_stop(void)
|
|||
* If this cpu is the only one alive at this point in time, online or
|
||||
* not, there are no stop messages to be sent around, so just back out.
|
||||
*/
|
||||
if (num_other_online_cpus() == 0) {
|
||||
sdei_mask_local_cpu();
|
||||
return;
|
||||
}
|
||||
if (num_other_online_cpus() == 0)
|
||||
goto skip_ipi;
|
||||
|
||||
cpumask_copy(&mask, cpu_online_mask);
|
||||
cpumask_clear_cpu(smp_processor_id(), &mask);
|
||||
|
|
@ -1075,7 +1073,9 @@ void crash_smp_send_stop(void)
|
|||
pr_warn("SMP: failed to stop secondary CPUs %*pbl\n",
|
||||
cpumask_pr_args(&mask));
|
||||
|
||||
skip_ipi:
|
||||
sdei_mask_local_cpu();
|
||||
sdei_handler_abort();
|
||||
}
|
||||
|
||||
bool smp_crash_stop_failed(void)
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ unsigned int __no_sanitize_address do_csum(const unsigned char *buff, int len)
|
|||
const u64 *ptr;
|
||||
u64 data, sum64 = 0;
|
||||
|
||||
if (unlikely(len == 0))
|
||||
if (unlikely(len <= 0))
|
||||
return 0;
|
||||
|
||||
offset = (unsigned long)buff & 7;
|
||||
|
|
|
|||
|
|
@ -236,7 +236,7 @@ static void clear_flush(struct mm_struct *mm,
|
|||
unsigned long i, saddr = addr;
|
||||
|
||||
for (i = 0; i < ncontig; i++, addr += pgsize, ptep++)
|
||||
pte_clear(mm, addr, ptep);
|
||||
ptep_clear(mm, addr, ptep);
|
||||
|
||||
flush_tlb_range(&vma, saddr, addr);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1488,7 +1488,7 @@ __BUILD_CSR_OP(tlbidx)
|
|||
#define write_fcsr(dest, val) \
|
||||
do { \
|
||||
__asm__ __volatile__( \
|
||||
" movgr2fcsr %0, "__stringify(dest)" \n" \
|
||||
" movgr2fcsr "__stringify(dest)", %0 \n" \
|
||||
: : "r" (val)); \
|
||||
} while (0)
|
||||
|
||||
|
|
|
|||
|
|
@ -21,12 +21,14 @@
|
|||
#define _PAGE_HGLOBAL_SHIFT 12 /* HGlobal is a PMD bit */
|
||||
#define _PAGE_PFN_SHIFT 12
|
||||
#define _PAGE_PFN_END_SHIFT 48
|
||||
#define _PAGE_PRESENT_INVALID_SHIFT 60
|
||||
#define _PAGE_NO_READ_SHIFT 61
|
||||
#define _PAGE_NO_EXEC_SHIFT 62
|
||||
#define _PAGE_RPLV_SHIFT 63
|
||||
|
||||
/* Used by software */
|
||||
#define _PAGE_PRESENT (_ULCAST_(1) << _PAGE_PRESENT_SHIFT)
|
||||
#define _PAGE_PRESENT_INVALID (_ULCAST_(1) << _PAGE_PRESENT_INVALID_SHIFT)
|
||||
#define _PAGE_WRITE (_ULCAST_(1) << _PAGE_WRITE_SHIFT)
|
||||
#define _PAGE_ACCESSED (_ULCAST_(1) << _PAGE_ACCESSED_SHIFT)
|
||||
#define _PAGE_MODIFIED (_ULCAST_(1) << _PAGE_MODIFIED_SHIFT)
|
||||
|
|
|
|||
|
|
@ -208,7 +208,7 @@ static inline int pmd_bad(pmd_t pmd)
|
|||
static inline int pmd_present(pmd_t pmd)
|
||||
{
|
||||
if (unlikely(pmd_val(pmd) & _PAGE_HUGE))
|
||||
return !!(pmd_val(pmd) & (_PAGE_PRESENT | _PAGE_PROTNONE));
|
||||
return !!(pmd_val(pmd) & (_PAGE_PRESENT | _PAGE_PROTNONE | _PAGE_PRESENT_INVALID));
|
||||
|
||||
return pmd_val(pmd) != (unsigned long)invalid_pte_table;
|
||||
}
|
||||
|
|
@ -525,6 +525,7 @@ static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
|
|||
|
||||
static inline pmd_t pmd_mkinvalid(pmd_t pmd)
|
||||
{
|
||||
pmd_val(pmd) |= _PAGE_PRESENT_INVALID;
|
||||
pmd_val(pmd) &= ~(_PAGE_PRESENT | _PAGE_VALID | _PAGE_DIRTY | _PAGE_PROTNONE);
|
||||
|
||||
return pmd;
|
||||
|
|
@ -559,6 +560,9 @@ static inline long pmd_protnone(pmd_t pmd)
|
|||
}
|
||||
#endif /* CONFIG_NUMA_BALANCING */
|
||||
|
||||
#define pmd_leaf(pmd) ((pmd_val(pmd) & _PAGE_HUGE) != 0)
|
||||
#define pud_leaf(pud) ((pud_val(pud) & _PAGE_HUGE) != 0)
|
||||
|
||||
/*
|
||||
* We provide our own get_unmapped area to cope with the virtual aliasing
|
||||
* constraints placed on us by the cache architecture.
|
||||
|
|
|
|||
|
|
@ -499,13 +499,13 @@ in_ea:
|
|||
dbf %d0,morein
|
||||
rts
|
||||
|
||||
.section .fixup,#alloc,#execinstr
|
||||
.section .fixup,"ax"
|
||||
.even
|
||||
1:
|
||||
jbsr fpsp040_die
|
||||
jbra .Lnotkern
|
||||
|
||||
.section __ex_table,#alloc
|
||||
.section __ex_table,"a"
|
||||
.align 4
|
||||
|
||||
.long in_ea,1b
|
||||
|
|
|
|||
|
|
@ -379,11 +379,11 @@ _060_real_access:
|
|||
|
||||
|
||||
| Execption handling for movs access to illegal memory
|
||||
.section .fixup,#alloc,#execinstr
|
||||
.section .fixup,"ax"
|
||||
.even
|
||||
1: moveq #-1,%d1
|
||||
rts
|
||||
.section __ex_table,#alloc
|
||||
.section __ex_table,"a"
|
||||
.align 4
|
||||
.long dmrbuae,1b
|
||||
.long dmrwuae,1b
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ ENTRY(relocate_new_kernel)
|
|||
lea %pc@(.Lcopy),%a4
|
||||
2: addl #0x00000000,%a4 /* virt_to_phys() */
|
||||
|
||||
.section ".m68k_fixup","aw"
|
||||
.section .m68k_fixup,"aw"
|
||||
.long M68K_FIXUP_MEMOFFSET, 2b+2
|
||||
.previous
|
||||
|
||||
|
|
@ -49,7 +49,7 @@ ENTRY(relocate_new_kernel)
|
|||
lea %pc@(.Lcont040),%a4
|
||||
5: addl #0x00000000,%a4 /* virt_to_phys() */
|
||||
|
||||
.section ".m68k_fixup","aw"
|
||||
.section .m68k_fixup,"aw"
|
||||
.long M68K_FIXUP_MEMOFFSET, 5b+2
|
||||
.previous
|
||||
|
||||
|
|
|
|||
|
|
@ -83,7 +83,6 @@ config MIPS
|
|||
select HAVE_LD_DEAD_CODE_DATA_ELIMINATION
|
||||
select HAVE_MOD_ARCH_SPECIFIC
|
||||
select HAVE_NMI
|
||||
select HAVE_PATA_PLATFORM
|
||||
select HAVE_PERF_EVENTS
|
||||
select HAVE_PERF_REGS
|
||||
select HAVE_PERF_USER_STACK_DUMP
|
||||
|
|
|
|||
|
|
@ -372,10 +372,18 @@ int
|
|||
show_cpuinfo (struct seq_file *m, void *v)
|
||||
{
|
||||
unsigned long cpu;
|
||||
char cpu_name[60], *p;
|
||||
|
||||
/* strip PA path from CPU name to not confuse lscpu */
|
||||
strlcpy(cpu_name, per_cpu(cpu_data, 0).dev->name, sizeof(cpu_name));
|
||||
p = strrchr(cpu_name, '[');
|
||||
if (p)
|
||||
*(--p) = 0;
|
||||
|
||||
for_each_online_cpu(cpu) {
|
||||
const struct cpuinfo_parisc *cpuinfo = &per_cpu(cpu_data, cpu);
|
||||
#ifdef CONFIG_SMP
|
||||
const struct cpuinfo_parisc *cpuinfo = &per_cpu(cpu_data, cpu);
|
||||
|
||||
if (0 == cpuinfo->hpa)
|
||||
continue;
|
||||
#endif
|
||||
|
|
@ -420,8 +428,7 @@ show_cpuinfo (struct seq_file *m, void *v)
|
|||
|
||||
seq_printf(m, "model\t\t: %s - %s\n",
|
||||
boot_cpu_data.pdc.sys_model_name,
|
||||
cpuinfo->dev ?
|
||||
cpuinfo->dev->name : "Unknown");
|
||||
cpu_name);
|
||||
|
||||
seq_printf(m, "hversion\t: 0x%08x\n"
|
||||
"sversion\t: 0x%08x\n",
|
||||
|
|
|
|||
|
|
@ -34,8 +34,6 @@ endif
|
|||
|
||||
BOOTCFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
|
||||
-fno-strict-aliasing -O2 -msoft-float -mno-altivec -mno-vsx \
|
||||
$(call cc-option,-mno-prefixed) $(call cc-option,-mno-pcrel) \
|
||||
$(call cc-option,-mno-mma) \
|
||||
$(call cc-option,-mno-spe) $(call cc-option,-mspe=no) \
|
||||
-pipe -fomit-frame-pointer -fno-builtin -fPIC -nostdinc \
|
||||
$(LINUXINCLUDE)
|
||||
|
|
@ -71,6 +69,10 @@ BOOTAFLAGS := -D__ASSEMBLY__ $(BOOTCFLAGS) -nostdinc
|
|||
|
||||
BOOTARFLAGS := -crD
|
||||
|
||||
BOOTCFLAGS += $(call cc-option,-mno-prefixed) \
|
||||
$(call cc-option,-mno-pcrel) \
|
||||
$(call cc-option,-mno-mma)
|
||||
|
||||
ifdef CONFIG_CC_IS_CLANG
|
||||
BOOTCFLAGS += $(CLANG_FLAGS)
|
||||
BOOTAFLAGS += $(CLANG_FLAGS)
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@
|
|||
#include <asm/types.h>
|
||||
#include <asm/mmu.h>
|
||||
#include <asm/firmware.h>
|
||||
#include <asm/paca.h>
|
||||
|
||||
/*
|
||||
* The lppaca is the "virtual processor area" registered with the hypervisor,
|
||||
|
|
@ -127,13 +128,23 @@ struct lppaca {
|
|||
*/
|
||||
#define LPPACA_OLD_SHARED_PROC 2
|
||||
|
||||
static inline bool lppaca_shared_proc(struct lppaca *l)
|
||||
#ifdef CONFIG_PPC_PSERIES
|
||||
/*
|
||||
* All CPUs should have the same shared proc value, so directly access the PACA
|
||||
* to avoid false positives from DEBUG_PREEMPT.
|
||||
*/
|
||||
static inline bool lppaca_shared_proc(void)
|
||||
{
|
||||
struct lppaca *l = local_paca->lppaca_ptr;
|
||||
|
||||
if (!firmware_has_feature(FW_FEATURE_SPLPAR))
|
||||
return false;
|
||||
return !!(l->__old_status & LPPACA_OLD_SHARED_PROC);
|
||||
}
|
||||
|
||||
#define get_lppaca() (get_paca()->lppaca_ptr)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* SLB shadow buffer structure as defined in the PAPR. The save_area
|
||||
* contains adjacent ESID and VSID pairs for each shadowed SLB. The
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@
|
|||
#include <linux/cache.h>
|
||||
#include <linux/string.h>
|
||||
#include <asm/types.h>
|
||||
#include <asm/lppaca.h>
|
||||
#include <asm/mmu.h>
|
||||
#include <asm/page.h>
|
||||
#ifdef CONFIG_PPC_BOOK3E_64
|
||||
|
|
@ -47,14 +46,11 @@ extern unsigned int debug_smp_processor_id(void); /* from linux/smp.h */
|
|||
#define get_paca() local_paca
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PPC_PSERIES
|
||||
#define get_lppaca() (get_paca()->lppaca_ptr)
|
||||
#endif
|
||||
|
||||
#define get_slb_shadow() (get_paca()->slb_shadow_ptr)
|
||||
|
||||
struct task_struct;
|
||||
struct rtas_args;
|
||||
struct lppaca;
|
||||
|
||||
/*
|
||||
* Defines the layout of the paca.
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include <asm/smp.h>
|
||||
#ifdef CONFIG_PPC64
|
||||
#include <asm/paca.h>
|
||||
#include <asm/lppaca.h>
|
||||
#include <asm/hvcall.h>
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#include <asm/hvcall.h>
|
||||
#include <asm/paca.h>
|
||||
#include <asm/lppaca.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
static inline long poll_pending(void)
|
||||
|
|
|
|||
|
|
@ -654,6 +654,7 @@ int __init fadump_reserve_mem(void)
|
|||
return ret;
|
||||
error_out:
|
||||
fw_dump.fadump_enabled = 0;
|
||||
fw_dump.reserve_dump_area_size = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -171,17 +171,28 @@ static int fail_iommu_bus_notify(struct notifier_block *nb,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct notifier_block fail_iommu_bus_notifier = {
|
||||
/*
|
||||
* PCI and VIO buses need separate notifier_block structs, since they're linked
|
||||
* list nodes. Sharing a notifier_block would mean that any notifiers later
|
||||
* registered for PCI buses would also get called by VIO buses and vice versa.
|
||||
*/
|
||||
static struct notifier_block fail_iommu_pci_bus_notifier = {
|
||||
.notifier_call = fail_iommu_bus_notify
|
||||
};
|
||||
|
||||
#ifdef CONFIG_IBMVIO
|
||||
static struct notifier_block fail_iommu_vio_bus_notifier = {
|
||||
.notifier_call = fail_iommu_bus_notify
|
||||
};
|
||||
#endif
|
||||
|
||||
static int __init fail_iommu_setup(void)
|
||||
{
|
||||
#ifdef CONFIG_PCI
|
||||
bus_register_notifier(&pci_bus_type, &fail_iommu_bus_notifier);
|
||||
bus_register_notifier(&pci_bus_type, &fail_iommu_pci_bus_notifier);
|
||||
#endif
|
||||
#ifdef CONFIG_IBMVIO
|
||||
bus_register_notifier(&vio_bus_type, &fail_iommu_bus_notifier);
|
||||
bus_register_notifier(&vio_bus_type, &fail_iommu_vio_bus_notifier);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
#include <linux/kvm.h>
|
||||
#include <linux/kvm_host.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <asm/lppaca.h>
|
||||
#include <asm/opal.h>
|
||||
#include <asm/mce.h>
|
||||
#include <asm/machdep.h>
|
||||
|
|
|
|||
|
|
@ -127,21 +127,6 @@ static __always_inline void __tlbie_pid(unsigned long pid, unsigned long ric)
|
|||
trace_tlbie(0, 0, rb, rs, ric, prs, r);
|
||||
}
|
||||
|
||||
static __always_inline void __tlbie_pid_lpid(unsigned long pid,
|
||||
unsigned long lpid,
|
||||
unsigned long ric)
|
||||
{
|
||||
unsigned long rb, rs, prs, r;
|
||||
|
||||
rb = PPC_BIT(53); /* IS = 1 */
|
||||
rs = (pid << PPC_BITLSHIFT(31)) | (lpid & ~(PPC_BITMASK(0, 31)));
|
||||
prs = 1; /* process scoped */
|
||||
r = 1; /* radix format */
|
||||
|
||||
asm volatile(PPC_TLBIE_5(%0, %4, %3, %2, %1)
|
||||
: : "r"(rb), "i"(r), "i"(prs), "i"(ric), "r"(rs) : "memory");
|
||||
trace_tlbie(0, 0, rb, rs, ric, prs, r);
|
||||
}
|
||||
static __always_inline void __tlbie_lpid(unsigned long lpid, unsigned long ric)
|
||||
{
|
||||
unsigned long rb,rs,prs,r;
|
||||
|
|
@ -202,23 +187,6 @@ static __always_inline void __tlbie_va(unsigned long va, unsigned long pid,
|
|||
trace_tlbie(0, 0, rb, rs, ric, prs, r);
|
||||
}
|
||||
|
||||
static __always_inline void __tlbie_va_lpid(unsigned long va, unsigned long pid,
|
||||
unsigned long lpid,
|
||||
unsigned long ap, unsigned long ric)
|
||||
{
|
||||
unsigned long rb, rs, prs, r;
|
||||
|
||||
rb = va & ~(PPC_BITMASK(52, 63));
|
||||
rb |= ap << PPC_BITLSHIFT(58);
|
||||
rs = (pid << PPC_BITLSHIFT(31)) | (lpid & ~(PPC_BITMASK(0, 31)));
|
||||
prs = 1; /* process scoped */
|
||||
r = 1; /* radix format */
|
||||
|
||||
asm volatile(PPC_TLBIE_5(%0, %4, %3, %2, %1)
|
||||
: : "r"(rb), "i"(r), "i"(prs), "i"(ric), "r"(rs) : "memory");
|
||||
trace_tlbie(0, 0, rb, rs, ric, prs, r);
|
||||
}
|
||||
|
||||
static __always_inline void __tlbie_lpid_va(unsigned long va, unsigned long lpid,
|
||||
unsigned long ap, unsigned long ric)
|
||||
{
|
||||
|
|
@ -264,22 +232,6 @@ static inline void fixup_tlbie_va_range(unsigned long va, unsigned long pid,
|
|||
}
|
||||
}
|
||||
|
||||
static inline void fixup_tlbie_va_range_lpid(unsigned long va,
|
||||
unsigned long pid,
|
||||
unsigned long lpid,
|
||||
unsigned long ap)
|
||||
{
|
||||
if (cpu_has_feature(CPU_FTR_P9_TLBIE_ERAT_BUG)) {
|
||||
asm volatile("ptesync" : : : "memory");
|
||||
__tlbie_pid_lpid(0, lpid, RIC_FLUSH_TLB);
|
||||
}
|
||||
|
||||
if (cpu_has_feature(CPU_FTR_P9_TLBIE_STQ_BUG)) {
|
||||
asm volatile("ptesync" : : : "memory");
|
||||
__tlbie_va_lpid(va, pid, lpid, ap, RIC_FLUSH_TLB);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void fixup_tlbie_pid(unsigned long pid)
|
||||
{
|
||||
/*
|
||||
|
|
@ -299,26 +251,6 @@ static inline void fixup_tlbie_pid(unsigned long pid)
|
|||
}
|
||||
}
|
||||
|
||||
static inline void fixup_tlbie_pid_lpid(unsigned long pid, unsigned long lpid)
|
||||
{
|
||||
/*
|
||||
* We can use any address for the invalidation, pick one which is
|
||||
* probably unused as an optimisation.
|
||||
*/
|
||||
unsigned long va = ((1UL << 52) - 1);
|
||||
|
||||
if (cpu_has_feature(CPU_FTR_P9_TLBIE_ERAT_BUG)) {
|
||||
asm volatile("ptesync" : : : "memory");
|
||||
__tlbie_pid_lpid(0, lpid, RIC_FLUSH_TLB);
|
||||
}
|
||||
|
||||
if (cpu_has_feature(CPU_FTR_P9_TLBIE_STQ_BUG)) {
|
||||
asm volatile("ptesync" : : : "memory");
|
||||
__tlbie_va_lpid(va, pid, lpid, mmu_get_ap(MMU_PAGE_64K),
|
||||
RIC_FLUSH_TLB);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void fixup_tlbie_lpid_va(unsigned long va, unsigned long lpid,
|
||||
unsigned long ap)
|
||||
{
|
||||
|
|
@ -416,31 +348,6 @@ static inline void _tlbie_pid(unsigned long pid, unsigned long ric)
|
|||
asm volatile("eieio; tlbsync; ptesync": : :"memory");
|
||||
}
|
||||
|
||||
static inline void _tlbie_pid_lpid(unsigned long pid, unsigned long lpid,
|
||||
unsigned long ric)
|
||||
{
|
||||
asm volatile("ptesync" : : : "memory");
|
||||
|
||||
/*
|
||||
* Workaround the fact that the "ric" argument to __tlbie_pid
|
||||
* must be a compile-time contraint to match the "i" constraint
|
||||
* in the asm statement.
|
||||
*/
|
||||
switch (ric) {
|
||||
case RIC_FLUSH_TLB:
|
||||
__tlbie_pid_lpid(pid, lpid, RIC_FLUSH_TLB);
|
||||
fixup_tlbie_pid_lpid(pid, lpid);
|
||||
break;
|
||||
case RIC_FLUSH_PWC:
|
||||
__tlbie_pid_lpid(pid, lpid, RIC_FLUSH_PWC);
|
||||
break;
|
||||
case RIC_FLUSH_ALL:
|
||||
default:
|
||||
__tlbie_pid_lpid(pid, lpid, RIC_FLUSH_ALL);
|
||||
fixup_tlbie_pid_lpid(pid, lpid);
|
||||
}
|
||||
asm volatile("eieio; tlbsync; ptesync" : : : "memory");
|
||||
}
|
||||
struct tlbiel_pid {
|
||||
unsigned long pid;
|
||||
unsigned long ric;
|
||||
|
|
@ -566,20 +473,6 @@ static inline void __tlbie_va_range(unsigned long start, unsigned long end,
|
|||
fixup_tlbie_va_range(addr - page_size, pid, ap);
|
||||
}
|
||||
|
||||
static inline void __tlbie_va_range_lpid(unsigned long start, unsigned long end,
|
||||
unsigned long pid, unsigned long lpid,
|
||||
unsigned long page_size,
|
||||
unsigned long psize)
|
||||
{
|
||||
unsigned long addr;
|
||||
unsigned long ap = mmu_get_ap(psize);
|
||||
|
||||
for (addr = start; addr < end; addr += page_size)
|
||||
__tlbie_va_lpid(addr, pid, lpid, ap, RIC_FLUSH_TLB);
|
||||
|
||||
fixup_tlbie_va_range_lpid(addr - page_size, pid, lpid, ap);
|
||||
}
|
||||
|
||||
static __always_inline void _tlbie_va(unsigned long va, unsigned long pid,
|
||||
unsigned long psize, unsigned long ric)
|
||||
{
|
||||
|
|
@ -660,18 +553,6 @@ static inline void _tlbie_va_range(unsigned long start, unsigned long end,
|
|||
asm volatile("eieio; tlbsync; ptesync": : :"memory");
|
||||
}
|
||||
|
||||
static inline void _tlbie_va_range_lpid(unsigned long start, unsigned long end,
|
||||
unsigned long pid, unsigned long lpid,
|
||||
unsigned long page_size,
|
||||
unsigned long psize, bool also_pwc)
|
||||
{
|
||||
asm volatile("ptesync" : : : "memory");
|
||||
if (also_pwc)
|
||||
__tlbie_pid_lpid(pid, lpid, RIC_FLUSH_PWC);
|
||||
__tlbie_va_range_lpid(start, end, pid, lpid, page_size, psize);
|
||||
asm volatile("eieio; tlbsync; ptesync" : : : "memory");
|
||||
}
|
||||
|
||||
static inline void _tlbiel_va_range_multicast(struct mm_struct *mm,
|
||||
unsigned long start, unsigned long end,
|
||||
unsigned long pid, unsigned long page_size,
|
||||
|
|
@ -1476,6 +1357,127 @@ void radix__flush_tlb_all(void)
|
|||
}
|
||||
|
||||
#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
|
||||
static __always_inline void __tlbie_pid_lpid(unsigned long pid,
|
||||
unsigned long lpid,
|
||||
unsigned long ric)
|
||||
{
|
||||
unsigned long rb, rs, prs, r;
|
||||
|
||||
rb = PPC_BIT(53); /* IS = 1 */
|
||||
rs = (pid << PPC_BITLSHIFT(31)) | (lpid & ~(PPC_BITMASK(0, 31)));
|
||||
prs = 1; /* process scoped */
|
||||
r = 1; /* radix format */
|
||||
|
||||
asm volatile(PPC_TLBIE_5(%0, %4, %3, %2, %1)
|
||||
: : "r"(rb), "i"(r), "i"(prs), "i"(ric), "r"(rs) : "memory");
|
||||
trace_tlbie(0, 0, rb, rs, ric, prs, r);
|
||||
}
|
||||
|
||||
static __always_inline void __tlbie_va_lpid(unsigned long va, unsigned long pid,
|
||||
unsigned long lpid,
|
||||
unsigned long ap, unsigned long ric)
|
||||
{
|
||||
unsigned long rb, rs, prs, r;
|
||||
|
||||
rb = va & ~(PPC_BITMASK(52, 63));
|
||||
rb |= ap << PPC_BITLSHIFT(58);
|
||||
rs = (pid << PPC_BITLSHIFT(31)) | (lpid & ~(PPC_BITMASK(0, 31)));
|
||||
prs = 1; /* process scoped */
|
||||
r = 1; /* radix format */
|
||||
|
||||
asm volatile(PPC_TLBIE_5(%0, %4, %3, %2, %1)
|
||||
: : "r"(rb), "i"(r), "i"(prs), "i"(ric), "r"(rs) : "memory");
|
||||
trace_tlbie(0, 0, rb, rs, ric, prs, r);
|
||||
}
|
||||
|
||||
static inline void fixup_tlbie_pid_lpid(unsigned long pid, unsigned long lpid)
|
||||
{
|
||||
/*
|
||||
* We can use any address for the invalidation, pick one which is
|
||||
* probably unused as an optimisation.
|
||||
*/
|
||||
unsigned long va = ((1UL << 52) - 1);
|
||||
|
||||
if (cpu_has_feature(CPU_FTR_P9_TLBIE_ERAT_BUG)) {
|
||||
asm volatile("ptesync" : : : "memory");
|
||||
__tlbie_pid_lpid(0, lpid, RIC_FLUSH_TLB);
|
||||
}
|
||||
|
||||
if (cpu_has_feature(CPU_FTR_P9_TLBIE_STQ_BUG)) {
|
||||
asm volatile("ptesync" : : : "memory");
|
||||
__tlbie_va_lpid(va, pid, lpid, mmu_get_ap(MMU_PAGE_64K),
|
||||
RIC_FLUSH_TLB);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void _tlbie_pid_lpid(unsigned long pid, unsigned long lpid,
|
||||
unsigned long ric)
|
||||
{
|
||||
asm volatile("ptesync" : : : "memory");
|
||||
|
||||
/*
|
||||
* Workaround the fact that the "ric" argument to __tlbie_pid
|
||||
* must be a compile-time contraint to match the "i" constraint
|
||||
* in the asm statement.
|
||||
*/
|
||||
switch (ric) {
|
||||
case RIC_FLUSH_TLB:
|
||||
__tlbie_pid_lpid(pid, lpid, RIC_FLUSH_TLB);
|
||||
fixup_tlbie_pid_lpid(pid, lpid);
|
||||
break;
|
||||
case RIC_FLUSH_PWC:
|
||||
__tlbie_pid_lpid(pid, lpid, RIC_FLUSH_PWC);
|
||||
break;
|
||||
case RIC_FLUSH_ALL:
|
||||
default:
|
||||
__tlbie_pid_lpid(pid, lpid, RIC_FLUSH_ALL);
|
||||
fixup_tlbie_pid_lpid(pid, lpid);
|
||||
}
|
||||
asm volatile("eieio; tlbsync; ptesync" : : : "memory");
|
||||
}
|
||||
|
||||
static inline void fixup_tlbie_va_range_lpid(unsigned long va,
|
||||
unsigned long pid,
|
||||
unsigned long lpid,
|
||||
unsigned long ap)
|
||||
{
|
||||
if (cpu_has_feature(CPU_FTR_P9_TLBIE_ERAT_BUG)) {
|
||||
asm volatile("ptesync" : : : "memory");
|
||||
__tlbie_pid_lpid(0, lpid, RIC_FLUSH_TLB);
|
||||
}
|
||||
|
||||
if (cpu_has_feature(CPU_FTR_P9_TLBIE_STQ_BUG)) {
|
||||
asm volatile("ptesync" : : : "memory");
|
||||
__tlbie_va_lpid(va, pid, lpid, ap, RIC_FLUSH_TLB);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void __tlbie_va_range_lpid(unsigned long start, unsigned long end,
|
||||
unsigned long pid, unsigned long lpid,
|
||||
unsigned long page_size,
|
||||
unsigned long psize)
|
||||
{
|
||||
unsigned long addr;
|
||||
unsigned long ap = mmu_get_ap(psize);
|
||||
|
||||
for (addr = start; addr < end; addr += page_size)
|
||||
__tlbie_va_lpid(addr, pid, lpid, ap, RIC_FLUSH_TLB);
|
||||
|
||||
fixup_tlbie_va_range_lpid(addr - page_size, pid, lpid, ap);
|
||||
}
|
||||
|
||||
static inline void _tlbie_va_range_lpid(unsigned long start, unsigned long end,
|
||||
unsigned long pid, unsigned long lpid,
|
||||
unsigned long page_size,
|
||||
unsigned long psize, bool also_pwc)
|
||||
{
|
||||
asm volatile("ptesync" : : : "memory");
|
||||
if (also_pwc)
|
||||
__tlbie_pid_lpid(pid, lpid, RIC_FLUSH_PWC);
|
||||
__tlbie_va_range_lpid(start, end, pid, lpid, page_size, psize);
|
||||
asm volatile("eieio; tlbsync; ptesync" : : : "memory");
|
||||
}
|
||||
|
||||
/*
|
||||
* Performs process-scoped invalidations for a given LPID
|
||||
* as part of H_RPT_INVALIDATE hcall.
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
#include <asm/mmu.h>
|
||||
#include <asm/mmu_context.h>
|
||||
#include <asm/paca.h>
|
||||
#include <asm/lppaca.h>
|
||||
#include <asm/ppc-opcode.h>
|
||||
#include <asm/cputable.h>
|
||||
#include <asm/cacheflush.h>
|
||||
|
|
|
|||
|
|
@ -645,7 +645,6 @@ static void perf_event_interrupt(struct pt_regs *regs)
|
|||
struct cpu_hw_events *cpuhw = this_cpu_ptr(&cpu_hw_events);
|
||||
struct perf_event *event;
|
||||
unsigned long val;
|
||||
int found = 0;
|
||||
|
||||
for (i = 0; i < ppmu->n_counter; ++i) {
|
||||
event = cpuhw->event[i];
|
||||
|
|
@ -654,7 +653,6 @@ static void perf_event_interrupt(struct pt_regs *regs)
|
|||
if ((int)val < 0) {
|
||||
if (event) {
|
||||
/* event has overflowed */
|
||||
found = 1;
|
||||
record_and_restart(event, val, regs);
|
||||
} else {
|
||||
/*
|
||||
|
|
@ -672,11 +670,13 @@ static void perf_event_interrupt(struct pt_regs *regs)
|
|||
isync();
|
||||
}
|
||||
|
||||
void hw_perf_event_setup(int cpu)
|
||||
static int fsl_emb_pmu_prepare_cpu(unsigned int cpu)
|
||||
{
|
||||
struct cpu_hw_events *cpuhw = &per_cpu(cpu_hw_events, cpu);
|
||||
|
||||
memset(cpuhw, 0, sizeof(*cpuhw));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int register_fsl_emb_pmu(struct fsl_emb_pmu *pmu)
|
||||
|
|
@ -689,6 +689,8 @@ int register_fsl_emb_pmu(struct fsl_emb_pmu *pmu)
|
|||
pmu->name);
|
||||
|
||||
perf_pmu_register(&fsl_emb_pmu, "cpu", PERF_TYPE_RAW);
|
||||
cpuhp_setup_state(CPUHP_PERF_POWER, "perf/powerpc:prepare",
|
||||
fsl_emb_pmu_prepare_cpu, NULL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,8 +26,8 @@
|
|||
#include <linux/rtc.h>
|
||||
#include <linux/of_address.h>
|
||||
|
||||
#include <asm/early_ioremap.h>
|
||||
#include <asm/sections.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/machdep.h>
|
||||
#include <asm/time.h>
|
||||
#include <asm/nvram.h>
|
||||
|
|
@ -182,7 +182,7 @@ static int __init via_calibrate_decr(void)
|
|||
return 0;
|
||||
}
|
||||
of_node_put(vias);
|
||||
via = ioremap(rsrc.start, resource_size(&rsrc));
|
||||
via = early_ioremap(rsrc.start, resource_size(&rsrc));
|
||||
if (via == NULL) {
|
||||
printk(KERN_ERR "Failed to map VIA for timer calibration !\n");
|
||||
return 0;
|
||||
|
|
@ -207,7 +207,7 @@ static int __init via_calibrate_decr(void)
|
|||
|
||||
ppc_tb_freq = (dstart - dend) * 100 / 6;
|
||||
|
||||
iounmap(via);
|
||||
early_iounmap((void *)via, resource_size(&rsrc));
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -89,6 +89,7 @@ BEGIN_FTR_SECTION; \
|
|||
b 1f; \
|
||||
END_FTR_SECTION(0, 1); \
|
||||
LOAD_REG_ADDR(r12, hcall_tracepoint_refcount) ; \
|
||||
ld r12,0(r12); \
|
||||
std r12,32(r1); \
|
||||
cmpdi r12,0; \
|
||||
bne- LABEL; \
|
||||
|
|
|
|||
|
|
@ -638,16 +638,8 @@ static const struct proc_ops vcpudispatch_stats_freq_proc_ops = {
|
|||
|
||||
static int __init vcpudispatch_stats_procfs_init(void)
|
||||
{
|
||||
/*
|
||||
* Avoid smp_processor_id while preemptible. All CPUs should have
|
||||
* the same value for lppaca_shared_proc.
|
||||
*/
|
||||
preempt_disable();
|
||||
if (!lppaca_shared_proc(get_lppaca())) {
|
||||
preempt_enable();
|
||||
if (!lppaca_shared_proc())
|
||||
return 0;
|
||||
}
|
||||
preempt_enable();
|
||||
|
||||
if (!proc_create("powerpc/vcpudispatch_stats", 0600, NULL,
|
||||
&vcpudispatch_stats_proc_ops))
|
||||
|
|
|
|||
|
|
@ -205,7 +205,7 @@ static void parse_ppp_data(struct seq_file *m)
|
|||
ppp_data.active_system_procs);
|
||||
|
||||
/* pool related entries are appropriate for shared configs */
|
||||
if (lppaca_shared_proc(get_lppaca())) {
|
||||
if (lppaca_shared_proc()) {
|
||||
unsigned long pool_idle_time, pool_procs;
|
||||
|
||||
seq_printf(m, "pool=%d\n", ppp_data.pool_num);
|
||||
|
|
@ -616,7 +616,7 @@ static int pseries_lparcfg_data(struct seq_file *m, void *v)
|
|||
partition_potential_processors);
|
||||
|
||||
seq_printf(m, "shared_processor_mode=%d\n",
|
||||
lppaca_shared_proc(get_lppaca()));
|
||||
lppaca_shared_proc());
|
||||
|
||||
#ifdef CONFIG_PPC_64S_HASH_MMU
|
||||
if (!radix_enabled())
|
||||
|
|
|
|||
|
|
@ -846,7 +846,7 @@ static void __init pSeries_setup_arch(void)
|
|||
if (firmware_has_feature(FW_FEATURE_LPAR)) {
|
||||
vpa_init(boot_cpuid);
|
||||
|
||||
if (lppaca_shared_proc(get_lppaca())) {
|
||||
if (lppaca_shared_proc()) {
|
||||
static_branch_enable(&shared_processor);
|
||||
pv_spinlocks_init();
|
||||
#ifdef CONFIG_PARAVIRT_TIME_ACCOUNTING
|
||||
|
|
|
|||
|
|
@ -25,8 +25,10 @@ unsigned long mpc5xxx_fwnode_get_bus_frequency(struct fwnode_handle *fwnode)
|
|||
|
||||
fwnode_for_each_parent_node(fwnode, parent) {
|
||||
ret = fwnode_property_read_u32(parent, "bus-frequency", &bus_freq);
|
||||
if (!ret)
|
||||
if (!ret) {
|
||||
fwnode_handle_put(parent);
|
||||
return bus_freq;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@
|
|||
#ifdef CONFIG_PPC64
|
||||
#include <asm/hvcall.h>
|
||||
#include <asm/paca.h>
|
||||
#include <asm/lppaca.h>
|
||||
#endif
|
||||
|
||||
#include "nonstdio.h"
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
* and padding is also possible, the limits need to be generous.
|
||||
*/
|
||||
#define PAES_MIN_KEYSIZE 16
|
||||
#define PAES_MAX_KEYSIZE 320
|
||||
#define PAES_MAX_KEYSIZE MAXEP11AESKEYBLOBSIZE
|
||||
|
||||
static u8 *ctrblk;
|
||||
static DEFINE_MUTEX(ctrblk_lock);
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
#define MAXCLRKEYSIZE 32 /* a clear key value may be up to 32 bytes */
|
||||
#define MAXAESCIPHERKEYSIZE 136 /* our aes cipher keys have always 136 bytes */
|
||||
#define MINEP11AESKEYBLOBSIZE 256 /* min EP11 AES key blob size */
|
||||
#define MAXEP11AESKEYBLOBSIZE 320 /* max EP11 AES key blob size */
|
||||
#define MAXEP11AESKEYBLOBSIZE 336 /* max EP11 AES key blob size */
|
||||
|
||||
/* Minimum size of a key blob */
|
||||
#define MINKEYBLOBSIZE SECKEYBLOBSIZE
|
||||
|
|
|
|||
|
|
@ -503,6 +503,8 @@ static struct attribute_group ipl_ccw_attr_group_lpar = {
|
|||
|
||||
static struct attribute *ipl_unknown_attrs[] = {
|
||||
&sys_ipl_type_attr.attr,
|
||||
&sys_ipl_secure_attr.attr,
|
||||
&sys_ipl_has_secure_attr.attr,
|
||||
NULL,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ CONFIG_TTY_CHAN=y
|
|||
CONFIG_XTERM_CHAN=y
|
||||
CONFIG_CON_CHAN="pts"
|
||||
CONFIG_SSL_CHAN="pts"
|
||||
CONFIG_SOUND=m
|
||||
CONFIG_UML_SOUND=m
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ CONFIG_TTY_CHAN=y
|
|||
CONFIG_XTERM_CHAN=y
|
||||
CONFIG_CON_CHAN="pts"
|
||||
CONFIG_SSL_CHAN="pts"
|
||||
CONFIG_SOUND=m
|
||||
CONFIG_UML_SOUND=m
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
|
|
|
|||
|
|
@ -111,24 +111,14 @@ config SSL_CHAN
|
|||
|
||||
config UML_SOUND
|
||||
tristate "Sound support"
|
||||
depends on SOUND
|
||||
select SOUND_OSS_CORE
|
||||
help
|
||||
This option enables UML sound support. If enabled, it will pull in
|
||||
soundcore and the UML hostaudio relay, which acts as a intermediary
|
||||
the UML hostaudio relay, which acts as a intermediary
|
||||
between the host's dsp and mixer devices and the UML sound system.
|
||||
It is safe to say 'Y' here.
|
||||
|
||||
config SOUND
|
||||
tristate
|
||||
default UML_SOUND
|
||||
|
||||
config SOUND_OSS_CORE
|
||||
bool
|
||||
default UML_SOUND
|
||||
|
||||
config HOSTAUDIO
|
||||
tristate
|
||||
default UML_SOUND
|
||||
|
||||
endmenu
|
||||
|
||||
menu "UML Network Devices"
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ obj-$(CONFIG_UML_NET) += net.o
|
|||
obj-$(CONFIG_MCONSOLE) += mconsole.o
|
||||
obj-$(CONFIG_MMAPPER) += mmapper_kern.o
|
||||
obj-$(CONFIG_BLK_DEV_UBD) += ubd.o
|
||||
obj-$(CONFIG_HOSTAUDIO) += hostaudio.o
|
||||
obj-$(CONFIG_UML_SOUND) += hostaudio.o
|
||||
obj-$(CONFIG_NULL_CHAN) += null.o
|
||||
obj-$(CONFIG_PORT_CHAN) += port.o
|
||||
obj-$(CONFIG_PTY_CHAN) += pty.o
|
||||
|
|
|
|||
|
|
@ -485,11 +485,25 @@ SYM_CODE_START(startup_64)
|
|||
/* Save the trampoline address in RCX */
|
||||
movq %rax, %rcx
|
||||
|
||||
/* Set up 32-bit addressable stack */
|
||||
leaq TRAMPOLINE_32BIT_STACK_END(%rcx), %rsp
|
||||
|
||||
/*
|
||||
* Load the address of trampoline_return() into RDI.
|
||||
* It will be used by the trampoline to return to the main code.
|
||||
* Preserve live 64-bit registers on the stack: this is necessary
|
||||
* because the architecture does not guarantee that GPRs will retain
|
||||
* their full 64-bit values across a 32-bit mode switch.
|
||||
*/
|
||||
pushq %rbp
|
||||
pushq %rbx
|
||||
pushq %rsi
|
||||
|
||||
/*
|
||||
* Push the 64-bit address of trampoline_return() onto the new stack.
|
||||
* It will be used by the trampoline to return to the main code. Due to
|
||||
* the 32-bit mode switch, it cannot be kept it in a register either.
|
||||
*/
|
||||
leaq trampoline_return(%rip), %rdi
|
||||
pushq %rdi
|
||||
|
||||
/* Switch to compatibility mode (CS.L = 0 CS.D = 1) via far return */
|
||||
pushq $__KERNEL32_CS
|
||||
|
|
@ -497,6 +511,11 @@ SYM_CODE_START(startup_64)
|
|||
pushq %rax
|
||||
lretq
|
||||
trampoline_return:
|
||||
/* Restore live 64-bit registers */
|
||||
popq %rsi
|
||||
popq %rbx
|
||||
popq %rbp
|
||||
|
||||
/* Restore the stack, the 32-bit trampoline uses its own stack */
|
||||
leaq rva(boot_stack_end)(%rbx), %rsp
|
||||
|
||||
|
|
@ -606,7 +625,7 @@ SYM_FUNC_END(.Lrelocated)
|
|||
/*
|
||||
* This is the 32-bit trampoline that will be copied over to low memory.
|
||||
*
|
||||
* RDI contains the return address (might be above 4G).
|
||||
* Return address is at the top of the stack (might be above 4G).
|
||||
* ECX contains the base address of the trampoline memory.
|
||||
* Non zero RDX means trampoline needs to enable 5-level paging.
|
||||
*/
|
||||
|
|
@ -616,9 +635,6 @@ SYM_CODE_START(trampoline_32bit_src)
|
|||
movl %eax, %ds
|
||||
movl %eax, %ss
|
||||
|
||||
/* Set up new stack */
|
||||
leal TRAMPOLINE_32BIT_STACK_END(%ecx), %esp
|
||||
|
||||
/* Disable paging */
|
||||
movl %cr0, %eax
|
||||
btrl $X86_CR0_PG_BIT, %eax
|
||||
|
|
@ -695,7 +711,7 @@ SYM_CODE_END(trampoline_32bit_src)
|
|||
.code64
|
||||
SYM_FUNC_START_LOCAL_NOALIGN(.Lpaging_enabled)
|
||||
/* Return from the trampoline */
|
||||
jmp *%rdi
|
||||
retq
|
||||
SYM_FUNC_END(.Lpaging_enabled)
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -6078,8 +6078,18 @@ void spr_uncore_cpu_init(void)
|
|||
|
||||
type = uncore_find_type_by_id(uncore_msr_uncores, UNCORE_SPR_CHA);
|
||||
if (type) {
|
||||
/*
|
||||
* The value from the discovery table (stored in the type->num_boxes
|
||||
* of UNCORE_SPR_CHA) is incorrect on some SPR variants because of a
|
||||
* firmware bug. Using the value from SPR_MSR_UNC_CBO_CONFIG to replace it.
|
||||
*/
|
||||
rdmsrl(SPR_MSR_UNC_CBO_CONFIG, num_cbo);
|
||||
type->num_boxes = num_cbo;
|
||||
/*
|
||||
* The MSR doesn't work on the EMR XCC, but the firmware bug doesn't impact
|
||||
* the EMR XCC. Don't let the value from the MSR replace the existing value.
|
||||
*/
|
||||
if (num_cbo)
|
||||
type->num_boxes = num_cbo;
|
||||
}
|
||||
spr_uncore_iio_free_running.num_boxes = uncore_type_max_boxes(uncore_msr_uncores, UNCORE_SPR_IIO);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,8 +50,8 @@ void __init sme_enable(struct boot_params *bp);
|
|||
|
||||
int __init early_set_memory_decrypted(unsigned long vaddr, unsigned long size);
|
||||
int __init early_set_memory_encrypted(unsigned long vaddr, unsigned long size);
|
||||
void __init early_set_mem_enc_dec_hypercall(unsigned long vaddr, int npages,
|
||||
bool enc);
|
||||
void __init early_set_mem_enc_dec_hypercall(unsigned long vaddr,
|
||||
unsigned long size, bool enc);
|
||||
|
||||
void __init mem_encrypt_free_decrypted_mem(void);
|
||||
|
||||
|
|
@ -84,7 +84,7 @@ early_set_memory_decrypted(unsigned long vaddr, unsigned long size) { return 0;
|
|||
static inline int __init
|
||||
early_set_memory_encrypted(unsigned long vaddr, unsigned long size) { return 0; }
|
||||
static inline void __init
|
||||
early_set_mem_enc_dec_hypercall(unsigned long vaddr, int npages, bool enc) {}
|
||||
early_set_mem_enc_dec_hypercall(unsigned long vaddr, unsigned long size, bool enc) {}
|
||||
|
||||
static inline void mem_encrypt_free_decrypted_mem(void) { }
|
||||
|
||||
|
|
|
|||
|
|
@ -125,11 +125,12 @@
|
|||
* instance, and is *not* included in this mask since
|
||||
* pte_modify() does modify it.
|
||||
*/
|
||||
#define _PAGE_CHG_MASK (PTE_PFN_MASK | _PAGE_PCD | _PAGE_PWT | \
|
||||
_PAGE_SPECIAL | _PAGE_ACCESSED | _PAGE_DIRTY | \
|
||||
_PAGE_SOFT_DIRTY | _PAGE_DEVMAP | _PAGE_ENC | \
|
||||
_PAGE_UFFD_WP)
|
||||
#define _HPAGE_CHG_MASK (_PAGE_CHG_MASK | _PAGE_PSE)
|
||||
#define _COMMON_PAGE_CHG_MASK (PTE_PFN_MASK | _PAGE_PCD | _PAGE_PWT | \
|
||||
_PAGE_SPECIAL | _PAGE_ACCESSED | _PAGE_DIRTY |\
|
||||
_PAGE_SOFT_DIRTY | _PAGE_DEVMAP | _PAGE_ENC | \
|
||||
_PAGE_UFFD_WP)
|
||||
#define _PAGE_CHG_MASK (_COMMON_PAGE_CHG_MASK | _PAGE_PAT)
|
||||
#define _HPAGE_CHG_MASK (_COMMON_PAGE_CHG_MASK | _PAGE_PSE | _PAGE_PAT_LARGE)
|
||||
|
||||
/*
|
||||
* The cache modes defined here are used to translate between pure SW usage
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue