Skip to content

[linux-nvidia-6.17] NVIDIA: SAUCE: r8169: remove PCI IDs claimed by r8127 driver#345

Open
jamieNguyenNVIDIA wants to merge 500 commits intoNVIDIA:24.04_linux-nvidia-6.17-nextfrom
jamieNguyenNVIDIA:r8127-pci-id-fix
Open

[linux-nvidia-6.17] NVIDIA: SAUCE: r8169: remove PCI IDs claimed by r8127 driver#345
jamieNguyenNVIDIA wants to merge 500 commits intoNVIDIA:24.04_linux-nvidia-6.17-nextfrom
jamieNguyenNVIDIA:r8127-pci-id-fix

Conversation

@jamieNguyenNVIDIA
Copy link
Copy Markdown
Collaborator

Remove device IDs 0x8127 and 0x0e10 from the r8169 PCI device table so that the r8127 vendor driver binds to these devices instead.

Tested-by: Keith Berger kberger@nvidia.com

shankerd04 and others added 30 commits February 13, 2026 16:49
BugLink: https://bugs.launchpad.net/bugs/2122432

The registers MSMON_MBWU_L and MSMON_MBWU return the number of
requests rather than the number of bytes transferred.
Bandwidth resource monitoring is performed at the last level cache,
where each request arrive in 64Byte granularity. The current
implementation returns the number of transactions received at the
last level cache but does not provide the value in bytes. Scaling
by 64 gives an accurate byte count to match the MPAM specification
for the MSMON_MBWU and MSMON_MBWU_L registers. This patch fixes
the issue by reporting the actual number of bytes instead of the
number of transactions from __ris_msmon_read().

Signed-off-by: Shanker Donthineni <sdonthineni@nvidia.com>
Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 2b078dcf83ba6b559ce9d296197a970d26dd0d0e https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2122432

CMN-650 is afflicted with an erratum where the CSU NRDY bit never clears.
This tells us the monitor never finishes scanning the cache. The erratum
document says to wait the maximum time, then ignore the field.
Add a flag to indicate whether this is the final attempt to read the
counter, and when this quirk is applied, ignore the NRDY field.
This means accesses to this counter will always retry, even if the
counter was previously programmed to the same values.
The counter value is not expected to be stable, it drifts up and down
with each allocation and eviction. The CSU register provides the value
for a point in time.

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit b1ebe89c8e35dfd01d176b2d8913aa60d97f6195 https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
…ebugfs

BugLink: https://bugs.launchpad.net/bugs/2122432

debugfs has handy helpers to make a bool, integer or string available
through debugfs. Add helpers to do the same for cpumasks. These are
read only.
CC: Ben Horgan <ben.horgan@arm.com>

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 411842a48495d025d509446507b2f4faa1eecad5 https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
…driver discovered

BugLink: https://bugs.launchpad.net/bugs/2122432

Not all of MPAM is visible through the resctrl user-space interface.
To make it easy to debug why certain devices were not exposed through
resctrl, allow the properties of the devices to be read through debugfs.
This adds an mpam directory to debugfs, and exposes the devices as well
as the hierarchy that was built.

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 9299a330a0f7729144664ddb643982461e0b175f https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2122432

MPAM has an error interrupt that can be triggered by an MSC when
corrupt or out of range values are seen. The hardware only needs to
raise an error interrupt if the error was detected, it is also
permissible for the hardware to just use the corrupt or our of range
value. All the reasons to raise an error indicate a software bug.
When the error interrupt is triggered, the MPAM driver
attempts to reset all the CPUs back to PARTID-0 and reset PARTID-0
to be unrestricted. This is done to ensure important tasks aren't
accidentally given the performance of unimportant tasks.
This teardown path in the driver is hard to trigger. Add a debugfs
file to poke this manually. It is expected you have to reboot to
make MPAM work again after this.

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 7391f4e9a513081f3110895237a4ef7467bd7222 https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2122432

It's really popular to tie NRDY high, and then act surprised when the OS
never reads the counters, because they aren't ready. The spec obliges
hardware to clear this bit automatically before the firmware advertised
timeout.
To make it easier to find errant hardware, count the number of retries
and expose that number in debugfs.

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit d99dbcc84db16d93a9efb093213440c2ad12aba1 https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2122432

Add the required hook to pre-round a userspace memory bandwidth
allocation percentage value to a value acceptable to the driver backend.
For MPAM, no rounding is needed because the driver has all the
information necessary for rounding the value when
resctrl_arch_update_one() is called.
So, just "round" the value to itself here.

Signed-off-by: Dave Martin <Dave.Martin@arm.com>
Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 3011c8306e6a968dd6843c4d594006d4c560dee2 https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
…arch

BugLink: https://bugs.launchpad.net/bugs/2122432

The control value parser for the MB resource currently coerces the
memory bandwidth percentage value from userspace to be an exact
multiple of the bw_gran parameter.
On MPAM systems, this results in somewhat worse-than-worst-case
rounding, since bw_gran is in general only an approximation to the
actual hardware granularity, and the hardware bandwidth allocation
control value is not natively a percentage.
Allow the arch to provide its own conversion that is appropriate for
the hardware, and move the existing conversion to x86.  This will avoid
accumulated error from rounding the value twice on MPAM systems.
Clarify the documentation, but avoid overly exact promises.
Clamping to bw_min and bw_max still feels generic: leave it in the core
code, for now.
No functional change.

Signed-off-by: Dave Martin <Dave.Martin@arm.com>
Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit b290abeedaef657fb50e2b11c204ac177cb338cd https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2122432

The MSC MON_SEL register needs to be accessed from hardirq for the overflow
interrupt, and when taking an IPI to access these registers on platforms
where MSC are not accesible from every CPU. This makes an irqsave
spinlock the obvious lock to protect these registers. On systems with SCMI
mailboxes it must be able to sleep, meaning a mutex must be used. The
SCMI platforms can't support an overflow interrupt.
Clearly these two can't exist for one MSC at the same time.
Split the existing helper into a raw spinlock and a mutex, named inner
and outer. The outer lock must be taken in an a pre-emptible context
befroe the inner lock can be taken. On systems with SCMI mailboxes
where the MON_SEL accesses must sleep - the inner lock will fail tobe
taken if the caller is unable to sleep.
This will allow callers to fail withuot having to explicitly check
the interface type of each MSC.

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 6becd89512fd69089045ca7654fdf70261c973e6 https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
…space

BugLink: https://bugs.launchpad.net/bugs/2122432

On MPAM systems, monitoring groups are identified in the hardware by a
(PARTID, PMG) pair.  Two monitoring group identifiers are the same only
if the PARTIDs and PMGs both match.  This means that the number of
monitoring groups that can be created in each control group is the same
as the number of distinct PMG values supported by the hardware.  The
number of monitoring groups that exist in other control groups at the
same time makes no difference to this.
Currently, the MPAM driver takes the cautious approach and always
num_rmids = 1.
Relax this limit, by advertising the number of distinct PMG values
supported by the hardware.
Code/Data Prioritization (CDP) makes no difference, since although this
doubles the number of (PARTID, PMG) pairs available to a control group,
each monitoring group now consumes two pairs instead of one.
Suggested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com>

Signed-off-by: Dave Martin <Dave.Martin@arm.com>
Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit ef05d54918ccc6ddd6f6d9d64fbaa2478ba96b44 https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
…om the command line

BugLink: https://bugs.launchpad.net/bugs/2122432

MPAMs bandwidth monitors are only available via resctrl if there are
enough monitors for each combination of partid and pmg to have one.
As it is unlikely anyone built that many monitors, allow the
maximum partid the system will use to be set from the kernel
command-line.
With this, it should be possible for bandwidth monitors to be
enabled by reducing the number of partid in use.

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 1653c7f5b6078fb596d33a23771fc26ce5654f6e https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
…cation

BugLink: https://bugs.launchpad.net/bugs/2122432

The MPAM driver discovers which MSC control which system resources from
firmware tables. The MPAM resctrl picking code then attempts to export
platforms that are Xeon shaped via resctrl.
Occasionally, the presence of one or more MSC prevents the platform
being described as Xeon shaped, and exposed via resctrl. For example
with CPU-less NUMA nodes. The additional node doensn't have an L3,
so can't have domain-ids exposed for the 'MB' memory bandwidth controls.
In this example, some users would prefer to control bandwidth on just
the CPU nodes, instead of having nothing at all.
Allow users an amount of wiggle room by allowing MSC to be forced to
be treated as unknown. This effectively disables parts of the MPAM
functionality.
Unknown MSC are not disabled, They are still probed and contribute to
the system wide properties.
Suggested-by: Dave Martin <dave.martin@arm.com>

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit ffc605a48a7be279dc1ca264ec45b3df7ed118eb https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2122432

Some later things in the MPAM tree enable behaviour that resctrl doesn't
have upstream. To make it clear to people using the out-of-tree code that
they shouldn't be relying on this in user-space, add a mount option to
enable this stuff.

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit c006e8a9ef1e740ccf2752e688a7834b7b817b89 https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2122432

Traffic in the system can be tagged with a PARTID and PMG. Different
requestors can support a different number of bits for these fields.
Before MPAM can be used, the MPAM driver has to discover the minimum
number of bits supported by any requestor, which affects the range
of PARTID and PMG that can be used.
Detect whether the SMMU supports MPAM, if it does provide the MPAM
driver with the maximum PARTID and PMG values.
Tested-by: Amit Singh Tomar <amitsinght@marvell.com>

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 7c7e4d2f36a916c5bba40329cfc762e9e6433aed https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
…tate

BugLink: https://bugs.launchpad.net/bugs/2122432

To allow an iommu_group to be moved between resctrl groups as if it
were a CPU thread, the mpam driver needs to be able to set the partid
and pmg for the iommu_group.
Use the properties in the STE, as these only apply to one stream.
The MPAM driver also needs to know the maximum partid and pmg
values that the SMMU can generate. This allows it to determine
the system-wide common supported range of values. Add a helper
to return this id register.
Tested-by: Amit Singh Tomar <amitsinght@marvell.com>

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 46a241f45ca9b71abf900f31a0c89fcbf24c44c4 https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2122432

To allow an iommu_group to be moved between resctrl groups as if it
were a CPU thread, the mpam driver needs to be able to set the partid
and pmg for the iommu_group.
Add helpers that call the iommu driver's get/set methods for these
parameters.

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 5ee2d478b62586acf816699e3cc479f49b682a58 https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
…object

BugLink: https://bugs.launchpad.net/bugs/2122432

ARM SMMU with MPAM support are able to mark streams of traffic with
the QoS labels MPAM uses. The user-space interface for MPAM is the
resctrl filesystem, which allows threads to be moved between groups,
its natural to do the same for iommu_groups.
The resctrl interface lists threads, so will also need to list
iommu_groups, it will be necessary to walk the list of iommu_groups.
To ensure this matches what user-space sees via sysfs, it is best
to walk the kobjects.
When making a change, resctrl will only have the id of a group.
To avoid walking the list of kobjects in this case, add
iommu_group_get_by_id().

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 43349f9d05cdd700ffe08a4d5ee2dbcaa9a86f84 https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2122432

To walk the list of iommu groups visible in sysfs, resctrl needs access
to iommu_group_kset. Expose it.

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit d133049deda711d40675b0fd3e93677d81046b01 https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
… walked

BugLink: https://bugs.launchpad.net/bugs/2122432

To expose iommu_groups via the resctrl filesystem, the resctrl driver
needs to be able to walk the list of iommu_groups. These are exposed
via sysfs as a kset.
Add kset_get_next_obj() to allow resctrl to walk the kobjects in the
kset.

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit ac5ef3495532d2cc9994a2fa8750b7b1b591cff1 https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
…rtid and pmg

BugLink: https://bugs.launchpad.net/bugs/2122432

SMMU that support MPAM can be configured to use a particular partid
and pmg for a stream. The assignment of an iommu_group and its
corresponding streams should be done via resctrl.
Add helpers similar to setting a closid/rmid on a task. We need
the same shifting if the CPUs are using CDP. The SMMU only takes
one partid, conceptually its always making data accesses.

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 2393c3cf73cf642b67533ade39094fb9dd9d053c https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
…resctrl groups

BugLink: https://bugs.launchpad.net/bugs/2122432

Arm's MPAM has support for assigning devices behind an IOMMU to a
control or monitor group. This can be used for device-passthrough
for a VM, or user-space drivers using VFIO to ensure the device
is either in the same control group as the CPU threads.
Alternatively, the iommu_group may be assigned to a different
control group with preferential schema values.
Extend the resctrl tasks file to include iommu_groups. These
appear as 'iommu_group:0', where 0 is the group number that
can be found from /sys/kernel/iommu_groups/. iommu_groups
can be moved between resctrl groups by writing this string
in the same way as tasks are moved.
No state is preserved by resctrl, an iommu_group that disappears
will no longer be listed as being part of a resctrl group. A new
iommu_group will appear in the default group.
Add helpers to list and move iommu_groups. Architecture specific
helpers are used to apply the closid/rmid to the iommu_group due
to the way MPAM emulates CDP.
Tested-by: Amit Singh Tomar <amitsinght@marvell.com>

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 98b622c413ee64b8e05f93f0ff5f8cf85776afba https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2122432

The Arm MPAM Firmware-backed (Fb) Profile describes an SCMI based
protocol to access "Memory System Components" (MSCs) in an "Memory System
Resource Partitioning And Monitoring" (MPAM) enabled system.
Although this SCMI protocol follows the usual protocol properties, it
will not be described in the SCMI specifications. Also since ACPI based
systems will need to use this MPAM-fb profile, we do not follow the
usual way of describing each protocol function as a function in the SCMI
framework system.
Instead there is one generic transport function, that takes a
preformatted buffer and transfers this to the MSC agent.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 0f353a5efef50bf98ca01fc9900edb1c68576439 https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2122432

The Arm MPAM Firmware-backed (Fb) Profile document[1] describes an
alternative way of accessing the "Memory System Components" (MSC) in an
MPAM enabled system.
Normally the MSCs are MMIO mapped, but in some implementations this
might not be possible (MSC located outside of the local socket, MSC
mapped secure-only) or desirable (direct MMIO access too slow or needs
to be mediated through a control processor). MPAM-fb standardises a
protocol to abstract MSC accesses, building on the SCMI protocol.
Add functions that do an MSC read or write access by redirecting the
request through a firmware interface. This can either be through any
supported SCMI transport, described via devicetree nodes, or via an ACPI
PCC shared memory and mailbox combination.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 2813c2c356c721ffe6b36529d336f8ea561f2753 https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2122432

Carl reports that some platforms use the same PCC channel for multiple
MSCs, which leads to the driver not probing.
Add a list that is searched each time a new channel is allocated.
CC: Carl Worth <carl@os.amperecomputing.com>

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 12faf26e0cf2547819ff5bbb47779c634a7de1ab https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
…d cleanup

BugLink: https://bugs.launchpad.net/bugs/2122432

Squash this into the previous patch once it has been tested...
... does anyone have a PCC platform that can take this for a spin?

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 4edb3917c0bacddf62fcd54ab0b5cdba6c2cedf3 https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
…isable monitor overflow

BugLink: https://bugs.launchpad.net/bugs/2122432

Resctrl has an overflow handler that runs on each domain every second
to ensure that any overflow of the hardware counter is accounted for.
MPAM can have counters as large as 63 bits, in which case there is no
need to check for overflow.
To allow other architectures to disable this, add a helper that reports
whether counters can overflow.

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 935ddfc61145dc5d12df9487676a60341376c0f0 https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
…n overflow

BugLink: https://bugs.launchpad.net/bugs/2122432

Resctrl has an overflow handler that runs on each domain every second
to ensure that any overflow of the hardware counter is accounted for.
MPAM can have counters as large as 63 bits, in which case there is no
need to check for overflow.
To allow the overflow handler to be disabled, determine if an overflow
can happen. If a class is not implemented, or has the 63bit counter,
it can't overflow.

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 5cbe15bd6c1d393cf1ffe2b259a3be54a5345e1e https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2122432

Resctrl has an overflow handler that runs on each domain every second
to ensure that any overflow of the hardware counter is accounted for.
MPAM can have counters as large as 63 bits, in which case there is no
need to check for overflow.
Call the new arch helpers to determine this.

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 7120f602ee83c2fb75517b137efd41b83777ba76 https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
…/cache_id

BugLink: https://bugs.launchpad.net/bugs/2122432

This patch uniform data type of component_id/domid/id/cache_id to
u32 to avoid type confusion. According to ACPI for mpam, cache id
is used as locator for cache MSC. Reference to RD_PPTT_CACHE_ID
definition from edk2-platforms, u32 is enough for cache_id.
	(                                                              \
	  (((PackageId) & 0xF) << 20) | (((ClusterId) & 0xFF) << 12) | \
	  (((CoreId) & 0xFF) << 4) | ((CacheType) & 0xF)               \
	)
refs:
1. ACPI for mpam: https://developer.arm.com/documentation/den0065/latest/
2. RD_PPTT_CACHE_ID from edk2-platforms: https://github.com/tianocore/edk2-platforms/blob/master/Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h#L202

Signed-off-by: Rex Nie <rex.nie@jaguarmicro.com>
Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit fb0bcda86e18dded432e3dbe684ea494f9ea71ab https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2122432

mpam_reprogram_ris_partid() always resets the CMAX/CMIN controls to their
'unrestricted' value.
This prevents the controls from being configured.
Add fields in struct mpam_config, and program these values when they
are set in the features bitmask.

Signed-off-by: James Morse <james.morse@arm.com>
(cherry picked from commit 72fd49e3e0392832f9840f83769c38e4ab61e23f https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git)
Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
jacobmartin0 and others added 19 commits February 18, 2026 12:19
BugLink: https://bugs.launchpad.net/bugs/2141777
Properties: no-test-build
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
…ernel-versions (main/d2026.02.09)

BugLink: https://bugs.launchpad.net/bugs/1786013
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2093957

The patch "UBUNTU: [Packaging] Enable coresight in Perf if arm64"
enables perf to be built with CORESIGHT=1 on arm64. This requires
libopencsd.

Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2141780

When the r8127 module is unloaded, __netif_napi_del_locked() can trigger
a WARN because NAPI is removed while still enabled. unregister_netdev()
calls ndo_stop, which disables NAPI; deleting NAPI before that runs
violates the netdev/NAPI teardown order.

Move rtl8127_del_napi() to after unregister_netdev() so NAPI is disabled
in ndo_stop before it is removed.

Aligns with the upstream r8169 fix in commit 12b1bc7
("r8169: improve rtl_remove_one").

Signed-off-by: Nirmoy Das <nirmoyd@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Signed-off-by: Brad Figg <bfigg@nvidia.com>
BugLink: https://bugs.launchpad.net/bugs/2142160

When initializing EGM (Extended GPU Memory) regions, the current
implementation performs a single memset operation over the entire
memory region. For very large regions, this can result in long-running
uninterruptible operations that may cause system responsiveness issues
or trigger watchdog timeouts.

Split the memset operation into 1GB chunks.

Signed-off-by: Ankit Agrawal <ankita@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Signed-off-by: Brad Figg <bfigg@nvidia.com>
…by country code of 11d changed"

BugLink: https://bugs.launchpad.net/bugs/2142694

This reverts commit 7dfd80e.

The changes are now merged in mainline kernel so reverting
these sauce changes. The mainline changes will be cherry
picked in subsequent commits.

Signed-off-by: Abhishek Sahu <abhsahu@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Signed-off-by: Brad Figg <bfigg@nvidia.com>
…port"

BugLink: https://bugs.launchpad.net/bugs/2142694

This reverts commit fa8adb8.

The changes are now merged in mainline kernel so reverting
these sauce changes. The mainline changes will be cherry
picked in subsequent commits.

Signed-off-by: Abhishek Sahu <abhsahu@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Signed-off-by: Brad Figg <bfigg@nvidia.com>
BugLink: https://bugs.launchpad.net/bugs/2142694

Move regd logic to regd.c and regd.h files

Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Link: https://patch.msgid.link/20251031090352.1400079-2-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 87c3941)
Signed-off-by: Abhishek Sahu <abhsahu@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Signed-off-by: Brad Figg <bfigg@nvidia.com>
BugLink: https://bugs.launchpad.net/bugs/2142694

Move the disable_clc module parameter to regd.c and introduce
mt7925_regd_clc_supported() to centralize CLC support checks.

Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Link: https://patch.msgid.link/20251031090352.1400079-3-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit e323b84)
Signed-off-by: Abhishek Sahu <abhsahu@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Signed-off-by: Brad Figg <bfigg@nvidia.com>
BugLink: https://bugs.launchpad.net/bugs/2142694

Rename mt7925_regd_update() to mt7925_mcu_regd_update() to centralize
regd updates with error handling.

Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Link: https://patch.msgid.link/20251031090352.1400079-4-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 3305100)
Signed-off-by: Abhishek Sahu <abhsahu@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Signed-off-by: Brad Figg <bfigg@nvidia.com>
BugLink: https://bugs.launchpad.net/bugs/2142694

Move EHT flag handling into mt7925_regd_channel_update() to ensure
correct channel capability reporting.

Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Link: https://patch.msgid.link/20251031090352.1400079-5-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 6338709)
Signed-off-by: Abhishek Sahu <abhsahu@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Signed-off-by: Brad Figg <bfigg@nvidia.com>
BugLink: https://bugs.launchpad.net/bugs/2142694

Refactor the initialization and reset flow for tx power setting to
eliminate redundant configurations

Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Link: https://patch.msgid.link/20250908071245.1833006-1-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 9557b6f)
Signed-off-by: Abhishek Sahu <abhsahu@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Signed-off-by: Brad Figg <bfigg@nvidia.com>
BugLink: https://bugs.launchpad.net/bugs/2142694

Implement 802.11d-based automatic regulatory domain switching to
dynamically determine the regulatory domain at runtime.

Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Link: https://patch.msgid.link/20251031090352.1400079-6-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 3bc62aa)
Signed-off-by: Abhishek Sahu <abhsahu@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Signed-off-by: Brad Figg <bfigg@nvidia.com>
BugLink: https://bugs.launchpad.net/bugs/2142694

Add regd_user flag to block automatic regulatory domain updates
if set by user.

Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Link: https://patch.msgid.link/20251031090352.1400079-7-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 992c304)
Signed-off-by: Abhishek Sahu <abhsahu@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Signed-off-by: Brad Figg <bfigg@nvidia.com>
Ignore: yes
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2142887
Properties: no-test-build
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
Remove device IDs 0x8127 and 0x0e10 from the r8169 PCI device table
so that the r8127 vendor driver binds to these devices instead.

Tested-by: Keith Berger <kberger@nvidia.com>
Signed-off-by: Jamie Nguyen <jamien@nvidia.com>
Copy link
Copy Markdown
Collaborator

@nvmochs nvmochs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Acked-by: Matthew R. Ochs <mochs@nvidia.com>

Copy link
Copy Markdown
Collaborator

@clsotog clsotog left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Acked-by: Carol L Soto <csoto@nvidia.com>

@jamieNguyenNVIDIA
Copy link
Copy Markdown
Collaborator Author

Copy link
Copy Markdown
Collaborator

@nirmoy nirmoy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Acked-by: Nirmoy Das <nirmoyd@nvidia.com>

@jamieNguyenNVIDIA jamieNguyenNVIDIA changed the title NVIDIA: SAUCE: r8169: remove PCI IDs claimed by r8127 driver [linux-nvidia-6.17] NVIDIA: SAUCE: r8169: remove PCI IDs claimed by r8127 driver Mar 13, 2026
@nvmochs
Copy link
Copy Markdown
Collaborator

nvmochs commented Mar 13, 2026

PR sent to Canonical.

@nvidia-bfigg nvidia-bfigg force-pushed the 24.04_linux-nvidia-6.17-next branch from 9364d8b to 8dab82a Compare April 2, 2026 12:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.