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
@ -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 @@ button-restart {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&gmac0 {
|
||||
phy-mode = "rgmii";
|
||||
phy-handle = <&bcm54210e>;
|
||||
|
||||
mdio {
|
||||
/delete-node/ switch@1e;
|
||||
|
||||
bcm54210e: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -83,3 +83,16 @@ pcie0_chipcommon: chipcommon@0 {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&gmac0 {
|
||||
phy-mode = "rgmii";
|
||||
phy-handle = <&bcm54210e>;
|
||||
|
||||
mdio {
|
||||
/delete-node/ switch@1e;
|
||||
|
||||
bcm54210e: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -135,8 +135,8 @@ port@4 {
|
||||
label = "lan4";
|
||||
};
|
||||
|
||||
port@5 {
|
||||
reg = <5>;
|
||||
port@8 {
|
||||
reg = <8>;
|
||||
label = "cpu";
|
||||
ethernet = <&gmac0>;
|
||||
};
|
||||
|
@ -127,6 +127,9 @@ uart0: serial@300 {
|
||||
|
||||
pcie0: pcie@2000 {
|
||||
reg = <0x00002000 0x1000>;
|
||||
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
};
|
||||
|
||||
usb2: usb2@4000 {
|
||||
@ -156,8 +159,6 @@ ehci_port2: port@2 {
|
||||
};
|
||||
|
||||
ohci: usb@d000 {
|
||||
#usb-cells = <0>;
|
||||
|
||||
compatible = "generic-ohci";
|
||||
reg = <0xd000 0x1000>;
|
||||
interrupt-parent = <&gic>;
|
||||
|
@ -60,9 +60,9 @@ button-wps {
|
||||
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 @@ usdhc1: mmc@30b40000 {
|
||||
<&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 @@ usdhc2: mmc@30b50000 {
|
||||
<&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 @@ usdhc3: mmc@30b60000 {
|
||||
<&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 @@ sdhci: mmc@7824900 {
|
||||
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 @@ srom-cs1-bus@18000000 {
|
||||
|
||||
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 @@ pmic_ap_clk: clock-0 {
|
||||
|
||||
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 @@ backlight {
|
||||
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 @@ retram: retram@38000000 {
|
||||
reg = <0x38000000 0x10000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
gpu_reserved: gpu@dc000000 {
|
||||
reg = <0xdc000000 0x4000000>;
|
||||
no-map;
|
||||
};
|
||||
};
|
||||
|
||||
led: gpio_leds {
|
||||
@ -102,9 +97,11 @@ &adc {
|
||||
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 @@ ðernet0 {
|
||||
phy-handle = <&phy0>;
|
||||
st,eth-ref-clk-sel;
|
||||
|
||||
mdio0 {
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,dwmac-mdio";
|
||||
@ -183,10 +180,6 @@ phy0: ethernet-phy@0 {
|
||||
};
|
||||
};
|
||||
|
||||
&gpu {
|
||||
contiguous-area = <&gpu_reserved>;
|
||||
};
|
||||
|
||||
&hash1 {
|
||||
status = "okay";
|
||||
};
|
||||
@ -375,8 +368,8 @@ &iwdg2 {
|
||||
&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 @@ ðernet0 {
|
||||
max-speed = <1000>;
|
||||
phy-handle = <&phy0>;
|
||||
|
||||
mdio0 {
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,dwmac-mdio";
|
||||
|
@ -112,7 +112,7 @@ ðernet0 {
|
||||
phy-handle = <ðphy>;
|
||||
status = "okay";
|
||||
|
||||
mdio0 {
|
||||
mdio {
|
||||
compatible = "snps,dwmac-mdio";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
@ -62,11 +62,6 @@ retram: retram@38000000 {
|
||||
reg = <0x38000000 0x10000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
gpu_reserved: gpu@d4000000 {
|
||||
reg = <0xd4000000 0x4000000>;
|
||||
no-map;
|
||||
};
|
||||
};
|
||||
|
||||
led {
|
||||
@ -80,11 +75,6 @@ led-blue {
|
||||
};
|
||||
};
|
||||
|
||||
&gpu {
|
||||
contiguous-area = <&gpu_reserved>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c2_pins_a>;
|
||||
@ -240,8 +230,8 @@ &iwdg2 {
|
||||
&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 @@ ðernet0 {
|
||||
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 @@ &adc {
|
||||
vdda-supply = <&vdda>;
|
||||
vref-supply = <&vdda>;
|
||||
status = "okay";
|
||||
|
||||
adc1: adc@0 {
|
||||
st,min-sample-time-nsecs = <5000>;
|
||||
st,adc-channels = <0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
adc2: adc@100 {
|
||||
st,adc-channels = <1>;
|
||||
st,min-sample-time-nsecs = <5000>;
|
||||
status = "okay";
|
||||
&adc1 {
|
||||
channel@0 {
|
||||
reg = <0>;
|
||||
st,min-sample-time-ns = <5000>;
|
||||
};
|
||||
};
|
||||
|
||||
&adc2 {
|
||||
channel@1 {
|
||||
reg = <1>;
|
||||
st,min-sample-time-ns = <5000>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -125,7 +127,7 @@ ðernet0 {
|
||||
max-speed = <100>;
|
||||
phy-handle = <&phy0>;
|
||||
|
||||
mdio0 {
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,dwmac-mdio";
|
||||
@ -414,8 +416,8 @@ &iwdg2 {
|
||||
&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 @@ &adc {
|
||||
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";
|
||||
};
|
||||
|
||||
adc2: adc@100 {
|
||||
st,adc-channels = <0 1 2>;
|
||||
st,min-sample-time-nsecs = <5000>;
|
||||
status = "okay";
|
||||
&adc1 {
|
||||
channel@0 {
|
||||
reg = <0>;
|
||||
st,min-sample-time-ns = <5000>;
|
||||
};
|
||||
|
||||
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 @@ ðernet0 {
|
||||
max-speed = <1000>;
|
||||
phy-handle = <&phy0>;
|
||||
|
||||
mdio0 {
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,dwmac-mdio";
|
||||
|
@ -78,7 +78,7 @@ ðernet0 {
|
||||
max-speed = <1000>;
|
||||
phy-handle = <&phy0>;
|
||||
|
||||
mdio0 {
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,dwmac-mdio";
|
||||
|
@ -141,7 +141,7 @@ ðernet0 {
|
||||
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 @@ serial@70006000 {
|
||||
|
||||
uartd: serial@70006300 {
|
||||
compatible = "nvidia,tegra30-hsuart";
|
||||
reset-names = "serial";
|
||||
status = "okay";
|
||||
|
||||
bluetooth {
|
||||
|
@ -2004,6 +2004,7 @@ interrupt-controller@2a40000 {
|
||||
|
||||
serial@3100000 {
|
||||
compatible = "nvidia,tegra194-hsuart";
|
||||
reset-names = "serial";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
@ -289,9 +289,9 @@ camera_rear@3b {
|
||||
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 @@ light-sensor@23 {
|
||||
pinctrl-0 = <&light_int_default>;
|
||||
|
||||
vdd-supply = <&pm8916_l17>;
|
||||
vio-supply = <&pm8916_l6>;
|
||||
vddio-supply = <&pm8916_l6>;
|
||||
};
|
||||
|
||||
gyroscope@68 {
|
||||
|
@ -81,7 +81,7 @@ synaptics@20 {
|
||||
#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 @@ dsi1: dsi@996000 {
|
||||
reg-names = "dsi_ctrl";
|
||||
|
||||
interrupt-parent = <&mdss>;
|
||||
interrupts = <4>;
|
||||
interrupts = <5>;
|
||||
|
||||
clocks = <&mmcc MDSS_MDP_CLK>,
|
||||
<&mmcc MDSS_BYTE1_CLK>,
|
||||
@ -3292,6 +3292,9 @@ usb2: usb@76f8800 {
|
||||
#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 @@ mmss_smmu: iommu@cd00000 {
|
||||
|
||||
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 @@ mmss_smmu: iommu@cd00000 {
|
||||
<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_lsid5: pmic@5 {
|
||||
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_lpg: pwm {
|
||||
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_spmi_regulators: regulators {
|
||||
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_vadc: adc@3100 {
|
||||
};
|
||||
|
||||
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 @@ vreg_misc_3p3: regulator-misc-3p3 {
|
||||
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 @@ edp_bl_reg_en: edp-bl-reg-en-state {
|
||||
};
|
||||
|
||||
misc_3p3_reg_en: misc-3p3-reg-en-state {
|
||||
pins = "gpio1";
|
||||
pins = "gpio2";
|
||||
function = "normal";
|
||||
};
|
||||
};
|
||||
|
@ -347,7 +347,7 @@ edp_bl_pwm: edp-bl-pwm-state {
|
||||
};
|
||||
|
||||
&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 @@ CLUSTER_SLEEP_0: cluster-sleep-0 {
|
||||
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 @@ gcc: clock-controller@100000 {
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
#power-domain-cells = <1>;
|
||||
power-domains = <&rpmhpd SDM845_CX>;
|
||||
};
|
||||
|
||||
qfprom@784000 {
|
||||
@ -2520,7 +2521,7 @@ ufs_mem_hc: ufshc@1d84000 {
|
||||
<0 0>,
|
||||
<0 0>,
|
||||
<0 0>,
|
||||
<0 300000000>;
|
||||
<75000000 300000000>;
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
|
@ -306,11 +306,6 @@ pil_ipa_gsi_mem: memory@8b710000 {
|
||||
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 @@ removed_region: memory@c0000000 {
|
||||
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 @@ i2c7: i2c@89c000 {
|
||||
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 @@ &framebuffer {
|
||||
};
|
||||
|
||||
&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 @@ g-assist-key {
|
||||
};
|
||||
};
|
||||
|
||||
&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 @@ framebuffer: framebuffer@9c000000 {
|
||||
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 @@ &pcie2_phy {
|
||||
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 @@ CPU0: cpu@0 {
|
||||
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 @@ CPU1: cpu@100 {
|
||||
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 @@ CPU2: cpu@200 {
|
||||
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 @@ CPU3: cpu@300 {
|
||||
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 @@ pcie0: pci@1c00000 {
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pcie0_default_state>;
|
||||
dma-coherent;
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
@ -1968,6 +1969,7 @@ pcie1: pci@1c08000 {
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pcie1_default_state>;
|
||||
dma-coherent;
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
@ -2076,6 +2078,7 @@ pcie2: pci@1c10000 {
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pcie2_default_state>;
|
||||
dma-coherent;
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
|
@ -63,7 +63,7 @@ cpus {
|
||||
|
||||
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 @@ L3_0: l3-cache {
|
||||
|
||||
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 @@ L2_100: l2-cache {
|
||||
|
||||
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 @@ L2_200: l2-cache {
|
||||
|
||||
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 @@ L2_300: l2-cache {
|
||||
|
||||
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 @@ L2_400: l2-cache {
|
||||
|
||||
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 @@ L2_500: l2-cache {
|
||||
|
||||
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 @@ L2_600: l2-cache {
|
||||
|
||||
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 @@ LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 {
|
||||
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 @@ BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
|
||||
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 @@ cpufreq_hw: cpufreq@18591000 {
|
||||
<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,9 +25,11 @@ 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,7 +6078,17 @@ 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);
|
||||
/*
|
||||
* 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 | \
|
||||
#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 _HPAGE_CHG_MASK (_PAGE_CHG_MASK | _PAGE_PSE)
|
||||
#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…
Reference in New Issue
Block a user