Skip to contentSkip to conversation

Linux 5.12.18

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Jul 19, 2021 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'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.

author maintainer
#1 lore raw
Documentation/Makefile +1 -1
index 9c42dde97671..c3feb657b654 100644
@@ -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
index f1d0775925cc..b708d7c665e1 100644
@@ -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
index 57420356ce4c..6b3daba60987 100644
@@ -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
index 61c97d3b58c7..c995d1f4594f 100644
@@ -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
index e89d63cd92d1..ab73622b14dd 100644
@@ -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
index 8877c62609de..3a4eaf1f3f48 100644
@@ -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
index 336e02b3b3ce..3d71081afc55 100644
@@ -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
index 10e3be870df7..c2144409c0c4 100644
@@ -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
index 9c8099a6ffed..acdf8c69220b 100644
@@ -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
index 8b18424b3120..d0cf997b4ba8 100644
@@ -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
index 2d949969313b..cdf404a831b2 100644
@@ -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
index 0ef240adefb5..630fcb4cb30e 100644
@@ -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
index a8f57bf01285..a791863ed352 100644
@@ -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
index f60904329bbc..5b5351cdcb33 100644
@@ -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
index aecfde829d5d..6274b864f363 100644
@@ -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
index bb368257b55c..178525cf686a 100644
@@ -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
index 5f5fe63a3d1c..7ba0840fc3b5 100644
@@ -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
index 848a22fbac20..92675dc380fa 100644
@@ -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
index 656460636ad3..e83af7bc7591 100644
@@ -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
index cb69b737cb49..56b695136977 100644
@@ -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
index eef637fd90b3..a59554e5b8b0 100644
@@ -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
index 5c7e4df159b9..bc5a6ab6fa4b 100644
@@ -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
index ddc7b86725cd..a97e5c476adf 100644
@@ -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
index 32c334e34d55..e4ff3b50de7f 100644
@@ -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
index 9cfd00cf4e69..81c0bc1e78af 100644
@@ -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
index 3abafd78f7c8..8b4e43659023 100644
@@ -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
index 67620c7ecd9e..79ca3aa072b7 100644
@@ -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
index c5cc0a2dac6f..d709ecb7d8d7 100644
@@ -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
index bdf6f4a51617..74c1d894cca8 100644
@@ -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
index d0177824c518..f4881764bf8f 100644
@@ -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
index f47016fb28a8..cd1a5f230077 100644
@@ -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
index 0078260fbabe..172c751a4f6c 100644
@@ -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
index 657a70c5fc99..9e34bbbce26e 100644
@@ -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
index ac0a432a9bf7..3c3f05d1f4da 100644
@@ -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,
-					&param);
+	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(&param, 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
index 85d90e857693..1b69aa74056d 100644
@@ -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
index e92e7dea71da..41ebc9d21e5c 100644
@@ -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
index 97c11aa47ad0..7892958d5f59 100644
@@ -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
index 7c11bce4514b..1ad7191994ac 100644
@@ -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
index 183814493658..bda4438c3925 100644
@@ -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
index c625c5d8ed89..3677788d4771 100644
@@ -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
index c8c22c1d1e65..03a6f57c425a 100644
@@ -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
index 32c6aa03d267..f884d43d4ff0 100644
@@ -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
index a064c097690c..66fd797a6f0e 100644
@@ -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
index 0858e0c7b7a1..9cac833bc9d6 100644
@@ -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
index 52cc81705280..250adc92dfd0 100644
@@ -529,6 +529,7 @@ void amdgpu_dm_trigger_timing_sync(struct drm_device *dev);
 #define MAX_COLOR_LEGACY_LUT_ENTRIES 256
 
 void 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
index 9f9fda3118d1..500bcd0ecf4d 100644
@@ -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
index b85f67341a9a..c957d7d055ba 100644
@@ -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
index 80757a0ea7c6..2c3ce5d65718 100644
@@ -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
index efa86d5c6847..a33f522a2648 100644
@@ -496,10 +496,13 @@ static enum lb_memory_config dpp1_dscl_find_lb_memory_config(struct dcn10_dpp *d
 	int 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
index aece1103331d..d8a03d825623 100644
@@ -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
index 3e3c898848bd..2b6eb8c5614b 100644
@@ -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
index 0c5128187e08..ea01994a6133 100644
@@ -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
index bc0485a59018..c1bf3cab2f15 100644
@@ -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
index 2947d1b15512..2a0db2b03047 100644
@@ -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
index 87812d81fed3..52fbf575e000 100644
@@ -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
index 20e554e771d1..fa8aeec304ef 100644
@@ -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
index 73ca49f05bd3..eb56526ec32c 100644
@@ -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
index d5ead9680c6e..84bcb96f76ea 100644
@@ -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
index 351a85088d0e..f1e8bc39b16d 100644
@@ -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
index f871fc36c2f7..a3f67a34f616 100644
@@ -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
index c29cc7f19863..2aff2e6cf450 100644
@@ -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
index d0c65610ebb5..f56ff97c9899 100644
@@ -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
index 76373e31df92..b31281f76117 100644
@@ -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
index d734d9402c35..c1926154eda8 100644
@@ -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
index eedbb48815b7..c7d4d43cdee0 100644
@@ -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
index 97a785aa8839..9ebc558fd516 100644
@@ -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
index fd8870edde0e..63f38be391b6 100644
@@ -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
index e52777ef85fd..1cab0a743e98 100644
@@ -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
index 8b0de90156c6..69d23ce56d2c 100644
@@ -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
index 3d729270bde1..4a5b518288b0 100644
@@ -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
index da3cc1d8c331..ee1dbb2b84af 100644
@@ -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
index 0143d539f8f8..ee22cd25d3e3 100644
@@ -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
index 17831ee897ea..1376992482b5 100644
@@ -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
index 652af7a134bd..1d03ec763604 100644
@@ -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
index efeb115ae70e..40aece37e0b4 100644
@@ -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
index d8c47ee3cad3..520a0a0cd2b5 100644
@@ -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
index 80053d91a301..a6fe03c3748a 100644
@@ -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
index c1ac3e4003c6..1b2fdf7f3ccd 100644
@@ -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
index 92637b70c9bf..16244e9669b9 100644
@@ -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
index 134986dc2783..2c0510bbd0fb 100644
@@ -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
index e9ce7d6992d2..e3d4fd76b6a0 100644
@@ -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
index 1f36b67cd6ce..18f5009ce90e 100644
@@ -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
index a7500716cf3f..5dceadc61600 100644
@@ -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
index e94730beb15b..188b74c9e9ff 100644
@@ -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
index c0122d83b651..2fc7f4b5fa09 100644
@@ -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
index b375394193be..37a21a88d674 100644
@@ -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
index 90ebaedc11fd..aa8594190b50 100644
@@ -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
index 237a8c0d6c24..30271d9e470d 100644
@@ -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
index 45b85edfc690..cd0fb7bfba68 100644
@@ -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
index bb46f794f324..8d94a6bfcac1 100644
@@ -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
index d109bb3822a5..c9403743346e 100644
@@ -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
index 9f63947bab12..fe2b7d223183 100644
@@ -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
index 18266f07c58d..de3fc05fd2e8 100644
@@ -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
index 6c5af13db4e0..ca8cfebe26ca 100644
@@ -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
index 8caad0a2322b..51c60f542876 100644
@@ -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/ipack/carriers/tpci200.c +4 -1
index ec71063fff76..e1822e87ec3d 100644

Lines of this file are not shown. View the raw message.

drivers/isdn/hardware/mISDN/hfcpci.c +1 -1
index 56bd2e9db6ed..e501cb03f211 100644

Lines of this file are not shown. View the raw message.

drivers/md/dm-writecache.c +37 -11

48 lines not on this page · raw message

drivers/md/dm-zoned-metadata.c +7 -0
index 039d17b28938..ee4626d08557 100644

Lines of this file are not shown. View the raw message.

drivers/md/dm.c +6 -2
index 3f3be9408afa..05747d2736a7 100644

Lines of this file are not shown. View the raw message.

drivers/md/persistent-data/dm-btree-remove.c +2 -1
index eff04fa23dfa..9e4d1212f4c1 100644

Lines of this file are not shown. View the raw message.

drivers/md/persistent-data/dm-space-map-disk.c +8 -1
index bf4c5e2ccb6f..e0acae7a3815 100644

Lines of this file are not shown. View the raw message.

drivers/md/persistent-data/dm-space-map-metadata.c +8 -1
index 9e3c64ec2026..da439ac85796 100644

Lines of this file are not shown. View the raw message.

drivers/media/i2c/ccs/ccs-core.c +22 -10
index fde0c51f0406..220240f62a66 100644

Lines of this file are not shown. View the raw message.

drivers/media/i2c/ccs/ccs-limits.c +4 -0
index f5511789ac83..4969fa425317 100644

Lines of this file are not shown. View the raw message.

drivers/media/i2c/ccs/ccs-limits.h +4 -0
index 1efa43c23a2e..551d3ee9d04e 100644

Lines of this file are not shown. View the raw message.

drivers/media/i2c/ccs/ccs-regs.h +5 -1
index 4b3e5df2121f..6ce84c5ecf20 100644

Lines of this file are not shown. View the raw message.

drivers/media/i2c/saa6588.c +2 -2
index ecb491d5f2ab..d1e0716bdfff 100644

Lines of this file are not shown. View the raw message.

drivers/media/pci/bt8xx/bttv-driver.c +3 -3
index 1f62a9d8ea1d..0e9df8b35ac6 100644

Lines of this file are not shown. View the raw message.

drivers/media/pci/saa7134/saa7134-video.c +3 -3
index 0f9d6b9edb90..374c8e1087de 100644

Lines of this file are not shown. View the raw message.

drivers/media/platform/davinci/vpbe_display.c +1 -1
index d19bad997f30..bf3c3e76b921 100644

Lines of this file are not shown. View the raw message.

drivers/media/platform/davinci/vpbe_venc.c +2 -4
index 8caa084e5704..bde241c26d79 100644

Lines of this file are not shown. View the raw message.

drivers/media/rc/bpf-lirc.c +2 -1
index 3fe3edd80876..afae0afe3f81 100644

Lines of this file are not shown. View the raw message.

drivers/media/usb/dvb-usb/dtv5100.c +5 -2
index fba06932a9e0..1c13e493322c 100644

Lines of this file are not shown. View the raw message.

drivers/media/usb/gspca/sq905.c +1 -1
index 949111070971..32504ebcfd4d 100644

Lines of this file are not shown. View the raw message.

drivers/media/usb/gspca/sunplus.c +6 -2
index ace3da40006e..971dee0a56da 100644

Lines of this file are not shown. View the raw message.

drivers/media/usb/uvc/uvc_video.c +27 -0
index f2f565281e63..9046d8ba7c63 100644

Lines of this file are not shown. View the raw message.

drivers/media/usb/zr364xx/zr364xx.c +1 -0
index 1ef611e08323..538a330046ec 100644

Lines of this file are not shown. View the raw message.

drivers/media/v4l2-core/v4l2-ioctl.c +2 -0
index 7e8bf4b1ab2e..efdf6a5475cb 100644

Lines of this file are not shown. View the raw message.

drivers/mfd/syscon.c +1 -1
index c6f139b2e0c0..765c0210cb52 100644

Lines of this file are not shown. View the raw message.

drivers/misc/lkdtm/bugs.c +3 -0
index 110f5a8538e9..8787d1d6774b 100644

Lines of this file are not shown. View the raw message.

drivers/misc/lkdtm/core.c +0 -2
index b2aff4d87c01..94ed7860cfee 100644

Lines of this file are not shown. View the raw message.

drivers/mmc/core/core.c +5 -2
index e30c4e88e404..f988bc91e65f 100644

Lines of this file are not shown. View the raw message.

drivers/mmc/core/sd.c +6 -4
index 2c48d6504101..e277ef4fa099 100644

Lines of this file are not shown. View the raw message.

drivers/mmc/host/sdhci-acpi.c +11 -0
index b6574e7fd26b..9e4358d7a0a6 100644

Lines of this file are not shown. View the raw message.

drivers/mmc/host/sdhci.c +4 -0
index a9e20818ff3a..76ef837430ca 100644

Lines of this file are not shown. View the raw message.

drivers/mmc/host/sdhci.h +1 -0
index 0770c036e2ff..960fed78529e 100644

Lines of this file are not shown. View the raw message.

drivers/net/dsa/ocelot/seville_vsc9953.c +5 -0
index 84f93a874d50..deae923c8b7a 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/broadcom/genet/bcmmii.c +4 -0
index 5335244e4577..89d16c587bb7 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/freescale/fec.h +5 -0
index 0602d5d5d2ee..2e002e4b4b4a 100644

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/ibm/ibmvnic.c +2 -1
index 3c77897b3f31..df10b87ca0f8 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/e100.c +6 -6
index f8d78af76d7d..1b0958bd24f6 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/i40e/i40e_ptp.c +6 -2
index 7a879614ca55..1dad6c93ac9c 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/ice/ice_ethtool.c +1 -5
index f80fff97d8dc..0d136708f960 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/ice/ice_lan_tx_rx.h +2 -2
index 4ec24c3e813f..c0ee0541e53f 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/ice/ice_type.h +1 -1
index 266036b7a49a..8a90c47e337d 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/igb/igb_main.c +5 -4
index caa8929289ae..434220a342df 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/igbvf/netdev.c +2 -2
index fb3fbcb13331..630c1155f196 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +4 -0
index bf06f2d785db..fbee581d02b4 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +4 -2
index 249d8905e644..e7528fa7e187 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/lag.c +13 -6
index 83a05371e2aa..8d029401ca6c 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/micrel/ks8842.c +4 -0
index caa251d0e381..b27713906d3a 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/moxa/moxart_ether.c +2 -3
index 49fd843c4c8a..a4380c45f668 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c +6 -13
index 1b32a43f7024..df0501b5fe83 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/realtek/r8169_main.c +0 -1
index f7a56e05ec8a..552164af2dd4 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/sfc/ef10_sriov.c +12 -13
index 21fa6c0e8873..84041cd587d7 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/sgi/ioc3-eth.c +4 -0
index 6eef0f45b133..2b29fd4cbdf4 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c +15 -6
index d64116e0543e..a4ba27bf3131 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/xilinx/xilinx_emaclite.c +2 -3
index 007840d4a807..3ffe8d2a1f14 100644

Lines of this file are not shown. View the raw message.

drivers/net/fjes/fjes_main.c +4 -0
index 466622664424..e449d9466122 100644

Lines of this file are not shown. View the raw message.

drivers/net/ipa/ipa_main.c +1 -0
index 97c1b55405cb..ba27bcde901e 100644

Lines of this file are not shown. View the raw message.

drivers/net/mdio/mdio-ipq8064.c +24 -9
index 1bd18857e1c5..f0a6bfa61645 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/realtek.c +14 -1
index 821e85a97367..7b99a3234c65 100644

Lines of this file are not shown. View the raw message.

drivers/net/virtio_net.c +14 -8
index 0824e6999e49..f7ce341bb328 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +18 -6
index baf7404c137d..873d41c21a77 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/mvm/mvm.h +2 -1
index 0a963d01b825..f17dfdf2bfaf 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c +9 -6
index 0fd51f6aa206..4ed2338027d1 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/mvm/time-event.c +4 -0
index 0b012f8c9eb2..9a4a1b363254 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/mvm/utils.c +21 -7
index b6b481ff1518..fc4d8840eca4 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c +10 -5
index cecc32e7dbe8..2dbc51daa2f8 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/pcie/internal.h +3 -0
index d9688c7bed07..53af3f29eab8 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c +2 -1
index af9412bd697e..7996b05a51c2 100644

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
index 529dfd8b7ae8..17399d4aa129 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/mediatek/mt76/dma.c +12 -6
index 426787f4b2ae..ee0acde53a60 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/mediatek/mt76/mt76.h +16 -0
index 967fe3e11d94..1ed63eddfcf2 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/mediatek/mt76/mt7603/mac.c +23 -10
index cc4e7bc48294..92a7b45fbc15 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/mediatek/mt76/mt7603/regs.h +0 -12
index 6741e6907194..3b901090b29c 100644

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
index 771bad60e1bc..b21edc8e86e1 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/mediatek/mt76/mt76x02_regs.h +9 -9
index 3e722276b5c2..fa7872ac22bf 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/mediatek/mt76/mt7915/eeprom.h +7 -4
index 3ee8c27bb61b..40a51d99a781 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/mediatek/mt76/mt7915/init.c +3 -3
index c7d4268d860a..5ab34606c021 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/mediatek/mt76/mt7915/mac.c +21 -8
index 819670767521..be40b0777517 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/mediatek/mt76/mt7915/mcu.c +15 -15
index f069a5a03e14..22c791b084ba 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/mediatek/mt76/mt7915/mcu.h +11 -12
index 2d584142c27b..1a865ef81a43 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/mediatek/mt76/mt7921/mac.c +21 -8
index c4b144391a8e..b7af252a0091 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/mediatek/mt76/mt7921/mcu.c +15 -15
index a4f070cd78fd..02da127e9126 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/mediatek/mt76/mt7921/mcu.h +11 -12
index 2fdc62367b3f..4028c667bd68 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h +3 -8
index d6d1be4169e5..acb6b0cd3667 100644

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
index 6b5c885798a4..e5110d2cbc1d 100644

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
index b65ec14136c7..4c30b5772ce0 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/ti/wl1251/cmd.c +6 -3
index 498c8db2eb48..d7a869106782 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/ti/wl12xx/main.c +7 -0
index 9d7dbfe7fe0c..c6da0cfb4afb 100644

Lines of this file are not shown. View the raw message.

drivers/nvmem/core.c +6 -3
index a5ab1e0c74cf..3ffe676ed7f1 100644

Lines of this file are not shown. View the raw message.

drivers/pci/controller/dwc/pcie-tegra194.c +2 -0
index 0e94190ca4e8..8dee6d3f33a7 100644

Lines of this file are not shown. View the raw message.

drivers/pci/controller/pci-aardvark.c +12 -1
index e3f5e7ab7606..c95ebe808f92 100644

Lines of this file are not shown. View the raw message.

drivers/pci/quirks.c +11 -0
index 7bf76bca888d..909343ee7e0a 100644

Lines of this file are not shown. View the raw message.

drivers/pinctrl/pinctrl-amd.c +1 -0
index 2d4acf21117c..c5950a3b4e4c 100644

Lines of this file are not shown. View the raw message.

drivers/pinctrl/pinctrl-equilibrium.c +1 -0
index 067271b7d35a..ac1c47f542c1 100644

Lines of this file are not shown. View the raw message.

drivers/pinctrl/pinctrl-mcp23s08.c +5 -5
index ce2d8014b7e0..d0259577934e 100644

Lines of this file are not shown. View the raw message.

drivers/thermal/intel/int340x_thermal/processor_thermal_device.c +12 -8
index 9e6f2a895a23..5b1355fae9b4 100644

Lines of this file are not shown. View the raw message.

fs/ext4/ext4.h +4 -0
index 826a56e3bbd2..62210cbea84b 100644

Lines of this file are not shown. View the raw message.

fs/ext4/mmp.c +13 -15
index 68fbeedd627b..6cb598b549ca 100644

Lines of this file are not shown. View the raw message.

fs/ext4/super.c +4 -6
index 4a869bc5271b..62dd98189e32 100644

Lines of this file are not shown. View the raw message.

fs/f2fs/f2fs.h +2 -0
index f3fabb1edfe9..148fc1ce52d7 100644

Lines of this file are not shown. View the raw message.

fs/f2fs/recovery.c +14 -9
index da75d5d52f0a..4ae055f39e21 100644

Lines of this file are not shown. View the raw message.

fs/f2fs/super.c +7 -1
index d852d96773a3..1f7bc4b3f6ae 100644

Lines of this file are not shown. View the raw message.

fs/io-wq.c +4 -1
index 4eba531bea5a..b836737f96f3 100644

Lines of this file are not shown. View the raw message.

fs/jfs/inode.c +2 -1
index 6f65bfa9f18d..b0eb9c85eea0 100644

Lines of this file are not shown. View the raw message.

fs/reiserfs/journal.c +14 -0
index e98f99338f8f..df5fc12a6cee 100644

Lines of this file are not shown. View the raw message.

fs/ubifs/super.c +1 -0
index ddb2ca636c93..274e635e00c3 100644

Lines of this file are not shown. View the raw message.

fs/ubifs/ubifs.h +2 -0
index 7fdfdbda4b8a..15847c1474ba 100644

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

fs/udf/namei.c +4 -0
index f146b3089f3d..6c5692ad42b5 100644

Lines of this file are not shown. View the raw message.

include/linux/blk_types.h +1 -0
index db026b6ec15a..e5cf12f102a2 100644

Lines of this file are not shown. View the raw message.

include/linux/mfd/abx500/ux500_chargalg.h +1 -1
index 9b97d284d0ce..bc3819dc33e1 100644

Lines of this file are not shown. View the raw message.

include/linux/netdev_features.h +1 -1
index 3de38d6a0aea..2c6b9e416225 100644

Lines of this file are not shown. View the raw message.

include/linux/of_mdio.h +7 -0
index 2b05e7f7c238..da633d34ab86 100644

Lines of this file are not shown. View the raw message.

include/linux/wait.h +1 -1
index fe10e8570a52..6598ae35e1b5 100644

Lines of this file are not shown. View the raw message.

include/media/v4l2-subdev.h +4 -0
index d0e9a5bdb08b..6078dd29f3e7 100644

Lines of this file are not shown. View the raw message.

include/net/flow_offload.h +7 -5
index e6bd8ebf9ac3..c28ea1f0ec9c 100644

Lines of this file are not shown. View the raw message.

include/net/sctp/structs.h +1 -1
index 1aa585216f34..d49593c72a55 100644

Lines of this file are not shown. View the raw message.

include/uapi/asm-generic/socket.h +2 -0
index 4dcd13d097a9..d588c244ec2f 100644

Lines of this file are not shown. View the raw message.

include/uapi/linux/ethtool.h +2 -2
index 5afea692a3f7..e36eee9132ec 100644

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/bpf/ringbuf.c +2 -0
index 84b3b35fc0d0..9e0c10c6892a 100644

Lines of this file are not shown. View the raw message.

kernel/cpu.c +49 -0

49 lines not on this page · raw message

kernel/sched/fair.c +3 -3
index 20ac5dff9a0c..572f312cc803 100644

Lines of this file are not shown. View the raw message.

kernel/sched/wait.c +7 -2
index 183cc6ae68a6..76577d1642a5 100644

Lines of this file are not shown. View the raw message.

kernel/trace/trace.c +55 -36

91 lines not on this page · raw message

lib/seq_buf.c +3 -1
index 89c26c393bdb..6dafde851333 100644

Lines of this file are not shown. View the raw message.

mm/mremap.c +2 -2
index ec8f840399ed..7de4a01b0f8d 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/hci_core.c +8 -8
index 4fad2ca661ed..f4e8a4ba663f 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/hci_event.c +3 -3
index c6f400b108d9..99c89f02a974 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/l2cap_core.c +4 -4
index 53ddbee459b9..b1f4d5505bba 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/mgmt.c +5 -0
index 71de147f5558..b4f6773b1a5b 100644

Lines of this file are not shown. View the raw message.

net/bridge/br_mrp.c +2 -4
index 12487f6fe9b4..58254fbfda85 100644

Lines of this file are not shown. View the raw message.

net/core/dev.c +9 -2
index 963194474058..a8c89cad1ca4 100644

Lines of this file are not shown. View the raw message.

net/core/sock.c +7 -0
index a266760cd65e..60750f9ae32d 100644

Lines of this file are not shown. View the raw message.

net/hsr/hsr_framereg.c +2 -1
index bb1351c38397..e31949479305 100644

Lines of this file are not shown. View the raw message.

net/ipv4/ip_output.c +18 -14
index 3aab53beb4ea..3ec3b67c184f 100644

Lines of this file are not shown. View the raw message.

net/ipv4/tcp_input.c +26 -19

45 lines not on this page · raw message

net/ipv6/ip6_output.c +17 -15
index ff4f9ebcf7f6..497974b4372a 100644

Lines of this file are not shown. View the raw message.

net/ipv6/output_core.c +5 -23
index af36acc1a644..2880dc7d9a49 100644

Lines of this file are not shown. View the raw message.

net/mac80211/main.c +3 -4
index 9dd741b68f26..937a024a13e2 100644

Lines of this file are not shown. View the raw message.

net/mac80211/sta_info.c +3 -8
index 13250cadb420..e18c3855f616 100644

Lines of this file are not shown. View the raw message.

net/sched/act_api.c +2 -1
index f6d5755d669e..d17a66aab8ee 100644

Lines of this file are not shown. View the raw message.

net/sched/cls_api.c +1 -1
index 94f6942d7ec1..2f82ac7c0f93 100644

Lines of this file are not shown. View the raw message.

net/sctp/bind_addr.c +11 -8
index 53e5ed79f63f..59e653b528b1 100644

Lines of this file are not shown. View the raw message.

net/sctp/input.c +5 -3
index d508f6f3dd08..f72bff93745c 100644

Lines of this file are not shown. View the raw message.

net/sctp/ipv6.c +6 -1
index bd08807c9e44..5c6f5ced9cfa 100644

Lines of this file are not shown. View the raw message.

net/sctp/protocol.c +6 -1
index 6f2bbfeec3a4..25192b378e2e 100644

Lines of this file are not shown. View the raw message.

net/sctp/sm_make_chunk.c +16 -13
index da4ce0947c3a..1fdbde6f07b8 100644

Lines of this file are not shown. View the raw message.

net/vmw_vsock/af_vsock.c +1 -1
index bc7fb9bf3351..2a82fbf32ccc 100644

Lines of this file are not shown. View the raw message.

net/wireless/nl80211.c +4 -5
index a5224da63832..be0f616f85d3 100644

Lines of this file are not shown. View the raw message.

net/wireless/wext-spy.c +7 -7
index 33bef22e44e9..b379a0371653 100644

Lines of this file are not shown. View the raw message.

net/xfrm/xfrm_user.c +14 -14
index 5a0ef4361e43..817e714dedea 100644

Lines of this file are not shown. View the raw message.

security/selinux/avc.c +7 -6
index ad451cf9375e..a2dc83228daf 100644

Lines of this file are not shown. View the raw message.

security/smack/smackfs.c +2 -0
index 22ded2c26089..1ad7d0d1ea62 100644

Lines of this file are not shown. View the raw message.

sound/soc/tegra/tegra_alc5632.c +1 -0
index 0a0efd24e4b0..81ea6ceba689 100644

Lines of this file are not shown. View the raw message.

sound/soc/tegra/tegra_max98090.c +1 -0
index 00c19704057b..5a649810c0c8 100644

Lines of this file are not shown. View the raw message.

sound/soc/tegra/tegra_rt5640.c +1 -0
index 9afba37a3b08..3344f16258be 100644

Lines of this file are not shown. View the raw message.

sound/soc/tegra/tegra_rt5677.c +1 -0
index d30f8b6deda4..0f03e97d9355 100644

Lines of this file are not shown. View the raw message.

sound/soc/tegra/tegra_sgtl5000.c +1 -0
index 885332170c77..ef6a553e0b7d 100644

Lines of this file are not shown. View the raw message.

sound/soc/tegra/tegra_wm8753.c +1 -0
index efd793886689..27089077f2ea 100644

Lines of this file are not shown. View the raw message.

sound/soc/tegra/tegra_wm8903.c +1 -0
index e4863fa37b0c..f219c26d66a3 100644

Lines of this file are not shown. View the raw message.

sound/soc/tegra/tegra_wm9712.c +1 -0
index 4f09a178049d..c66da161c85a 100644

Lines of this file are not shown. View the raw message.

sound/soc/tegra/trimslice.c +1 -0
index 6c1cc3d0ac33..cb4c8f72e4e6 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/drivers/net/mlxsw/devlink_trap_l3_drops.sh +3 -0
index 4029833f7e27..160891dcb4bc 100755

Lines of this file are not shown. View the raw message.

tools/testing/selftests/drivers/net/mlxsw/devlink_trap_l3_exceptions.sh +3 -0
index 1fedfc9da434..1d157b1bd838 100755

Lines of this file are not shown. View the raw message.

tools/testing/selftests/drivers/net/mlxsw/qos_dscp_bridge.sh +2 -0
index 5cbff8038f84..28a570006d4d 100755

Lines of this file are not shown. View the raw message.

tools/testing/selftests/lkdtm/tests.txt +1 -1
index 11ef159be0fd..a5fce7fd4520 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/net/forwarding/pedit_dsfield.sh +2 -0
index 55eeacf59241..64fbd211d907 100755

Lines of this file are not shown. View the raw message.

tools/testing/selftests/net/forwarding/pedit_l4port.sh +2 -0
index 5f20d289ee43..10e594c55117 100755

Lines of this file are not shown. View the raw message.

tools/testing/selftests/net/forwarding/skbedit_priority.sh +2 -0
index e3bd8a6bb8b4..bde11dc27873 100755

Lines of this file are not shown. View the raw message.

tools/testing/selftests/resctrl/README +1 -1
index 6e5a0ffa18e8..20502cb4791f 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/resctrl/resctrl_tests.c +2 -2
index ac2269610aa9..bd98746c6f85 100644

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.