linux/drivers
Nicolas Frattaroli 4688bb13da phy: rockchip-pcie: switch to FIELD_PREP_WM16 macro
The era of hand-rolled HIWORD_UPDATE macros is over, at least for those
drivers that use constant masks.

The Rockchip PCIe PHY driver, used on the RK3399, has its own definition
of HIWORD_UPDATE.

Remove it, and replace instances of it with hw_bitfield.h's
FIELD_PREP_WM16. To achieve this, some mask defines are reshuffled, as
FIELD_PREP_WM16 uses the mask as both the mask of bits to write and to
derive the shift amount from in order to shift the value.

In order to ensure that the mask is always a constant, the inst->index
shift is performed after the FIELD_PREP_WM16, as this is a runtime
value.

>From this, we gain compile-time error checking, and in my humble opinion
nicer code, as well as a single definition of this macro across the
entire codebase to aid in code comprehension.

Tested on a RK3399 ROCKPro64, where PCIe still works as expected when
accessing an NVMe drive.

Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Yury Norov (NVIDIA) <yury.norov@gmail.com>
2025-09-22 15:52:44 -04:00
..
accel Merge drm/drm-fixes into drm-misc-fixes 2025-08-20 16:08:49 +02:00
accessibility
acpi Merge branches 'acpi-apei' and 'acpi-pfrut' 2025-08-21 20:47:23 +02:00
amba
android Char / Misc / IIO / other driver updates for 6.17-rc1 2025-07-29 09:52:01 -07:00
ata ata: ahci_xgene: Use int type for 'rc' to store error codes 2025-08-28 13:36:14 +09:00
atm atm: atmtcp: Prevent arbitrary write in atmtcp_recv_control(). 2025-08-22 17:23:15 -07:00
auxdisplay
base PM: sleep: annotate RCU list iterations 2025-08-26 15:27:04 +02:00
bcma treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
block ublk: avoid ublk_io_release() called after ublk char dev is closed 2025-08-28 07:56:57 -06:00
bluetooth Bluetooth: btnxpuart: Uses threaded IRQ for host wakeup handling 2025-08-15 10:13:26 -04:00
bus soc: driver updates for 6.17 2025-07-29 11:13:27 -07:00
cache
cdrom cdrom: Call cdrom_mrw_exit from cdrom_release function 2025-07-22 19:10:17 -06:00
cdx cdx: Fix off-by-one error in cdx_rpmsg_probe() 2025-08-19 12:55:16 +02:00
char Some small fixes for the IPMI driver 2025-08-07 07:38:25 +03:00
clk clk: sp7021: switch to FIELD_PREP_WM16 macro 2025-09-22 15:52:11 -04:00
clocksource A treewide cleanup of struct cycle_counter const annotations: 2025-07-29 14:02:53 -07:00
comedi comedi: Make insn_rw_emulate_bits() do insn->n samples 2025-08-19 12:57:01 +02:00
connector
counter
cpufreq cpufreq: intel_pstate: Support Clearwater Forest OOB mode 2025-08-11 21:49:47 +02:00
cpuidle cpuidle: governors: menu: Avoid selecting states with too much latency 2025-08-18 19:04:25 +02:00
crypto This update includes the following changes: 2025-07-31 09:45:28 -07:00
cxl Significant patch series in this pull request: 2025-08-03 16:23:09 -07:00
dax
dca
devfreq PM / devfreq: Add HiSilicon uncore frequency scaling driver 2025-07-14 20:23:57 +09:00
dio
dma dmaengine updates for v6.17 2025-08-01 12:35:12 -07:00
dma-buf drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
dpll dpll: zl3073x: ZL3073X_I2C and ZL3073X_SPI should depend on NET 2025-08-04 17:22:55 -07:00
edac - i10nm: 2025-07-29 16:30:38 -07:00
eisa
extcon
firewire firewire: core: reallocate buffer for FCP address handlers when more than 4 are registered 2025-08-03 21:20:15 +09:00
firmware efi: stmm: Drop unneeded null pointer check 2025-08-26 14:49:42 +02:00
fpga fpga: zynq_fpga: Fix the wrong usage of dma_map_sgtable() 2025-08-19 12:54:45 +02:00
fsi Driver core changes for 6.17-rc1 2025-07-29 12:15:39 -07:00
fwctl
gnss
gpio gpio fixes for v6.17-rc4 2025-08-31 08:49:55 -07:00
gpu drm/rockchip: dw_hdmi: switch to FIELD_PREP_WM16* macros 2025-09-02 20:06:47 -04:00
greybus
hid hid-for-linus-2025082901 2025-08-29 07:44:14 -07:00
hsi
hte
hv ARM: 2025-07-30 17:14:01 -07:00
hwmon treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
hwspinlock
hwtracing
i2c i2c: rtl9300: Add missing count byte for SMBus Block Ops 2025-08-19 20:21:03 -01:00
i3c i3c: add missing include to internal header 2025-07-31 02:25:17 +02:00
idle intel_idle: Allow loading ACPI tables for any family 2025-08-11 21:43:26 +02:00
iio iio: pressure: bmp280: Use IS_ERR() in bmp280_common_probe() 2025-08-18 19:22:18 +01:00
infiniband RDMA/hns: Fix dip entries leak on devices newer than hip09 2025-08-13 07:22:18 -04:00
input treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
interconnect Char / Misc / IIO / other driver updates for 6.17-rc1 2025-07-29 09:52:01 -07:00
iommu iommufd 6.17 first rc pull 2025-08-22 17:24:48 -04:00
ipack
irqchip irqchip/gic-v5: Remove undue WARN_ON()s in the IRS affinity parsing 2025-08-24 12:54:06 +02:00
isdn mISDN: hfcpci: Fix warning when deleting uninitialized timer 2025-08-25 17:15:01 -07:00
leds treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
macintosh
mailbox mailbox/pcc: support mailbox management of the shared buffer 2025-08-07 23:49:56 -05:00
mcb mcb: use sysfs_emit_at() instead of scnprintf() in show functions 2025-07-16 14:17:07 +02:00
md md: fix sync_action incorrect display during resync 2025-08-16 08:52:33 +08:00
media media: synopsys: hdmirx: replace macros with bitfield variants 2025-09-02 20:05:57 -04:00
memory Memory controller drivers for v6.17 2025-07-22 22:47:00 +02:00
memstick memstick: Fix deadlock by moving removing flag earlier 2025-08-18 12:01:20 +02:00
message
mfd treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
misc treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
mmc mmc: dw_mmc-rockchip: switch to FIELD_PREP_WM16 macro 2025-09-02 19:59:37 -04:00
most most: core: Drop device reference after usage in get_channel() 2025-08-19 12:57:34 +02:00
mtd * MTD changes: 2025-07-31 13:43:02 -07:00
mux hardening updates for v6.17-rc1 2025-07-28 17:16:12 -07:00
net net: stmmac: dwmac-rk: switch to FIELD_PREP_WM16 macro 2025-09-02 20:06:47 -04:00
nfc
ntb
nubus
nvdimm Summary of significant series in this pull request: 2025-07-31 14:57:54 -07:00
nvme nvmet: exit debugfs after discovery subsystem exits 2025-08-07 06:27:58 -06:00
nvmem Driver core changes for 6.17-rc1 2025-07-29 12:15:39 -07:00
of 17 hotfixes. 13 are cc:stable and the remainder address post-6.16 issues 2025-09-02 13:18:00 -07:00
opp
parisc parisc/power: Move soft-power into power.c 2025-07-23 11:52:48 +02:00
parport
pci PCI: dw-rockchip: Switch to FIELD_PREP_WM16 macro 2025-09-02 20:06:47 -04:00
pcmcia
peci
perf drivers/perf: hisi: Support PMUs with no interrupt 2025-07-14 15:42:16 +01:00
phy phy: rockchip-pcie: switch to FIELD_PREP_WM16 macro 2025-09-22 15:52:44 -04:00
pinctrl pinctrl: airoha: Fix return value in pinconf callbacks 2025-08-22 15:08:58 +02:00
platform [GIT PULL for v6.17-rc4] media fixes 2025-08-27 10:10:50 -07:00
pmdomain pmdomain: qcom: rpmhpd: Add Glymur RPMh Power Domains 2025-07-23 12:12:16 +02:00
pnp
power power supply and reset changes for the 6.17 series 2025-07-31 21:39:01 -07:00
powercap platform-drivers-x86 for v6.17-1 2025-07-28 23:21:28 -07:00
pps
ps3
ptp ptp: prevent possible ABBA deadlock in ptp_clock_freerun() 2025-08-12 14:17:35 -07:00
pwm treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
rapidio
ras
regulator regulator: pm8008: fix probe failure due to negative voltage selector 2025-08-24 22:41:04 +01:00
remoteproc remoteproc updates for v6.17 2025-08-01 15:02:25 -07:00
reset This is the usual collection of primarily clk driver updates. The big part of 2025-07-31 13:36:27 -07:00
rpmsg remoteproc updates for v6.17 2025-08-01 15:02:25 -07:00
rtc RTC for 6.17 2025-08-03 20:17:34 -07:00
s390 s390/sclp: Fix SCCB present check 2025-08-20 16:37:27 +02:00
sbus
scsi scsi: qla4xxx: Prevent a potential error pointer dereference 2025-08-14 23:22:46 -04:00
sh
siox
slimbus
soc soc: rockchip: grf: switch to FIELD_PREP_WM16_CONST macro 2025-09-02 19:59:37 -04:00
soundwire soundwire updates for 6.17 2025-08-01 11:09:27 -07:00
spi spi: Fixes for v6.17 2025-08-21 16:28:00 -04:00
spmi
ssb treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
staging treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
target SCSI misc on 20250806 2025-08-06 15:44:25 +03:00
tc
tee
thermal Driver core changes for 6.17-rc1 2025-07-29 12:15:39 -07:00
thunderbolt thunderbolt: Fix copy+paste error in match_service_id() 2025-07-21 16:33:43 +02:00
tty module: Rename EXPORT_SYMBOL_GPL_FOR_MODULES to EXPORT_SYMBOL_FOR_MODULES 2025-08-11 16:16:36 +02:00
ufs scsi: ufs: ufs-qcom: Fix ESI null pointer dereference 2025-08-18 22:25:52 -04:00
uio
usb usb: xhci: fix host not responding after suspend and resume 2025-08-19 16:12:13 +02:00
vdpa vdpa: Fix IDR memory leak in VDUSE module exit 2025-08-01 09:11:08 -04:00
vfio VFIO updates for v6.17-rc1 v2 2025-08-07 07:32:50 +03:00
vhost vhost/net: Protect ubufs with rcu read lock in vhost_net_ubuf_put() 2025-08-26 03:38:10 -04:00
video gpio updates for v6.17-rc1 2025-08-09 08:15:43 +03:00
virt virt: sev-guest: Satisfy linear mapping requirement in get_derived_key() 2025-08-15 17:05:39 +02:00
virtio virtio_input: Improve freeze handling 2025-08-26 03:38:19 -04:00
w1
watchdog watchdog: sbsa: Adjust keepalive timeout to avoid MediaTek WS0 race condition 2025-07-28 12:07:08 +02:00
xen drivers/xen/xenbus: remove quirk for Xen 3.x 2025-08-20 15:47:43 +02:00
zorro
Kconfig drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
Makefile