Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
459 commits
Select commit Hold shift + click to select a range
4a6afd6
PCI: Make pcim_iounmap_region() a public function
Oct 16, 2024
c7acef9
PCI: Fix use-after-free of slot->bus on hot remove
l1k Oct 10, 2024
8c0d120
perf, riscv: Wire up perf trace support for RISC-V
bjorn-rivos Oct 24, 2024
064d569
perf ftrace latency: Fix unit on histogram first entry when using --u…
acmel Oct 29, 2024
ba993e5
perf arm-spe: Use old behavior when opening old SPE files
james-c-linaro Oct 29, 2024
16aed0a
i3c: master: Replace hard code 2 with macro I3C_ADDR_SLOT_STATUS_BITS
nxpfrankli Oct 21, 2024
2f552fa
i3c: master: Extend address status bit to 4 and add I3C_ADDR_SLOT_EXT…
nxpfrankli Oct 21, 2024
851bd21
i3c: master: Fix dynamic address leak when 'assigned-address' is present
nxpfrankli Oct 21, 2024
3c6684a
i3c: master: svc: use repeat start when IBI WIN happens
nxpfrankli Oct 2, 2024
e22405a
i3c: master: svc: manually emit NACK/ACK for hotjoin
nxpfrankli Oct 2, 2024
6a12f56
i3c: master: svc: need check IBIWON for dynamic address assignment
nxpfrankli Oct 2, 2024
f36f662
i3c: master: svc: use spin_lock_irqsave at svc_i3c_master_ibi_work()
nxpfrankli Oct 2, 2024
3ca5291
i3c: master: svc: wait for Manual ACK/NACK Done before next step
nxpfrankli Oct 2, 2024
3b2ac81
i3c: master: svc: fix possible assignment of the same address to two …
nxpfrankli Oct 2, 2024
36faa04
i3c: master: Remove i3c_dev_disable_ibi_locked(olddev) on device hotjoin
nxpfrankli Oct 1, 2024
3082990
i3c: master: Fix miss free init_dyn_addr at i3c_master_put_i3c_addrs()
nxpfrankli Oct 1, 2024
6ca2738
i3c: mipi-i3c-hci: Mask ring interrupts before ring stop request
jhnikula Sep 20, 2024
45357c9
i3c: mipi-i3c-hci: Handle interrupts according to current specifications
jhnikula Sep 20, 2024
18599e9
i3c: master: svc: Fix pm_runtime_set_suspended() with runtime pm enabled
Sep 30, 2024
07dc3a6
perf stat: Support inherit events during fork() for bperf
Oct 21, 2024
d36e5b3
perf test: Use sqrtloop workload to test bperf event
Oct 21, 2024
f6ca730
i3c: Document I3C_ADDR_SLOT_EXT_STATUS_MASK
alexandrebelloni Nov 2, 2024
d38cc57
dt-bindings: PCI: qcom,pcie-sm8550: Add SAR2130P compatible
lumag Oct 17, 2024
ba4a2e2
PCI: qcom: Enable MSI interrupts together with Link up if 'Global IRQ…
Mani-Sadhasivam Oct 7, 2024
25bc99b
i3c: master: svc: Modify enabled_events bit 7:0 to act as IBI enable …
nxpfrankli Nov 1, 2024
7d7cf89
PCI: qcom-ep: Move controller cleanups to qcom_pcie_perst_deassert()
Mani-Sadhasivam Aug 17, 2024
40e2125
PCI: tegra194: Move controller cleanups to pex_ep_event_pex_rst_deass…
Mani-Sadhasivam Aug 17, 2024
e0662da
dt-bindings: PCI: qcom: Document the IPQ9574 PCIe controller
Aug 1, 2024
08e8352
PCI: j721e: Add PCIe support for J722S SoC
Siddharth-Vadapalli-at-TI May 24, 2024
a63b74f
PCI: qcom: Add support for IPQ9574
Aug 1, 2024
39a06b5
dt-bindings: PCI: qcom: Move OPP table to qcom,pcie-common.yaml
Nov 1, 2024
66dc205
dt-bindings: PCI: qcom,pcie-x1e80100: Add 'global' interrupt
Nov 1, 2024
aa5c906
Merge 'origin/master' into perf-tools-next
namhyung Nov 4, 2024
22a9120
PCI: j721e: Deassert PERST# after a delay of PCIE_T_PVPERL_MS millise…
Siddharth-Vadapalli-at-TI Nov 4, 2024
1362af9
PCI: qcom: Remove BDF2SID mapping config for SC8280X family SoC
Nov 1, 2024
fba6045
PCI: qcom: Disable ASPM L0s for X1E80100
Nov 1, 2024
ade7da1
PCI: mediatek-gen3: Add support for setting max-link-speed limit
Nov 4, 2024
13e17c9
perf build: Make libunwind opt-in rather than opt-out
captain5050 Oct 28, 2024
e73ea1c
PCI: dwc: endpoint: Implement the pci_epc_ops::align_addr() operation
damien-lemoal Oct 12, 2024
97110d4
PCI: endpoint: test: Synchronously cancel command handler work
damien-lemoal Oct 17, 2024
c741c7b
perf test: Remove cpu-list BPF cgroup counter test
rfmvh Nov 1, 2024
d5a0a4a
perf build: Add missing cflags when building with custom libtraceevent
Oct 24, 2024
6e0e0a1
perf tools: Add all shellcheck_log to gitignore
charlie-rivos Nov 4, 2024
a52143a
perf test: Remove dangling CFLAGS for removed attr.o object
acmel Nov 4, 2024
29bf07b
perf test: Fix ftrace test with regex patterns
namhyung Nov 2, 2024
718c157
dt-bindings: PCI: snps,dw-pcie: Drop "#interrupt-cells" from example
robherring Nov 5, 2024
5fb8e56
perf trace: avoid garbage when not printing a trace event's arguments
benjaminp Nov 3, 2024
b609a15
PCI: mediatek-gen3: Add support for restricting link width
Nov 4, 2024
e1714f3
PCI/ASPM: Add notes about enabling PCI-PM L1SS to pci_enable_link_sta…
starnight Oct 1, 2024
0a726f5
PCI: imx6: Fix suspend/resume support on i.MX6QDL
eichenberger Oct 30, 2024
b727484
PCI: vmd: Add DID 8086:B06F and 8086:B60B for Intel client SKUs
Oct 11, 2024
d660410
PCI: vmd: Set devices to D0 before enabling PM L1 Substates
starnight Oct 1, 2024
3b96b89
PCI: Detect and trust built-in Thunderbolt chips
Sep 10, 2024
083b0ac
PCI: Deprecate pcim_iounmap_regions()
Oct 16, 2024
4365792
fpga/dfl-pci.c: Replace deprecated PCI functions
Oct 16, 2024
4996656
gpio: Replace deprecated PCI functions
Oct 16, 2024
64fe9bc
ethernet: cavium: Replace deprecated PCI functions
Oct 16, 2024
e329b76
dt-bindings: PCI: microchip,pcie-host: Add reg for Root Port 2
ConchuOD Nov 7, 2024
ac7f53b
PCI: microchip: Add support for using either Root Port 1 or 2
ConchuOD Nov 7, 2024
5a938ed
PCI: keystone: Set mode as Root Complex for "ti,keystone-pcie" compat…
kishon May 24, 2024
9e9ec8d
PCI: keystone: Add link up check to ks_pcie_other_map_bus()
kishon May 24, 2024
9ac9866
perf: event: Remove deadcode
Nov 6, 2024
d8c0f8b
perf tools: Add the empty-pmu-events build to .gitignore
haiyuewa Nov 6, 2024
62a6d09
perf stat: Expand metric+unit buffer size
captain5050 Nov 6, 2024
26ec3d7
perf script cs_etm: Add map_pgoff to python dictionary
SCClevenger-ampere Nov 8, 2024
e8328bf
perf script python: Adjust objdump start/end per map pgoff parameter
SCClevenger-ampere Nov 8, 2024
35de42c
perf build: Include libtraceevent headers directly indicated by pkg-c…
Nov 5, 2024
f4db95b
tools api io: Ensure line_len_out is always initialized
captain5050 Nov 9, 2024
4810b76
perf hwmon_pmu: Add hwmon filename parser
captain5050 Nov 9, 2024
8c32905
perf test: Add hwmon filename parser test
captain5050 Nov 9, 2024
53cc0b3
perf hwmon_pmu: Add a tool PMU exposing events from hwmon in sysfs
captain5050 Nov 9, 2024
654986e
perf pmu: Add calls enabling the hwmon_pmu
captain5050 Nov 9, 2024
531ee0f
perf test: Add hwmon "PMU" test
captain5050 Nov 9, 2024
6d5d90a
perf docs: Document tool and hwmon events
captain5050 Nov 9, 2024
2bf7692
perf bpf-prologue: Remove unused file
captain5050 Nov 8, 2024
6ac7528
perf dwarf-regs: Remove PERF_HAVE_ARCH_REGS_QUERY_REGISTER_OFFSET
captain5050 Nov 8, 2024
ae894b7
perf dwarf-regs: Add EM_HOST and EF_HOST defines
captain5050 Nov 8, 2024
cd6c9dc
perf disasm: Add e_machine/e_flags to struct arch
captain5050 Nov 8, 2024
9fc4489
perf dwarf-regs: Pass accurate disassembly machine to get_dwarf_regnum
captain5050 Nov 8, 2024
a784847
perf dwarf-regs: Pass ELF flags to get_dwarf_regstr
captain5050 Nov 8, 2024
bf4e799
perf dwarf-regs: Move x86 dwarf-regs out of arch
captain5050 Nov 8, 2024
6f8e8ad
perf arm64: Remove dwarf-regs.c
captain5050 Nov 8, 2024
0c0a20e
perf arm: Remove dwarf-regs.c
captain5050 Nov 8, 2024
d4a0c4f
perf dwarf-regs: Move csky dwarf-regs out of arch
captain5050 Nov 8, 2024
1d37bd8
perf loongarch: Remove dwarf-regs.c
captain5050 Nov 8, 2024
8a768a2
perf mips: Remove dwarf-regs.c
captain5050 Nov 8, 2024
285b523
perf dwarf-regs: Move powerpc dwarf-regs out of arch
captain5050 Nov 8, 2024
a90c451
perf riscv: Remove dwarf-regs.c and add dwarf-regs-table.h
captain5050 Nov 8, 2024
b232b70
perf s390: Remove dwarf-regs.c
captain5050 Nov 8, 2024
04150f2
perf sh: Remove dwarf-regs.c
captain5050 Nov 8, 2024
85567a2
perf sparc: Remove dwarf-regs.c
captain5050 Nov 8, 2024
a4747c0
perf xtensa: Remove dwarf-regs.c
captain5050 Nov 8, 2024
3ef6b89
perf dwarf-regs: Remove get_arch_regstr code
captain5050 Nov 8, 2024
ddbfb6f
perf build: Remove PERF_HAVE_DWARF_REGS
captain5050 Nov 8, 2024
f212140
m68k: mcfgpio: Fix incorrect register offset for CONFIG_M5441x
Oct 16, 2024
63a24cf
m68k: coldfire/device.c: only build FEC when HW macros are defined
ordex Oct 29, 2024
4c1d8f0
perf disasm: Introduce symbol__disassemble_objdump()
acmel Nov 11, 2024
93093ea
PCI: Make pci_stop_dev() concurrent safe
keithbusch Oct 22, 2024
e3f30d5
PCI: Make pci_destroy_dev() concurrent safe
keithbusch Oct 22, 2024
4d6dcd6
PCI: Move __pci_walk_bus() mutex to where we need it
keithbusch Oct 22, 2024
ee061da
PCI: Convert __pci_walk_bus() to be recursive
keithbusch Oct 22, 2024
d2bd39c
PCI: Store all PCIe Supported Link Speeds
ij-intel Oct 18, 2024
e93d9fc
PCI: Refactor pcie_update_link_speed()
ij-intel Oct 18, 2024
3491f50
PCI: Abstract LBMS seen check into pcie_lbms_seen()
ij-intel Oct 18, 2024
38a18df
PCI: Unexport pci_walk_bus_locked()
keithbusch Oct 22, 2024
e3e309b
PCI: cadence: Lower severity of message when phy-names property is ab…
Oct 18, 2024
d19ea32
PCI: mediatek-gen3: Remove unneeded semicolon
Nov 11, 2024
1f7393a
perf disasm: Define stubs for the LLVM and capstone disassemblers
acmel Nov 11, 2024
a6e8a58
perf disasm: Allow configuring what disassemblers to use
acmel Nov 11, 2024
463c203
perf tools: Fix typos Muliplier -> Multiplier
algonell Nov 8, 2024
d99b312
perf list: Fix topic and pmu_name argument order
Nov 9, 2024
b81bb70
perf timechart: Remove redundant variable assignment
Nov 11, 2024
31bedc1
libsubcmd: Move va_end() before exit
Nov 11, 2024
6168efb
PCI: starfive: Enable controller runtime PM before probing host bridge
Nov 11, 2024
dc421bb
PCI: Enable runtime PM of the host bridge
Nov 11, 2024
2fa0464
PCI: Add 'reset_subordinate' to reset hierarchy below bridge
keithbusch Oct 25, 2024
a3151e6
PCI: Warn if a running device is unaware of reset
keithbusch Oct 25, 2024
e434e54
PCI: hotplug: Add OCTEON PCI hotplug controller driver
Nov 11, 2024
fe4f9b4
perf trace: Fix tracing itself, creating feedback loops
Sberm Oct 30, 2024
e7c70ee
perf probe: Fix error message for failing to find line range
mhiramat Nov 7, 2024
47fa0f9
perf probe: Fix to ignore escaped characters in --lines option
mhiramat Nov 7, 2024
b9e5772
perf probe: Accept FUNC@* to specify function name explicitly
mhiramat Nov 7, 2024
313026f
perf string: Add strpbrk_esq() and strdup_esq() for escape and quote
mhiramat Nov 7, 2024
080e47b
perf probe: Introduce quotation marks support
mhiramat Nov 7, 2024
3fd7c36
perf trace: Do not lose last events in a race
benjaminp Nov 7, 2024
1302e35
perf trace: Avoid garbage when not printing a syscall's arguments
benjaminp Nov 7, 2024
f72bcb9
perf tests: Add test for trace output loss
benjaminp Nov 7, 2024
7ca41fa
perf test shell trace_exit_race: Show what went wrong in verbose mode
acmel Nov 14, 2024
5e316d3
PCI: of_property: Assign PCI instead of CPU bus address to dynamic PC…
Nov 8, 2024
31457d4
PCI: Fix typos
bjorn-helgaas Nov 2, 2024
aa46a37
PCI: Add ACS quirk for Wangxun FF5xxx NICs
Nov 15, 2024
587b67c
remoteproc: qcom: pas: Remove subdevs on the error path of adsp_probe()
joehattori Nov 8, 2024
fe80d32
remoteproc: qcom: adsp: Remove subdevs on the error path of adsp_probe()
joehattori Nov 8, 2024
60e7c43
remoteproc: qcom: wcss: Remove subdevs on the error path of q6v5_wcss…
joehattori Nov 8, 2024
ec257dd
dt-bindings: remoteproc: qcom,sm8550-pas: Add SM8750 ADSP
krzk Nov 1, 2024
e45dd40
dt-bindings: remoteproc: qcom,sm8350-pas: add SAR2130P aDSP compatible
lumag Oct 26, 2024
e898315
remoteproc: qcom: pas: add minidump_id to SM8350 resources
lumag Oct 26, 2024
009e288
remoteproc: qcom: pas: enable SAR2130P audio DSP support
lumag Oct 26, 2024
b64b126
remoteproc: qcom: pas: Make remoteproc name human friendly
quic-bjorande Oct 22, 2024
8a47704
remoteproc: qcom_q6v5_pas: disable auto boot for wpss
bpothuno-quic Oct 18, 2024
85865e8
remoteproc: qcom_q6v5_adsp: Simplify with dev_err_probe()
krzk Oct 11, 2024
63b07ee
remoteproc: qcom_q6v5_mss: Simplify with dev_err_probe()
krzk Oct 11, 2024
576dac2
remoteproc: qcom_q6v5_mss: Drop redundant error printks in probe
krzk Oct 11, 2024
427442e
remoteproc: qcom_q6v5_pas: Simplify with dev_err_probe()
krzk Oct 11, 2024
f21e504
remoteproc: qcom_q6v5_wcss: Simplify with dev_err_probe()
krzk Oct 11, 2024
70d3581
remoteproc: qcom_wcnss_iris: Simplify with dev_err_probe()
krzk Oct 11, 2024
06c59d9
rpmsg: glink: use only lower 16-bits of param2 for CMD_OPEN name length
flto Oct 7, 2024
7b22b77
remoteproc: qcom_q6v5_mss: Re-order writes to the IMEM region
Aug 19, 2024
44024eb
remoteproc: qcom: wcss: Remove double assignment in q6v5_wcss_probe()
Aug 23, 2024
665745f
PCI/bwctrl: Re-add BW notification portdrv as PCIe BW controller
ij-intel Oct 18, 2024
de9a6c8
PCI/bwctrl: Add pcie_set_target_speed() to set PCIe Link Speed
ij-intel Oct 18, 2024
d278b09
thermal: Add PCIe cooling driver
ij-intel Oct 18, 2024
838f12c
selftests/pcie_bwctrl: Create selftests
ij-intel Oct 18, 2024
ba58eee
PCI: Drop duplicate pcie_get_speed_cap(), pcie_get_width_cap() declar…
bjorn-helgaas Nov 11, 2024
3fafc38
PCI: dwc: ep: Use align addr function for dw_pcie_ep_raise_{msi,msix}…
floatious Oct 17, 2024
9b80bdb
PCI: endpoint: Remove surplus return statement from pci_epf_test_clea…
Nov 4, 2024
5089b3d
PCI: endpoint: epf-mhi: Avoid NULL dereference if DT lacks 'mmio'
ZhongqiuHan-Qcom Nov 5, 2024
154fc1f
PCI: dwc: Use of_property_present() for non-boolean properties
robherring Nov 4, 2024
118397c
PCI: dwc: ep: Fix advertised resizable BAR size regression
floatious Nov 16, 2024
0b68791
perf test shell trace_exit_race: Use --no-comm to avoid cases where C…
acmel Nov 15, 2024
264708b
perf util: Remove kernel version deadcode
Nov 16, 2024
180fd0c
perf tests: Make leader sampling test work without branch event
james-c-linaro Nov 15, 2024
db26a8c
perf test: Add missing __exit calls in tool/hwmon tests
captain5050 Nov 15, 2024
4a159e6
perf jevents: fix breakage when do perf stat on system metric
Nov 7, 2024
c6fafe3
perf header: Move is_cpu_online to numa bench
captain5050 Nov 7, 2024
cec0d65
perf header: Refactor get_cpuid to take a CPU for ARM
captain5050 Nov 7, 2024
538737d
perf arm64 header: Use cpu argument in get_cpuid
captain5050 Nov 7, 2024
7463ee1
perf header: Avoid transitive PMU includes
captain5050 Nov 7, 2024
494c403
perf header: Pass a perf_cpu rather than a PMU to get_cpuid_str
captain5050 Nov 7, 2024
0434410
perf jevents: Add map_for_cpu()
captain5050 Nov 7, 2024
8f99786
perf pmu: Move pmu_metrics_table__find and remove ARM override
captain5050 Nov 7, 2024
85c60a0
perf: Remove unused del_perf_probe_events()
Oct 22, 2024
a5f05a1
parisc/ftrace: Fix function graph tracing disablement
jpoimboe Oct 2, 2024
0a0d851
i3c: dw: Add support for AMDI0015 ACPI ID
Nov 14, 2024
473d0cb
i3c: dw: Add quirk to address OD/PP timing issue on AMD platform
Nov 14, 2024
2b50719
i3c: mipi-i3c-hci: Support SETDASA CCC
billy-tsai Nov 13, 2024
6cf7b65
i3c: Use i3cdev->desc->info instead of calling i3c_device_get_info() …
Nov 7, 2024
4acc902
PCI: endpoint: Fix PCI domain ID release in pci_epc_destroy()
Nov 7, 2024
688d2eb
PCI: endpoint: Clear secondary (not primary) EPC in pci_epc_remove_epf()
Nov 7, 2024
28b6acd
PCI: endpoint: Fix pci_epc_map map_size kerneldoc string
rwk-git Nov 14, 2024
d9db393
tools: PCI: Fix incorrect printf format specifiers
Nov 12, 2024
7582fe0
PCI/pwrctl: Use of_platform_device_create() to create pwrctl devices
Mani-Sadhasivam Oct 25, 2024
278dd09
PCI/pwrctl: Create pwrctl device only if at least one power supply is…
Mani-Sadhasivam Oct 25, 2024
b458ff7
PCI/pwrctl: Ensure that pwrctl drivers are probed before PCI client d…
Mani-Sadhasivam Oct 25, 2024
681725a
PCI/pwrctl: Remove pwrctl device without iterating over all children …
Mani-Sadhasivam Oct 25, 2024
b88cbaa
PCI/pwrctrl: Rename pwrctl files to pwrctrl
bjorn-helgaas Nov 15, 2024
3f925cd
PCI/pwrctrl: Rename pwrctrl functions and structures
bjorn-helgaas Nov 15, 2024
fc26637
perf test: Correct hwmon test PMU detection
captain5050 Nov 18, 2024
bd077a5
perf bpf-filter: Return -ENOMEM directly when pfi allocation fails
GeHao01994 Nov 13, 2024
5f2c8f4
perf/test: fix perf ftrace test on s390
Nov 19, 2024
870748f
perf tests hwmon_pmu: Remove double evlist__delete()
acmel Nov 19, 2024
62878b4
perf hwmon_pmu: Ensure hwmon key union is zeroed before use
captain5050 Nov 19, 2024
6d78089
perf tests: Fix hwmon parsing with PMU name test
captain5050 Nov 21, 2024
8281d62
hwmon: (tmp108) Do not fail in I3C probe when I3C regmap is a module
jhnikula Nov 21, 2024
de2bf50
hwmon: (tps23861) Fix reporting of negative temperatures
Nov 21, 2024
998b5a7
hwmon: (aquacomputer_d5next) Fix length of speed_input array
aleksamagicka Nov 24, 2024
64f093c
PCI: rockchip-ep: Fix address translation unit programming
damien-lemoal Oct 17, 2024
739e25f
PCI: rockchip-ep: Use a macro to define EP controller .align feature
damien-lemoal Oct 17, 2024
57ed93f
PCI: rockchip-ep: Improve rockchip_pcie_ep_unmap_addr()
Oct 17, 2024
d8dbd21
PCI: rockchip-ep: Improve rockchip_pcie_ep_map_addr()
damien-lemoal Oct 17, 2024
b212553
PCI: rockchip-ep: Implement the pci_epc_ops::align_addr() operation
damien-lemoal Oct 17, 2024
9f737cc
PCI: rockchip-ep: Fix MSI IRQ data mapping
damien-lemoal Oct 17, 2024
2968534
PCI: rockchip-ep: Rename rockchip_pcie_parse_ep_dt()
damien-lemoal Oct 17, 2024
9456480
PCI: rockchip-ep: Refactor rockchip_pcie_ep_probe() memory allocations
damien-lemoal Oct 17, 2024
8efda8a
PCI: rockchip-ep: Refactor rockchip_pcie_ep_probe() MSI-X hiding
damien-lemoal Oct 17, 2024
091022f
PCI: rockchip-ep: Refactor endpoint link training enable
damien-lemoal Oct 17, 2024
00080d0
PCI: rockship-ep: Implement the pci_epc_ops::stop_link() operation
damien-lemoal Oct 17, 2024
bd6e61d
PCI: rockchip-ep: Improve link training
damien-lemoal Oct 17, 2024
a7137cb
PCI: rockchip-ep: Handle PERST# signal in EP mode
damien-lemoal Oct 17, 2024
0182471
Merge branch 'pci/aspm'
bjorn-helgaas Nov 25, 2024
d957ff7
Merge branch 'pci/bwctrl'
bjorn-helgaas Nov 25, 2024
73bdd73
Merge branch 'pci/doe'
bjorn-helgaas Nov 25, 2024
f326ce1
Merge branch 'pci/devm'
bjorn-helgaas Nov 25, 2024
dd97612
Merge branch 'pci/driver-remove'
bjorn-helgaas Nov 25, 2024
77ac2e2
Merge branch 'pci/enumeration'
bjorn-helgaas Nov 25, 2024
dcd1245
Merge branch 'pci/hotplug'
bjorn-helgaas Nov 25, 2024
665e4a3
Merge branch 'pci/hotplug-octeon'
bjorn-helgaas Nov 25, 2024
5d756f3
Merge branch 'pci/locking'
bjorn-helgaas Nov 25, 2024
2438a74
Merge branch 'pci/of'
bjorn-helgaas Nov 25, 2024
95e9303
Merge branch 'pci/pm'
bjorn-helgaas Nov 25, 2024
ce1deca
Merge branch 'pci/pwrctl'
bjorn-helgaas Nov 25, 2024
d985e2b
Merge branch 'pci/reset'
bjorn-helgaas Nov 25, 2024
c03d361
Merge branch 'pci/resource'
bjorn-helgaas Nov 25, 2024
efcbd9d
Merge branch 'pci/thunderbolt'
bjorn-helgaas Nov 25, 2024
ab02baf
Merge branch 'pci/tph'
bjorn-helgaas Nov 25, 2024
5cdd50d
Merge branch 'pci/virtualization'
bjorn-helgaas Nov 25, 2024
0683141
Merge branch 'pci/dt-bindings'
bjorn-helgaas Nov 25, 2024
bd43348
Merge branch 'pci/endpoint'
bjorn-helgaas Nov 25, 2024
5b8d59c
Merge branch 'pci/controller/cadence'
bjorn-helgaas Nov 25, 2024
2b4049d
Merge branch 'pci/controller/dwc'
bjorn-helgaas Nov 25, 2024
7b86e0a
Merge branch 'pci/controller/imx6'
bjorn-helgaas Nov 25, 2024
5c8bd7f
Merge branch 'pci/controller/j721e'
bjorn-helgaas Nov 25, 2024
c1787c3
Merge branch 'pci/controller/keystone'
bjorn-helgaas Nov 25, 2024
4268106
Merge branch 'pci/controller/mediatek'
bjorn-helgaas Nov 25, 2024
7b5d234
Merge branch 'pci/controller/microchip'
bjorn-helgaas Nov 25, 2024
f54ff40
Merge branch 'pci/controller/qcom'
bjorn-helgaas Nov 25, 2024
72ae381
Merge branch 'pci/controller/rockchip'
bjorn-helgaas Nov 25, 2024
c60603c
Merge branch 'pci/controller/tegra194'
bjorn-helgaas Nov 25, 2024
e6b95ef
Merge branch 'pci/controller/vmd'
bjorn-helgaas Nov 25, 2024
2d56427
Merge branch 'pci/misc'
bjorn-helgaas Nov 25, 2024
1009926
Merge branch 'pci/typos'
bjorn-helgaas Nov 25, 2024
7ebe7af
Merge tag 'm68knommu-for-v6.13' of git://git.kernel.org/pub/scm/linux…
torvalds Nov 26, 2024
9160b68
Merge tag 'parisc-for-6.13-rc1' of git://git.kernel.org/pub/scm/linux…
torvalds Nov 26, 2024
b50ecc5
Merge tag 'perf-tools-for-v6.13-2024-11-24' of git://git.kernel.org/p…
torvalds Nov 26, 2024
1dc707e
rust: fix up formatting after merge
torvalds Nov 27, 2024
1746db2
Merge tag 'pci-v6.13-changes' of git://git.kernel.org/pub/scm/linux/k…
torvalds Nov 27, 2024
750909d
Merge tag 'i3c/for-6.13' of git://git.kernel.org/pub/scm/linux/kernel…
torvalds Nov 27, 2024
727968f
Merge tag 'hwmon-for-v6.13-rc1-take2' of git://git.kernel.org/pub/scm…
torvalds Nov 27, 2024
08906ab
Merge tag 'rproc-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/…
torvalds Nov 27, 2024
aaf20f8
Merge tag 'rpmsg-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/…
torvalds Nov 27, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 11 additions & 0 deletions Documentation/ABI/testing/sysfs-bus-pci
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,17 @@ Description:
will be present in sysfs. Writing 1 to this file
will perform reset.

What: /sys/bus/pci/devices/.../reset_subordinate
Date: October 2024
Contact: linux-pci@vger.kernel.org
Description:
This is visible only for bridge devices. If you want to reset
all devices attached through the subordinate bus of a specific
bridge device, writing 1 to this will try to do it. This will
affect all devices attached to the system through this bridge
similiar to writing 1 to their individual "reset" file, so use
with caution.

What: /sys/bus/pci/devices/.../vpd
Date: February 2008
Contact: Ben Hutchings <bwh@kernel.org>
Expand Down
29 changes: 29 additions & 0 deletions Documentation/PCI/endpoint/pci-endpoint.rst
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,35 @@ by the PCI endpoint function driver.
The PCI endpoint function driver should use pci_epc_mem_free_addr() to
free the memory space allocated using pci_epc_mem_alloc_addr().

* pci_epc_map_addr()

A PCI endpoint function driver should use pci_epc_map_addr() to map to a RC
PCI address the CPU address of local memory obtained with
pci_epc_mem_alloc_addr().

* pci_epc_unmap_addr()

A PCI endpoint function driver should use pci_epc_unmap_addr() to unmap the
CPU address of local memory mapped to a RC address with pci_epc_map_addr().

* pci_epc_mem_map()

A PCI endpoint controller may impose constraints on the RC PCI addresses that
can be mapped. The function pci_epc_mem_map() allows endpoint function
drivers to allocate and map controller memory while handling such
constraints. This function will determine the size of the memory that must be
allocated with pci_epc_mem_alloc_addr() for successfully mapping a RC PCI
address range. This function will also indicate the size of the PCI address
range that was actually mapped, which can be less than the requested size, as
well as the offset into the allocated memory to use for accessing the mapped
RC PCI address range.

* pci_epc_mem_unmap()

A PCI endpoint function driver can use pci_epc_mem_unmap() to unmap and free
controller memory that was allocated and mapped using pci_epc_mem_map().


Other EPC APIs
~~~~~~~~~~~~~~

Expand Down
1 change: 1 addition & 0 deletions Documentation/PCI/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,4 @@ PCI Bus Subsystem
pcieaer-howto
endpoint/index
boot-interrupts
tph
14 changes: 9 additions & 5 deletions Documentation/PCI/pciebus-howto.rst
Original file line number Diff line number Diff line change
Expand Up @@ -217,8 +217,12 @@ capability structure except the PCI Express capability structure,
that is shared between many drivers including the service drivers.
RMW Capability accessors (pcie_capability_clear_and_set_word(),
pcie_capability_set_word(), and pcie_capability_clear_word()) protect
a selected set of PCI Express Capability Registers (Link Control
Register and Root Control Register). Any change to those registers
should be performed using RMW accessors to avoid problems due to
concurrent updates. For the up-to-date list of protected registers,
see pcie_capability_clear_and_set_word().
a selected set of PCI Express Capability Registers:

* Link Control Register
* Root Control Register
* Link Control 2 Register

Any change to those registers should be performed using RMW accessors to
avoid problems due to concurrent updates. For the up-to-date list of
protected registers, see pcie_capability_clear_and_set_word().
132 changes: 132 additions & 0 deletions Documentation/PCI/tph.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
.. SPDX-License-Identifier: GPL-2.0


===========
TPH Support
===========

:Copyright: 2024 Advanced Micro Devices, Inc.
:Authors: - Eric van Tassell <eric.vantassell@amd.com>
- Wei Huang <wei.huang2@amd.com>


Overview
========

TPH (TLP Processing Hints) is a PCIe feature that allows endpoint devices
to provide optimization hints for requests that target memory space.
These hints, in a format called Steering Tags (STs), are embedded in the
requester's TLP headers, enabling the system hardware, such as the Root
Complex, to better manage platform resources for these requests.

For example, on platforms with TPH-based direct data cache injection
support, an endpoint device can include appropriate STs in its DMA
traffic to specify which cache the data should be written to. This allows
the CPU core to have a higher probability of getting data from cache,
potentially improving performance and reducing latency in data
processing.


How to Use TPH
==============

TPH is presented as an optional extended capability in PCIe. The Linux
kernel handles TPH discovery during boot, but it is up to the device
driver to request TPH enablement if it is to be utilized. Once enabled,
the driver uses the provided API to obtain the Steering Tag for the
target memory and to program the ST into the device's ST table.

Enable TPH support in Linux
---------------------------

To support TPH, the kernel must be built with the CONFIG_PCIE_TPH option
enabled.

Manage TPH
----------

To enable TPH for a device, use the following function::

int pcie_enable_tph(struct pci_dev *pdev, int mode);

This function enables TPH support for device with a specific ST mode.
Current supported modes include:

* PCI_TPH_ST_NS_MODE - NO ST Mode
* PCI_TPH_ST_IV_MODE - Interrupt Vector Mode
* PCI_TPH_ST_DS_MODE - Device Specific Mode

`pcie_enable_tph()` checks whether the requested mode is actually
supported by the device before enabling. The device driver can figure out
which TPH mode is supported and can be properly enabled based on the
return value of `pcie_enable_tph()`.

To disable TPH, use the following function::

void pcie_disable_tph(struct pci_dev *pdev);

Manage ST
---------

Steering Tags are platform specific. PCIe spec does not specify where STs
are from. Instead PCI Firmware Specification defines an ACPI _DSM method
(see the `Revised _DSM for Cache Locality TPH Features ECN
<https://members.pcisig.com/wg/PCI-SIG/document/15470>`_) for retrieving
STs for a target memory of various properties. This method is what is
supported in this implementation.

To retrieve a Steering Tag for a target memory associated with a specific
CPU, use the following function::

int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type type,
unsigned int cpu_uid, u16 *tag);

The `type` argument is used to specify the memory type, either volatile
or persistent, of the target memory. The `cpu_uid` argument specifies the
CPU where the memory is associated to.

After the ST value is retrieved, the device driver can use the following
function to write the ST into the device::

int pcie_tph_set_st_entry(struct pci_dev *pdev, unsigned int index,
u16 tag);

The `index` argument is the ST table entry index the ST tag will be
written into. `pcie_tph_set_st_entry()` will figure out the proper
location of ST table, either in the MSI-X table or in the TPH Extended
Capability space, and write the Steering Tag into the ST entry pointed by
the `index` argument.

It is completely up to the driver to decide how to use these TPH
functions. For example a network device driver can use the TPH APIs above
to update the Steering Tag when interrupt affinity of a RX/TX queue has
been changed. Here is a sample code for IRQ affinity notifier:

.. code-block:: c

static void irq_affinity_notified(struct irq_affinity_notify *notify,
const cpumask_t *mask)
{
struct drv_irq *irq;
unsigned int cpu_id;
u16 tag;

irq = container_of(notify, struct drv_irq, affinity_notify);
cpumask_copy(irq->cpu_mask, mask);

/* Pick a right CPU as the target - here is just an example */
cpu_id = cpumask_first(irq->cpu_mask);

if (pcie_tph_get_cpu_st(irq->pdev, TPH_MEM_TYPE_VM, cpu_id,
&tag))
return;

if (pcie_tph_set_st_entry(irq->pdev, irq->msix_nr, tag))
return;
}

Disable TPH system-wide
-----------------------

There is a kernel command line option available to control TPH feature:
* "notph": TPH will be disabled for all endpoint devices.
4 changes: 4 additions & 0 deletions Documentation/admin-guide/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4686,6 +4686,10 @@
nomio [S390] Do not use MIO instructions.
norid [S390] ignore the RID field and force use of
one PCI domain per PCI function
notph [PCIE] If the PCIE_TPH kernel config parameter
is enabled, this kernel boot option can be used
to disable PCIe TLP Processing Hints support
system-wide.

pcie_aspm= [PCIE] Forcibly enable or ignore PCIe Active State Power
Management.
Expand Down
5 changes: 3 additions & 2 deletions Documentation/devicetree/bindings/pci/mediatek-pcie-gen3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ allOf:
then:
properties:
clocks:
minItems: 4
minItems: 6

clock-names:
items:
Expand Down Expand Up @@ -178,7 +178,7 @@ allOf:
then:
properties:
clocks:
minItems: 4
minItems: 6

clock-names:
items:
Expand Down Expand Up @@ -207,6 +207,7 @@ allOf:
properties:
clocks:
minItems: 4
maxItems: 4

clock-names:
items:
Expand Down
11 changes: 9 additions & 2 deletions Documentation/devicetree/bindings/pci/microchip,pcie-host.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@ properties:
compatible:
const: microchip,pcie-host-1.0 # PolarFire

reg:
minItems: 3

reg-names:
minItems: 3

clocks:
description:
Fabric Interface Controllers, FICs, are the interface between the FPGA
Expand Down Expand Up @@ -62,8 +68,9 @@ examples:
pcie0: pcie@2030000000 {
compatible = "microchip,pcie-host-1.0";
reg = <0x0 0x70000000 0x0 0x08000000>,
<0x0 0x43000000 0x0 0x00010000>;
reg-names = "cfg", "apb";
<0x0 0x43008000 0x0 0x00002000>,
<0x0 0x4300a000 0x0 0x00002000>;
reg-names = "cfg", "bridge", "ctrl";
device_type = "pci";
#address-cells = <3>;
#size-cells = <2>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,18 @@ allOf:

properties:
reg:
maxItems: 2
maxItems: 3
minItems: 2

reg-names:
items:
- const: cfg
- const: apb
oneOf:
- items:
- const: cfg
- const: apb
- items:
- const: cfg
- const: bridge
- const: ctrl

interrupts:
minItems: 1
Expand Down
4 changes: 4 additions & 0 deletions Documentation/devicetree/bindings/pci/qcom,pcie-common.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,10 @@ properties:
vddpe-3v3-supply:
description: PCIe endpoint power supply

operating-points-v2: true
opp-table:
type: object

required:
- reg
- reg-names
Expand Down
4 changes: 0 additions & 4 deletions Documentation/devicetree/bindings/pci/qcom,pcie-sm8450.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,6 @@ properties:
- const: msi7
- const: global

operating-points-v2: true
opp-table:
type: object

resets:
maxItems: 1

Expand Down
4 changes: 3 additions & 1 deletion Documentation/devicetree/bindings/pci/qcom,pcie-sm8550.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ properties:
- const: qcom,pcie-sm8550
- items:
- enum:
- qcom,sar2130p-pcie
- qcom,pcie-sm8650
- const: qcom,pcie-sm8550

Expand All @@ -39,7 +40,7 @@ properties:

clocks:
minItems: 7
maxItems: 8
maxItems: 9

clock-names:
minItems: 7
Expand All @@ -52,6 +53,7 @@ properties:
- const: ddrss_sf_tbu # PCIe SF TBU clock
- const: noc_aggr # Aggre NoC PCIe AXI clock
- const: cnoc_sf_axi # Config NoC PCIe1 AXI clock
- const: qmip_pcie_ahb # QMIP PCIe AHB clock

interrupts:
minItems: 8
Expand Down
9 changes: 6 additions & 3 deletions Documentation/devicetree/bindings/pci/qcom,pcie-x1e80100.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,10 @@ properties:

interrupts:
minItems: 8
maxItems: 8
maxItems: 9

interrupt-names:
minItems: 8
items:
- const: msi0
- const: msi1
Expand All @@ -59,6 +60,7 @@ properties:
- const: msi5
- const: msi6
- const: msi7
- const: global

resets:
minItems: 1
Expand Down Expand Up @@ -130,9 +132,10 @@ examples:
<GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
<GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "msi0", "msi1", "msi2", "msi3",
"msi4", "msi5", "msi6", "msi7";
"msi4", "msi5", "msi6", "msi7", "global";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0x7>;
interrupt-map = <0 0 0 1 &intc 0 0 0 149 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
Expand Down
Loading