Skip to content

Conversation

@ruppala-nv
Copy link

These patches adds below for r8127 NIC

1.Add PTP hw timestamping support
2.Enable SyncE support for PTP
3.Update ts_info prototype for kernels >= 6.11
4.Fix ptp4l failure after interface restart

Fixing: 5673451

Patches are from Realtek, and they have not committed to upstream them

Tested by verifying PTP in below configurations
a. default E2E profile
b. AVNU over L2 gPTP profile

Test steps:
Mentioned in internal bug 5673451

Abdur Rahman and others added 30 commits November 14, 2025 21:05
Ignore: yes
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
…ernel-versions (adhoc/d2025.09.22)

BugLink: https://bugs.launchpad.net/bugs/1786013
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
…idia

Ignore: yes
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
(cherry picked from commit 1a32c7f)

(cherry picked from commit 1a32c7f noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
Add support for exposing rprovides data for standalone modules
too. Switch to exposing provides as a shared debian/substvar file
and use that in the templates.

Ignore: yes
Signed-off-by: Brad Figg <bfigg@nvidia.com>
Signed-off-by: Ian May <ian.may@canonical.com>
(cherry picked from commit afacdda noble:linux-nvidia/main-next)
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
(cherry picked from commit 52ba185)

(cherry picked from commit 52ba185 noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
When nvidia-fs-dkms is available as a dkms package, we want to
default to using the signed modules if possible.  Adding
a version number for the nvidia-fs modules package enables the inbox
modules to be selected over an equivalent dkms version.

Ignore: yes
Signed-off-by: Ian May <ian.may@canonical.com>
(cherry picked from commit 607379d noble:linux-nvidia/main-next)
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
(cherry picked from commit f6927df)

(cherry picked from commit f6927df noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
…nvidia kernels

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

Signed-off-by: Brad Figg <bfigg@nvidia.com>
Acked-by: Brad Figg <bfigg@nvidia.com>
Signed-off-by: Ian May <ian.may@canonical.com>
[jacobmartin: Add note to changed configs]
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>

(cherry picked from commit 9b2615a noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
…ations

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

Signed-off-by: Brad Figg <bfigg@nvidia.com>
Acked-by: Brad Figg <bfigg@nvidia.com>
Signed-off-by: Ian May <ian.may@canonical.com>
[jacobmartin: Add annotations note for changed configs]
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>

(cherry picked from commit 3d31ea0 noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
Ignore: yes
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
(cherry picked from commit 448ddcb)

(cherry picked from commit 448ddcb noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2059316

Signed-off-by: dann frazier <dann.frazier@canonical.com>
Acked-by: Brad Figg <bfigg@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>
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>

(cherry picked from commit 058e71a noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2061930
BugLink: https://bugs.launchpad.net/bugs/2067106

There are systems in production that don't have
firmware that supports coresight_etm4x.  Instead of
removing completely, blacklist coresight_etm4x so
systems with the correct firmware can use the module.

Signed-off-by: Ian May <ian.may@canonical.com>
Signed-off-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Brad Figg <bfigg@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>
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
(backported from commit 217d1ae
noble:linux-nvidia-6.14)
[maskedarray: adjusted context]
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2067111

Nvidia provide a way to flash the UEFI via capsule loader in arm64.
CAPSULE_LOADER is also built-in in L4T kernel so for the easy use,
need to make CAPSULE_LOADER as built-in in arm64.

Nvidia-BugLink: https://nvbugspro.nvidia.com/bug/4601764

Signed-off-by: Brad Figg <bfigg@nvidia.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
(cherry picked from commit efbc80a noble:linux-nvidia-6.11)
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
(cherry picked from commit 58d6077)

(cherry picked from commit 58d6077 noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2084598

Set the following configs on x86 and arm64:

CONFIG_MANA_INFINIBAND=m
CONFIG_MICROSOFT_MANA=m

Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
Acked-by: Brad Figg <bfigg@nvidia.com>
Acked-by: John Cabaj <john.cabaj@canonical.com>
Acked-by: Guoqing Jiang <guoqing.jiang@canonical.com>
(cherry picked from commit 59264e6 noble:linux-nvidia-6.11)
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
(cherry picked from commit ba2531f)

(cherry picked from commit ba2531f noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2095028

Signed-off-by: Ankit Agrawal <ankita@nvidia.com>
(cherry picked from commit d4223d6db2896ec510bfc57cf018010d07ff3659 nvidia/kstable/dev/nic/iommufd_vsmmu-12122024)
Signed-off-by: Koba Ko <kobak@nvidia.com>
Acked-by: Matt Ochs <mochs@nvidia.com>
Acked-by: Brad Figg <bfigg@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>
(cherry picked from commit 1eb0541 noble:linux-nvidia-6.11)
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>

(cherry picked from commit 0380bee noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2095028

This is used for GPU memory mapping. The solution is a WAR while waiting
for the upstream solution that would use dmabuf to map the entire range
in a single sequence.

Related topics:
https://lore.kernel.org/kvm/20240624065552.1572580-1-vivek.kasireddy@intel.com/
https://lore.kernel.org/kvm/cover.1719909395.git.leon@kernel.org/

Signed-off-by: Ankit Agrawal <ankita@nvidia.com>
(cherry picked from commit d3d7b64f1a3274e5df04dee1a8062f54a3fa1116 nvidia/kstable/dev/nic/iommufd_vsmmu-12122024)
Signed-off-by: Koba Ko <kobak@nvidia.com>
Acked-by: Matt Ochs <mochs@nvidia.com>
Acked-by: Brad Figg <bfigg@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>
(cherry picked from commit 15e066a noble:linux-nvidia-6.11)
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>

(cherry picked from commit 8fcaed8 noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
… virtualization

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

This adds the following config options to annotations:

            CONFIG_ARM_SMMU_V3_IOMMUFD=y
            CONFIG_IOMMUFD_DRIVER_CORE=y
            CONFIG_IOMMUFD_VFIO_CONTAINER=y
            CONFIG_NVGRACE_GPU_VFIO_PCI=m
            CONFIG_VFIO_CONTAINER=n
            CONFIG_VFIO_IOMMU_TYPE1=-
            CONFIG_TEGRA241_CMDQV=n

For CMA size requirements, the 64K kernel configuration needs 640MB
in the worst-case scenario, while the 4K kernel configuration requires 40MB.
Due to the current CMA alignment requirement of 512MB on 64k kernel and
128MB on 4k kernel, use each as default
            For 64k kernel, CONFIG_CMA_SIZE_MBYTES=1024
            For 4k kernel, CONFIG_CMA_SIZE_MBYTES=128

These config options has been defined in debian.master
            CONFIG_IOMMUFD=m
            CONFIG_IOMMU_IOPF=y

Signed-off-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Kai-Heng Feng <kaihengf@nvidia.com>
Acked-by: Koba Ko <kobak@nvidia.com>
Signed-off-by: Matthew R. Ochs <mochs@nvidia.com>
(backported from commit 35a55f3 24.04_linux-nvidia-adv-6.8-next)
Signed-off-by: Koba Ko <kobak@nvidia.com>
Acked-by: Matt Ochs <mochs@nvidia.com>
Acked-by: Brad Figg <bfigg@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>
(backported from commit 1314cf0 noble:linux-nvidia-6.11)
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>

(cherry picked from commit d09b7e2 noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2100032

Signed-off-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Brad Figg <bfigg@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Acked-by: Abdur Rahman <abdur.rahman@canonical.com>
Signed-off-by: Brad Figg <bfigg@nvidia.com>
(backported from commit 520d535 noble:linux-nvidia-6.11)
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>

(cherry picked from commit 88d6a61 noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2096888

Add ACPI support to 8250_mtk driver. This makes it possible to
use UART on ARM-based desktops with EDK2 UEFI firmware.

Acked-by: Brad Figg <bfigg@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>
(cherry picked from commit 4647186 noble:linux-nvidia-6.11)
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>

(cherry picked from commit d73760e noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2096882

Acked-by: Brad Figg <bfigg@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>
(backported from commit a99eb0f noble:linux-nvidia-6.11)
[jacobmartin: Drop addition of 13d3:3604 already added by upstream
commit f9685f3 ("Bluetooth: btusb: Add MediaTek MT7925-B22M support
ID 0x13d3:0x3604"). Drop driver_info flag "BTUSB_VALID_LE_STATES" as it
was inverted by upstream commit 0fec656 ("Bluetooth: btusb: Invert
LE State flag to set invalid rather then valid")]
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
(backported from commit a1d77cd
noble:linux-nvidia-6.14)
[maskedarray: adjusted context]
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2097644

Change-Id: If350ab71297d6d4f44f90b45cae2d11095f513f1
Acked-by: Brad Figg <bfigg@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>
(cherry picked from commit 24141ec noble:linux-nvidia-6.11)
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>

(cherry picked from commit 16f90f4 noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
…eam low power

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

Add a quirk to avoid U1 and U2 low power state operations
during bulk stream transfers.

Change-Id: Iaff484625eca6708713d0c2acaeddfc1103ac7d2
Signed-off-by: Us Chien <us.chien@mediatek.com>
Signed-off-by: Yenchia Chen <yenchia.chen@mediatek.com>
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Acked-by: Brad Figg <bfigg@nvidia.com>
Acked-by: Matt Ochs <mochs@nvidia.com>
Acked-by: Jamie Nguyen <jamien@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>
(cherry picked from commit 07399e8 noble:linux-nvidia-6.11)
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
(backported from commit e521e80)
[maskedarray: changed the XHCI_NVIDIA_MT8901_HOST quirk bit value
to 51]
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2107509

Add quirk function to skip pcie secondary bus reset. PCIe link in
occasionally(1/300 fail rate) drop to lower link width (ex. 4 lane
drops to 2 lane or less) when secondary bus reset is applied. This
happens because CDR lock is lost randomly due to mismatch between
RC & EP speed (ex. RC in Gen1 and EP in Gen5).

Signed-off-by: Jerry.Guo <jerry.guo@mediatek.com>
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Acked-by: Brad Figg <bfigg@nvidia.com>
Acked-by: Matt 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>
(cherry picked from commit 37019a1 noble:linux-nvidia-6.11)
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>

(cherry picked from commit d87e223 noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/1786013
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>

(cherry picked from commit eedba63 noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2109635

Take out the sbsa_gwdt from the blacklist for nvidia kernel.

Signed-off-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Matt Ochs <mochs@nvidia.com>
Acked-by: Brad Figg <bfigg@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>
(cherry picked from commit 1d0290f87960efd7e98fc3f7456ab08c2b5d3302 noble:linux-nvidia-6.11)
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
(cherry picked from commit 0759048)

(cherry picked from commit 0759048 noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
Rust is only supported on primary kernels.
Ignore: yes

Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2109730

Realtek R8127 driver can be downloaded from
https://www.realtek.com/Download/List?cate_id=584

Where it is maintained as out of tree module.

This patch adds the extracted content of r8127-11.014.00.tar.bz2 in
the folder drivers/net/ethernet/realtek/r8127.

4bd62fc87de32760fb1f3b9cd3ec14e933035623  r8127-11.014.00.tar.bz2

All the clean-up, makefile and Kconfig related changes will be
done in the subsequent commits. The source code contains a GPL2
compatible license. All the license information and Realtek
copyright notice will be maintained in each file and newly added files.

Signed-off-by: Abhishek Sahu <abhsahu@nvidia.com>
Acked-by: Matt Ochs <mochs@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Ian May <ianm@nvidia.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Signed-off-by: Ian May <ianm@nvidia.com>
(cherry picked from commit 7faf7ac noble:linux-nvidia-6.11)
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>

(cherry picked from commit e45f1b7 noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2109730

These files are not needed to build r8127 as part of kernel
source code build, so removed these non required files.

Signed-off-by: Abhishek Sahu <abhsahu@nvidia.com>
Acked-by: Matt Ochs <mochs@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Ian May <ianm@nvidia.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Signed-off-by: Ian May <ianm@nvidia.com>
(cherry picked from commit 063d338 noble:linux-nvidia-6.11)
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>

(cherry picked from commit 712fc60 noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2109730

This commit moved all files from src folder to parent folder itself.

Signed-off-by: Abhishek Sahu <abhsahu@nvidia.com>
Acked-by: Matt Ochs <mochs@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Ian May <ianm@nvidia.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Signed-off-by: Ian May <ianm@nvidia.com>
(cherry picked from commit a5fe39b noble:linux-nvidia-6.11)
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>

(cherry picked from commit 1802cd3 noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2109730

In the original code, r8127 driver was build as out of tree module.
This commit adds Kconfig and updates Makefile for building it
with kernel build.

r8127 driver internally uses different config flags and these are set
through EXTRA_CFLAGS.  These config flags are now set in the Makefile
with ccflags-y. All the flags, that were getting enabled by default in
the original code, have been enabled in ccflags-y. This commit is not
enabling any extra flags.

Some of the files compilation are dependent upon a particular flag.
Now, only default flags are set, so these files will become unused,
This commit has removed these files.

Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Signed-off-by: Abhishek Sahu <abhsahu@nvidia.com>
Acked-by: Matt Ochs <mochs@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Ian May <ianm@nvidia.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Signed-off-by: Ian May <ianm@nvidia.com>
(backported from commit 04ea6d0 noble:linux-nvidia-6.11)
[jacobmartin: adjust context around RTASE definitions introduced in
K6.14]
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>

(cherry picked from commit 6217fea noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
…127 module

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

Signed-off-by: Abhishek Sahu <abhsahu@nvidia.com>
Acked-by: Matt Ochs <mochs@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Ian May <ianm@nvidia.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Signed-off-by: Ian May <ianm@nvidia.com>
(cherry picked from commit 59db394 noble:linux-nvidia-6.11)
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>
(cherry picked from commit aaa5490)

(cherry picked from commit aaa5490 noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
…ions

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

Drop "CONFIG_TEGRA241_CMDQV=n" -- we had turned it off in 6.11 as we thought
not all support was in place.

Signed-off-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Matt Ochs <mochs@nvidia.com>
Signed-off-by: Brad Figg <bfigg@nvidia.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Signed-off-by: Jacob Martin <jacob.martin@canonical.com>

(cherry picked from commit ea6f443 noble:linux-nvidia-6.14)
Signed-off-by: Abdur Rahman <abdur.rahman@canonical.com>
Sumit Gupta and others added 14 commits November 20, 2025 14:33
BugLink: https://bugs.launchpad.net/bugs/2131705

CPPC allows platforms to specify minimum and maximum performance
limits that constrain the operating range for CPU performance scaling
when Autonomous Selection is enabled. These limits can be dynamically
adjusted to implement power management policies or workload-specific
optimizations.

Add cppc_get_min_perf() and cppc_set_min_perf() functions to read and
write the MIN_PERF register, allowing dynamic adjustment of the minimum
performance floor.

Add cppc_get_max_perf() and cppc_set_max_perf() functions to read and
write the MAX_PERF register, enabling dynamic ceiling control for
maximum performance.

Expose these capabilities through cpufreq sysfs attributes that accept
frequency values in kHz (which are converted to/from performance values
internally):
- /sys/.../cpufreq/policy*/min_perf: Read/write min perf as freq (kHz)
- /sys/.../cpufreq/policy*/max_perf: Read/write max perf as freq (kHz)

The frequency-based interface provides a user-friendly abstraction which
is similar to other cpufreq sysfs interfaces, while the driver handles
conversion to hardware performance values.

Also update EPP constants for better clarity:
- Rename CPPC_ENERGY_PERF_MAX to CPPC_EPP_ENERGY_EFFICIENCY_PREF
- Add CPPC_EPP_PERFORMANCE_PREF for the performance-oriented setting

Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
(backported from https://lore.kernel.org/all/20251105113844.4086250-1-sumitg@nvidia.com/)
Signed-off-by: Nirmoy Das <nirmoyd@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Jamie Nguyen
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Acked-by: nvmochs
Acked-by: Acked-by: nvmochs
Acked-by: Acked-by: nvmochs
Acked-by: Acked-by: nvmochs
Acked-by: Abdur Rahman <abdur.rahman@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Signed-off--by: Brad Figg <bfigg@nvidia.com>
…ted register

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

Add sysfs interface to read/write the Performance Limited register.

The Performance Limited register indicates to the OS that an
unpredictable event (like thermal throttling) has limited processor
performance. This register is sticky and remains set until reset or
OS clears it by writing 0.

The interface is exposed as:
 /sys/devices/system/cpu/cpuX/cpufreq/perf_limited

Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
(backported from https://lore.kernel.org/all/20251105113844.4086250-1-sumitg@nvidia.com/)
Signed-off-by: Nirmoy Das <nirmoyd@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Jamie Nguyen
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Acked-by: nvmochs
Acked-by: Acked-by: nvmochs
Acked-by: Acked-by: nvmochs
Acked-by: Acked-by: nvmochs
Acked-by: Abdur Rahman <abdur.rahman@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Signed-off--by: Brad Figg <bfigg@nvidia.com>
…ited

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

Add sysfs interfaces for Minimum Performance, Maximum Performance
and Performance Limited Register in the cppc_cpufreq driver.

Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
(backported from https://lore.kernel.org/all/20251105113844.4086250-1-sumitg@nvidia.com/)
Signed-off-by: Nirmoy Das <nirmoyd@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Jamie Nguyen
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Acked-by: nvmochs
Acked-by: Acked-by: nvmochs
Acked-by: Acked-by: nvmochs
Acked-by: Acked-by: nvmochs
Acked-by: Abdur Rahman <abdur.rahman@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Signed-off--by: Brad Figg <bfigg@nvidia.com>
…o_select

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

When CPPC autonomous selection (auto_select) is enabled or disabled,
the policy min/max frequency limits should be updated appropriately to
reflect the new operating mode.

Currently, toggling auto_select only changes the hardware register but
doesn't update the cpufreq policy constraints, which can lead to
inconsistent behavior between the hardware state and the policy limits
visible to userspace and other kernel components.

When auto_select is enabled, preserve the current min/max performance
values to maintain user-configured limits. When disabled, the hardware
operates in a default mode where the OS directly controls performance,
so update the policy limits accordingly.

Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
(backported from https://lore.kernel.org/all/20251105113844.4086250-1-sumitg@nvidia.com/)
Signed-off-by: Nirmoy Das <nirmoyd@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Jamie Nguyen
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Acked-by: nvmochs
Acked-by: Acked-by: nvmochs
Acked-by: Acked-by: nvmochs
Acked-by: Acked-by: nvmochs
Acked-by: Abdur Rahman <abdur.rahman@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Signed-off--by: Brad Figg <bfigg@nvidia.com>
BugLink: https://bugs.launchpad.net/bugs/2131705

Add kernel boot parameter 'cppc_cpufreq.auto_sel_mode' to enable CPPC
autonomous performance selection at system startup. When autonomous mode
is enabled, the hardware automatically adjusts CPU performance based on
workload demands using Energy Performance Preference (EPP) hints.

This parameter allows to configure the autonomous mode on all CPUs
without requiring runtime sysfs manipulation if the 'auto_sel' register
is present.

When auto_sel_mode=1:
- All CPUs are configured for autonomous operation during module init
- EPP is set to performance preference (0x0) by default
- Min/max performance bounds use defaults
- CPU frequency scaling is handled by hardware instead of OS governor

For Documentation/:
Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
(backported from https://lore.kernel.org/all/20251105113844.4086250-1-sumitg@nvidia.com/)
Signed-off-by: Nirmoy Das <nirmoyd@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Jamie Nguyen
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Acked-by: nvmochs
Acked-by: Acked-by: nvmochs
Acked-by: Acked-by: nvmochs
Acked-by: Acked-by: nvmochs
Acked-by: Abdur Rahman <abdur.rahman@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Signed-off--by: Brad Figg <bfigg@nvidia.com>
… existing iommu quirk

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

Add two more device IDs for the existing Spark iommu quirk.

Link: https://bugs.launchpad.net/ubuntu/+source/linux-nvidia-6.14/+bug/2132033

Signed-off-by: Nirmoy Das <nirmoyd@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Abdur Rahman <abdur.rahman@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Signed-off--by: Brad Figg <bfigg@nvidia.com>
…ress_space

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

Check for the registration state of egm_region's pfn_address_space, preventing
double-unregisters that can occur when using an external management app such
as Libvirt to launch VMs with vEGM enabled. This addresses a null pointer
dereference in __rb_erase_color when using shutting down a Libvirt VM with
vEGM enabled.

When launching a qemu + Libvirt VM with vEGM, the EGM regions on the host are
opened and mmaped, populating the member at
egm_region.pfn_address_space.node.__rb_parent_color. During VM shutdown,
a close is issued and the region is unregistered. However, the extra
conditional this commit introduces is required because after open_count goes to
0 and the address space is unregistered, another open follows and the open_count
goes back to 1. But there's no mmap so the address space is never registered.
However, the unregister function gets called again on the following close,
calling interval_tree_remove() which causes the __rb_erase_color null pointer
dereference to occur when the pfn_address_space.node.__rb_parent_color member
is a stale pointer from the previous registration:

[217296.439595] Call trace:
[217296.442180] __rb_erase_color+0xc4/0x2a8 (P)
[217296.446632] interval_tree_remove+0x184/0x2e8
[217296.451171] unregister_pfn_address_space+0x4c/0xc0
[217296.456255] nvgrace_egm_release+0x98/0xd8 [nvgrace_egm]
[217296.461780] __fput+0xe4/0x328
[217296.464990] fput_close_sync+0x4c/0x138
[217296.468995] __arm64_sys_close+0x44/0xa0
[217296.473089] invoke_syscall.constprop.0+0x7c/0xf8
[217296.477991] do_el0_svc+0x4c/0x100
[217296.481553] el0_svc+0x48/0x200
[217296.484848] el0t_64_sync_handler+0xc0/0x108
[217296.489300] el0t_64_sync+0x1b8/0x1c0
[217296.493132] Code: f9400674 eb03029f 54fffbe1 f9400a74 (f9400280)

Signed-off-by: Nathan Chen <nathanc@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Abdur Rahman <abdur.rahman@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Signed-off--by: Brad Figg <bfigg@nvidia.com>
BugLink: https://bugs.launchpad.net/bugs/2131267

Implementer may need to reset a filter config when
stopping a counter, thus adding a callback for this.

Reviewed-by: Ilkka Koskinen <ilkka@os.amperecomputing.com>
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Besar Wicaksono <bwicaksono@nvidia.com>
Signed-off-by: Will Deacon <will@kernel.org>
(cherry picked from commit a2573bc linux-next)
Signed-off-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Abdur Rahman <abdur.rahman@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Signed-off--by: Brad Figg <bfigg@nvidia.com>
BugLink: https://bugs.launchpad.net/bugs/2131267

The PMIIDR value is composed by the values in PMPIDR registers.
We can use PMPIDR registers as alternative for device
identification for systems that do not implement PMIIDR.

Reviewed-by: Ilkka Koskinen <ilkka@os.amperecomputing.com>
Signed-off-by: Besar Wicaksono <bwicaksono@nvidia.com>
Signed-off-by: Will Deacon <will@kernel.org>
(cherry picked from commit 04330be linux-next)
Signed-off-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Abdur Rahman <abdur.rahman@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Signed-off--by: Brad Figg <bfigg@nvidia.com>
BugLink: https://bugs.launchpad.net/bugs/2131267

Distinguish NVIDIA devices by revision and variant bits
in PMIIDR register in addition to product id.

Reviewed-by: Ilkka Koskinen <ilkka@os.amperecomputing.com>
Signed-off-by: Besar Wicaksono <bwicaksono@nvidia.com>
Signed-off-by: Will Deacon <will@kernel.org>
(cherry picked from commit 82dfd72 linux-next)
Signed-off-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Abdur Rahman <abdur.rahman@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Signed-off--by: Brad Figg <bfigg@nvidia.com>
BugLink: https://bugs.launchpad.net/bugs/2131267

Support NVIDIA PMU that utilizes the optional event filter2 register.

Reviewed-by: Ilkka Koskinen <ilkka@os.amperecomputing.com>
Signed-off-by: Besar Wicaksono <bwicaksono@nvidia.com>
Signed-off-by: Will Deacon <will@kernel.org>
(cherry picked from commit decc368 linux-next)
Signed-off-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Abdur Rahman <abdur.rahman@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Signed-off--by: Brad Figg <bfigg@nvidia.com>
BugLink: https://bugs.launchpad.net/bugs/2131269

Introduce a generic macro TEGRA_GPIO_PORT to define SoC specific
ports macros. This simplifies the code and avoids unnecessary
duplication.

Suggested-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Kartik Rajput <kkartik@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
(backported from commit f75db6f linux-next)
[mochs: minor context cleanup due to Tegra256 support being absent]
Signed-off-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Abdur Rahman <abdur.rahman@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Signed-off--by: Brad Figg <bfigg@nvidia.com>
BugLink: https://bugs.launchpad.net/bugs/2131269

Extend the existing Tegra186 GPIO controller driver with support for
the GPIO controller found on Tegra410. Tegra410 supports two GPIO
controllers referred to as 'COMPUTE' and 'SYSTEM'.

Co-developed-by: Nathan Hartman <nhartman@nvidia.com>
Signed-off-by: Nathan Hartman <nhartman@nvidia.com>
Signed-off-by: Prathamesh Shete <pshete@nvidia.com>
Signed-off-by: Kartik Rajput <kkartik@nvidia.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
(backported from commit 9631a10 linux-next)
[mochs: minor context cleanup due to Tegra256 support being absent]
Signed-off-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Carol L Soto <csoto@nvidia.com>
Acked-by: Abdur Rahman <abdur.rahman@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Signed-off--by: Brad Figg <bfigg@nvidia.com>
BugLink: https://bugs.launchpad.net/bugs/2133755

ATL2 hardware was missing descriptor cache invalidation in hw_stop(),
causing SMMU translation faults during device shutdown and module removal:
[   70.355743] arm-smmu-v3 arm-smmu-v3.5.auto: event 0x10 received:
[   70.361893] arm-smmu-v3 arm-smmu-v3.5.auto:  0x0002060000000010
[   70.367948] arm-smmu-v3 arm-smmu-v3.5.auto:  0x0000020000000000
[   70.374002] arm-smmu-v3 arm-smmu-v3.5.auto:  0x00000000ff9bc000
[   70.380055] arm-smmu-v3 arm-smmu-v3.5.auto:  0x0000000000000000
[   70.386109] arm-smmu-v3 arm-smmu-v3.5.auto: event: F_TRANSLATION client: 0001:06:00.0 sid: 0x20600 ssid: 0x0 iova: 0xff9bc000 ipa: 0x0
[   70.398531] arm-smmu-v3 arm-smmu-v3.5.auto: unpriv data write s1 "Input address caused fault" stag: 0x0

Commit 7a1bb49 ("net: aquantia: fix potential IOMMU fault after
driver unbind") and commit ed4d81c ("net: aquantia: when cleaning
hw cache it should be toggled") fixed cache invalidation for ATL B0, but
ATL2 was left with only interrupt disabling. This allowed hardware to
write to cached descriptors after DMA memory was unmapped, triggering
SMMU faults. Once cache invalidation is applied to ATL2, the translation
fault can't be observed anymore.

Add shared aq_hw_invalidate_descriptor_cache() helper and use it in both
ATL B0 and ATL2 hw_stop() implementations for consistent behavior.

Fixes: e54dcf4 ("net: atlantic: basic A2 init/deinit hw_ops")
Tested-by: Carol Soto <csoto@nvidia.com>
Signed-off-by: Kai-Heng Feng <kaihengf@nvidia.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20251120041537.62184-1-kaihengf@nvidia.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
(cherry picked from commit 7526183)
Signed-off-by: Kai-Heng Feng <kaihengf@nvidia.com>
Acked-by: Nirmoy Das <nirmoyd@nvidia.com>
Acked-by: Matthew R. Ochs <mochs@nvidia.com>
Acked-by: Carol L Soto <csoto@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>
@ruppala-nv ruppala-nv changed the base branch from linux to 24.04_linux-nvidia-6.17-next December 11, 2025 18:10
@clsotog
Copy link
Collaborator

clsotog commented Dec 11, 2025

@ruppala-nv Can you add the NVIDIA: SAUCE: to your commits? As reference you can check Scott PR: #262

@clsotog
Copy link
Collaborator

clsotog commented Dec 11, 2025

@ruppala-nv
Also this is not compiling
drivers/net/ethernet/realtek/r8127/r8127_ptp.c: In function ‘rtl8127_ptp_init’:
drivers/net/ethernet/realtek/r8127/r8127_ptp.c:751:9: error: implicit declaration of function ‘hrtimer_init’; did you mean ‘hrtimers_init’? [-Werror=implicit-function-declaration]
751 | hrtimer_init(&tp->pps_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
| ^~~~~~~~~~~~
| hrtimers_init

ruppala-nv and others added 5 commits December 12, 2025 12:20
This patch adds IEEE 1588 PTP support to the r8127 driver.

Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
This patch enables Synchronous Ethernet (SyncE) when configuring
PTP on the r8127 NIC.

Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Add version check to use kernel_ethtool_ts_info for newer kernels.

Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
Reinit tx_type and rx_filter in ptp_init() to fix this issue.

Change-Id: I78d4346b36436dd6fc2fbde5a79c3c161eab6ecd
Signed-off-by: ChunHao Lin <hau@realtek.com>
Switch from hrtimer_init() to hrtimer_setup() for PPS timer to match
new kernel API for K6.15 and above

Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
@ruppala-nv
Copy link
Author

Apologies, I have verified compilation on K6.14 and pushed to K6.17 without checking for compilation.

Updated my patches now and added 5th patch to fix compilation issue on K6.17
Added NVIDIA: SAUCE

Also verified the functionality on K6.17

/* init a hrtimer for pps */
tp->pps_enable = 0;
#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,15,0)
hrtimer_setup(&tp->pps_timer, rtl8127_hrtimer_for_pps, CLOCK_MONOTONIC,
Copy link
Collaborator

Choose a reason for hiding this comment

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

This check is not needed any more.

rtl8127_set_eth_phy_ocp_bit(tp, 0xA640, BIT_15);
}

#if LINUX_VERSION_CODE < KERNEL_VERSION(6,11,0)
Copy link
Collaborator

Choose a reason for hiding this comment

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

This check is not needed as you know which kernel this patch is targetting

Copy link
Collaborator

Choose a reason for hiding this comment

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

same for all other other kernel version check

Copy link
Author

Choose a reason for hiding this comment

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

This is Realtek vendor's driver and there are numerous kernel version checks in other source files of same driver.

Do we really need to remove above kernel checks as they don't affect the functionality?

Copy link
Collaborator

Choose a reason for hiding this comment

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

@ruppala-nv This will keep the code clean and will help us in maintaining it

@ruppala-nv ruppala-nv marked this pull request as draft December 15, 2025 15:15
@clsotog
Copy link
Collaborator

clsotog commented Dec 15, 2025

Apologies, I have verified compilation on K6.14 and pushed to K6.17 without checking for compilation.

Updated my patches now and added 5th patch to fix compilation issue on K6.17 Added NVIDIA: SAUCE

Also verified the functionality on K6.17

Thanks at least this version compiles with 6.17.

@nvidia-bfigg nvidia-bfigg force-pushed the 24.04_linux-nvidia-6.17-next branch 2 times, most recently from c7fca69 to 6a9a932 Compare December 18, 2025 13: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.