Linux 5.12.18
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.12.18 kernel.
All users of the 5.12 kernel series must upgrade.
The updated 5.12.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.12.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/Makefile | 2 Makefile | 2 arch/alpha/include/uapi/asm/socket.h | 2 arch/arm64/include/asm/tlb.h | 4 arch/mips/Kconfig | 2 arch/mips/boot/dts/ingenic/ci20.dts | 4 arch/mips/include/asm/cpu-features.h | 4 arch/mips/include/asm/hugetlb.h | 8 arch/mips/include/asm/mipsregs.h | 8 arch/mips/include/asm/pgalloc.h | 10 arch/mips/include/uapi/asm/socket.h | 2 arch/mips/kernel/cpu-probe.c | 5 arch/mips/loongson64/numa.c | 3 arch/parisc/include/uapi/asm/socket.h | 2 arch/powerpc/include/asm/barrier.h | 2 arch/powerpc/mm/fault.c | 4 arch/powerpc/platforms/powernv/vas-window.c | 9 arch/sparc/include/uapi/asm/socket.h | 2 block/blk-rq-qos.c | 4 drivers/ata/ahci_sunxi.c | 2 drivers/atm/iphase.c | 2 drivers/atm/nicstar.c | 26 drivers/bluetooth/btusb.c | 36 drivers/char/ipmi/ipmi_watchdog.c | 22 drivers/clk/renesas/r8a77995-cpg-mssr.c | 1 drivers/clk/renesas/rcar-usb2-clock-sel.c | 24 drivers/clk/tegra/clk-periph-gate.c | 72 drivers/clk/tegra/clk-periph.c | 11 drivers/clk/tegra/clk-pll.c | 9 drivers/clk/tegra/clk-tegra124-emc.c | 4 drivers/clocksource/arm_arch_timer.c | 2 drivers/extcon/extcon-intel-mrfld.c | 9 drivers/firmware/qemu_fw_cfg.c | 8 drivers/fpga/stratix10-soc.c | 1 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 21 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 10 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 5 drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 11 drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_umc.h | 5 drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c | 41 drivers/gpu/drm/amd/amdgpu/nv.c | 6 drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 4 drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 6 drivers/gpu/drm/amd/amdgpu/umc_v8_7.c | 2 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 68 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 24 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 1 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c | 41 drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c | 2 drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 2 drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 573 ++--- drivers/gpu/drm/amd/display/dc/dc_types.h | 5 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c | 21 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c | 2 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c | 14 drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c | 78 drivers/gpu/drm/amd/display/dc/dml/display_mode_structs.h | 2 drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.c | 13 drivers/gpu/drm/amd/display/dc/inc/hw/transform.h | 4 drivers/gpu/drm/amd/display/dc/irq_types.h | 2 drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c | 1 drivers/gpu/drm/amd/display/modules/hdcp/hdcp1_execution.c | 4 drivers/gpu/drm/amd/include/navi10_enum.h | 2 drivers/gpu/drm/arm/malidp_planes.c | 9 drivers/gpu/drm/ast/ast_dp501.c | 139 + drivers/gpu/drm/ast/ast_drv.h | 12 drivers/gpu/drm/ast/ast_main.c | 10 drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c | 4 drivers/gpu/drm/bridge/cdns-dsi.c | 2 drivers/gpu/drm/bridge/lontium-lt9611.c | 1 drivers/gpu/drm/bridge/nwl-dsi.c | 61 drivers/gpu/drm/drm_dp_helper.c | 7 drivers/gpu/drm/i915/display/intel_dp.c | 2 drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 13 drivers/gpu/drm/ingenic/ingenic-ipu.c | 2 drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 2 drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 2 drivers/gpu/drm/msm/disp/mdp4/mdp4_plane.c | 8 drivers/gpu/drm/mxsfb/Kconfig | 1 drivers/gpu/drm/nouveau/nouveau_display.c | 1 drivers/gpu/drm/radeon/radeon_display.c | 1 drivers/gpu/drm/radeon/radeon_drv.c | 8 drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c | 4 drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 21 drivers/gpu/drm/scheduler/sched_entity.c | 8 drivers/gpu/drm/scheduler/sched_main.c | 24 drivers/gpu/drm/tegra/dc.c | 10 drivers/gpu/drm/tegra/drm.c | 2 drivers/gpu/drm/vc4/vc4_crtc.c | 5 drivers/gpu/drm/vc4/vc4_drv.h | 2 drivers/gpu/drm/vc4/vc4_hdmi.c | 10 drivers/gpu/drm/vc4/vc4_txp.c | 2 drivers/gpu/drm/virtio/virtgpu_kms.c | 1 drivers/gpu/drm/zte/Kconfig | 1 drivers/hwtracing/coresight/coresight-core.c | 2 drivers/hwtracing/coresight/coresight-tmc-etf.c | 2 drivers/infiniband/core/cma.c | 3 drivers/infiniband/hw/cxgb4/qp.c | 1 drivers/infiniband/sw/rxe/rxe_mr.c | 2 drivers/infiniband/ulp/isert/ib_isert.c | 4 drivers/infiniband/ulp/isert/ib_isert.h | 3 drivers/infiniband/ulp/rtrs/rtrs-pri.h | 13 drivers/ipack/carriers/tpci200.c | 5 drivers/isdn/hardware/mISDN/hfcpci.c | 2 drivers/md/dm-writecache.c | 48 drivers/md/dm-zoned-metadata.c | 7 drivers/md/dm.c | 8 drivers/md/persistent-data/dm-btree-remove.c | 3 drivers/md/persistent-data/dm-space-map-disk.c | 9 drivers/md/persistent-data/dm-space-map-metadata.c | 9 drivers/media/i2c/ccs/ccs-core.c | 32 drivers/media/i2c/ccs/ccs-limits.c | 4 drivers/media/i2c/ccs/ccs-limits.h | 4 drivers/media/i2c/ccs/ccs-regs.h | 6 drivers/media/i2c/saa6588.c | 4 drivers/media/pci/bt8xx/bttv-driver.c | 6 drivers/media/pci/saa7134/saa7134-video.c | 6 drivers/media/platform/davinci/vpbe_display.c | 2 drivers/media/platform/davinci/vpbe_venc.c | 6 drivers/media/rc/bpf-lirc.c | 3 drivers/media/usb/dvb-usb/dtv5100.c | 7 drivers/media/usb/gspca/sq905.c | 2 drivers/media/usb/gspca/sunplus.c | 8 drivers/media/usb/uvc/uvc_video.c | 27 drivers/media/usb/zr364xx/zr364xx.c | 1 drivers/media/v4l2-core/v4l2-ioctl.c | 2 drivers/mfd/syscon.c | 2 drivers/misc/lkdtm/bugs.c | 3 drivers/misc/lkdtm/core.c | 2 drivers/mmc/core/core.c | 7 drivers/mmc/core/sd.c | 10 drivers/mmc/host/sdhci-acpi.c | 11 drivers/mmc/host/sdhci.c | 4 drivers/mmc/host/sdhci.h | 1 drivers/net/dsa/ocelot/seville_vsc9953.c | 5 drivers/net/ethernet/broadcom/genet/bcmmii.c | 4 drivers/net/ethernet/freescale/fec.h | 5 drivers/net/ethernet/freescale/fec_main.c | 43 drivers/net/ethernet/ibm/ibmvnic.c | 3 drivers/net/ethernet/intel/e100.c | 12 drivers/net/ethernet/intel/i40e/i40e_ptp.c | 8 drivers/net/ethernet/intel/ice/ice_ethtool.c | 6 drivers/net/ethernet/intel/ice/ice_lan_tx_rx.h | 4 drivers/net/ethernet/intel/ice/ice_type.h | 2 drivers/net/ethernet/intel/igb/igb_main.c | 9 drivers/net/ethernet/intel/igbvf/netdev.c | 4 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 4 drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 6 drivers/net/ethernet/mellanox/mlx5/core/lag.c | 19 drivers/net/ethernet/micrel/ks8842.c | 4 drivers/net/ethernet/moxa/moxart_ether.c | 5 drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 19 drivers/net/ethernet/realtek/r8169_main.c | 1 drivers/net/ethernet/sfc/ef10_sriov.c | 25 drivers/net/ethernet/sgi/ioc3-eth.c | 4 drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 21 drivers/net/ethernet/xilinx/xilinx_emaclite.c | 5 drivers/net/fjes/fjes_main.c | 4 drivers/net/ipa/ipa_main.c | 1 drivers/net/mdio/mdio-ipq8064.c | 33 drivers/net/phy/realtek.c | 15 drivers/net/virtio_net.c | 22 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 24 drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 3 drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c | 15 drivers/net/wireless/intel/iwlwifi/mvm/time-event.c | 4 drivers/net/wireless/intel/iwlwifi/mvm/utils.c | 28 drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c | 15 drivers/net/wireless/intel/iwlwifi/pcie/internal.h | 3 drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c | 3 drivers/net/wireless/mac80211_hwsim.c | 48 drivers/net/wireless/marvell/mwifiex/main.c | 13 drivers/net/wireless/mediatek/mt76/dma.c | 18 drivers/net/wireless/mediatek/mt76/mt76.h | 16 drivers/net/wireless/mediatek/mt76/mt7603/mac.c | 33 drivers/net/wireless/mediatek/mt76/mt7603/regs.h | 12 drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 74 drivers/net/wireless/mediatek/mt76/mt7615/mac.h | 42 drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 28 drivers/net/wireless/mediatek/mt76/mt76x02_regs.h | 18 drivers/net/wireless/mediatek/mt76/mt7915/eeprom.h | 11 drivers/net/wireless/mediatek/mt76/mt7915/init.c | 6 drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 29 drivers/net/wireless/mediatek/mt76/mt7915/mcu.c | 30 drivers/net/wireless/mediatek/mt76/mt7915/mcu.h | 23 drivers/net/wireless/mediatek/mt76/mt7921/mac.c | 29 drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 30 drivers/net/wireless/mediatek/mt76/mt7921/mcu.h | 23 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 11 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c | 59 drivers/net/wireless/realtek/rtw88/pci.c | 32 drivers/net/wireless/realtek/rtw88/rtw8822c_table.c | 1008 +++++----- drivers/net/wireless/st/cw1200/cw1200_sdio.c | 1 drivers/net/wireless/ti/wl1251/cmd.c | 9 drivers/net/wireless/ti/wl12xx/main.c | 7 drivers/nvmem/core.c | 9 drivers/pci/controller/dwc/pcie-tegra194.c | 2 drivers/pci/controller/pci-aardvark.c | 13 drivers/pci/quirks.c | 11 drivers/pinctrl/pinctrl-amd.c | 1 drivers/pinctrl/pinctrl-equilibrium.c | 1 drivers/pinctrl/pinctrl-mcp23s08.c | 10 drivers/thermal/intel/int340x_thermal/processor_thermal_device.c | 20 fs/ext4/ext4.h | 4 fs/ext4/mmp.c | 28 fs/ext4/super.c | 10 fs/f2fs/f2fs.h | 2 fs/f2fs/recovery.c | 23 fs/f2fs/super.c | 8 fs/io-wq.c | 5 fs/jfs/inode.c | 3 fs/reiserfs/journal.c | 14 fs/ubifs/super.c | 1 fs/ubifs/ubifs.h | 2 fs/ubifs/xattr.c | 44 fs/udf/namei.c | 4 include/linux/blk_types.h | 1 include/linux/mfd/abx500/ux500_chargalg.h | 2 include/linux/netdev_features.h | 2 include/linux/of_mdio.h | 7 include/linux/wait.h | 2 include/media/v4l2-subdev.h | 4 include/net/flow_offload.h | 12 include/net/sctp/structs.h | 2 include/uapi/asm-generic/socket.h | 2 include/uapi/linux/ethtool.h | 4 kernel/bpf/core.c | 61 kernel/bpf/ringbuf.c | 2 kernel/cpu.c | 49 kernel/sched/fair.c | 6 kernel/sched/wait.c | 9 kernel/trace/trace.c | 91 lib/seq_buf.c | 4 mm/mremap.c | 4 net/bluetooth/hci_core.c | 16 net/bluetooth/hci_event.c | 6 net/bluetooth/l2cap_core.c | 8 net/bluetooth/mgmt.c | 5 net/bridge/br_mrp.c | 6 net/core/dev.c | 11 net/core/sock.c | 7 net/hsr/hsr_framereg.c | 3 net/ipv4/ip_output.c | 32 net/ipv4/tcp_input.c | 45 net/ipv6/ip6_output.c | 32 net/ipv6/output_core.c | 28 net/mac80211/main.c | 7 net/mac80211/sta_info.c | 11 net/sched/act_api.c | 3 net/sched/cls_api.c | 2 net/sctp/bind_addr.c | 19 net/sctp/input.c | 8 net/sctp/ipv6.c | 7 net/sctp/protocol.c | 7 net/sctp/sm_make_chunk.c | 29 net/vmw_vsock/af_vsock.c | 2 net/wireless/nl80211.c | 9 net/wireless/wext-spy.c | 14 net/xfrm/xfrm_user.c | 28 security/selinux/avc.c | 13 security/smack/smackfs.c | 2 sound/soc/tegra/tegra_alc5632.c | 1 sound/soc/tegra/tegra_max98090.c | 1 sound/soc/tegra/tegra_rt5640.c | 1 sound/soc/tegra/tegra_rt5677.c | 1 sound/soc/tegra/tegra_sgtl5000.c | 1 sound/soc/tegra/tegra_wm8753.c | 1 sound/soc/tegra/tegra_wm8903.c | 1 sound/soc/tegra/tegra_wm9712.c | 1 sound/soc/tegra/trimslice.c | 1 tools/testing/selftests/drivers/net/mlxsw/devlink_trap_l3_drops.sh | 3 tools/testing/selftests/drivers/net/mlxsw/devlink_trap_l3_exceptions.sh | 3 tools/testing/selftests/drivers/net/mlxsw/qos_dscp_bridge.sh | 2 tools/testing/selftests/lkdtm/tests.txt | 2 tools/testing/selftests/net/forwarding/pedit_dsfield.sh | 2 tools/testing/selftests/net/forwarding/pedit_l4port.sh | 2 tools/testing/selftests/net/forwarding/skbedit_priority.sh | 2 tools/testing/selftests/resctrl/README | 2 tools/testing/selftests/resctrl/resctrl_tests.c | 4 280 files changed, 2860 insertions(+), 1944 deletions(-)
Aaron Liu (1):
drm/amdgpu: enable sdma0 tmz for Raven/Renoir(V2)
Al Cooper (1):
mmc: sdhci: Fix warning message when accessing RPMB in HS400 mode
Alex Bee (2):
drm: rockchip: add missing registers for RK3188
drm: rockchip: add missing registers for RK3066
Alex Deucher (2):
drm/amdgpu: change the default timeout for kernel compute queues drm/amdgpu: add new dimgrey cavefish DID
Amber Lin (1):
drm/amdkfd: Fix circular lock in nocpsch path
Amit Cohen (1):
selftests: Clean forgotten resources as part of cleanup()
Andrey Grodzovsky (2):
drm/scheduler: Fix hang when sched_entity released drm/sched: Avoid data corruptions
Andy Shevchenko (1):
net: pch_gbe: Use proper accessors to BE data in pch_ptp_match()
Aneesh Kumar K.V (1):
mm/mremap: hold the rmap lock in write mode when moving page table entries.
Ansuel Smith (1):
net: mdio: ipq8064: add regmap config to disable REGCACHE
Aric Cyr (1):
drm/amd/display: Fix crash during MPO + ODM combine mode recalculation
Arnd Bergmann (2):
media: subdev: disallow ioctl for saa6588/davinci
media: v4l2-core: explicitly clear ioctl input data
Arturo Giusti (1):
udf: Fix NULL pointer dereference in udf_symlink function
Benjamin Drung (1):
media: uvcvideo: Fix pixel format change for Elgato Cam Link 4K
Bernhard Wimmer (1):
media: ccs: Fix the op_pll_multiplier address
Bibo Mao (1):
hugetlb: clear huge pte during flush function on mips platform
Bixuan Cui (1):
pinctrl: equilibrium: Add missing MODULE_DEVICE_TABLE
Brandon Syu (1):
drm/amd/display: fix HDCP reset sequence on reinitialize
Brian Norris (1):
mwifiex: bring down link before deleting interface
Chao Yu (1):
f2fs: fix to avoid racing on fsync_entry_slab by multi filesystem instances
Christian Löhle (1):
mmc: core: Allow UHS-I voltage switch for SDSC cards if supported
Christophe JAILLET (1):
nvmem: core: add a missing of_node_put
Christophe Leroy (1):
powerpc/mm: Fix lockup on kernel exec fault
Damien Le Moal (3):
dm: Fix dm_accept_partial_bio() relative to zone management commands
block: introduce BIO_ZONE_WRITE_LOCKED bio flag
dm zoned: check zone capacity
Dan Carpenter (1):
drm/vc4: fix argument ordering in vc4_crtc_get_margins()
Daniel Borkmann (1):
bpf: Fix up register-based shifts in interpreter to silence KUBSAN
Daniel Lenski (1):
Bluetooth: btusb: Add a new QCA_ROME device (0cf3:e500)
Daniel Vetter (4):
drm/tegra: Don't set allow_fb_modifiers explicitly drm/msm/mdp4: Fix modifier support enabling drm/arm/malidp: Always list modifiers drm/nouveau: Don't set allow_fb_modifiers explicitly
Davide Caratti (1):
net/sched: cls_api: increase max_reclassify_loop
Dinghao Liu (1):
clk: renesas: rcar-usb2-clock-sel: Fix error handling in .probe()
Dmitry Osipenko (3):
clk: tegra: Fix refcounting of gate clocks
clk: tegra: Ensure that PLLU configuration is applied properly
ASoC: tegra: Set driver_name=tegra for all machine drivers
Dmytro Laktyushkin (2):
drm/amd/display: fix use_max_lb flag for 420 pixel formats drm/amd/display: fix odm scaling
Eli Cohen (1):
net/mlx5: Fix lag port remapping logic
Evan Quan (2):
drm/amdgpu: fix NAK-G generation during PCI-e link width switch drm/amdgpu: fix the hang caused by PCIe link width switch
Evelyn Tsai (1):
mt76: mt7915: fix tssi indication field of DBDC NICs
Felix Fietkau (2):
mt76: mt7615: fix fixed-rate tx status reporting
mt76: dma: use ieee80211_tx_status_ext to free packets when tx fails
Ferry Toth (1):
extcon: intel-mrfld: Sync hardware and software state on init
Fugang Duan (1):
net: fec: add ndo_select_queue to fix TX bandwidth fluctuations
George McCollister (1):
net: hsr: don't check sequence number if tag removal is offloaded
Gerd Rausch (1):
RDMA/cma: Fix rdma_resolve_route() memory leak
Gioh Kim (1):
RDMA/rtrs: Change MAX_SESS_QUEUE_DEPTH
Greg Kroah-Hartman (1):
Linux 5.12.18
Guchun Chen (1):
drm/amd/display: fix incorrrect valid irq check
Gustavo A. R. Silva (1):
wireless: wext-spy: Fix out-of-bounds warning
Hans de Goede (1):
mmc: sdhci-acpi: Disable write protect detection on Toshiba Encore 2 WT8-B
Haren Myneni (1):
powerpc/powernv/vas: Release reference to tgid during window close
Harry Wentland (1):
drm/amd/display: Reject non-zero src_y and src_x for video planes
Heiner Kallweit (1):
r8169: avoid link-up interrupt issue on RTL8106e if user enables ASPM
Hilda Wu (1):
Bluetooth: btusb: Add support USB ALT 3 for WBS
Horatiu Vultur (1):
net: bridge: mrp: Update ring transitions.
Hou Tao (1):
dm btree remove: assign new_root only when removal succeeds
Huang Pei (1):
MIPS: add PMD table accounting into MIPS'pmd_alloc_one
Huy Nguyen (1):
net/mlx5e: IPsec/rep_tc: Fix rep_tc_update_skb drops IPsec packet
Ilan Peer (1):
mac80211: Properly WARN on HW scan before restart
Jack Zhang (1):
drm/amd/amdgpu/sriov disable all ip hw status by default
Jacob Keller (2):
ice: fix incorrect payload indicator on PTYPE
ice: mark PTYPE 2 as reserved
Jakub Kicinski (1):
net: ip: avoid OOM kills with large UDP sends over loopback
Jan Kara (1):
rq-qos: fix missed wake-ups in rq_qos_throttle try two
Jeremy Linton (1):
coresight: Propagate symlink failure
Jesse Brandeburg (4):
e100: handle eeprom as little endian
igb: handle vlan types with checker enabled
igb: fix assignment on big endian machines
i40e: fix PTP on 5Gb links
Jian Shen (1):
net: fix mistake path for netdev_features_strings
Jiansong Chen (1):
drm/amdgpu: remove unsafe optimization to drop preamble ib
Jiapeng Chong (1):
RDMA/cxgb4: Fix missing error code in create_qp()
Jing Xiangfeng (1):
drm/radeon: Add the missed drm_gem_object_put() in radeon_user_framebuffer_create()
Joakim Zhang (2):
net: phy: realtek: add delay to fix RXC generation issue
net: fec: add FEC_QUIRK_HAS_MULTI_QUEUES represents i.MX6SX ENET IP
Joe Thornber (1):
dm space maps: don't reset space map allocation cursor when committing
Johan Hovold (3):
media: dtv5100: fix control-request directions
media: gspca/sq905: fix control-request direction
media: gspca/sunplus: fix zero-length control requests
Johannes Berg (5):
iwlwifi: mvm: don't change band on bound PHY contexts
iwlwifi: mvm: apply RX diversity per PHY context
iwlwifi: pcie: free IML DMA memory allocation
iwlwifi: pcie: fix context info freeing
mac80211: consider per-CPU statistics if present
Jonathan Kim (1):
drm/amdkfd: fix circular locking on get_wave_state
Joseph Greathouse (1):
drm/amdgpu: Update NV SIMD-per-CU to 2
Kai-Heng Feng (1):
Bluetooth: Shutdown controller after workqueues are flushed or cancelled
Kees Cook (6):
drm/amd/display: Avoid HDCP over-read and corruption drm/i915/display: Do not zero past infoframes.vsc
docs: Makefile: Use CONFIG_SHELL not SHELL lkdtm/bugs: XFAIL UNALIGNED_LOAD_STORE_WRITE selftests/lkdtm: Fix expected text for CR4 pinning
lkdtm: Enable DOUBLE_FAULT on all architectures
Kevin Wang (1):
drm/amdgpu: fix sdma firmware version error in sriov
Kiran K (1):
Bluetooth: Fix alt settings for incoming SCO with transparent coding format
Konstantin Kharlamov (1):
PCI: Leave Apple Thunderbolt controllers on for s2idle or standby
Kuninori Morimoto (1):
clk: renesas: r8a77995: Add ZA2 clock
KuoHsiang Chou (1):
drm/ast: Fixed CVE for DP501
Lee Gibson (1):
wl1251: Fix possible buffer overflow in wl1251_cmd_scan
Lijun Pan (1):
ibmvnic: fix kernel build warnings in build_hdr_descs_arr
Limeng (1):
mfd: syscon: Free the allocated name field of struct regmap_config
Linus Walleij (1):
power: supply: ab8500: Fix an old bug
Liu Ying (1):
drm/bridge: nwl-dsi: Force a full modeset when crtc_state->active is changed to be true
Liwei Song (1):
ice: set the value of global config lock timeout longer
Logush Oliver (1):
drm/amd/display: Fix edp_bootup_bl_level initialization issue
Longpeng(Mike) (1):
vsock: notify server to shutdown when client has pending signal
Luiz Augusto von Dentz (2):
Bluetooth: L2CAP: Fix invalid access if ECRED Reconfigure fails
Bluetooth: L2CAP: Fix invalid access on ECRED Connection response
Lv Yunlong (1):
ipack/carriers/tpci200: Fix a double free in tpci200_pci_probe
Lyude Paul (1):
drm/dp: Handle zeroed port counts in drm_dp_read_downstream_info()
Marcelo Ricardo Leitner (2):
sctp: validate from_addr_param return
sctp: add size validation when walking chunks
Mark Yacoub (1):
drm/amd/display: Verify Gamma & Degamma LUT sizes in amdgpu_dm_atomic_check
Martynas Pumputis (1):
net: retrieve netns cookie via getsocketopt
Mateusz Kwiatkowski (1):
drm/vc4: Fix clock source for VEC PixelValve on BCM2711
Mauro Carvalho Chehab (1):
media: i2c: ccs-core: fix pm_runtime_get_sync() usage count
Max Gurtovoy (1):
IB/isert: Align target max I/O size to initiator size
Maxime Ripard (3):
drm/vc4: txp: Properly set the possible_crtcs mask drm/vc4: crtc: Skip the TXP
drm/vc4: hdmi: Prevent clock unbalance
Maximilian Luz (1):
pinctrl/amd: Add device HID for new AMD GPIO controller
Mikulas Patocka (4):
dm writecache: don't split bios when overwriting contiguous cache content dm writecache: commit just one block, not a full page
dm writecache: flush origin device when writing and cache is full dm writecache: write at least 4k when committing
Minchan Kim (1):
selinux: use __GFP_NOWARN with GFP_NOWAIT in the AVC
Nathan Chancellor (2):
powerpc/barrier: Avoid collision with clang's __lwsync macro
qemu_fw_cfg: Make fw_cfg_rev_attr a proper kobj_attribute
Nick Desaulniers (1):
MIPS: set mips32r5 for virt extensions
Nikola Cornij (1):
drm/amd/display: Fix DCN 3.01 DSCCLK validation
Nirmoy Das (1):
drm/amdkfd: use allowed domain for vmbo validation
Odin Ugedal (1):
sched/fair: Ensure _sum and _avg values stay consistent
Pali Rohár (2):
PCI: aardvark: Fix checking for PIO Non-posted Request
PCI: aardvark: Implement workaround for the readback value of VEND_ID
Pascal Terjan (1):
rtl8xxxu: Fix device info for RTL8192EU devices
Paul Burton (2):
tracing: Simplify & fix saved_tgids logic
tracing: Resize tgid_map to pid_max, not PID_MAX_DEFAULT
Paul Cercueil (5):
MIPS: cpu-probe: Fix FPU detection on Ingenic JZ4760(B)
MIPS: ingenic: Select CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
MIPS: MT extensions are not available on MIPS32r1 drm/ingenic: Fix pixclock rate for 24-bit serial panels drm/ingenic: Switch IPU plane to type OVERLAY
Paul M Stillwell Jr (1):
ice: fix clang warning regarding deadcode.DeadStores
Pavel Begunkov (1):
io_uring: fix false WARN_ONCE
Pavel Skripkin (4):
reiserfs: add check for invalid 1st journal block
media: zr364xx: fix memory leak in zr364xx_start_readpipe
jfs: fix GPF in diFree
ext4: fix memory leak in ext4_fill_super
Petr Pavlu (1):
ipmi/watchdog: Stop watchdog timer when the current action is 'none'
Ping-Ke Shih (2):
rtw88: add quirks to disable pci capabilities
cfg80211: fix default HE tx bitrate mask in 2G band
Po-Hao Huang (1):
rtw88: 8822c: update RF parameter tables to v62
Radim Pavlik (1):
pinctrl: mcp23s08: fix race condition in irq handler
Roman Li (1):
drm/amd/display: Update scaling settings on modeset
Russ Weight (1):
fpga: stratix10-soc: Add missing fpga_mgr_free() call
Rustam Kovhaev (1):
bpf: Fix false positive kmemleak report in bpf_ringbuf_area_alloc()
Ryder Lee (2):
mt76: mt7915: fix IEEE80211_HE_PHY_CAP7_MAX_NC for station mode
mt76: fix iv and CCMP header insertion
Sai Prakash Ranjan (1):
coresight: tmc-etf: Fix global-out-of-bounds in tmc_update_etf_buffer()
Samuel Holland (1):
clocksource/arm_arch_timer: Improve Allwinner A64 timer workaround
Sean Young (1):
media, bpf: Do not copy more entries than user space requested
Sebastian Andrzej Siewior (1):
net: Treat __napi_schedule_irqoff() as __napi_schedule() on PREEMPT_RT
Shaul Triebitz (1):
iwlwifi: mvm: fix error print when session protection ends
Srinivas Pandruvada (1):
thermal/drivers/int340x/processor_thermal: Fix tcc setting
Stanley.Yang (1):
drm/amdgpu: fix bad address translation for sienna_cichlid
Steffen Klassert (1):
xfrm: Fix error reporting in xfrm_state_construct.
Tedd Ho-Jeong An (1):
Bluetooth: mgmt: Fix the command returns garbage parameter value
Tetsuo Handa (1):
smackfs: restrict bytes count in smk_set_cipso()
Thomas Gleixner (1):
cpu/hotplug: Cure the cpusets trainwreck
Thomas Hebb (1):
drm/rockchip: dsi: remove extra component_del() call
Thomas Zimmermann (3):
drm/mxsfb: Don't select DRM_KMS_FB_HELPER drm/zte: Don't select DRM_KMS_FB_HELPER drm/ast: Remove reference to struct drm_device.pdev
Tiezhu Yang (1):
drm/radeon: Call radeon_suspend_kms() in radeon_pci_shutdown() for Loongson64
Tim Jiang (2):
Bluetooth: btusb: use default nvm if boardID is 0 for wcn6855.
Bluetooth: btusb: fix bt fiwmare downloading failure issue for qca btsoc.
Timo Sigurdsson (1):
ata: ahci_sunxi: Disable DIPM
Tony Lindgren (1):
wlcore/wl12xx: Fix wl12xx get_mac error if device is in ELP
Vidya Sagar (1):
PCI: tegra194: Fix host initialization during resume
Vladimir Oltean (2):
net: mdio: provide shim implementation of devm_of_mdiobus_register
net: stmmac: the XPCS obscures a potential "PHY not found" error
Vladimir Stempen (1):
drm/amd/display: Release MST resources on switch from MST to SST
Wang Li (1):
drm/mediatek: Fix PM reference leak in mtk_crtc_ddp_hw_init()
Weilun Du (1):
mac80211_hwsim: add concurrent channels scanning support over virtio
Wesley Chalmers (2):
drm/amd/display: Set DISPCLK_MAX_ERRDET_CYCLES to 7 drm/amd/display: Fix off-by-one error in DML
Willy Tarreau (1):
ipv6: use prandom_u32() for ID generation
Wolfram Sang (1):
mmc: core: clear flags before allowing to retune
Xianting Tian (1):
virtio_net: Remove BUG() to avoid machine dead
Xiao Yang (1):
RDMA/rxe: Don't overwrite errno from ib_umem_get()
Xiaochen Shen (1):
selftests/resctrl: Fix incorrect parsing of option "-t"
Xie Yongji (2):
drm/virtio: Fix double free on probe failure
virtio-net: Add validation for used length
Yang Yingliang (10):
clk: tegra: tegra124-emc: Fix clock imbalance in emc_set_timing()
net: mscc: ocelot: check return value after calling platform_get_resource()
net: bcmgenet: check return value after calling platform_get_resource()
net: mvpp2: check return value after calling platform_get_resource()
net: micrel: check return value after calling platform_get_resource()
net: moxa: Use devm_platform_get_and_ioremap_resource()
net: sgi: ioc3-eth: check return value after calling platform_get_resource()
fjes: check return value after calling platform_get_resource()
net: ipa: Add missing of_node_put() in ipa_firmware_load()
net: sched: fix error return code in tcf_del_walker()
Yu Kuai (1):
drm: bridge: cdns-mhdp8546: Fix PM reference leak in
Yu Liu (1):
Bluetooth: Fix the HCI to MGMT status conversion table
Yuchung Cheng (1):
net: tcp better handling of reordering then loss cases
YueHaibing (1):
net: xilinx_emaclite: Do not print real IOMEM pointer
Yun Zhou (1):
seq_buf: Fix overflow in seq_buf_putmem_hex()
Zhenyu Ye (1):
arm64: tlb: fix the TTL value of tlb_get_level
Zheyu Ma (2):
atm: nicstar: use 'dma_free_coherent' instead of 'kfree'
atm: nicstar: register the interrupt handler in the right place
Zhihao Cheng (1):
ubifs: Fix races between xattr_{set|get} and listxattr operations
Zou Wei (8):
atm: iphase: fix possible use-after-free in ia_module_exit()
mISDN: fix possible use-after-free in HFC_cleanup()
atm: nicstar: Fix possible use-after-free in nicstar_cleanup() drm/bridge: lt9611: Add missing MODULE_DEVICE_TABLE drm/vc4: hdmi: Fix PM reference leak in vc4_hdmi_encoder_pre_crtc_co() drm/bridge: cdns: Fix PM reference leak in cdns_dsi_transfer()
cw1200: add missing MODULE_DEVICE_TABLE
pinctrl: mcp23s08: Fix missing unlock on error in mcp23s08_irq()
gushengxian (1):
flow_offload: action should not be NULL when it is referenced
mark-yw.chen (1):
Bluetooth: btusb: Fixed too many in-token issue for Mediatek Chip.
xinhui pan (1):
drm/amdkfd: Walk through list with dqm lock hold
zhanglianjie (1):
MIPS: loongsoon64: Reserve memory below starting pfn to prevent Oops
Íñigo Huguet (2):
sfc: avoid double pci_remove of VFs
sfc: error code if SRIOV cannot be disabled
周琰杰 (Zhou Yanjie) (1):
MIPS: CI20: Reduce clocksource to 750 kHz.
Greg Kroah-Hartman
maintainerDocumentation/Makefile +1 -1
@@ -76,7 +76,7 @@ quiet_cmd_sphinx = SPHINX $@ --> file://$(abspath $(BUILDDIR)/$3/$4) PYTHONDONTWRITEBYTECODE=1 \ BUILDDIR=$(abspath $(BUILDDIR)) SPHINX_CONF=$(abspath $(srctree)/$(src)/$5/$(SPHINX_CONF)) \ $(PYTHON3) $(srctree)/scripts/jobserver-exec \ - $(SHELL) $(srctree)/Documentation/sphinx/parallel-wrapper.sh \ + $(CONFIG_SHELL) $(srctree)/Documentation/sphinx/parallel-wrapper.sh \ $(SPHINXBUILD) \ -b $2 \ -c $(abspath $(srctree)/$(src)) \
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 12 -SUBLEVEL = 17 +SUBLEVEL = 18 EXTRAVERSION = NAME = Frozen Wasteland
arch/alpha/include/uapi/asm/socket.h +2 -0
@@ -127,6 +127,8 @@#define SO_PREFER_BUSY_POLL 69#define SO_BUSY_POLL_BUDGET 70 +#define SO_NETNS_COOKIE 71 +#if !defined(__KERNEL__)#if __BITS_PER_LONG ==64
arch/arm64/include/asm/tlb.h +4 -0
@@ -28,6 +28,10 @@ static void tlb_flush(struct mmu_gather *tlb);*/ static inline int tlb_get_level (struct mmu_gather *tlb) { +/* The TTL field is only valid for the leaf entry. */ +if (tlb->freed_tables) +return 0 ; +if (tlb->cleared_ptes && !(tlb->cleared_pmds || tlb->cleared_puds || tlb->cleared_p4ds))
arch/mips/Kconfig +2 -0
@@ -425,6 +425,8 @@ config MACH_INGENIC_SOC select MIPS_GENERIC select MACH_INGENIC select SYS_SUPPORTS_ZBOOT_UART16550 + select CPU_SUPPORTS_CPUFREQ + select MIPS_EXTERNAL_TIMER config LANTIQ bool "Lantiq based platforms"
arch/mips/boot/dts/ingenic/ci20.dts +2 -2
@@ -525,10 +525,10 @@ pins_mmc1: mmc1 { &tcu { /* - * 750 kHz for the system timer and 3 MHz for the clocksource, + * 750 kHz for the system timer and clocksource, * use channel #0 for the system timer, #1 for the clocksource. */ assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>, <&tcu TCU_CLK_OST>; - assigned-clock-rates = <750000>, <3000000>, <3000000>; + assigned-clock-rates = <750000>, <750000>, <3000000>; };
arch/mips/include/asm/cpu-features.h +3 -1
@@ -64,6 +64,8 @@ ((MIPS_ISA_REV >= (ge)) && (MIPS_ISA_REV < (lt)))#define __isa_range_or_flag (ge, lt, flag) \ (__isa_range(ge, lt) || ((MIPS_ISA_REV < (lt)) && __isa(flag))) +#define __isa_range_and_ase (ge, lt, ase) \ + (__isa_range(ge, lt) && __ase(ase))/* * SMP assumption: Options of CPU 0 are a superset of all processors.
@@ -421,7 +423,7 @@#endif #ifndef cpu_has_mipsmt -#define cpu_has_mipsmt __isa_lt_and_ase(6, MIPS_ASE_MIPSMT) +#define cpu_has_mipsmt __isa_range_and_ase(2, 6, MIPS_ASE_MIPSMT)#endif #ifndef cpu_has_vp
arch/mips/include/asm/hugetlb.h +7 -1
@@ -46,7 +46,13 @@ static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm,static inline void huge_ptep_clear_flush (struct vm_area_struct *vma,unsigned long addr,pte_t *ptep) { -flush_tlb_page (vma, addr &huge_page_mask (hstate_vma (vma))); +/* +* clear the huge pte entry firstly, so that the other smp threads will +* not get old pte entry after finishing flush_tlb_page and before +* setting new huge pte entry +*/ +huge_ptep_get_and_clear (vma->vm_mm, addr, ptep); +flush_tlb_page (vma, addr); }#define __HAVE_ARCH_HUGE_PTE_NONE
arch/mips/include/asm/mipsregs.h +4 -4
@@ -2077,7 +2077,7 @@ _ASM_MACRO_0(tlbginvf, _ASM_INSN_IF_MIPS(0x4200000c) ({ int __res; \ __asm__ __volatile__( \ ".set\tpush\n\t" \ - ".set\tmips32r2\n\t" \ + ".set\tmips32r5\n\t" \ _ASM_SET_VIRT \ "mfgc0\t%0, " #source ", %1\n\t" \ ".set\tpop" \
@@ -2090,7 +2090,7 @@ _ASM_MACRO_0(tlbginvf, _ASM_INSN_IF_MIPS(0x4200000c) ({ unsigned long long __res; \ __asm__ __volatile__( \ ".set\tpush\n\t" \ - ".set\tmips64r2\n\t" \ + ".set\tmips64r5\n\t" \ _ASM_SET_VIRT \ "dmfgc0\t%0, " #source ", %1\n\t" \ ".set\tpop" \
@@ -2103,7 +2103,7 @@ _ASM_MACRO_0(tlbginvf, _ASM_INSN_IF_MIPS(0x4200000c) do { \ __asm__ __volatile__( \ ".set\tpush\n\t" \ - ".set\tmips32r2\n\t" \ + ".set\tmips32r5\n\t" \ _ASM_SET_VIRT \ "mtgc0\t%z0, " #register ", %1\n\t" \ ".set\tpop" \
@@ -2115,7 +2115,7 @@ do { \ do { \ __asm__ __volatile__( \ ".set\tpush\n\t" \ - ".set\tmips64r2\n\t" \ + ".set\tmips64r5\n\t" \ _ASM_SET_VIRT \ "dmtgc0\t%z0, " #register ", %1\n\t" \ ".set\tpop" \
arch/mips/include/asm/pgalloc.h +7 -3
@@ -59,11 +59,15 @@ do { \static inline pmd_t *pmd_alloc_one (struct mm_struct *mm,unsigned long address) { -pmd_t *pmd; +pmd_t *pmd =NULL ; +struct page *pg; - pmd = (pmd_t *)__get_free_pages (GFP_KERNEL ,PMD_ORDER ); -if (pmd) + pg =alloc_pages (GFP_KERNEL | __GFP_ACCOUNT,PMD_ORDER ); +if (pg) { +pgtable_pmd_page_ctor (pg); + pmd = (pmd_t *)page_address (pg);pmd_init ((unsigned long )pmd, (unsigned long )invalid_pte_table); + }return pmd; }
arch/mips/include/uapi/asm/socket.h +2 -0
@@ -138,6 +138,8 @@#define SO_PREFER_BUSY_POLL 69#define SO_BUSY_POLL_BUDGET 70 +#define SO_NETNS_COOKIE 71 +#if !defined(__KERNEL__)#if __BITS_PER_LONG ==64
arch/mips/kernel/cpu-probe.c +5 -0
@@ -1840,6 +1840,11 @@ static inline void cpu_probe_ingenic(struct cpuinfo_mips *c, unsigned int cpu)*/ case PRID_COMP_INGENIC_D0 : c->isa_level &= ~MIPS_CPU_ISA_M32R2 ; + +/* FPU is not properly detected on JZ4760(B). */ +if (c->processor_id ==0x2ed0024f ) + c->options |=MIPS_CPU_FPU ; + fallthrough;/*
arch/mips/loongson64/numa.c +3 -0
@@ -118,6 +118,9 @@ static void __init node_mem_init(unsigned int node)if (node_end_pfn (0 ) >= (0xffffffff >>PAGE_SHIFT ))memblock_reserve ((node_addrspace_offset |0xfe000000 ),32 <<20 ); + +/* Reserve pfn range 0~node[0]->node_start_pfn */ +memblock_reserve (0 ,PAGE_SIZE * start_pfn); } }
arch/parisc/include/uapi/asm/socket.h +2 -0
@@ -119,6 +119,8 @@#define SO_PREFER_BUSY_POLL 0x4043#define SO_BUSY_POLL_BUDGET 0x4044 +#define SO_NETNS_COOKIE 0x4045 +#if !defined(__KERNEL__)#if __BITS_PER_LONG ==64
arch/powerpc/include/asm/barrier.h +2 -0
@@ -46,6 +46,8 @@# define SMPWMB eieio#endif +/* clang defines this macro for a builtin, which will not work with runtime patching */ +#undef __lwsync#define __lwsync () __asm__ __volatile__ (stringify_in_c(LWSYNC) : : :"memory")#define dma_rmb () __lwsync()#define dma_wmb () __asm__ __volatile__ (stringify_in_c(SMPWMB) : : :"memory")
arch/powerpc/mm/fault.c +1 -3
@@ -199,9 +199,7 @@ static bool bad_kernel_fault(struct pt_regs *regs, unsigned long error_code, {int is_exec =TRAP (regs) ==0x400 ; -/* NX faults set DSISR_PROTFAULT on the 8xx, DSISR_NOEXEC_OR_G on others */ -if (is_exec && (error_code & (DSISR_NOEXEC_OR_G |DSISR_KEYFAULT | -DSISR_PROTFAULT ))) { +if (is_exec) { pr_crit_ratelimited("kernel tried to execute %s page (%lx) - exploit attempt? (uid: %d)\n", address >= TASK_SIZE ? "exec-protected" : "user", address,
arch/powerpc/platforms/powernv/vas-window.c +5 -4
@@ -1093,9 +1093,9 @@ struct vas_window *vas_tx_win_open(int vasid, enum vas_cop_type cop,/* * Process closes window during exit. In the case of * multithread application, the child thread can open -* window and can exit without closing it. Expects parent -* thread to use and close the window. So do not need -* to take pid reference for parent thread. +* window and can exit without closing it. so takes tgid +* reference until window closed to make sure tgid is not +* reused. */ txwin->tgid =find_get_pid (task_tgid_vnr (current));/*
@@ -1339,8 +1339,9 @@ int vas_win_close(struct vas_window *window)/* if send window, drop reference to matching receive window */ if (window->tx_win) {if (window->user_win) { -/* Drop references to pid and mm */ +/* Drop references to pid. tgid and mm */ put_pid (window->pid); +put_pid (window->tgid);if (window->mm) {mm_context_remove_vas_window (window->mm);mmdrop (window->mm);
arch/sparc/include/uapi/asm/socket.h +2 -0
@@ -120,6 +120,8 @@#define SO_PREFER_BUSY_POLL 0x0048#define SO_BUSY_POLL_BUDGET 0x0049 +#define SO_NETNS_COOKIE 0x0050 +#if !defined(__KERNEL__)
block/blk-rq-qos.c +2 -2
@@ -266,8 +266,8 @@ void rq_qos_wait(struct rq_wait *rqw, void *private_data,if (!has_sleeper &&acquire_inflight_cb (rqw, private_data))return ; -prepare_to_wait_exclusive (&rqw->wait, &data.wq,TASK_UNINTERRUPTIBLE ); - has_sleeper = !wq_has_single_sleeper (&rqw->wait); + has_sleeper = !prepare_to_wait_exclusive (&rqw->wait, &data.wq, +TASK_UNINTERRUPTIBLE ); do { /* The memory barrier in set_task_state saves us here. */ if (data.got_token)
drivers/ata/ahci_sunxi.c +1 -1
@@ -200,7 +200,7 @@ static void ahci_sunxi_start_engine(struct ata_port *ap) }static const struct ata_port_info ahci_sunxi_port_info = { - .flags =AHCI_FLAG_COMMON |ATA_FLAG_NCQ , + .flags =AHCI_FLAG_COMMON |ATA_FLAG_NCQ |ATA_FLAG_NO_DIPM , .pio_mask =ATA_PIO4 , .udma_mask =ATA_UDMA6 , .port_ops = &ahci_platform_ops,
drivers/atm/iphase.c +1 -1
@@ -3279,7 +3279,7 @@ static void __exit ia_module_exit(void) {pci_unregister_driver (&ia_driver); -del_timer (&ia_timer); +del_timer_sync (&ia_timer); }module_init (ia_module_init);
drivers/atm/nicstar.c +14 -12
@@ -299,7 +299,7 @@ static void __exit nicstar_cleanup(void) {XPRINTK ("nicstar: nicstar_cleanup() called.\n" ); -del_timer (&ns_timer); +del_timer_sync (&ns_timer);pci_unregister_driver (&nicstar_driver);
@@ -527,6 +527,15 @@ static int ns_init_card(int i, struct pci_dev *pcidev)/* Set the VPI/VCI MSb mask to zero so we can receive OAM cells */ writel (0x00000000 , card->membase +VPM ); + card->intcnt =0 ; +if (request_irq + (pcidev->irq, &ns_irq_handler,IRQF_SHARED ,"nicstar" , card) !=0 ) { +pr_err ("nicstar%d: can't allocate IRQ %d.\n" , i, pcidev->irq); + error =9 ; +ns_init_card_error (card, error); +return error; + } +/* Initialize TSQ */ card->tsq.org = dma_alloc_coherent(&card->pcidev->dev, NS_TSQSIZE + NS_TSQ_ALIGNMENT,
@@ -753,15 +762,6 @@ static int ns_init_card(int i, struct pci_dev *pcidev) card->efbie =1 ; - card->intcnt =0 ; -if (request_irq - (pcidev->irq, &ns_irq_handler,IRQF_SHARED ,"nicstar" , card) !=0 ) { -printk ("nicstar%d: can't allocate IRQ %d.\n" , i, pcidev->irq); - error =9 ; -ns_init_card_error (card, error); -return error; - } -/* Register device */ card->atmdev =atm_dev_register ("nicstar" , &card->pcidev->dev, &atm_ops,-1 ,NULL );
@@ -839,10 +839,12 @@ static void ns_init_card_error(ns_dev *card, int error)dev_kfree_skb_any (hb); }if (error >=12 ) { -kfree (card->rsq.org); +dma_free_coherent (&card->pcidev->dev,NS_RSQSIZE +NS_RSQ_ALIGNMENT , + card->rsq.org, card->rsq.dma); }if (error >=11 ) { -kfree (card->tsq.org); +dma_free_coherent (&card->pcidev->dev,NS_TSQSIZE +NS_TSQ_ALIGNMENT , + card->tsq.org, card->tsq.dma); }if (error >=10 ) {free_irq (card->pcidev->irq, card);
drivers/bluetooth/btusb.c +28 -8
@@ -270,6 +270,8 @@ static const struct usb_device_id blacklist_table[] = { BTUSB_WIDEBAND_SPEECH }, { USB_DEVICE(0x0cf3, 0xe360), .driver_info = BTUSB_QCA_ROME | BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0cf3, 0xe500), .driver_info = BTUSB_QCA_ROME | + BTUSB_WIDEBAND_SPEECH }, { USB_DEVICE(0x0489, 0xe092), .driver_info = BTUSB_QCA_ROME | BTUSB_WIDEBAND_SPEECH }, { USB_DEVICE(0x0489, 0xe09f), .driver_info = BTUSB_QCA_ROME |
@@ -1747,6 +1749,13 @@ static void btusb_work(struct work_struct *work)* which work with WBS at all. */ new_alts =btusb_find_altsetting (data,6 ) ?6 :1 ; +/* Because mSBC frames do not need to be aligned to the +* SCO packet boundary. If support the Alt 3, use the +* Alt 3 for HCI payload >= 60 Bytes let air packet +* data satisfy 60 bytes. +*/ +if (new_alts ==1 &&btusb_find_altsetting (data,3 )) + new_alts =3 ; }if (btusb_switch_alt_setting (hdev, new_alts) <0 )
@@ -3377,11 +3386,6 @@ static int btusb_mtk_hci_wmt_sync(struct hci_dev *hdev,struct btmtk_wmt_hdr *hdr;int err; -/* Submit control IN URB on demand to process the WMT event */ - err =btusb_mtk_submit_wmt_recv_urb (hdev); -if (err <0 ) -return err; -/* Send the WMT command and wait until the WMT event returns */ hlen =sizeof (*hdr) + wmt_params->dlen;if (hlen >255 )
@@ -3407,6 +3411,11 @@ static int btusb_mtk_hci_wmt_sync(struct hci_dev *hdev, goto err_free_wc; } +/* Submit control IN URB on demand to process the WMT event */ + err =btusb_mtk_submit_wmt_recv_urb (hdev); +if (err <0 ) +return err; +/* The vendor specific WMT commands are all answered by a vendor * specific event and will have the Command Status or Command * Complete as with usual HCI command flow control.
@@ -4127,6 +4136,11 @@ static int btusb_setup_qca_download_fw(struct hci_dev *hdev, sent += size; count -= size; +/* ep2 need time to switch from function acl to function dfu, +* so we add 20ms delay here. +*/ +msleep (20 ); +while (count) { size =min_t (size_t, count,QCA_DFU_PACKET_LEN );
@@ -4219,9 +4233,15 @@ static int btusb_setup_qca_load_nvm(struct hci_dev *hdev,int err;if (((ver->flag >>8 ) &0xff ) ==QCA_FLAG_MULTI_NVM ) { -snprintf (fwname,sizeof (fwname),"qca/nvm_usb_%08x_%04x.bin" , -le32_to_cpu (ver->rom_version), -le16_to_cpu (ver->board_id)); +/* if boardid equal 0, use default nvm without surfix */ +if (le16_to_cpu (ver->board_id) ==0x0 ) { +snprintf (fwname,sizeof (fwname),"qca/nvm_usb_%08x.bin" , +le32_to_cpu (ver->rom_version)); + }else { +snprintf (fwname,sizeof (fwname),"qca/nvm_usb_%08x_%04x.bin" , +le32_to_cpu (ver->rom_version), +le16_to_cpu (ver->board_id)); + } }else {snprintf (fwname,sizeof (fwname),"qca/nvm_usb_%08x.bin" ,le32_to_cpu (ver->rom_version));
drivers/char/ipmi/ipmi_watchdog.c +12 -10
@@ -371,16 +371,18 @@ static int __ipmi_set_timeout(struct ipmi_smi_msg *smi_msg, data[0 ] =0 ;WDOG_SET_TIMER_USE (data[0 ],WDOG_TIMER_USE_SMS_OS ); -if ((ipmi_version_major >1 ) - || ((ipmi_version_major ==1 ) && (ipmi_version_minor >=5 ))) { -/* This is an IPMI 1.5-only feature. */ - data[0 ] |=WDOG_DONT_STOP_ON_SET ; - }else if (ipmi_watchdog_state !=WDOG_TIMEOUT_NONE ) { -/* -* In ipmi 1.0, setting the timer stops the watchdog, we -* need to start it back up again. -*/ - hbnow =1 ; +if (ipmi_watchdog_state !=WDOG_TIMEOUT_NONE ) { +if ((ipmi_version_major >1 ) || + ((ipmi_version_major ==1 ) && (ipmi_version_minor >=5 ))) { +/* This is an IPMI 1.5-only feature. */ + data[0 ] |=WDOG_DONT_STOP_ON_SET ; + }else { +/* +* In ipmi 1.0, setting the timer stops the watchdog, we +* need to start it back up again. +*/ + hbnow =1 ; + } } data[1 ] =0 ;
drivers/clk/renesas/r8a77995-cpg-mssr.c +1 -0
@@ -75,6 +75,7 @@ static const struct cpg_core_clk r8a77995_core_clks[] __initconst = {DEF_RATE (".oco" ,CLK_OCO ,8 *1000 *1000 ),/* Core Clock Outputs */ +DEF_FIXED ("za2" ,R8A77995_CLK_ZA2 ,CLK_PLL0D3 ,2 ,1 ),DEF_FIXED ("z2" ,R8A77995_CLK_Z2 ,CLK_PLL0D3 ,1 ,1 ),DEF_FIXED ("ztr" ,R8A77995_CLK_ZTR ,CLK_PLL1 ,6 ,1 ), DEF_FIXED("zt", R8A77995_CLK_ZT, CLK_PLL1, 4, 1),
drivers/clk/renesas/rcar-usb2-clock-sel.c +15 -9
@@ -128,10 +128,8 @@ static int rcar_usb2_clock_sel_resume(struct device *dev)static int rcar_usb2_clock_sel_remove (struct platform_device *pdev) {struct device *dev = &pdev->dev; -struct usb2_clock_sel_priv *priv =platform_get_drvdata (pdev);of_clk_del_provider (dev->of_node); -clk_hw_unregister (&priv->hw);pm_runtime_put (dev);pm_runtime_disable (dev);
@@ -164,9 +162,6 @@ static int rcar_usb2_clock_sel_probe(struct platform_device *pdev)if (IS_ERR (priv->rsts))return PTR_ERR (priv->rsts); -pm_runtime_enable (dev); -pm_runtime_get_sync (dev); - clk =devm_clk_get (dev,"usb_extal" );if (!IS_ERR (clk) && !clk_prepare_enable (clk)) { priv->extal = !!clk_get_rate (clk);
@@ -183,6 +178,8 @@ static int rcar_usb2_clock_sel_probe(struct platform_device *pdev)return -ENOENT ; } +pm_runtime_enable (dev); +pm_runtime_get_sync (dev);platform_set_drvdata (pdev, priv);dev_set_drvdata (dev, priv);
@@ -193,11 +190,20 @@ static int rcar_usb2_clock_sel_probe(struct platform_device *pdev) init.num_parents =0 ; priv->hw.init = &init; - clk =clk_register (NULL , &priv->hw); -if (IS_ERR (clk)) -return PTR_ERR (clk); + ret =devm_clk_hw_register (NULL , &priv->hw); +if (ret) + goto pm_put; + + ret =of_clk_add_hw_provider (np, of_clk_hw_simple_get, &priv->hw); +if (ret) + goto pm_put; + +return 0 ; -return of_clk_add_hw_provider (np, of_clk_hw_simple_get, &priv->hw); +pm_put: +pm_runtime_put (dev); +pm_runtime_disable (dev); +return ret; }static const struct dev_pm_ops rcar_usb2_clock_sel_pm_ops = {
drivers/clk/tegra/clk-periph-gate.c +47 -25
107 lines not on this page · raw message
drivers/clk/tegra/clk-periph.c +11 -0
@@ -100,6 +100,15 @@ static void clk_periph_disable(struct clk_hw *hw) gate_ops->disable (gate_hw); } +static void clk_periph_disable_unused (struct clk_hw *hw) +{ +struct tegra_clk_periph *periph =to_clk_periph (hw); +const struct clk_ops *gate_ops = periph->gate_ops; +struct clk_hw *gate_hw = &periph->gate.hw; + + gate_ops->disable_unused (gate_hw); +} +static void clk_periph_restore_context (struct clk_hw *hw) {struct tegra_clk_periph *periph =to_clk_periph (hw);
@@ -126,6 +135,7 @@ const struct clk_ops tegra_clk_periph_ops = { .is_enabled = clk_periph_is_enabled, .enable = clk_periph_enable, .disable = clk_periph_disable, + .disable_unused = clk_periph_disable_unused, .restore_context = clk_periph_restore_context, };
@@ -135,6 +145,7 @@ static const struct clk_ops tegra_clk_periph_nodiv_ops = { .is_enabled = clk_periph_is_enabled, .enable = clk_periph_enable, .disable = clk_periph_disable, + .disable_unused = clk_periph_disable_unused, .restore_context = clk_periph_restore_context, };
drivers/clk/tegra/clk-pll.c +4 -5
@@ -1131,7 +1131,8 @@ static int clk_pllu_enable(struct clk_hw *hw)if (pll->lock)spin_lock_irqsave (pll->lock, flags); -_clk_pll_enable (hw); +if (!clk_pll_is_enabled (hw)) +_clk_pll_enable (hw); ret =clk_pll_wait_for_lock (pll);if (ret <0 )
@@ -1748,15 +1749,13 @@ static int clk_pllu_tegra114_enable(struct clk_hw *hw)return -EINVAL ; } -if (clk_pll_is_enabled (hw)) -return 0 ; - input_rate =clk_hw_get_rate (__clk_get_hw (osc));if (pll->lock)spin_lock_irqsave (pll->lock, flags); -_clk_pll_enable (hw); +if (!clk_pll_is_enabled (hw)) +_clk_pll_enable (hw); ret =clk_pll_wait_for_lock (pll);if (ret <0 )
drivers/clk/tegra/clk-tegra124-emc.c +3 -1
@@ -249,8 +249,10 @@ static int emc_set_timing(struct tegra_clk_emc *tegra, div = timing->parent_rate / (timing->rate /2 ) -2 ; err = tegra->prepare_timing_change (emc, timing->rate); -if (err) +if (err) { +clk_disable_unprepare (timing->parent);return err; + }spin_lock_irqsave (tegra->lock, flags);
drivers/clocksource/arm_arch_timer.c +1 -1
@@ -352,7 +352,7 @@ static u64 notrace arm64_858921_read_cntvct_el0(void)do { \ _val =read_sysreg (reg); \ _retries--; \ - }while (((_val +1 ) &GENMASK (9 ,0 )) <=1 && _retries); \ + }while (((_val +1 ) &GENMASK (8 ,0 )) <=1 && _retries); \ \WARN_ON_ONCE (!_retries); \ _val; \
drivers/extcon/extcon-intel-mrfld.c +9 -0
@@ -197,6 +197,7 @@ static int mrfld_extcon_probe(struct platform_device *pdev)struct intel_soc_pmic *pmic =dev_get_drvdata (dev->parent);struct regmap *regmap = pmic->regmap;struct mrfld_extcon_data *data; +unsigned int status;unsigned int id;int irq, ret;
@@ -244,6 +245,14 @@ static int mrfld_extcon_probe(struct platform_device *pdev)/* Get initial state */ mrfld_extcon_role_detect (data); +/* +* Cached status value is used for cable detection, see comments +* in mrfld_extcon_cable_detect(), we need to sync cached value +* with a real state of the hardware. +*/ +regmap_read (regmap,BCOVE_SCHGRIRQ1 , &status); + data->status = status; +mrfld_extcon_clear (data,BCOVE_MIRQLVL1 ,BCOVE_LVL1_CHGR );mrfld_extcon_clear (data,BCOVE_MCHGRIRQ1 ,BCOVE_CHGRIRQ_ALL );
drivers/firmware/qemu_fw_cfg.c +3 -5
@@ -299,15 +299,13 @@ static int fw_cfg_do_platform_probe(struct platform_device *pdev)return 0 ; } -static ssize_t fw_cfg_showrev (struct kobject *k,struct attribute *a,char *buf) +static ssize_t fw_cfg_showrev (struct kobject *k,struct kobj_attribute *a, +char *buf) {return sprintf (buf,"%u\n" , fw_cfg_rev); } -static const struct { -struct attribute attr; -ssize_t (*show)(struct kobject *k,struct attribute *a,char *buf); -} fw_cfg_rev_attr = { +static const struct kobj_attribute fw_cfg_rev_attr = { .attr = { .name ="rev" , .mode =S_IRUSR }, .show = fw_cfg_showrev, };
drivers/fpga/stratix10-soc.c +1 -0
@@ -454,6 +454,7 @@ static int s10_remove(struct platform_device *pdev)struct s10_priv *priv = mgr->priv;fpga_mgr_unregister (mgr); +fpga_mgr_free (mgr);stratix10_svc_free_channel (priv->chan);return 0 ;
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +4 -17
@@ -49,12 +49,6 @@ static struct {spinlock_t mem_limit_lock; } kfd_mem_limit; -/* Struct used for amdgpu_amdkfd_bo_validate */ -struct amdgpu_vm_parser { -uint32_t domain; -bool wait; -}; -static const char *const domain_bit_to_string[] = {"CPU" ,"GTT" ,
@@ -337,11 +331,9 @@ static int amdgpu_amdkfd_bo_validate(struct amdgpu_bo *bo, uint32_t domain,return ret; } -static int amdgpu_amdkfd_validate (void *param,struct amdgpu_bo *bo) +static int amdgpu_amdkfd_validate_vm_bo (void *_unused,struct amdgpu_bo *bo) { -struct amdgpu_vm_parser *p = param; - -return amdgpu_amdkfd_bo_validate (bo, p->domain, p->wait); +return amdgpu_amdkfd_bo_validate (bo, bo->allowed_domains, false); }/* vm_validate_pt_pd_bos - Validate page table and directory BOs
@@ -355,20 +347,15 @@ static int vm_validate_pt_pd_bos(struct amdgpu_vm *vm) {struct amdgpu_bo *pd = vm->root.base.bo;struct amdgpu_device *adev =amdgpu_ttm_adev (pd->tbo.bdev); -struct amdgpu_vm_parser param;int ret; - param.domain =AMDGPU_GEM_DOMAIN_VRAM ; - param.wait = false; - - ret =amdgpu_vm_validate_pt_bos (adev, vm, amdgpu_amdkfd_validate, - ¶m); + ret =amdgpu_vm_validate_pt_bos (adev, vm, amdgpu_amdkfd_validate_vm_bo,NULL );if (ret) {pr_err ("failed to validate PT BOs\n" );return ret; } - ret =amdgpu_amdkfd_validate (¶m, pd); + ret =amdgpu_amdkfd_validate_vm_bo (NULL , pd);if (ret) {pr_err ("failed to validate PD\n" );return ret;
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +4 -6
@@ -2818,7 +2818,7 @@ static int amdgpu_device_ip_reinit_early_sriov(struct amdgpu_device *adev) AMD_IP_BLOCK_TYPE_IH, }; -for (i =0 ; i <ARRAY_SIZE (ip_order); i++) { +for (i =0 ; i < adev->num_ip_blocks; i++) {int j;struct amdgpu_ip_block *block;
@@ -3141,8 +3141,8 @@ static int amdgpu_device_get_job_timeout_settings(struct amdgpu_device *adev)int ret =0 ;/* -* By default timeout for non compute jobs is 10000. -* And there is no timeout enforced on compute jobs. +* By default timeout for non compute jobs is 10000 +* and 60000 for compute jobs. * In SR-IOV or passthrough mode, timeout for compute * jobs are 60000 by default. */
@@ -3151,10 +3151,8 @@ static int amdgpu_device_get_job_timeout_settings(struct amdgpu_device *adev)if (amdgpu_sriov_vf (adev)) adev->compute_timeout =amdgpu_sriov_is_pp_one_vf (adev) ?msecs_to_jiffies (60000 ) :msecs_to_jiffies (10000 ); -else if (amdgpu_passthrough (adev)) - adev->compute_timeout =msecs_to_jiffies (60000 );else - adev->compute_timeout =MAX_SCHEDULE_TIMEOUT ; + adev->compute_timeout =msecs_to_jiffies (60000 );if (strnlen (input,AMDGPU_MAX_TIMEOUT_PARAM_LENGTH )) { while ((timeout_setting = strsep(&input, ",")) &&
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +3 -2
@@ -272,9 +272,9 @@ module_param_named(msi, amdgpu_msi, int, 0444);* for SDMA and Video. * * By default(with no lockup_timeout settings), the timeout for all non-compute(GFX, SDMA and Video) -* jobs is 10000. And there is no timeout enforced on compute jobs. +* jobs is 10000. The timeout for compute is 60000. */ -MODULE_PARM_DESC (lockup_timeout,"GPU lockup timeout in ms (default: for bare metal 10000 for non-compute jobs and infinity timeout for compute jobs; " +MODULE_PARM_DESC (lockup_timeout,"GPU lockup timeout in ms (default: for bare metal 10000 for non-compute jobs and 60000 for compute jobs; " "for passthrough or sriov, 10000 for all jobs." " 0: keep default value. negative: infinity timeout), " "format: for bare metal [Non-Compute] or [GFX,Compute,SDMA,Video]; "
@@ -1123,6 +1123,7 @@ static const struct pci_device_id pciidlist[] = { {0x1002, 0x73E0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_DIMGREY_CAVEFISH}, {0x1002, 0x73E1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_DIMGREY_CAVEFISH}, {0x1002, 0x73E2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_DIMGREY_CAVEFISH}, + {0x1002, 0x73E3, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_DIMGREY_CAVEFISH}, {0x1002, 0x73FF, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_DIMGREY_CAVEFISH}, {0, 0, 0}
drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c +1 -10
@@ -131,7 +131,7 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,struct amdgpu_device *adev = ring->adev;struct amdgpu_ib *ib = &ibs[0 ];struct dma_fence *tmp =NULL ; -bool skip_preamble, need_ctx_switch; +bool need_ctx_switch;unsigned patch_offset = ~0 ;struct amdgpu_vm *vm;uint64_t fence_ctx;
@@ -228,7 +228,6 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,if (need_ctx_switch) status |=AMDGPU_HAVE_CTX_SWITCH ; - skip_preamble = ring->current_ctx == fence_ctx;if (job && ring->funcs->emit_cntxcntl) { status |= job->preamble_status; status |= job->preemption_status;
@@ -246,14 +245,6 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,for (i =0 ; i < num_ibs; ++i) { ib = &ibs[i]; -/* drop preamble IBs if we don't have a context switch */ -if ((ib->flags &AMDGPU_IB_FLAG_PREAMBLE ) && - skip_preamble && - !(status &AMDGPU_PREAMBLE_IB_PRESENT_FIRST ) && - !amdgpu_mcbp && - !amdgpu_sriov_vf (adev))/* for SRIOV preemption, Preamble CE ib must be inserted anyway */ -continue ; -if (job && ring->funcs->emit_frame_cntl) {if (secure != !!(ib->flags &AMDGPU_IB_FLAGS_SECURE )) {amdgpu_ring_emit_frame_cntl (ring, false, secure);
drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h +2 -0
@@ -89,6 +89,8 @@ struct amdgpu_nbio_funcs {void (*enable_aspm)(struct amdgpu_device *adev,bool enable);void (*program_aspm)(struct amdgpu_device *adev); +void (*apply_lc_spc_mode_wa)(struct amdgpu_device *adev); +void (*apply_l1_link_width_reconfig_wa)(struct amdgpu_device *adev); };struct amdgpu_nbio {
drivers/gpu/drm/amd/amdgpu/amdgpu_umc.h +5 -0
@@ -21,6 +21,11 @@#ifndef __AMDGPU_UMC_H__#define __AMDGPU_UMC_H__ +/* +* (addr / 256) * 4096, the higher 26 bits in ErrorAddr +* is the index of 4KB block +*/ +#define ADDR_OF_4KB_BLOCK (addr) (((addr) & ~0xffULL) << 4)/* * (addr / 256) * 8192, the higher 26 bits in ErrorAddr * is the index of 8KB block
drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c +41 -0
57 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/nv.c +6 -0
@@ -1073,6 +1073,12 @@ static int nv_common_hw_init(void *handle) {struct amdgpu_device *adev = (struct amdgpu_device *)handle; +if (adev->nbio.funcs->apply_lc_spc_mode_wa) + adev->nbio.funcs->apply_lc_spc_mode_wa (adev); + +if (adev->nbio.funcs->apply_l1_link_width_reconfig_wa) + adev->nbio.funcs->apply_l1_link_width_reconfig_wa (adev); +/* enable pcie gen2/3 link */ nv_pcie_gen3_enable (adev);/* enable aspm */
drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c +2 -2
@@ -142,7 +142,7 @@ static const struct soc15_reg_golden golden_settings_sdma_4_1[] = {SOC15_REG_GOLDEN_VALUE (SDMA0 ,0 , mmSDMA0_RLC0_RB_WPTR_POLL_CNTL,0xfffffff7 ,0x00403000 ),SOC15_REG_GOLDEN_VALUE (SDMA0 ,0 , mmSDMA0_RLC1_IB_CNTL,0x800f0111 ,0x00000100 ),SOC15_REG_GOLDEN_VALUE (SDMA0 ,0 , mmSDMA0_RLC1_RB_WPTR_POLL_CNTL,0xfffffff7 ,0x00403000 ), -SOC15_REG_GOLDEN_VALUE (SDMA0 ,0 , mmSDMA0_UTCL1_PAGE,0x000003ff ,0x000003c0 ), +SOC15_REG_GOLDEN_VALUE (SDMA0 ,0 , mmSDMA0_UTCL1_PAGE,0x000003ff ,0x000003e0 ), SOC15_REG_GOLDEN_VALUE(SDMA0, 0, mmSDMA0_UTCL1_WATERMK, 0xfc000000, 0x00000000) };
@@ -268,7 +268,7 @@ static const struct soc15_reg_golden golden_settings_sdma_4_3[] = {SOC15_REG_GOLDEN_VALUE (SDMA0 ,0 , mmSDMA0_POWER_CNTL,0x003fff07 ,0x40000051 ),SOC15_REG_GOLDEN_VALUE (SDMA0 ,0 , mmSDMA0_RLC0_RB_WPTR_POLL_CNTL,0xfffffff7 ,0x00403000 ),SOC15_REG_GOLDEN_VALUE (SDMA0 ,0 , mmSDMA0_RLC1_RB_WPTR_POLL_CNTL,0xfffffff7 ,0x00403000 ), -SOC15_REG_GOLDEN_VALUE (SDMA0 ,0 , mmSDMA0_UTCL1_PAGE,0x000003ff ,0x000003c0 ), +SOC15_REG_GOLDEN_VALUE (SDMA0 ,0 , mmSDMA0_UTCL1_PAGE,0x000003ff ,0x000003e0 ), SOC15_REG_GOLDEN_VALUE(SDMA0, 0, mmSDMA0_UTCL1_WATERMK, 0xfc000000, 0x03fbe1fe) };
drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c +3 -3
@@ -145,9 +145,6 @@ static int sdma_v5_2_init_microcode(struct amdgpu_device *adev)struct amdgpu_firmware_info *info =NULL ;const struct common_firmware_header *header =NULL ; -if (amdgpu_sriov_vf (adev) && (adev->asic_type ==CHIP_SIENNA_CICHLID )) -return 0 ; -DRM_DEBUG ("\n" );switch (adev->asic_type) {
@@ -182,6 +179,9 @@ static int sdma_v5_2_init_microcode(struct amdgpu_device *adev) (void *)&adev->sdma.instance[0 ], sizeof(struct amdgpu_sdma_instance)); +if (amdgpu_sriov_vf (adev) && (adev->asic_type ==CHIP_SIENNA_CICHLID )) +return 0 ; +DRM_DEBUG ("psp_load == '%s'\n" , adev->firmware.load_type ==AMDGPU_FW_LOAD_PSP ?"true" :"false" );
drivers/gpu/drm/amd/amdgpu/umc_v8_7.c +1 -1
@@ -233,7 +233,7 @@ static void umc_v8_7_query_error_address(struct amdgpu_device *adev, err_addr &= ~((0x1ULL << lsb) -1 );/* translate umc channel address to soc pa, 3 parts are included */ - retired_page =ADDR_OF_8KB_BLOCK (err_addr) | + retired_page =ADDR_OF_4KB_BLOCK (err_addr) |ADDR_OF_256B_BLOCK (channel_index) |OFFSET_IN_256B_BLOCK (err_addr);
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +38 -30
138 lines not on this page · raw message
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +23 -1
@@ -3867,6 +3867,23 @@ static int fill_dc_scaling_info(const struct drm_plane_state *state, scaling_info->src_rect.x = state->src_x >>16 ; scaling_info->src_rect.y = state->src_y >>16 ; +/* +* For reasons we don't (yet) fully understand a non-zero +* src_y coordinate into an NV12 buffer can cause a +* system hang. To avoid hangs (and maybe be overly cautious) +* let's reject both non-zero src_x and src_y. +* +* We currently know of only one use-case to reproduce a +* scenario with non-zero src_x and src_y for NV12, which +* is to gesture the YouTube Android app into full screen +* on ChromeOS. +*/ +if (state->fb && + state->fb->format->format ==DRM_FORMAT_NV12 && + (scaling_info->src_rect.x !=0 || + scaling_info->src_rect.y !=0 )) +return -EINVAL ; +/* * For reasons we don't (yet) fully understand a non-zero * src_y coordinate into an NV12 buffer can cause a
@@ -8939,7 +8956,8 @@ static int dm_update_crtc_state(struct amdgpu_display_manager *dm,BUG_ON (dm_new_crtc_state->stream ==NULL );/* Scaling or underscan settings */ -if (is_scaling_state_different (dm_old_conn_state, dm_new_conn_state)) +if (is_scaling_state_different (dm_old_conn_state, dm_new_conn_state) || +drm_atomic_crtc_needs_modeset (new_crtc_state))update_stream_scaling_settings ( &new_crtc_state->mode, dm_new_conn_state, dm_new_crtc_state->stream);
@@ -9498,6 +9516,10 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev, dm_old_crtc_state->dsc_force_changed == false)continue ; + ret =amdgpu_dm_verify_lut_sizes (new_crtc_state); +if (ret) + goto fail; +if (!new_crtc_state->enable)continue ;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h +1 -0
@@ -529,6 +529,7 @@ void amdgpu_dm_trigger_timing_sync(struct drm_device *dev);#define MAX_COLOR_LEGACY_LUT_ENTRIES 256void amdgpu_dm_init_color_mod (void ); +int amdgpu_dm_verify_lut_sizes (const struct drm_crtc_state *crtc_state);int amdgpu_dm_update_crtc_color_mgmt (struct dm_crtc_state *crtc);int amdgpu_dm_update_plane_color_mgmt (struct dm_crtc_state *crtc,struct dc_plane_state *dc_plane_state);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c +35 -6
55 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c +1 -1
@@ -1944,7 +1944,7 @@ static enum bp_result get_integrated_info_v2_1( info_v2_1->edp1_info.edp_pwr_down_bloff_to_vary_bloff; info->edp1_info.edp_panel_bpc = info_v2_1->edp1_info.edp_panel_bpc; - info->edp1_info.edp_bootup_bl_level = + info->edp1_info.edp_bootup_bl_level = info_v2_1->edp1_info.edp_bootup_bl_level; info->edp2_info.edp_backlight_pwm_hz =le16_to_cpu (info_v2_1->edp2_info.edp_backlight_pwm_hz);
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c +2 -0
@@ -1726,6 +1726,8 @@ static void set_dp_mst_mode(struct dc_link *link, bool mst_enable) link->type = dc_connection_single; link->local_sink = link->remote_sinks[0 ]; link->local_sink->sink_signal =SIGNAL_TYPE_DISPLAY_PORT ; +dc_sink_retain (link->local_sink); +dm_helpers_dp_mst_stop_top_mgr (link->ctx, link); }else if (mst_enable == true && link->type == dc_connection_single && link->remote_sinks[0 ] !=NULL ) {
drivers/gpu/drm/amd/display/dc/core/dc_resource.c +206 -367
692 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/dc_types.h +0 -5
@@ -270,11 +270,6 @@ struct dc_edid_caps {struct dc_panel_patch panel_patch; }; -struct view { -uint32_t width; -uint32_t height; -}; -struct dc_mode_flags {/* note: part of refresh rate flag*/ uint32_t INTERLACE :1 ;
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c +14 -7
@@ -496,10 +496,13 @@ static enum lb_memory_config dpp1_dscl_find_lb_memory_config(struct dcn10_dpp *dint vtaps_c = scl_data->taps.v_taps_c;int ceil_vratio =dc_fixpt_ceil (scl_data->ratios.vert);int ceil_vratio_c =dc_fixpt_ceil (scl_data->ratios.vert_c); -enum lb_memory_config mem_cfg =LB_MEMORY_CONFIG_0 ; -if (dpp->base.ctx->dc->debug.use_max_lb) -return mem_cfg; +if (dpp->base.ctx->dc->debug.use_max_lb) { +if (scl_data->format ==PIXEL_FORMAT_420BPP8 + || scl_data->format ==PIXEL_FORMAT_420BPP10 ) +return LB_MEMORY_CONFIG_3 ; +return LB_MEMORY_CONFIG_0 ; + } dpp->base.caps->dscl_calc_lb_num_partitions ( scl_data,LB_MEMORY_CONFIG_1 , &num_part_y, &num_part_c);
@@ -628,8 +631,10 @@ static void dpp1_dscl_set_manual_ratio_init( SCL_V_INIT_INT, init_int);if (REG (SCL_VERT_FILTER_INIT_BOT )) { - init_frac =dc_fixpt_u0d19 (data->inits.v_bot) <<5 ; - init_int =dc_fixpt_floor (data->inits.v_bot); +struct fixed31_32 bot =dc_fixpt_add (data->inits.v, data->ratios.vert); + + init_frac =dc_fixpt_u0d19 (bot) <<5 ; + init_int =dc_fixpt_floor (bot);REG_SET_2 (SCL_VERT_FILTER_INIT_BOT ,0 ,SCL_V_INIT_FRAC_BOT , init_frac,SCL_V_INIT_INT_BOT , init_int);
@@ -642,8 +647,10 @@ static void dpp1_dscl_set_manual_ratio_init( SCL_V_INIT_INT_C, init_int);if (REG (SCL_VERT_FILTER_INIT_BOT_C )) { - init_frac =dc_fixpt_u0d19 (data->inits.v_c_bot) <<5 ; - init_int =dc_fixpt_floor (data->inits.v_c_bot); +struct fixed31_32 bot =dc_fixpt_add (data->inits.v_c, data->ratios.vert_c); + + init_frac =dc_fixpt_u0d19 (bot) <<5 ; + init_int =dc_fixpt_floor (bot);REG_SET_2 (SCL_VERT_FILTER_INIT_BOT_C ,0 ,SCL_V_INIT_FRAC_BOT_C , init_frac,SCL_V_INIT_INT_BOT_C , init_int);
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c +1 -1
@@ -243,7 +243,7 @@ void dcn20_dccg_init(struct dce_hwseq *hws)REG_WRITE (MILLISECOND_TIME_BASE_DIV ,0x1186a0 );/* This value is dependent on the hardware pipeline delay so set once per SOC */ -REG_WRITE (DISPCLK_FREQ_CHANGE_CNTL ,0x801003c ); +REG_WRITE (DISPCLK_FREQ_CHANGE_CNTL ,0xe01003c ); } void dcn20_disable_vga(
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c +8 -6
@@ -2284,12 +2284,14 @@ int dcn20_populate_dml_pipes_from_context( pipes[pipe_cnt].pipe.src.source_scan = pln->rotation ==ROTATION_ANGLE_90 || pln->rotation ==ROTATION_ANGLE_270 ? dm_vert : dm_horz; - pipes[pipe_cnt].pipe.src.viewport_y_y = scl->viewport_unadjusted.y; - pipes[pipe_cnt].pipe.src.viewport_y_c = scl->viewport_c_unadjusted.y; - pipes[pipe_cnt].pipe.src.viewport_width = scl->viewport_unadjusted.width; - pipes[pipe_cnt].pipe.src.viewport_width_c = scl->viewport_c_unadjusted.width; - pipes[pipe_cnt].pipe.src.viewport_height = scl->viewport_unadjusted.height; - pipes[pipe_cnt].pipe.src.viewport_height_c = scl->viewport_c_unadjusted.height; + pipes[pipe_cnt].pipe.src.viewport_y_y = scl->viewport.y; + pipes[pipe_cnt].pipe.src.viewport_y_c = scl->viewport_c.y; + pipes[pipe_cnt].pipe.src.viewport_width = scl->viewport.width; + pipes[pipe_cnt].pipe.src.viewport_width_c = scl->viewport_c.width; + pipes[pipe_cnt].pipe.src.viewport_height = scl->viewport.height; + pipes[pipe_cnt].pipe.src.viewport_height_c = scl->viewport_c.height; + pipes[pipe_cnt].pipe.src.viewport_width_max = pln->src_rect.width; + pipes[pipe_cnt].pipe.src.viewport_height_max = pln->src_rect.height; pipes[pipe_cnt].pipe.src.surface_width_y = pln->plane_size.surface_size.width; pipes[pipe_cnt].pipe.src.surface_height_y = pln->plane_size.surface_size.height; pipes[pipe_cnt].pipe.src.surface_width_c = pln->plane_size.chroma_size.width;
drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c +28 -50
129 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/dml/display_mode_structs.h +2 -0
@@ -253,6 +253,8 @@ struct _vcs_dpi_display_pipe_source_params_st {unsigned int viewport_y_c;unsigned int viewport_width_c;unsigned int viewport_height_c; +unsigned int viewport_width_max; +unsigned int viewport_height_max;unsigned int data_pitch;unsigned int data_pitch_c;unsigned int meta_pitch;
drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.c +13 -0
@@ -627,6 +627,19 @@ static void fetch_pipe_params(struct display_mode_lib *mode_lib) } } } +if (src->viewport_width_max) { +int hdiv_c = src->source_format >= dm_420_8 && src->source_format <= dm_422_10 ?2 :1 ; +int vdiv_c = src->source_format >= dm_420_8 && src->source_format <= dm_420_12 ?2 :1 ; + +if (mode_lib->vba.ViewportWidth[mode_lib->vba.NumberOfActivePlanes] > src->viewport_width_max) + mode_lib->vba.ViewportWidth[mode_lib->vba.NumberOfActivePlanes] = src->viewport_width_max; +if (mode_lib->vba.ViewportHeight[mode_lib->vba.NumberOfActivePlanes] > src->viewport_height_max) + mode_lib->vba.ViewportHeight[mode_lib->vba.NumberOfActivePlanes] = src->viewport_height_max; +if (mode_lib->vba.ViewportWidthChroma[mode_lib->vba.NumberOfActivePlanes] > src->viewport_width_max / hdiv_c) + mode_lib->vba.ViewportWidthChroma[mode_lib->vba.NumberOfActivePlanes] = src->viewport_width_max / hdiv_c; +if (mode_lib->vba.ViewportHeightChroma[mode_lib->vba.NumberOfActivePlanes] > src->viewport_height_max / vdiv_c) + mode_lib->vba.ViewportHeightChroma[mode_lib->vba.NumberOfActivePlanes] = src->viewport_height_max / vdiv_c; + }if (pipes[k].pipe.src.immediate_flip) { mode_lib->vba.ImmediateFlipSupport = true;
drivers/gpu/drm/amd/display/dc/inc/hw/transform.h +0 -4
@@ -162,9 +162,7 @@ struct scl_inits {struct fixed31_32 h;struct fixed31_32 h_c;struct fixed31_32 v; -struct fixed31_32 v_bot;struct fixed31_32 v_c; -struct fixed31_32 v_c_bot; };struct scaler_data {
@@ -173,8 +171,6 @@ struct scaler_data {struct scaling_taps taps;struct rect viewport;struct rect viewport_c; -struct rect viewport_unadjusted; -struct rect viewport_c_unadjusted;struct rect recout;struct scaling_ratios ratios;struct scl_inits inits;
drivers/gpu/drm/amd/display/dc/irq_types.h +1 -1
@@ -164,7 +164,7 @@ enum irq_type };#define DAL_VALID_IRQ_SRC_NUM (src) \ - ((src) <= DAL_IRQ_SOURCES_NUMBER && (src) > DC_IRQ_SOURCE_INVALID) + ((src) < DAL_IRQ_SOURCES_NUMBER && (src) > DC_IRQ_SOURCE_INVALID)/* Number of Page Flip IRQ Sources. */ #define DAL_PFLIP_IRQ_SRC_NUM \
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c +0 -1
@@ -260,7 +260,6 @@ enum mod_hdcp_status mod_hdcp_setup(struct mod_hdcp *hdcp,struct mod_hdcp_output output;enum mod_hdcp_status status =MOD_HDCP_STATUS_SUCCESS ; -memset (hdcp,0 ,sizeof (struct mod_hdcp ));memset (&output,0 ,sizeof (output)); hdcp->config = *config;HDCP_TOP_INTERFACE_TRACE (hdcp);
drivers/gpu/drm/amd/display/modules/hdcp/hdcp1_execution.c +3 -1
@@ -29,8 +29,10 @@ static inline enum mod_hdcp_status validate_bksv(struct mod_hdcp *hdcp) {uint64_t n =0 ;uint8_t count =0 ; +u8 bksv[sizeof (n)] = { }; -memcpy (&n, hdcp->auth.msg.hdcp1.bksv,sizeof (uint64_t )); +memcpy (bksv, hdcp->auth.msg.hdcp1.bksv,sizeof (hdcp->auth.msg.hdcp1.bksv)); + n = *(uint64_t *)bksv;while (n) { count++;
drivers/gpu/drm/amd/include/navi10_enum.h +1 -1
@@ -430,7 +430,7 @@ ARRAY_2D_DEPTH = 0x00000001,*/ typedef enum ENUM_NUM_SIMD_PER_CU { -NUM_SIMD_PER_CU =0x00000004 , +NUM_SIMD_PER_CU =0x00000002 , }ENUM_NUM_SIMD_PER_CU ;/*
drivers/gpu/drm/arm/malidp_planes.c +7 -2
@@ -922,6 +922,11 @@ static const struct drm_plane_helper_funcs malidp_de_plane_helper_funcs = { .atomic_disable = malidp_de_plane_disable, }; +static const uint64_t linear_only_modifiers[] = { +DRM_FORMAT_MOD_LINEAR , +DRM_FORMAT_MOD_INVALID +}; +int malidp_de_planes_init (struct drm_device *drm) {struct malidp_drm *malidp = drm->dev_private;
@@ -985,8 +990,8 @@ int malidp_de_planes_init(struct drm_device *drm)*/ ret =drm_universal_plane_init (drm, &plane->base, crtcs, &malidp_de_plane_funcs, formats, n, - (id ==DE_SMART ) ?NULL : modifiers, plane_type, -NULL ); + (id ==DE_SMART ) ? linear_only_modifiers : modifiers, + plane_type,NULL );if (ret <0 ) goto cleanup;
drivers/gpu/drm/ast/ast_dp501.c +103 -36
166 lines not on this page · raw message
drivers/gpu/drm/ast/ast_drv.h +12 -0
@@ -121,6 +121,7 @@ struct ast_private {void __iomem *regs;void __iomem *ioregs; +void __iomem *dp501_fw_buf;enum ast_chip chip;bool vga2_clone;
@@ -298,6 +299,17 @@ int ast_mode_config_init(struct ast_private *ast);#define AST_MM_ALIGN_SHIFT 4#define AST_MM_ALIGN_MASK ((1 << AST_MM_ALIGN_SHIFT) - 1) +#define AST_DP501_FW_VERSION_MASK GENMASK(7, 4) +#define AST_DP501_FW_VERSION_1 BIT(4) +#define AST_DP501_PNP_CONNECTED BIT(1) + +#define AST_DP501_DEFAULT_DCLK 65 + +#define AST_DP501_GBL_VERSION 0xf000 +#define AST_DP501_PNPMONITOR 0xf010 +#define AST_DP501_LINKRATE 0xf014 +#define AST_DP501_EDID_DATA 0xf020 +int ast_mm_init (struct ast_private *ast);/* ast post */
drivers/gpu/drm/ast/ast_main.c +9 -1
@@ -99,7 +99,7 @@ static void ast_detect_config_mode(struct drm_device *dev, u32 *scu_rev)if (!(jregd0 &0x80 ) || !(jregd1 &0x10 )) {/* Double check it's actually working */ data =ast_read32 (ast,0xf004 ); -if (data !=0xFFFFFFFF ) { +if ((data !=0xFFFFFFFF ) && (data !=0x00 )) {/* P2A works, grab silicon revision */ ast->config_mode = ast_use_p2a;
@@ -450,6 +450,14 @@ struct ast_private *ast_device_create(const struct drm_driver *drv,if (ret)return ERR_PTR (ret); +/* map reserved buffer */ + ast->dp501_fw_buf =NULL ; +if (dev->vram_mm->vram_size <pci_resource_len (pdev,0 )) { + ast->dp501_fw_buf =pci_iomap_range (pdev,0 , dev->vram_mm->vram_size,0 ); +if (!ast->dp501_fw_buf) +drm_info (dev,"failed to map reserved buffer!\n" ); + } + ret =ast_mode_config_init (ast);if (ret)return ERR_PTR (ret);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c +2 -2
@@ -2369,9 +2369,9 @@ static int cdns_mhdp_probe(struct platform_device *pdev)clk_prepare_enable (clk);pm_runtime_enable (dev); - ret =pm_runtime_get_sync (dev); + ret =pm_runtime_resume_and_get (dev);if (ret <0 ) { -dev_err (dev,"pm_runtime_get_sync failed\n" ); +dev_err (dev,"pm_runtime_resume_and_get failed\n" );pm_runtime_disable (dev); goto clk_disable; }
drivers/gpu/drm/bridge/cdns-dsi.c +1 -1
@@ -1028,7 +1028,7 @@ static ssize_t cdns_dsi_transfer(struct mipi_dsi_host *host,struct mipi_dsi_packet packet;int ret, i, tx_len, rx_len; - ret =pm_runtime_get_sync (host->dev); + ret =pm_runtime_resume_and_get (host->dev);if (ret <0 )return ret;
drivers/gpu/drm/bridge/lontium-lt9611.c +1 -0
@@ -1209,6 +1209,7 @@ static struct i2c_device_id lt9611_id[] = { { "lontium,lt9611", 0 }, {} }; +MODULE_DEVICE_TABLE (i2c, lt9611_id);static const struct of_device_id lt9611_match_table[] = { { .compatible = "lontium,lt9611" },
drivers/gpu/drm/bridge/nwl-dsi.c +39 -22
103 lines not on this page · raw message
drivers/gpu/drm/drm_dp_helper.c +7 -0
@@ -679,7 +679,14 @@ int drm_dp_read_downstream_info(struct drm_dp_aux *aux, !(dpcd[DP_DOWNSTREAMPORT_PRESENT] & DP_DWN_STRM_PORT_PRESENT))return 0 ; +/* Some branches advertise having 0 downstream ports, despite also advertising they have a +* downstream port present. The DP spec isn't clear on if this is allowed or not, but since +* some branches do it we need to handle it regardless. +*/ len =drm_dp_downstream_port_count (dpcd); +if (!len) +return 0 ; +if (dpcd[DP_DOWNSTREAMPORT_PRESENT ] &DP_DETAILED_CAP_INFO_AVAILABLE ) len *=4 ;
drivers/gpu/drm/i915/display/intel_dp.c +1 -1
@@ -3913,7 +3913,7 @@ static int intel_dp_vsc_sdp_unpack(struct drm_dp_vsc_sdp *vsc,if (size <sizeof (struct dp_sdp ))return -EINVAL ; -memset (vsc,0 , size); +memset (vsc,0 ,sizeof (*vsc));if (sdp->sdp_header.HB0 !=0 )return -EINVAL ;
drivers/gpu/drm/ingenic/ingenic-drm-drv.c +6 -7
@@ -341,7 +341,7 @@ static void ingenic_drm_crtc_atomic_flush(struct drm_crtc *crtc,if (priv->update_clk_rate) {mutex_lock (&priv->clk_mutex);clk_set_rate (priv->pix_clk, - crtc_state->adjusted_mode.clock *1000 ); + crtc_state->adjusted_mode.crtc_clock *1000 ); priv->update_clk_rate = false;mutex_unlock (&priv->clk_mutex); }
@@ -413,7 +413,7 @@ static void ingenic_drm_plane_enable(struct ingenic_drm *priv,unsigned int en_bit;if (priv->soc_info->has_osd) { -if (plane->type ==DRM_PLANE_TYPE_PRIMARY ) +if (plane != &priv->f0) en_bit =JZ_LCD_OSDC_F1EN ;else en_bit =JZ_LCD_OSDC_F0EN ;
@@ -428,7 +428,7 @@ void ingenic_drm_plane_disable(struct device *dev, struct drm_plane *plane)unsigned int en_bit;if (priv->soc_info->has_osd) { -if (plane->type ==DRM_PLANE_TYPE_PRIMARY ) +if (plane != &priv->f0) en_bit =JZ_LCD_OSDC_F1EN ;else en_bit =JZ_LCD_OSDC_F0EN ;
@@ -455,8 +455,7 @@ void ingenic_drm_plane_config(struct device *dev,ingenic_drm_plane_enable (priv, plane); -if (priv->soc_info->has_osd && - plane->type ==DRM_PLANE_TYPE_PRIMARY ) { +if (priv->soc_info->has_osd && plane != &priv->f0) {switch (fourcc) {case DRM_FORMAT_XRGB1555 : ctrl |=JZ_LCD_OSDCTRL_RGB555 ;
@@ -504,7 +503,7 @@ void ingenic_drm_plane_config(struct device *dev, }if (priv->soc_info->has_osd) { -if (plane->type ==DRM_PLANE_TYPE_PRIMARY ) { +if (plane != &priv->f0) { xy_reg =JZ_REG_LCD_XYP1 ; size_reg =JZ_REG_LCD_SIZE1 ; }else {
@@ -554,7 +553,7 @@ static void ingenic_drm_plane_atomic_update(struct drm_plane *plane, height = state->src_h >>16 ; cpp = state->fb->format->cpp[0 ]; -if (!priv->soc_info->has_osd || plane->type ==DRM_PLANE_TYPE_OVERLAY ) +if (!priv->soc_info->has_osd || plane == &priv->f0) hwdesc = &priv->dma_hwdescs->hwdesc_f0;else hwdesc = &priv->dma_hwdescs->hwdesc_f1;
drivers/gpu/drm/ingenic/ingenic-ipu.c +1 -1
@@ -760,7 +760,7 @@ static int ingenic_ipu_bind(struct device *dev, struct device *master, void *d) err =drm_universal_plane_init (drm, plane,1 , &ingenic_ipu_plane_funcs, soc_info->formats, soc_info->num_formats, -NULL ,DRM_PLANE_TYPE_PRIMARY ,NULL ); +NULL ,DRM_PLANE_TYPE_OVERLAY ,NULL );if (err) {dev_err (dev,"Failed to init plane: %i\n" , err);return err;
drivers/gpu/drm/mediatek/mtk_drm_crtc.c +1 -1
@@ -259,7 +259,7 @@ static int mtk_crtc_ddp_hw_init(struct mtk_drm_crtc *mtk_crtc)drm_connector_list_iter_end (&conn_iter); } - ret =pm_runtime_get_sync (crtc->dev->dev); + ret =pm_runtime_resume_and_get (crtc->dev->dev);if (ret <0 ) {DRM_ERROR ("Failed to enable power domain: %d\n" , ret);return ret;
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c +0 -2
@@ -88,8 +88,6 @@ static int mdp4_hw_init(struct msm_kms *kms)if (mdp4_kms->rev >1 )mdp4_write (mdp4_kms,REG_MDP4_RESET_STATUS ,1 ); - dev->mode_config.allow_fb_modifiers = true; - out:pm_runtime_put_sync (dev->dev);
drivers/gpu/drm/msm/disp/mdp4/mdp4_plane.c +7 -1
@@ -347,6 +347,12 @@ enum mdp4_pipe mdp4_plane_pipe(struct drm_plane *plane)return mdp4_plane->pipe; } +static const uint64_t supported_format_modifiers[] = { +DRM_FORMAT_MOD_SAMSUNG_64_32_TILE , +DRM_FORMAT_MOD_LINEAR , +DRM_FORMAT_MOD_INVALID +}; +/* initialize plane */ struct drm_plane *mdp4_plane_init (struct drm_device *dev,enum mdp4_pipe pipe_id,bool private_plane)
@@ -375,7 +381,7 @@ struct drm_plane *mdp4_plane_init(struct drm_device *dev, type = private_plane ?DRM_PLANE_TYPE_PRIMARY :DRM_PLANE_TYPE_OVERLAY ; ret =drm_universal_plane_init (dev, plane,0xff , &mdp4_plane_funcs, mdp4_plane->formats, mdp4_plane->nformats, -NULL , type,NULL ); + supported_format_modifiers, type,NULL );if (ret) goto fail;
drivers/gpu/drm/mxsfb/Kconfig +0 -1
@@ -10,7 +10,6 @@ config DRM_MXSFB depends on COMMON_CLK select DRM_MXS select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER select DRM_KMS_CMA_HELPER select DRM_PANEL select DRM_PANEL_BRIDGE
drivers/gpu/drm/nouveau/nouveau_display.c +0 -1
@@ -700,7 +700,6 @@ nouveau_display_create(struct drm_device *dev) dev->mode_config.preferred_depth =24 ; dev->mode_config.prefer_shadow =1 ; - dev->mode_config.allow_fb_modifiers = true;if (drm->client.device.info.chipset <0x11 ) dev->mode_config.async_page_flip = false;
drivers/gpu/drm/radeon/radeon_display.c +1 -0
@@ -1325,6 +1325,7 @@ radeon_user_framebuffer_create(struct drm_device *dev,/* Handle is imported dma-buf, so cannot be migrated to VRAM for scanout */ if (obj->import_attach) {DRM_DEBUG_KMS ("Cannot create framebuffer from imported dma_buf\n" ); +drm_gem_object_put (obj);return ERR_PTR (-EINVAL ); }
drivers/gpu/drm/radeon/radeon_drv.c +4 -4
@@ -386,13 +386,13 @@ radeon_pci_shutdown(struct pci_dev *pdev)if (radeon_device_is_virtual ())radeon_pci_remove (pdev); -#ifdef CONFIG_PPC64 +#if defined(CONFIG_PPC64 ) || defined(CONFIG_MACH_LOONGSON64 )/* * Some adapters need to be suspended before a * shutdown occurs in order to prevent an error -* during kexec. -* Make this power specific becauase it breaks -* some non-power boards. +* during kexec, shutdown or reboot. +* Make this power and Loongson specific because +* it breaks some other boards. */ radeon_suspend_kms (pci_get_drvdata (pdev), true, true, false);#endif
drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c +0 -4
@@ -243,7 +243,6 @@ struct dw_mipi_dsi_rockchip {struct dw_mipi_dsi *dmd;const struct rockchip_dw_dsi_chip_data *cdata;struct dw_mipi_dsi_plat_data pdata; -int devcnt; };struct dphy_pll_parameter_map {
@@ -1141,9 +1140,6 @@ static int dw_mipi_dsi_rockchip_remove(struct platform_device *pdev) {struct dw_mipi_dsi_rockchip *dsi =platform_get_drvdata (pdev); -if (dsi->devcnt ==0 ) -component_del (dsi->dev, &dw_mipi_dsi_rockchip_ops); -dw_mipi_dsi_remove (dsi->dmd);return 0 ;
drivers/gpu/drm/rockchip/rockchip_vop_reg.c +13 -8
@@ -349,8 +349,8 @@ static const struct vop_win_phy rk3066_win0_data = { .nformats = ARRAY_SIZE(formats_win_full), .format_modifiers = format_modifiers_win_full, .enable = VOP_REG(RK3066_SYS_CTRL1, 0x1, 0), - .format = VOP_REG(RK3066_SYS_CTRL0, 0x7, 4), - .rb_swap = VOP_REG(RK3066_SYS_CTRL0, 0x1, 19), + .format = VOP_REG(RK3066_SYS_CTRL1, 0x7, 4), + .rb_swap = VOP_REG(RK3066_SYS_CTRL1, 0x1, 19), .act_info = VOP_REG(RK3066_WIN0_ACT_INFO, 0x1fff1fff, 0), .dsp_info = VOP_REG(RK3066_WIN0_DSP_INFO, 0x0fff0fff, 0), .dsp_st = VOP_REG(RK3066_WIN0_DSP_ST, 0x1fff1fff, 0),
@@ -361,13 +361,12 @@ static const struct vop_win_phy rk3066_win0_data = { };static const struct vop_win_phy rk3066_win1_data = { - .scl = &rk3066_win_scl, .data_formats = formats_win_full, .nformats =ARRAY_SIZE (formats_win_full), .format_modifiers = format_modifiers_win_full, .enable =VOP_REG (RK3066_SYS_CTRL1 ,0x1 ,1 ), - .format =VOP_REG (RK3066_SYS_CTRL0 ,0x7 ,7 ), - .rb_swap =VOP_REG (RK3066_SYS_CTRL0 ,0x1 ,23 ), + .format =VOP_REG (RK3066_SYS_CTRL1 ,0x7 ,7 ), + .rb_swap =VOP_REG (RK3066_SYS_CTRL1 ,0x1 ,23 ), .act_info =VOP_REG (RK3066_WIN1_ACT_INFO ,0x1fff1fff ,0 ), .dsp_info =VOP_REG (RK3066_WIN1_DSP_INFO ,0x0fff0fff ,0 ), .dsp_st =VOP_REG (RK3066_WIN1_DSP_ST ,0x1fff1fff ,0 ),
@@ -382,8 +381,8 @@ static const struct vop_win_phy rk3066_win2_data = { .nformats = ARRAY_SIZE(formats_win_lite), .format_modifiers = format_modifiers_win_lite, .enable = VOP_REG(RK3066_SYS_CTRL1, 0x1, 2), - .format = VOP_REG(RK3066_SYS_CTRL0, 0x7, 10), - .rb_swap = VOP_REG(RK3066_SYS_CTRL0, 0x1, 27), + .format = VOP_REG(RK3066_SYS_CTRL1, 0x7, 10), + .rb_swap = VOP_REG(RK3066_SYS_CTRL1, 0x1, 27), .dsp_info = VOP_REG(RK3066_WIN2_DSP_INFO, 0x0fff0fff, 0), .dsp_st = VOP_REG(RK3066_WIN2_DSP_ST, 0x1fff1fff, 0), .yrgb_mst = VOP_REG(RK3066_WIN2_MST, 0xffffffff, 0),
@@ -408,6 +407,9 @@ static const struct vop_common rk3066_common = { .dither_down_en = VOP_REG(RK3066_DSP_CTRL0, 0x1, 11), .dither_down_mode = VOP_REG(RK3066_DSP_CTRL0, 0x1, 10), .dsp_blank = VOP_REG(RK3066_DSP_CTRL1, 0x1, 24), + .dither_up = VOP_REG(RK3066_DSP_CTRL0, 0x1, 9), + .dsp_lut_en = VOP_REG(RK3066_SYS_CTRL1, 0x1, 31), + .data_blank = VOP_REG(RK3066_DSP_CTRL1, 0x1, 25), };static const struct vop_win_data rk3066_vop_win_data[] = {
@@ -505,7 +507,10 @@ static const struct vop_common rk3188_common = { .dither_down_sel = VOP_REG(RK3188_DSP_CTRL0, 0x1, 27), .dither_down_en = VOP_REG(RK3188_DSP_CTRL0, 0x1, 11), .dither_down_mode = VOP_REG(RK3188_DSP_CTRL0, 0x1, 10), - .dsp_blank = VOP_REG(RK3188_DSP_CTRL1, 0x3, 24), + .dsp_blank = VOP_REG(RK3188_DSP_CTRL1, 0x1, 24), + .dither_up = VOP_REG(RK3188_DSP_CTRL0, 0x1, 9), + .dsp_lut_en = VOP_REG(RK3188_SYS_CTRL, 0x1, 28), + .data_blank = VOP_REG(RK3188_DSP_CTRL1, 0x1, 25), };static const struct vop_win_data rk3188_vop_win_data[] = {
drivers/gpu/drm/scheduler/sched_entity.c +7 -1
@@ -116,7 +116,8 @@ static bool drm_sched_entity_is_idle(struct drm_sched_entity *entity)rmb ();/* for list_empty to work without lock */ if (list_empty (&entity->list) || -spsc_queue_count (&entity->job_queue) ==0 ) +spsc_queue_count (&entity->job_queue) ==0 || + entity->stopped)return true;return false;
@@ -221,11 +222,16 @@ static void drm_sched_entity_kill_jobs_cb(struct dma_fence *f,static void drm_sched_entity_kill_jobs (struct drm_sched_entity *entity) {struct drm_sched_job *job; +struct dma_fence *f;int r;while ((job =to_drm_sched_job (spsc_queue_pop (&entity->job_queue)))) {struct drm_sched_fence *s_fence = job->s_fence; +/* Wait for all dependencies to avoid data corruptions */ +while ((f = job->sched->ops->dependency (job, entity))) +dma_fence_wait (f, false); +drm_sched_fence_scheduled (s_fence);dma_fence_set_error (&s_fence->finished, -ESRCH );
drivers/gpu/drm/scheduler/sched_main.c +24 -0
@@ -896,9 +896,33 @@ EXPORT_SYMBOL(drm_sched_init);*/ void drm_sched_fini (struct drm_gpu_scheduler *sched) { +struct drm_sched_entity *s_entity; +int i; +if (sched->thread)kthread_stop (sched->thread); +for (i =DRM_SCHED_PRIORITY_COUNT -1 ; i >=DRM_SCHED_PRIORITY_MIN ; i--) { +struct drm_sched_rq *rq = &sched->sched_rq[i]; + +if (!rq) +continue ; + +spin_lock (&rq->lock); +list_for_each_entry (s_entity, &rq->entities, list) +/* +* Prevents reinsertion and marks job_queue as idle, +* it will removed from rq in drm_sched_entity_fini +* eventually +*/ + s_entity->stopped = true; +spin_unlock (&rq->lock); + + } + +/* Wakeup everyone stuck in drm_sched_entity_flush for this scheduler */ +wake_up_all (&sched->job_scheduled); +/* Confirm no work left behind accessing device structures */ cancel_delayed_work_sync (&sched->work_tdr);
drivers/gpu/drm/tegra/dc.c +8 -2
@@ -947,6 +947,11 @@ static const struct drm_plane_helper_funcs tegra_cursor_plane_helper_funcs = { .atomic_disable = tegra_cursor_atomic_disable, }; +static const uint64_t linear_modifiers[] = { +DRM_FORMAT_MOD_LINEAR , +DRM_FORMAT_MOD_INVALID +}; +static struct drm_plane *tegra_dc_cursor_plane_create (struct drm_device *drm,struct tegra_dc *dc) {
@@ -975,7 +980,7 @@ static struct drm_plane *tegra_dc_cursor_plane_create(struct drm_device *drm, err =drm_universal_plane_init (drm, &plane->base, possible_crtcs, &tegra_plane_funcs, formats, - num_formats,NULL , + num_formats, linear_modifiers,DRM_PLANE_TYPE_CURSOR ,NULL );if (err <0 ) {kfree (plane);
@@ -1094,7 +1099,8 @@ static struct drm_plane *tegra_dc_overlay_plane_create(struct drm_device *drm, err =drm_universal_plane_init (drm, &plane->base, possible_crtcs, &tegra_plane_funcs, formats, - num_formats,NULL , type,NULL ); + num_formats, linear_modifiers, + type,NULL );if (err <0 ) {kfree (plane);return ERR_PTR (err);
drivers/gpu/drm/tegra/drm.c +0 -2
@@ -1122,8 +1122,6 @@ static int host1x_drm_probe(struct host1x_device *dev) drm->mode_config.max_width =4096 ; drm->mode_config.max_height =4096 ; - drm->mode_config.allow_fb_modifiers = true; - drm->mode_config.normalize_zpos = true; drm->mode_config.funcs = &tegra_drm_mode_config_funcs;
drivers/gpu/drm/vc4/vc4_crtc.c +4 -1
@@ -1035,7 +1035,7 @@ static const struct vc4_pv_data bcm2711_pv3_data = { .fifo_depth = 64, .pixels_per_clock = 1, .encoder_types = { - [0] = VC4_ENCODER_TYPE_VEC, + [PV_CONTROL_CLK_SELECT_VEC] = VC4_ENCODER_TYPE_VEC, }, };
@@ -1076,6 +1076,9 @@ static void vc4_set_crtc_possible_masks(struct drm_device *drm,struct vc4_encoder *vc4_encoder;int i; +if (encoder->encoder_type ==DRM_MODE_ENCODER_VIRTUAL ) +continue ; + vc4_encoder =to_vc4_encoder (encoder);for (i =0 ; i <ARRAY_SIZE (pv_data->encoder_types); i++) {if (vc4_encoder->type == encoder_types[i]) {
drivers/gpu/drm/vc4/vc4_drv.h +1 -1
@@ -825,7 +825,7 @@ void vc4_crtc_destroy_state(struct drm_crtc *crtc,void vc4_crtc_reset (struct drm_crtc *crtc);void vc4_crtc_handle_vblank (struct vc4_crtc *crtc);void vc4_crtc_get_margins (struct drm_crtc_state *state, -unsigned int *right,unsigned int *left, +unsigned int *left,unsigned int *right,unsigned int *top,unsigned int *bottom);/* vc4_debugfs.c */
drivers/gpu/drm/vc4/vc4_hdmi.c +9 -1
@@ -745,7 +745,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder,unsigned long pixel_rate, hsm_rate;int ret; - ret =pm_runtime_get_sync (&vc4_hdmi->pdev->dev); + ret =pm_runtime_resume_and_get (&vc4_hdmi->pdev->dev);if (ret <0 ) {DRM_ERROR ("Failed to retain power domain: %d\n" , ret);return ;
@@ -2012,6 +2012,14 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)if (vc4_hdmi->variant->reset) vc4_hdmi->variant->reset (vc4_hdmi); +if ((of_device_is_compatible (dev->of_node,"brcm,bcm2711-hdmi0" ) || +of_device_is_compatible (dev->of_node,"brcm,bcm2711-hdmi1" )) && +HDMI_READ (HDMI_VID_CTL ) &VC4_HD_VID_CTL_ENABLE ) { +clk_prepare_enable (vc4_hdmi->pixel_clock); +clk_prepare_enable (vc4_hdmi->hsm_clock); +clk_prepare_enable (vc4_hdmi->pixel_bvb_clock); + } +pm_runtime_enable (dev);drm_simple_encoder_init (drm, encoder,DRM_MODE_ENCODER_TMDS );
drivers/gpu/drm/vc4/vc4_txp.c +1 -1
@@ -507,7 +507,7 @@ static int vc4_txp_bind(struct device *dev, struct device *master, void *data)return ret; encoder = &txp->connector.encoder; - encoder->possible_crtcs |=drm_crtc_mask (crtc); + encoder->possible_crtcs =drm_crtc_mask (crtc); ret =devm_request_irq (dev, irq, vc4_txp_interrupt,0 ,dev_name (dev), txp);
drivers/gpu/drm/virtio/virtgpu_kms.c +1 -0
@@ -234,6 +234,7 @@ int virtio_gpu_init(struct drm_device *dev) err_vbufs: vgdev->vdev->config->del_vqs (vgdev->vdev); err_vqs: + dev->dev_private =NULL ;kfree (vgdev);return ret; }
drivers/gpu/drm/zte/Kconfig +0 -1
@@ -3,7 +3,6 @@ config DRM_ZTE tristate "DRM Support for ZTE SoCs" depends on DRM && ARCH_ZX select DRM_KMS_CMA_HELPER - select DRM_KMS_FB_HELPER select DRM_KMS_HELPER select SND_SOC_HDMI_CODEC if SND_SOC select VIDEOMODE_HELPERS
drivers/hwtracing/coresight/coresight-core.c +1 -1
@@ -1367,7 +1367,7 @@ static int coresight_fixup_device_conns(struct coresight_device *csdev) } } -return 0 ; +return ret; }static int coresight_remove_match (struct device *dev,void *data)
drivers/hwtracing/coresight/coresight-tmc-etf.c +1 -1
@@ -530,7 +530,7 @@ static unsigned long tmc_update_etf_buffer(struct coresight_device *csdev, buf_ptr = buf->data_pages[cur] + offset; *buf_ptr =readl_relaxed (drvdata->base +TMC_RRD ); -if (lost && *barrier) { +if (lost && i <CORESIGHT_BARRIER_PKT_SIZE ) { *buf_ptr = *barrier; barrier++; }
drivers/infiniband/core/cma.c +2 -1
@@ -2793,7 +2793,8 @@ static int cma_resolve_ib_route(struct rdma_id_private *id_priv,cma_init_resolve_route_work (work, id_priv); - route->path_rec =kmalloc (sizeof *route->path_rec,GFP_KERNEL ); +if (!route->path_rec) + route->path_rec =kmalloc (sizeof *route->path_rec,GFP_KERNEL );if (!route->path_rec) { ret = -ENOMEM ; goto err1;
drivers/infiniband/hw/cxgb4/qp.c +1 -0
@@ -295,6 +295,7 @@ static int create_qp(struct c4iw_rdev *rdev, struct t4_wq *wq,if (user && (!wq->sq.bar2_pa || (need_rq && !wq->rq.bar2_pa))) {pr_warn ("%s: sqid %u or rqid %u not in BAR2 range\n" ,pci_name (rdev->lldi.pdev), wq->sq.qid, wq->rq.qid); + ret = -EINVAL ; goto free_dma; }
drivers/infiniband/sw/rxe/rxe_mr.c +1 -1
@@ -135,7 +135,7 @@ int rxe_mr_init_user(struct rxe_pd *pd, u64 start, u64 length, u64 iova,if (IS_ERR (umem)) {pr_warn ("err %d from rxe_umem_get\n" , (int )PTR_ERR (umem)); - err = -EINVAL ; + err =PTR_ERR (umem); goto err1; }
drivers/infiniband/ulp/isert/ib_isert.c +2 -2
@@ -35,10 +35,10 @@ static const struct kernel_param_ops sg_tablesize_ops = { .get = param_get_int, }; -static int isert_sg_tablesize =ISCSI_ISER_DEF_SG_TABLESIZE ; +static int isert_sg_tablesize =ISCSI_ISER_MIN_SG_TABLESIZE ;module_param_cb (sg_tablesize, &sg_tablesize_ops, &isert_sg_tablesize,0644 );MODULE_PARM_DESC (sg_tablesize, -"Number of gather/scatter entries in a single scsi command, should >= 128 (default: 256, max: 4096)" ); +"Number of gather/scatter entries in a single scsi command, should >= 128 (default: 128, max: 4096)" );static DEFINE_MUTEX (device_list_mutex);static LIST_HEAD (device_list);
drivers/infiniband/ulp/isert/ib_isert.h +0 -3
@@ -65,9 +65,6 @@*/ #define ISER_RX_SIZE (ISCSI_DEF_MAX_RECV_SEG_LEN + 1024) -/* Default I/O size is 1MB */ -#define ISCSI_ISER_DEF_SG_TABLESIZE 256 -/* Minimum I/O size is 512KB */ #define ISCSI_ISER_MIN_SG_TABLESIZE 128
drivers/infiniband/ulp/rtrs/rtrs-pri.h +8 -5
@@ -47,12 +47,15 @@ enum {MAX_PATHS_NUM =128 ,/* -* With the size of struct rtrs_permit allocated on the client, 4K -* is the maximum number of rtrs_permits we can allocate. This number is -* also used on the client to allocate the IU for the user connection -* to receive the RDMA addresses from the server. +* Max IB immediate data size is 2^28 (MAX_IMM_PAYL_BITS) +* and the minimum chunk size is 4096 (2^12). +* So the maximum sess_queue_depth is 65536 (2^16) in theory. +* But mempool_create, create_qp and ib_post_send fail with +* "cannot allocate memory" error if sess_queue_depth is too big. +* Therefore the pratical max value of sess_queue_depth is +* somewhere between 1 and 65536 and it depends on the system. */ -MAX_SESS_QUEUE_DEPTH =4096 , +MAX_SESS_QUEUE_DEPTH =65536 ,RTRS_HB_INTERVAL_MS =5000 , RTRS_HB_MISSED_MAX = 5,
drivers/md/dm-writecache.c +37 -11
48 lines not on this page · raw message
drivers/md/persistent-data/dm-btree-remove.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/md/persistent-data/dm-space-map-disk.c +8 -1
Lines of this file are not shown. View the raw message.
drivers/md/persistent-data/dm-space-map-metadata.c +8 -1
Lines of this file are not shown. View the raw message.
drivers/media/pci/saa7134/saa7134-video.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/media/platform/davinci/vpbe_display.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/davinci/vpbe_venc.c +2 -4
Lines of this file are not shown. View the raw message.
drivers/net/dsa/ocelot/seville_vsc9953.c +5 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/genet/bcmmii.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/fec_main.c +38 -5
43 lines not on this page · raw message
drivers/net/ethernet/intel/i40e/i40e_ptp.c +6 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_ethtool.c +1 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_lan_tx_rx.h +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_type.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igb/igb_main.c +5 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igbvf/netdev.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/lag.c +13 -6
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/moxa/moxart_ether.c +2 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c +6 -13
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/realtek/r8169_main.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/sfc/ef10_sriov.c +12 -13
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c +15 -6
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/xilinx/xilinx_emaclite.c +2 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +18 -6
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c +9 -6
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/time-event.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/utils.c +21 -7
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c +10 -5
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/pcie/internal.h +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mac80211_hwsim.c +38 -10
48 lines not on this page · raw message
drivers/net/wireless/marvell/mwifiex/main.c +10 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/dma.c +12 -6
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt76.h +16 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7603/mac.c +23 -10
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7603/regs.h +0 -12
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7615/mac.c +56 -18
74 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7615/mac.h +0 -42
42 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c +14 -14
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt76x02_regs.h +9 -9
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7915/eeprom.h +7 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7915/init.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7915/mac.c +21 -8
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c +15 -15
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7915/mcu.h +11 -12
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7921/mac.c +21 -8
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c +15 -15
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7921/mcu.h +11 -12
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h +3 -8
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c +53 -6
59 lines not on this page · raw message
drivers/net/wireless/realtek/rtw88/pci.c +32 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw88/rtw8822c_table.c +504 -504
1,008 lines not on this page · raw message
drivers/net/wireless/st/cw1200/cw1200_sdio.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pcie-tegra194.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/thermal/intel/int340x_thermal/processor_thermal_device.c +12 -8
Lines of this file are not shown. View the raw message.
fs/ubifs/xattr.c +33 -11
44 lines not on this page · raw message
include/linux/mfd/abx500/ux500_chargalg.h +1 -1
Lines of this file are not shown. View the raw message.
kernel/bpf/core.c +43 -18
61 lines not on this page · raw message
kernel/cpu.c +49 -0
49 lines not on this page · raw message
kernel/trace/trace.c +55 -36
91 lines not on this page · raw message
net/ipv4/tcp_input.c +26 -19
45 lines not on this page · raw message
tools/testing/selftests/drivers/net/mlxsw/devlink_trap_l3_drops.sh +3 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/drivers/net/mlxsw/devlink_trap_l3_exceptions.sh +3 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/drivers/net/mlxsw/qos_dscp_bridge.sh +2 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/lkdtm/tests.txt +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/forwarding/pedit_dsfield.sh +2 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/forwarding/pedit_l4port.sh +2 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/forwarding/skbedit_priority.sh +2 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/resctrl_tests.c +2 -2
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.