)]}'
{
  "log": [
    {
      "commit": "d617b15d77132acccd33801810436f624d96ed40",
      "tree": "4ff00fb5cc4f663c78dc0db1a79e4939320dae63",
      "parents": [
        "758dedb7317b42870b962b4bce4d110dd53c023b"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Tue Oct 20 16:16:42 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Tue Oct 20 16:45:25 2026 -0500"
      },
      "message": "validator: save smu_fw_info debug information\n\nSome systems this is quite valuable for debugging an issue.\n"
    },
    {
      "commit": "758dedb7317b42870b962b4bce4d110dd53c023b",
      "tree": "ec00d2353361ba2de8c997954c901a9fe709e2b0",
      "parents": [
        "725557bdc05fbaf02aa98c597535d515abe0517f"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Mon Oct 19 15:16:28 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Mon Oct 19 15:17:01 2026 -0500"
      },
      "message": "Fix hardware sleep residency failure formatting\n\nSigned-off-by: Mario Limonciello \u003cmario.limonciello@amd.com\u003e\n"
    },
    {
      "commit": "725557bdc05fbaf02aa98c597535d515abe0517f",
      "tree": "622865bc0f247da1b902d46eae2092575e89a62a",
      "parents": [
        "835edf21a163813934c9a92eece9377596587c9e"
      ],
      "author": {
        "name": "LY",
        "email": "51789698+Young-Lord@users.noreply.github.com",
        "time": "Mon Oct 19 10:26:27 2026 +0800"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Mon Oct 19 08:49:51 2026 -0500"
      },
      "message": "amd-s2idle: Don\u0027t interpolate \u0027%\u0027 when parsing logind.conf\n\ncapture_logind() reads /etc/systemd/logind.conf with\nconfigparser.ConfigParser(), which performs %-interpolation on values by\ndefault. systemd however accepts a bare \u0027%\u0027 in several of these options,\nfor example the documented form of RuntimeDirectorySize\u003d:\n\n    https://www.freedesktop.org/software/systemd/man/latest/logind.conf.html#RuntimeDirectorySize\u003d\n\n    [Login]\n    RuntimeDirectorySize\u003d20%\n\nParsing such a file raises:\n\n    configparser.InterpolationSyntaxError: \u0027%\u0027 must be followed by \u0027%\u0027 or\n    \u0027(\u0027, found: \u0027%\u0027\n\nThe exception propagates out of PrerequisiteValidator.capture_once(), so\nthe whole pre-suspend capture aborts and the systemd sleep hook fails:\n\n    (system-sleep)[33222]: \u0027/usr/lib/systemd/system-sleep/s2idle-hook\u0027\n    failed with exit status 1.\n\nNo s2idle data is recorded for that suspend cycle, so a failing suspend\nthat should have been diagnosable ends up with no logs at all.\n\nThe values are copied verbatim into the debug report, so interpolation is\nnot wanted here; turn it off.\n\nSigned-off-by: LY \u003c51789698+Young-Lord@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "835edf21a163813934c9a92eece9377596587c9e",
      "tree": "d2f753c302b54977355d83009838083143ba589e",
      "parents": [
        "130774c4ae97da5f0fc74dcd3ff7482804b2b4a2"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Wed Oct 14 16:30:34 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Wed Oct 14 16:30:46 2026 -0500"
      },
      "message": "Drop CC6/PC6 checks\n\nSigned-off-by: Mario Limonciello \u003cmario.limonciello@amd.com\u003e\n"
    },
    {
      "commit": "130774c4ae97da5f0fc74dcd3ff7482804b2b4a2",
      "tree": "964a043fdc8f403b16acd329a11357f099f9de09",
      "parents": [
        "4e1af7cecf073def3c91cf11d530435600320b44"
      ],
      "author": {
        "name": "Juan Martinez",
        "email": "Juan.Martinez@amd.com",
        "time": "Wed Oct 14 15:37:02 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Wed Oct 14 16:26:27 2026 -0500"
      },
      "message": "docs: Add provenance comment for CPPC MSRs, use marketing names over codenames\n\nIP review improvements for OSRB submission:\n\n- failures.py: Replace internal codenames (Renoir, Lucienne, Cezanne, Barcelo)\n  with user-friendly marketing names (Ryzen 4000/5000 mobile) and CPU family\n  identifiers (Family 17h/19h). While these codenames appear in the upstream\n  kernel, using marketing names improves clarity for end users and aligns\n  with IP exposure guidelines.\n\n- pstate.py: Document that CPPC MSRs are AMD\u0027s implementation of ACPI CPPC,\n  with addresses defined in Linux kernel headers (arch/x86/include/asm/msr-index.h,\n  commit 89aa94b4a218).\n\nSigned-off-by: Juan Martinez \u003cjuan.martinez@amd.com\u003e\n"
    },
    {
      "commit": "4e1af7cecf073def3c91cf11d530435600320b44",
      "tree": "bd8f980dbf6f8055f744514d1200802e6c0355a4",
      "parents": [
        "a1bc1a1f890717002998153ebbfa46ec0c2431bb"
      ],
      "author": {
        "name": "Daniel Schaefer",
        "email": "dhs@frame.work",
        "time": "Fri Oct 02 12:46:47 2026 +0200"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Fri Oct 02 23:43:15 2026 -0500"
      },
      "message": "Only escape when outputting html\n\nOtherwise we get lots of \u0026#39; in the txt output\n\nSigned-off-by: Daniel Schaefer \u003cdhs@frame.work\u003e\n"
    },
    {
      "commit": "a1bc1a1f890717002998153ebbfa46ec0c2431bb",
      "tree": "e92d78adbc80c47b14dfcabfe4d01edb08b1081b",
      "parents": [
        "7e063cd39a5ea7c6576d86405cd0ec27c1d6165d"
      ],
      "author": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Sat Sep 26 07:51:31 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Tue Sep 29 08:59:41 2026 -0500"
      },
      "message": "fix(iommu): Check IVMD mapping for MSFT0201 when DMA protection is disabled\n\nWhen AmdVt BIOS setting is disabled, the IVRS table still declares\nMSFT0201 ACPI device but removes the IVMD (unity mapped DMA region)\nfor its device ID. The old check passed because MSFT0201 was found\nin IVRS, causing unrecoverable s2idle sleep.\n\nNow verify MSFT0201\u0027s device ID has a corresponding IVMD subtable\nentry (types 0x20/0x21/0x22) when DMA protection is disabled.\n\nBased on analysis from Fourhundred Thecat for ThinkPad P16s Gen 4 AMD.\n"
    },
    {
      "commit": "7e063cd39a5ea7c6576d86405cd0ec27c1d6165d",
      "tree": "988bfab3183efbb68ebfd21757bdf8da99b2f68b",
      "parents": [
        "3948a6affaf874c66be1520f9b08ef0b6a133ec1"
      ],
      "author": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Sat Sep 26 13:33:42 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Sat Sep 26 13:55:52 2026 -0500"
      },
      "message": "Don\u0027t escape single quotes in stdout cycle data\n"
    },
    {
      "commit": "3948a6affaf874c66be1520f9b08ef0b6a133ec1",
      "tree": "3a68295d0ae720eec62e462f75797087e3eaed7f",
      "parents": [
        "acc87499f28855bfe36071873d565300e692d160"
      ],
      "author": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Sat Sep 26 13:19:46 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Sat Sep 26 13:55:52 2026 -0500"
      },
      "message": "Don\u0027t escape single quotes in HTML report output\n"
    },
    {
      "commit": "acc87499f28855bfe36071873d565300e692d160",
      "tree": "64a82701972e4954d6d52cd45510930036211d60",
      "parents": [
        "a282daa40bc3439b20b95f51f04e1cce52588ee6"
      ],
      "author": {
        "name": "Fjalar",
        "email": "fjalarhognason@gmail.com",
        "time": "Wed Aug 12 11:21:48 2026 +0200"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Sun Aug 16 09:07:07 2026 -0500"
      },
      "message": "Discover TTM module in initramfs using dracut or mkinitcpio, not just initramfs-tools\n"
    },
    {
      "commit": "a282daa40bc3439b20b95f51f04e1cce52588ee6",
      "tree": "cce71415bb2cbef2c11d1a8fab8ea77a36261eda",
      "parents": [
        "06e4e0a9a86ace73d23e06d646c6b8c139e84473"
      ],
      "author": {
        "name": "Destin",
        "email": "destinj101@gmail.com",
        "time": "Thu Jul 30 11:34:48 2026 -0700"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Thu Jul 30 19:49:53 2026 -0500"
      },
      "message": "amd-s2idle: Flag ASPM disabled via pcie_aspm\u003doff on the kernel command line\n\ncheck_aspm() only reads /sys/module/pcie_aspm/parameters/policy, but\nbooting with pcie_aspm\u003doff leaves that file reporting [default] while\nASPM is disabled entirely, so the prerequisite passes with a green\ncheckmark on a system that cannot reach the hardware sleep state.\n\nObserved in the field on an ASUS ROG Flow Z13 (GZ302EAC, Strix Halo):\nwith pcie_aspm\u003doff the USB4 host routers sat in D0 at idle and s0i3\nresidency was 0%, while the report showed \u0027ASPM policy set to default\u0027.\nRemoving the parameter let both controllers reach D3cold.\n\nCheck the kernel command line before consulting the sysfs policy and\nfail the prerequisite with the existing ASpmWrong explanation.\n\nSigned-off-by: Destin \u003cdestinj101@gmail.com\u003e\n"
    },
    {
      "commit": "06e4e0a9a86ace73d23e06d646c6b8c139e84473",
      "tree": "94dd5f5a719f3859dfce7e0a2d482be5f71ac27b",
      "parents": [
        "8ab6ab02d2a933c67abf8e641f145b5ec76a0db5"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Fri Jul 10 12:10:10 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Fri Jul 10 13:07:59 2026 -0500"
      },
      "message": "amd-s2idle: Sanitise IRQ action name before walking sysfs\n\nThe IRQ action name is a free-form string supplied to request_irq() by\nthe kernel and was joined directly under /sys/bus/acpi/devices/ before\nbeing recursed with os.walk(). A name containing path separators or \"..\"\ncould redirect the walk outside the intended directory, and following\nsymlinks during that walk could lead to very deep or cyclic traversal.\n\nReduce the action name to a single path component with os.path.basename()\nand reject empty, \".\" and \"..\" values before use, and stop following\nsymlinks while walking the resulting directory.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "8ab6ab02d2a933c67abf8e641f145b5ec76a0db5",
      "tree": "22222e3c7a0f549031f2ad1d3fc4e5bd119392a5",
      "parents": [
        "e219256fd8c135d781609de04eb694dfb799a0a5"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Fri Jul 10 12:07:39 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Fri Jul 10 12:57:22 2026 -0500"
      },
      "message": "amd-s2idle: Drop group-writable /var/local database fallback\n\nThe sleep database location previously fell back to\n/var/local/lib/amd-s2idle when /var/lib/amd-s2idle did not exist. On\nDebian-derived systems /var/local is group-staff writable (mode 2775),\nwhich would let a non-root user in the staff group pre-plant a poisoned\ndata.db or a symlink there. The root systemd sleep hook would then open\nthat attacker-controlled file.\n\nAlways use /var/lib/amd-s2idle and create it with a restrictive 0o700\nmode. The tool runs as root when it needs this path, so no fallback is\nrequired.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "e219256fd8c135d781609de04eb694dfb799a0a5",
      "tree": "95b54ac0ebe9b63bd74993425cf0160fc25e6bba",
      "parents": [
        "86004d796e30f4d2e1d9513c69a59c2ebf15b916"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Fri Jul 10 12:08:30 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Fri Jul 10 12:52:28 2026 -0500"
      },
      "message": "amd-s2idle: Load kernel modules via absolute path without a shell\n\nLoading the msr and cpuid kernel modules went through os.system(), which\nruns /bin/sh -c and resolves \"modprobe\" via $PATH. When the tool runs as\nroot with an untrusted PATH, that allows an attacker-controlled binary to\nbe executed. Invoke modprobe directly with subprocess.run() using an\nabsolute path and no shell.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "86004d796e30f4d2e1d9513c69a59c2ebf15b916",
      "tree": "5279bb6a76cd73c996cfca1c3a3296fc12decf05",
      "parents": [
        "b40c8a5237051ddb0818ed3f707b829d68254b92"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Fri Jul 10 12:08:48 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Fri Jul 10 12:40:51 2026 -0500"
      },
      "message": "amd-s2idle: Redact sensitive data from captured kernel log\n\nWhen a prerequisite check fails the full journald/dmesg buffer is stored\nin the report. The kernel log can contain identifiers such as LUKS/\nfilesystem UUIDs, network MAC addresses, and key/token assignments, which\nwould then be exposed to any local user able to read the report.\n\nAdd a conservative redact_sensitive() helper that scrubs only\nhigh-confidence sensitive tokens (MAC addresses, UUIDs, and\nkey/secret/password/token assignments) while preserving the diagnostic\nvalue of the rest of the log, and apply it before recording the log.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "b40c8a5237051ddb0818ed3f707b829d68254b92",
      "tree": "c41b05edaea4f2e0e3e5bbbb3899bc212ff4af9b",
      "parents": [
        "bb8bd3c439b495dcb5edb1660ee1448d45c3b113"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Fri Jul 10 12:08:44 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Fri Jul 10 12:33:20 2026 -0500"
      },
      "message": "amd-s2idle: Validate firmware-supplied trace format strings\n\nThe format string extracted from an ACPI ex_trace_args kernel-log line is\nsupplied by BIOS AML and applied directly with Python\u0027s % operator. Only\nthe %x/%X/%d/%D specifiers were counted, but every conversion in the\nstring was still interpreted. A malformed or hostile firmware could use\nthis to force a huge string allocation (for example \"%2147483646d\") or to\nmangle output with mismatched specifiers such as %s or %c.\n\nReject any format string that contains a conversion outside the expected\n%x/%X/%d/%D whitelist (or an oversized field width) before applying it,\nand add regression tests covering these cases.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "bb8bd3c439b495dcb5edb1660ee1448d45c3b113",
      "tree": "1c2e7217c2593426ab031329ec3310c57c717f38",
      "parents": [
        "3da9e6d8ea3603519e18a5e5715eeb73071b14cc"
      ],
      "author": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Sun Jun 07 21:36:29 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Sat Jun 13 11:31:00 2026 -0500"
      },
      "message": "Adjust amdxdna checks for IOMMU awareness\n\nCloses: https://github.com/superm1/amd-debug-tools/issues/45\n"
    },
    {
      "commit": "3da9e6d8ea3603519e18a5e5715eeb73071b14cc",
      "tree": "3186bc8540ead4417812ae5a9c15f9a02e5fce63",
      "parents": [
        "2eab70ba53b431334b5cca5b5ffd9aa212a6f4c6"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Thu Jun 04 14:27:32 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Thu Jun 04 14:31:03 2026 -0500"
      },
      "message": "Add a bunch more unit tests\n\nSigned-off-by: Mario Limonciello \u003cmario.limonciello@amd.com\u003e\n"
    },
    {
      "commit": "2eab70ba53b431334b5cca5b5ffd9aa212a6f4c6",
      "tree": "d241f48cf1b2aedf8ab1dd1cde3a59ff7d400215",
      "parents": [
        "29bd68b1fc13d44cb4b1c2dc67b4fffd72e82034"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Thu Jun 04 14:27:12 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Thu Jun 04 14:31:03 2026 -0500"
      },
      "message": "Fix the time data delta message in low hardware sleep residency\n\nSigned-off-by: Mario Limonciello \u003cmario.limonciello@amd.com\u003e\n"
    },
    {
      "commit": "29bd68b1fc13d44cb4b1c2dc67b4fffd72e82034",
      "tree": "f7319364a6a24f6cdd30034586f885f54c94a42d",
      "parents": [
        "7a949e672b8ee92b4f7425c3ae2dde59b08b0068"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Thu Jun 04 14:00:19 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Thu Jun 04 14:00:33 2026 -0500"
      },
      "message": "amd-s2idle: Don\u0027t show average power chart with power rail data\n\nSigned-off-by: Mario Limonciello \u003cmario.limonciello@amd.com\u003e\n"
    },
    {
      "commit": "7a949e672b8ee92b4f7425c3ae2dde59b08b0068",
      "tree": "c283137106d5c935cc02044d4314fbac85797e2b",
      "parents": [
        "ec852b43a1c5ad7522ea411236cc85562ebf4949"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Thu Jun 04 13:59:22 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Thu Jun 04 13:59:31 2026 -0500"
      },
      "message": "amd-s2idle: Fix power rail units\n\nSigned-off-by: Mario Limonciello \u003cmario.limonciello@amd.com\u003e\n"
    },
    {
      "commit": "ec852b43a1c5ad7522ea411236cc85562ebf4949",
      "tree": "c6e6577cd51401785614390d11dbbb51ca1bc589",
      "parents": [
        "733b9b217d570bee8bda0355ec406a87af51fc83"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Thu Jun 04 13:58:00 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Thu Jun 04 13:58:27 2026 -0500"
      },
      "message": "amd-s2idle: Fix wraping of power rail data in HTML report\n\nSigned-off-by: Mario Limonciello \u003cmario.limonciello@amd.com\u003e\n"
    },
    {
      "commit": "733b9b217d570bee8bda0355ec406a87af51fc83",
      "tree": "6b34bb89fc72d50775590e105e1fc5cc47c5388f",
      "parents": [
        "65fa4dfc02c4ff303564722d432744ad8db82406"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Thu Jun 04 13:57:29 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Thu Jun 04 13:57:29 2026 -0500"
      },
      "message": "amd-s2idle: Fix report overwriting behavior\n\nRather than showing a call trace, prompt the user to remove an existing\nfile.\n\nSigned-off-by: Mario Limonciello \u003cmario.limonciello@amd.com\u003e\n"
    },
    {
      "commit": "65fa4dfc02c4ff303564722d432744ad8db82406",
      "tree": "aa9284a133f2f358864dfa2e7c424a549b1cb055",
      "parents": [
        "aef401644bfb4aedeb8e3f0ba6cb1a6f51bc6d21"
      ],
      "author": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Sun May 31 13:42:33 2026 +0200"
      },
      "committer": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Sun May 31 13:42:45 2026 +0200"
      },
      "message": "Fix a regression in HTML rendering from the HTML security fix\n\nSigned-off-by: Mario Limonciello (AMD) \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "aef401644bfb4aedeb8e3f0ba6cb1a6f51bc6d21",
      "tree": "13d03f1c5bddb0d7a763291411e71749ce71c5ff",
      "parents": [
        "eb5705c74fa9396205f6dacaa914cc1e5607887c"
      ],
      "author": {
        "name": "copilot-swe-agent[bot]",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Thu May 28 15:28:10 2026 +0000"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Thu May 28 16:33:14 2026 +0100"
      },
      "message": "Fix fchown indentation bug and add unit test\n\nos.fchown(fd, ...) was called after the `with os.fdopen(fd, ...)` block\nexited, at which point fd is already closed. This caused OSError (Bad file\ndescriptor) when SUDO_UID/SUDO_GID were set. Move the fchown call inside\nthe with block so fd is still valid.\n\nAdd test_build_template_fchown_called_while_fd_open to verify fchown is\ninvoked with the correct uid/gid while the fd is open.\n"
    },
    {
      "commit": "eb5705c74fa9396205f6dacaa914cc1e5607887c",
      "tree": "fe283dbc89c512fee9504daf7bd5d2650895d4e0",
      "parents": [
        "437ebac996559b1b5235885ba8db4519ae06a086"
      ],
      "author": {
        "name": "Aleksey Zagorodnikov",
        "email": "xglooom@gmail.com",
        "time": "Thu May 28 17:09:58 2026 +0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Thu May 28 13:23:06 2026 +0100"
      },
      "message": "Pass KDE_SESSION_VERSION to xdg-open"
    },
    {
      "commit": "437ebac996559b1b5235885ba8db4519ae06a086",
      "tree": "c5a09b02e10ae607779c6a2ba764cf2c15eefb14",
      "parents": [
        "ded2af964d64128cd89dd9ff54ffad3d084efc67"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Wed May 27 19:58:31 2026 +0100"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed May 27 20:07:37 2026 +0100"
      },
      "message": "Fix symlink attack vulnerability in log directory creation\n\nPrevent symlink attacks when creating log directories and files as root\nvia sudo. An attacker could create a symlink at ~/.local/share/amd-debug-tools\nor set XDG_DATA_HOME to point to a symlink, causing root to chown\narbitrary files when the tool is run with sudo.\n\nChanges:\n- Check if log directory path is a symlink before and after creation\n- Use os.lchown() instead of os.chown() to avoid following symlinks\n- Use os.open() with O_NOFOLLOW when creating log files\n- Fall back to /dev/null if a safe log directory cannot be created\n- Verify existing log files are not symlinks before using them\n\nThis prevents local privilege escalation where an attacker could:\n1. Create symlink at ~/.local/share/amd-debug-tools -\u003e /etc\n2. Run the tool with sudo\n3. Have root chown /etc to the attacker\u0027s UID\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "ded2af964d64128cd89dd9ff54ffad3d084efc67",
      "tree": "b07fe38ee7f77788348c23b8fd7741a00b6836c6",
      "parents": [
        "ca5550184e080bd6b9bc0fe8e8bb965493ebfff4"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Wed May 27 19:56:57 2026 +0100"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed May 27 20:07:37 2026 +0100"
      },
      "message": "Enable Jinja2 autoescape to prevent XSS attacks\n\nEnable autoescape\u003dTrue when creating the Jinja2 Environment to\nautomatically escape all template variables by default. This provides\ndefense-in-depth protection against XSS attacks from database-sourced\ncontent rendered in HTML reports.\n\nVariables that contain pre-escaped HTML (constructed with html.escape()\nand wrapped in Markup()) are correctly preserved and not double-escaped.\n\nThis complements the manual escaping added in the previous commit by\nensuring that any template variables not explicitly handled are still\nsafely escaped.\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "ca5550184e080bd6b9bc0fe8e8bb965493ebfff4",
      "tree": "df1b4f3c11808aa4278d17cae71d389b8a497e2f",
      "parents": [
        "9ea17574dde67a9e7a4976045464f08ff8b85834"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Wed May 27 19:55:53 2026 +0100"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed May 27 20:07:37 2026 +0100"
      },
      "message": "Fix HTML injection vulnerability in sleep report generation\n\nEscape database-sourced content before rendering in HTML reports to\nprevent XSS attacks. Database content from ACPI tables, BIOS strings,\nkernel logs, and power rail labels is now properly escaped using\nhtml.escape() before being incorporated into HTML output.\n\nChanges:\n- Add HTML escaping to get_cycle_data() for cycle data and debug messages\n- Add HTML escaping to get_prereq_data() for prerequisite debug messages\n- Add HTML escaping to power rail summary data\n- Use markupsafe.Markup to mark pre-escaped HTML as safe\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "9ea17574dde67a9e7a4976045464f08ff8b85834",
      "tree": "8d71a6a24ae76f6415bc5e1fae2e21eada249a57",
      "parents": [
        "58809ad4099ff6cdfd17a8c82c3f8ebabbd7c131"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Wed May 27 19:52:45 2026 +0100"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed May 27 20:07:37 2026 +0100"
      },
      "message": "amd_s2idle: fix a case that root wrote to an unvalidated path\n\nSigned-off-by: Mario Limonciello \u003cmario.limonciello@amd.com\u003e\n"
    },
    {
      "commit": "58809ad4099ff6cdfd17a8c82c3f8ebabbd7c131",
      "tree": "197b69169cefbc821804c9d81ee4b7474674928d",
      "parents": [
        "fa4b1bac1dbea1a0d3b87741a2ab1e3236a585ff"
      ],
      "author": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Fri May 22 20:28:02 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Fri May 22 20:28:52 2026 -0500"
      },
      "message": "Fix CSS wraparound on prerequisites section\n\nFixes: 612400a (\"Add some more CSS animations for tables\")\nSigned-off-by: Mario Limonciello (AMD) \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "fa4b1bac1dbea1a0d3b87741a2ab1e3236a585ff",
      "tree": "32dc662792fe4b7a2d67adfd63ef48ebea50beab",
      "parents": [
        "fe38067406f040d0b30006f87cd5a183c68a0658"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Thu May 21 17:35:22 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Thu May 21 17:55:43 2026 -0500"
      },
      "message": "Rename summary column per E3 changes\n"
    },
    {
      "commit": "fe38067406f040d0b30006f87cd5a183c68a0658",
      "tree": "e15d6c5c0e0b8003cd2f02ee9de13a08e1f58b3f",
      "parents": [
        "2ce1f1f568a482cbfb1ce2bbf946046f0b226c79"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Thu May 21 16:48:58 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Thu May 21 17:19:02 2026 -0500"
      },
      "message": "Add support for reading energy meters over suspend\n"
    },
    {
      "commit": "2ce1f1f568a482cbfb1ce2bbf946046f0b226c79",
      "tree": "8fccfe47db0be33221f3920e736254ed29200d3f",
      "parents": [
        "14d5e38a14ccfffc9f2d9c7cd0ac13700ec5a949"
      ],
      "author": {
        "name": "Harkirat Gill",
        "email": "harkirat.gill@amd.com",
        "time": "Wed May 13 10:36:47 2026 -0400"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed May 13 10:10:06 2026 -0500"
      },
      "message": "Fix Python 3.14 crash in reboot() — replace deprecated asyncio.get_event_loop()\n\nPython 3.14 completed the deprecation of asyncio.get_event_loop() when no\nevent loop is running (cpython#93453). This causes amd-ttm, and any other\ntool that calls reboot(), to crash with RuntimeError on Fedora 44+.\n\nReplace get_event_loop() + run_until_complete() with asyncio.run(), which\nhas been the recommended pattern since Python 3.7.\n\nFixes: ROCm/ROCm#6254\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "14d5e38a14ccfffc9f2d9c7cd0ac13700ec5a949",
      "tree": "2a2434aaa9eb55b427dd53299a5c5b2963611305",
      "parents": [
        "498a2c9a577e3e0252f2dfa4fab47db10927708d"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Sat May 09 09:06:32 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Sat May 09 09:06:32 2026 -0500"
      },
      "message": "amd-s2idle: Save SSH env variables to fix output format detection\n"
    },
    {
      "commit": "498a2c9a577e3e0252f2dfa4fab47db10927708d",
      "tree": "eb85064c47f314c0b0cbbf310eb40c3a559e0164",
      "parents": [
        "74b3f01b3590c75ac595bfdfeaf018d01ae1065e"
      ],
      "author": {
        "name": "Chris Bainbridge",
        "email": "chris.bainbridge@gmail.com",
        "time": "Sat May 09 10:27:32 2026 +0100"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Sat May 09 08:44:25 2026 -0500"
      },
      "message": "amd_s2idle: Robustify RTC selection for wakealarm\n\nCurrently, program_wakealarm() iterates through all RTC devices and\nunconditionally selects the last one found. This is problematic on\nplatforms where multiple RTC interfaces exist but not all support\nwake alarms.\n\nSpecifically, commit kernel v7.0-rc1-16-g8a1e7f4b1764 (\"ACPI: TAD: Add\nRTC class device interface\") introduces an ACPI TAD RTC that provides\ntimekeeping but may lack wakealarm support. On systems where this device\nis probed after the legacy CMOS RTC, the script attempts to use the TAD\nsysfs path, finds no \u0027wakealarm\u0027 file, and fails.\n\nModify the selection logic to:\n1. Check for the existence of the \u0027wakealarm\u0027 file before selection.\n2. Break the loop once a valid RTC device is found to avoid\n   overwriting a functional device with a non-functional one.\n\nSigned-off-by: Chris Bainbridge \u003cchris.bainbridge@gmail.com\u003e\n"
    },
    {
      "commit": "74b3f01b3590c75ac595bfdfeaf018d01ae1065e",
      "tree": "54773a96f9ff5e89576932f851157897ad993dfb",
      "parents": [
        "720acec11b0fb1d162d658adf7c77fb0d80208ac"
      ],
      "author": {
        "name": "Dylan Aïssi",
        "email": "dylan.aissi@collabora.com",
        "time": "Mon Apr 27 12:22:44 2026 +0200"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Mon May 04 12:06:39 2026 -0500"
      },
      "message": "ttm: Automatically regenerate initramfs when TTM configuration changes\n\nWhen modifying TTM configuration via modprobe, the changes won\u0027t\ntake effect until the next reboot. However, if the ttm module is\nloaded during early boot (e.g., in initramfs), the new\nconfiguration won\u0027t be applied unless the initramfs is regenerated.\n\nThis commit adds functionality to:\n1. Check if the ttm module is included in existing initramfs images\n2. Detect the system\u0027s initramfs generation tool (update-initramfs,\n   dracut, or mkinitcpio)\n3. Automatically regenerate the initramfs if needed after modifying\n   TTM configuration\n\nThis ensures that TTM configuration changes are properly applied during\nthe next reboot, even when the module is loaded from initramfs.\n\nSigned-off-by: Dylan Aïssi \u003cdylan.aissi@collabora.com\u003e\n"
    },
    {
      "commit": "720acec11b0fb1d162d658adf7c77fb0d80208ac",
      "tree": "d8784b86a4ba05a5a442b08f6f8be5bbc0df7304",
      "parents": [
        "e782459843e5f90c8aa08225192008cc6d07665d"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Thu Apr 09 10:37:56 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Thu Apr 09 10:40:35 2026 -0500"
      },
      "message": "Make NPU failures non-fatal\n\nThey are only fatal if the driver loaded but didn\u0027t bind (due to a problem).\nSo just add some messaging about a missing driver and warning if it didn\u0027t load.\n"
    },
    {
      "commit": "e782459843e5f90c8aa08225192008cc6d07665d",
      "tree": "79bb6699ba3ca8efa734ba7a88a9c88db4962174",
      "parents": [
        "d1ea6de5615a463b4581e24d49dd1787f0483485"
      ],
      "author": {
        "name": "Yo-Jung Leo Lin (AMD)",
        "email": "Leo.Lin@amd.com",
        "time": "Wed Apr 08 16:10:23 2026 +0800"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Thu Apr 09 08:58:28 2026 -0500"
      },
      "message": "Carry XDG_DATA_DIRS across sudo\n\nPass the XDG_DATA_DIRS env variable across sudo, so that amd_s2idle.py can\nopen an html report with correct application.\n\nFixes: 91f03b0 (\"Only take env variables needed for `sudo`\")\nReported-by: Madhu M \u003cmadhum12@amd.com\u003e\nSigned-off-by: Yo-Jung Leo Lin (AMD) \u003cLeo.Lin@amd.com\u003e\n"
    },
    {
      "commit": "d1ea6de5615a463b4581e24d49dd1787f0483485",
      "tree": "bd18253ab608dae9964ed18e803447be1aea739a",
      "parents": [
        "b7e4ab163dcbb71433d8e1fbec6f6e90dd7de7e5"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Fri Apr 03 12:01:27 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Fri Apr 03 12:01:27 2026 -0500"
      },
      "message": "Handle versions like 6.18+\n"
    },
    {
      "commit": "b7e4ab163dcbb71433d8e1fbec6f6e90dd7de7e5",
      "tree": "a3ab4dd68617a8014cdd93e385728836a9eff922",
      "parents": [
        "612400a063fa697731975155d9501f53f73a000e"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Fri Apr 03 11:52:27 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Fri Apr 03 11:52:27 2026 -0500"
      },
      "message": "Add a check for PCIE hotplug\n"
    },
    {
      "commit": "612400a063fa697731975155d9501f53f73a000e",
      "tree": "ae912e9d363553dbf43ca2bd7e1af60af5fe3415",
      "parents": [
        "1550772f63180b3728eca6e5920e379740b49d95"
      ],
      "author": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Wed Mar 18 22:36:03 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Wed Mar 18 22:36:13 2026 -0500"
      },
      "message": "Add some more CSS animations for tables\n\nSigned-off-by: Mario Limonciello (AMD) \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "1550772f63180b3728eca6e5920e379740b49d95",
      "tree": "55d3e0ea30ef95469ea496cac4387196a6f269c6",
      "parents": [
        "4c5531e387796b25fc571e6a7915374e7cb0b161"
      ],
      "author": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Wed Mar 18 22:22:43 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Wed Mar 18 22:22:43 2026 -0500"
      },
      "message": "Add dark mode support\n\nSigned-off-by: Mario Limonciello (AMD) \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "4c5531e387796b25fc571e6a7915374e7cb0b161",
      "tree": "c8249d3418ada6c3ddb81ea163925087a55db2db",
      "parents": [
        "984f694f646aaabfbcc9fcd87e928390aae05f49"
      ],
      "author": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Wed Mar 18 22:16:58 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Wed Mar 18 22:16:58 2026 -0500"
      },
      "message": "Add a hover effect while mousing over any HTML table\n\nSigned-off-by: Mario Limonciello (AMD) \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "984f694f646aaabfbcc9fcd87e928390aae05f49",
      "tree": "52dabe91ed967549a2d151e59b1433220cf98463",
      "parents": [
        "8560c7fa517d7f5c6aee5401e6630091b131e640"
      ],
      "author": {
        "name": "nytpu",
        "email": "alex@nytpu.com",
        "time": "Wed Mar 18 19:28:17 2026 -0600"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Mar 18 21:22:14 2026 -0500"
      },
      "message": "Check for amd_isp4_capture module as well as amd_capture module\n\nIn the AMD ISP4 driver patchset v8 and later, the \u0027amd_capture\u0027 module was\nrenamed to \u0027amd_isp4_capture\u0027, causing a spurious prequisites failure when\nrunning the amd_s2idle program.\n\nThis updates the prerequisite checks to test for *both* \u0027amd_capture\u0027 and\n\u0027amd_isp4_capture\u0027, as it\u0027s very likely there\u0027s still many instances of people\nrunning kernels with the old patchset.\n\nSee: \u003chttps://lore.kernel.org/lkml/20260212083426.216430-1-Bin.Du@amd.com/\u003e\n"
    },
    {
      "commit": "8560c7fa517d7f5c6aee5401e6630091b131e640",
      "tree": "ba83725c66db5ea556ee526d778ee9fbd962e79a",
      "parents": [
        "3cb14febe4c1c291b6a50ec7f2f4a5da9e4e298d"
      ],
      "author": {
        "name": "Dennis Lambe Jr.",
        "email": "malsyned_github@malsyned.net",
        "time": "Sun Mar 15 22:12:23 2026 -0400"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Mon Mar 16 10:18:59 2026 -0500"
      },
      "message": "Fix battery Ave Rate about 30% off\n\nFixes #28\n"
    },
    {
      "commit": "3cb14febe4c1c291b6a50ec7f2f4a5da9e4e298d",
      "tree": "927fd08f1c3cf2dd1f3c417e0e43d1ca025a32c8",
      "parents": [
        "6031effe31484cfc975b8335d59bc8aea24db956"
      ],
      "author": {
        "name": "Dennis Lambe Jr.",
        "email": "malsyned@malsyned.net",
        "time": "Mon Mar 16 11:08:33 2026 -0400"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Mon Mar 16 10:18:35 2026 -0500"
      },
      "message": "replace U+3BC GREEK SMALL LETTER MU with U+00B5 MICRO SIGN for consistency\n\nI used GREEK SMALL LETTER MU (μ) in the docstring for\n_get_design_voltage(), but the rest of the codebase uses MICRO SIGN (µ)\neverywhere.\n"
    },
    {
      "commit": "6031effe31484cfc975b8335d59bc8aea24db956",
      "tree": "7702300d0514f07c5cb8c6d89d521e88dbf77298",
      "parents": [
        "0ec37aa14eb70007c7949127aabe576f1c0e50f1"
      ],
      "author": {
        "name": "Dennis Lambe Jr.",
        "email": "malsyned_github@malsyned.net",
        "time": "Mon Mar 16 08:54:28 2026 -0400"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Mon Mar 16 10:18:35 2026 -0500"
      },
      "message": "improve test coverage for battery.py\n"
    },
    {
      "commit": "0ec37aa14eb70007c7949127aabe576f1c0e50f1",
      "tree": "1ec610b9cec5103aea1c9811df064d50b91720b0",
      "parents": [
        "4440b1746ed2be52001cfdee14f80bca711bbca3"
      ],
      "author": {
        "name": "Dennis Lambe Jr.",
        "email": "malsyned_github@malsyned.net",
        "time": "Sun Mar 15 21:49:04 2026 -0400"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Mon Mar 16 10:18:35 2026 -0500"
      },
      "message": "Always handle energy in microwatt-hours\n\nIf a battery only provides capacity values in microamp-hours, convert\ncharge to energy by multiplying by the battery\u0027s design voltage.\n\nFixes #29\n"
    },
    {
      "commit": "4440b1746ed2be52001cfdee14f80bca711bbca3",
      "tree": "8d3b35d7b872b57e249202a4f0b075bffc9910be",
      "parents": [
        "91f03b069fc3b40a2da9228b3ca63904c1775c25"
      ],
      "author": {
        "name": "Dennis Lambe Jr.",
        "email": "malsyned_github@malsyned.net",
        "time": "Fri Mar 13 16:17:05 2026 -0400"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Fri Mar 13 16:28:49 2026 -0500"
      },
      "message": "s2idle-hook: Support suspend-then-hibernate mode\n\nIf the SYSTEMD_SLEEP_ACTION environment variable is set (v248+) check it\nfor \"suspend\" / \"suspend-after-failed-hibernate\" in addition to\nargs.mode \u003d\u003d \"suspend\" when deciding whether to record a cycle.\n\nFixes #26\n"
    },
    {
      "commit": "91f03b069fc3b40a2da9228b3ca63904c1775c25",
      "tree": "44cfefd17386a3b61df22610f1aef597dc83ef61",
      "parents": [
        "64b1cad8b91be96b4aae5b5c09635ee720632456"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Tue Mar 10 12:27:05 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Tue Mar 10 12:27:24 2026 -0500"
      },
      "message": "Only take env variables needed for `sudo`\n\nThis helps with how `sudo -E` doesn\u0027t work in sudo-rs.\n\nSigned-off-by: Mario Limonciello \u003cmario.limonciello@amd.com\u003e\n"
    },
    {
      "commit": "64b1cad8b91be96b4aae5b5c09635ee720632456",
      "tree": "3b8bdbf78b77fdd0567f24566752c784570dd23d",
      "parents": [
        "dbd58323059e2bf35e6fd81fe96108a38f529fbc"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Tue Mar 10 12:08:11 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Tue Mar 10 12:08:11 2026 -0500"
      },
      "message": "Don\u0027t assume all AMD signal processing devices have fw_version\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "dbd58323059e2bf35e6fd81fe96108a38f529fbc",
      "tree": "4e05d21949341afdca4c8c5a11acab95dc5526ff",
      "parents": [
        "1e5ca7d6751e407d2a4373d396c23327e86c3ade"
      ],
      "author": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Sun Mar 08 13:56:56 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Sun Mar 08 13:56:56 2026 -0500"
      },
      "message": "Capture full kernel log on pre-req failure\n"
    },
    {
      "commit": "1e5ca7d6751e407d2a4373d396c23327e86c3ade",
      "tree": "f6b4f63ba03be4f0643f6676dde16b46abb53bef",
      "parents": [
        "93d071a44e04c73d21fa5fbda6e6b425d4343065"
      ],
      "author": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Sun Mar 08 13:33:15 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Sun Mar 08 13:33:15 2026 -0500"
      },
      "message": "Only run NPU check on AMD NPUs\n"
    },
    {
      "commit": "93d071a44e04c73d21fa5fbda6e6b425d4343065",
      "tree": "ba4de0f369be6b915a8efb843c47c878134f1ca2",
      "parents": [
        "ed54f0ae66dc135f16c575227b8c02213f70b79d"
      ],
      "author": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Sun Mar 08 13:23:54 2026 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Sun Mar 08 13:29:32 2026 -0500"
      },
      "message": "Add a check that the XDNA driver has bound to the device\n\nLink: https://gitlab.freedesktop.org/drm/amd/-/issues/5049\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "ed54f0ae66dc135f16c575227b8c02213f70b79d",
      "tree": "a6d69aa23e28ab8734bf92f4ee431fb91c20dc43",
      "parents": [
        "8150b4427f9c54d496a300de71ff0677587ab1bb"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Thu Feb 12 13:12:51 2026 -0600"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Thu Feb 12 13:13:35 2026 -0600"
      },
      "message": "Catch permissions errors for IRQ and wake sources\n\nIn CI context these files might not be readable.\n"
    },
    {
      "commit": "8150b4427f9c54d496a300de71ff0677587ab1bb",
      "tree": "7245bfffa4b159bdd6e54a93b0fea9b1aaf3de4c",
      "parents": [
        "9df36c9a14fe33e5b51daddf2f995a965958ad5a"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Mon Feb 02 09:12:45 2026 -0600"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Mon Feb 02 09:13:12 2026 -0600"
      },
      "message": "Revert \"Switch to systemd-run instead of sudo for showing report\"\n\nThis reverts commit 9df36c9a14fe33e5b51daddf2f995a965958ad5a.\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "9df36c9a14fe33e5b51daddf2f995a965958ad5a",
      "tree": "ce0210df759b3ca6eff7eaec4c2969913cc59545",
      "parents": [
        "c2da77bb849005760045d7106249b04499cbef95"
      ],
      "author": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Thu Jan 15 23:27:45 2026 -0600"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Thu Jan 15 23:30:36 2026 -0600"
      },
      "message": "Switch to systemd-run instead of sudo for showing report\n\nThis is compatible with sudo-rs as well.\n\nSigned-off-by: Mario Limonciello (AMD) \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "c2da77bb849005760045d7106249b04499cbef95",
      "tree": "7245bfffa4b159bdd6e54a93b0fea9b1aaf3de4c",
      "parents": [
        "22451f4356d6e8272c397518a8ca85dfa641037a"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Wed Jan 14 10:56:59 2026 -0600"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Jan 14 13:13:59 2026 -0600"
      },
      "message": "Add detection for missing ISP4 patch series\n\nLink: https://gitlab.freedesktop.org/drm/amd/-/issues/4869\nSigned-off-by: Mario Limonciello \u003cmario.limonciello@amd.com\u003e\n"
    },
    {
      "commit": "22451f4356d6e8272c397518a8ca85dfa641037a",
      "tree": "a5b635534ba0740dfabd95d6b0edf150e1b213f1",
      "parents": [
        "f78d6c4490d3ab77e38531700c74ef580840f75a"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Sat Jan 10 07:44:21 2026 -0600"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Sat Jan 10 07:48:57 2026 -0600"
      },
      "message": "Restructure the post cycle analysis\n\nPrefer getting IRQ wakeup data from sysfs instead of kernel log.\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "f78d6c4490d3ab77e38531700c74ef580840f75a",
      "tree": "e989fb1cd8e2476aeec8ae5e7d7a2d734826f0ec",
      "parents": [
        "a1f6078098da960879a7c983942c7f2c3776c37a"
      ],
      "author": {
        "name": "mythilam",
        "email": "mythilam@amd.com",
        "time": "Fri Jan 09 06:21:12 2026 +0530"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Sat Jan 10 07:48:57 2026 -0600"
      },
      "message": "validator: Add sysfs fallback for wake IRQ capture\n\nKernel log parsing can miss wake IRQ data due to buffering delays\nand ring buffer overflow. Adding fallback to read /sys/power/pm_wakeup_irq\ndirectly to ensure zero data loss\n\nSigned-off-by: mythilam \u003cmythilam@amd.com\u003e\n"
    },
    {
      "commit": "a1f6078098da960879a7c983942c7f2c3776c37a",
      "tree": "8b9b9c820f8e80fbacbce4ab1d54d64795ee96a6",
      "parents": [
        "36a5ff7f820fc4ea83d3e444207729ec25efb4a4"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Tue Jan 06 00:28:21 2026 -0600"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Tue Jan 06 00:28:21 2026 -0600"
      },
      "message": "trivial: ci: run apt update before installing software\n"
    },
    {
      "commit": "36a5ff7f820fc4ea83d3e444207729ec25efb4a4",
      "tree": "ed532bd75fd560aea52e446a4d1f1ad34149f705",
      "parents": [
        "65a2dcdd95224424e8e444a0a65a7b5c3ec40ad2"
      ],
      "author": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Sat Nov 22 00:04:25 2025 -0600"
      },
      "committer": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Sat Nov 22 00:04:42 2025 -0600"
      },
      "message": "Don\u0027t require CPU topology\n\nSome older ASIC won\u0027t have it.  Just show a warning if that\u0027s the case.\n\nSigned-off-by: Mario Limonciello (AMD) \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "65a2dcdd95224424e8e444a0a65a7b5c3ec40ad2",
      "tree": "8505f06bb5762ae39f8516183e069122481a412d",
      "parents": [
        "4cb12a855b331bd6d2b00f30f064a83e554d0bdf"
      ],
      "author": {
        "name": "copilot-swe-agent[bot]",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Sat Nov 15 22:58:54 2025 +0000"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Sun Nov 16 07:15:54 2025 -0600"
      },
      "message": "Extend VARIANT_ID check to support both workstation and kde editions\n\nCo-authored-by: superm1 \u003c494526+superm1@users.noreply.github.com\u003e\nSigned-off-by: Mario Limonciello (AMD) \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "4cb12a855b331bd6d2b00f30f064a83e554d0bdf",
      "tree": "accc4f7fe37292aaa9d975d9144062ef759223ea",
      "parents": [
        "7f6fa735230924104b978d8267802b30cba5c439"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Thu Nov 13 15:23:00 2025 -0600"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Thu Nov 13 15:51:59 2025 -0600"
      },
      "message": "s2idle: Look at the socket level for telling how many CPUs are present\n\nLooking at the complex level will return the wrong number of cores in\na multi-CCD system.\n\nReported-by: Pratap Nirujogi \u003cPratap.Nirujogi@amd.com\u003e\nSigned-off-by: Mario Limonciello \u003cmario.limonciello@amd.com\u003e\n"
    },
    {
      "commit": "7f6fa735230924104b978d8267802b30cba5c439",
      "tree": "b379dd596900bbc2ffa3a69c9891b72f334264f9",
      "parents": [
        "4dfec56dd0edbbec7c25a134c99b838cab7f1440"
      ],
      "author": {
        "name": "mythilam",
        "email": "mythilam@amd.com",
        "time": "Thu Nov 06 19:46:04 2025 +0530"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Thu Nov 13 14:47:19 2025 -0600"
      },
      "message": "Fix for incorrect S0ix cycle count in amd-s2idle.py script\n\nSigned-off-by: mythilam \u003cmythilam@amd.com\u003e\n(Drop the extra unnecessary variables and fix unit tests)\nSigned-off-by: Mario Limonciello \u003cmario.limonciello@amd.com\u003e\n"
    },
    {
      "commit": "4dfec56dd0edbbec7c25a134c99b838cab7f1440",
      "tree": "4a1da3a31afb36f9151fb64ae830a00125ae9e1a",
      "parents": [
        "ad6e2fcef2cb0c9fce8600384124d502285d2fe3"
      ],
      "author": {
        "name": "copilot-swe-agent[bot]",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Sat Nov 08 04:01:53 2025 +0000"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Sat Nov 08 08:02:54 2025 -0600"
      },
      "message": "Fix tests to patch module-specific open instead of builtins.open\n\nThis prevents mocks from interfering with coverage.py\u0027s file reading in Python 3.14\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "ad6e2fcef2cb0c9fce8600384124d502285d2fe3",
      "tree": "3dbc3bb0bc3993548383251089c582a91d1c0d86",
      "parents": [
        "a0b229bad090386405444d6d73fe751e0345cf36"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Sat Nov 01 23:30:08 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Sat Nov 01 23:33:48 2025 -0500"
      },
      "message": "trivial: fix ci failing to build cysystemd\n"
    },
    {
      "commit": "a0b229bad090386405444d6d73fe751e0345cf36",
      "tree": "8b74085a1f834add0ba2e25d480b470ca2849e97",
      "parents": [
        "8e2b339f219e34b01d4a786b96f9623be4db8557"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Thu Oct 30 16:02:35 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Thu Oct 30 16:05:01 2025 -0500"
      },
      "message": "Use setuptools-scm instead for dynamic versioning (Closes: #16)\n"
    },
    {
      "commit": "8e2b339f219e34b01d4a786b96f9623be4db8557",
      "tree": "bc98014e999e0414fa7af04888a498d594896210",
      "parents": [
        "01124825f1b7ec178929542bc9a734f8c78525a5"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Fri Oct 17 09:31:23 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Fri Oct 17 09:31:23 2025 -0500"
      },
      "message": "Drop shebang on non-executable stuff\n"
    },
    {
      "commit": "01124825f1b7ec178929542bc9a734f8c78525a5",
      "tree": "06d66d66b46b041796b73c2d41cc6358e71c80ef",
      "parents": [
        "0a1b314b0bf7d5c72a6c0c4db17740315a470430"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Fri Oct 17 09:29:30 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Fri Oct 17 09:29:30 2025 -0500"
      },
      "message": "Fix package for `di-edid-decode` on Fedora\n"
    },
    {
      "commit": "0a1b314b0bf7d5c72a6c0c4db17740315a470430",
      "tree": "d63040ead33b2dbe98c68a53aba8272e7add8a0e",
      "parents": [
        "25d54d131a7d4dd16bc09834f6f8e726feeb4a4e"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 16:14:55 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 16:15:03 2025 -0500"
      },
      "message": "Fix variety of pylance/lint issues\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "25d54d131a7d4dd16bc09834f6f8e726feeb4a4e",
      "tree": "881b5f4b23f496ca5548043f429364533e5fb9b5",
      "parents": [
        "35dab61425d290b290e217e71e5269c212095513"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 16:13:10 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 16:13:10 2025 -0500"
      },
      "message": "common: remove needless import\n"
    },
    {
      "commit": "35dab61425d290b290e217e71e5269c212095513",
      "tree": "7fb2d51b18a8442e61b507b48baca6ee92dcd475",
      "parents": [
        "06aa94ad5e1a7f205f565c4c0bda25c8830e1b84"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 15:54:13 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 16:03:57 2025 -0500"
      },
      "message": "database: add some missing asserts\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "06aa94ad5e1a7f205f565c4c0bda25c8830e1b84",
      "tree": "b71fba707e4922e3f6e35244c6cb08d79cb95076",
      "parents": [
        "94a2ae378ff940dc765c062db476c7f23db9ae43"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 15:49:45 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 15:49:57 2025 -0500"
      },
      "message": "s2idle: fix return type for capture_hw_sleep()\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "94a2ae378ff940dc765c062db476c7f23db9ae43",
      "tree": "7c217e0d563aab6deee8c036e56aa45238c18364",
      "parents": [
        "040a10210e2297082052580464df190581a6ddf6"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 15:47:37 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 15:47:45 2025 -0500"
      },
      "message": "Fix return type in a case of invalid KernelLogger\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "040a10210e2297082052580464df190581a6ddf6",
      "tree": "6c0744caf3af260709a860a8565d48301f3a9fd4",
      "parents": [
        "e736580aebdcb549241b35e68ba6405d93f0c91c"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 15:46:55 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 15:47:06 2025 -0500"
      },
      "message": "Fix a few cases that variables are initialized to wrong type\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "e736580aebdcb549241b35e68ba6405d93f0c91c",
      "tree": "a1232948c7e14462ce37bd4576c42d02ac53c3d8",
      "parents": [
        "b03a42416cc95f49b5f2b384b63725aa9360cd86"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 15:45:08 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 15:45:22 2025 -0500"
      },
      "message": "Fix missing priority argument for base KernelLogger\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "b03a42416cc95f49b5f2b384b63725aa9360cd86",
      "tree": "d6dbcd72e041c5ab045d0f0514cc5bd5e6d840dd",
      "parents": [
        "032036474b85f85c98e218f2e31de2297b9504ce"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 15:39:18 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 15:39:25 2025 -0500"
      },
      "message": "s2idle: fix an impossible return type\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "032036474b85f85c98e218f2e31de2297b9504ce",
      "tree": "3e474da526e30f40587714daf5c2910c5954f966",
      "parents": [
        "16881c825e48d6ba4a31d0978190ae0e5ce7d246"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 15:34:43 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 15:34:57 2025 -0500"
      },
      "message": "s2idle: change the return type for EDID capture\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "16881c825e48d6ba4a31d0978190ae0e5ce7d246",
      "tree": "e515465631a5d2372b2e7811c6ba680e1ecdfcae",
      "parents": [
        "233c9723106f8e26eadc4fdd79c3fdf6ac8459a1"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 15:24:38 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 15:24:38 2025 -0500"
      },
      "message": "s2idle: ignore a subprocess call error\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "233c9723106f8e26eadc4fdd79c3fdf6ac8459a1",
      "tree": "d5dc54cfe92d8c2eb23986a01b5deb378937d183",
      "parents": [
        "7b415d0de8b390fbf0e20b2d3a44e0cf1a61f9c4"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 15:23:09 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 15:23:09 2025 -0500"
      },
      "message": "s2idle: add more coverage for check_amdgpu()\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "7b415d0de8b390fbf0e20b2d3a44e0cf1a61f9c4",
      "tree": "7f5a0289530d8e4cfe7bde70c8c666abcb70e62b",
      "parents": [
        "f9c283c92e954808d976ec37559f99f0a3d4fdfd"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Wed Oct 08 09:15:50 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Oct 08 14:25:50 2025 -0500"
      },
      "message": "s2idle: Require an integrated GPU to be enabled\n\nIf integrated GPU is turned off in BIOS, there may be sequences\nthat are not run because no GPU driver bound to the integrated\nGPU and this can cause problems.\n\nSigned-off-by: Mario Limonciello \u003cmario.limonciello@amd.com\u003e\n"
    },
    {
      "commit": "f9c283c92e954808d976ec37559f99f0a3d4fdfd",
      "tree": "f6daba4ef238aec5b978cda300e1f2b873ed5b15",
      "parents": [
        "80274f31feab1eaec15b1ce752ead1f8ecf1463f"
      ],
      "author": {
        "name": "sudoBash418",
        "email": "sudoBash418@gmail.com",
        "time": "Tue Oct 07 17:09:19 2025 -0600"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Tue Oct 07 19:13:14 2025 -0500"
      },
      "message": "Fix f-string in IOMMU ACPI failure explanation\n"
    },
    {
      "commit": "80274f31feab1eaec15b1ce752ead1f8ecf1463f",
      "tree": "663c040a6633ea2f3a50f3466cbb39389f350c7c",
      "parents": [
        "f29e4c9b19ab128483b513fd3a1e700db566b7f8"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Mon Sep 22 09:30:55 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Mon Sep 22 10:57:23 2025 -0500"
      },
      "message": "s2idle: Calculate end of `test` cycles for long cycles\n\nIf a cycle request will cross over 1 day then they will be\nmissing in the report.  Calculate to get the boundaries right.\n\nCloses: https://gitlab.freedesktop.org/drm/amd/-/issues/4590\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "f29e4c9b19ab128483b513fd3a1e700db566b7f8",
      "tree": "903a39be22e055964f796a37d339252038b7bc88",
      "parents": [
        "0296fbae49e8996c17929ac5d89da86e71302ec3"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Mon Sep 08 13:24:54 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Mon Sep 08 13:28:39 2025 -0500"
      },
      "message": "amd-s2idle: Handle missing debugfs for pinctrl-amd\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "0296fbae49e8996c17929ac5d89da86e71302ec3",
      "tree": "1e0be77798d96f10ac3c9ec71705b28e57f614ec",
      "parents": [
        "52b91c2307d8bfc3d0959a7cfa663bf125d75aa5"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Fri Sep 05 12:54:49 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Fri Sep 05 12:54:53 2025 -0500"
      },
      "message": "Revert \"s2idle: Exclude family 0x1a model 0x68 from IOMMU checks\"\n\nThis reverts commit 52b91c2307d8bfc3d0959a7cfa663bf125d75aa5.\nIt turns out there are multiple SKUs and this applies to some of them.\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "52b91c2307d8bfc3d0959a7cfa663bf125d75aa5",
      "tree": "fb87c39f7d0b115f4a06a2276f245185618e3304",
      "parents": [
        "ba4af4c959f6a5f7f5116feb23b215411009f996"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Fri Sep 05 12:13:15 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Fri Sep 05 12:13:41 2025 -0500"
      },
      "message": "s2idle: Exclude family 0x1a model 0x68 from IOMMU checks\n\nThe IOMMU checks are not necessary on this platform.\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "ba4af4c959f6a5f7f5116feb23b215411009f996",
      "tree": "1e0be77798d96f10ac3c9ec71705b28e57f614ec",
      "parents": [
        "b06b734f3f3015784d96954d1ce499f390a690d1"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Aug 27 14:52:38 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Aug 27 14:52:38 2025 -0500"
      },
      "message": "Fix in-tree URL from readme\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "b06b734f3f3015784d96954d1ce499f390a690d1",
      "tree": "ed2fe1cbd64eefbb71f4683311dc4b5839337ed2",
      "parents": [
        "d4d0dc3f33fe31439dbb960fa1369c4b25eebdba"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Aug 27 14:29:34 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Aug 27 14:29:34 2025 -0500"
      },
      "message": "Add explicit link for in-tree docs too\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "d4d0dc3f33fe31439dbb960fa1369c4b25eebdba",
      "tree": "c9303a355f1ff0d526d6cbd2d75eaa42e087f571",
      "parents": [
        "baa62a89da88e83d687b13b6765eb0b658c9c37c"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Aug 27 14:07:42 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Aug 27 14:23:03 2025 -0500"
      },
      "message": "Split out documentation to it\u0027s own files\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "baa62a89da88e83d687b13b6765eb0b658c9c37c",
      "tree": "974b9e1e8cd784031cba17f5bab0c09a7b1ae0ff",
      "parents": [
        "007d017fccf5425a30fd4b223818206e47c448d8"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "mario.limonciello@amd.com",
        "time": "Tue Aug 26 12:44:22 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Aug 27 09:45:06 2025 -0500"
      },
      "message": "Add support for dbus-next\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "007d017fccf5425a30fd4b223818206e47c448d8",
      "tree": "ec3e4d54ffeebd85406b2256ca6ff4284aa57436",
      "parents": [
        "1bba3fe4496faabe0aa8c985084356f2863fd821"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Aug 27 09:08:28 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Wed Aug 27 09:13:32 2025 -0500"
      },
      "message": "In prerequisites capture the inferred ACPI C state information\n\nSome platforms support more ACPI C-states than others.  There is no\nchecks to go with this right now, but just capture information in\ncase of problems.\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "1bba3fe4496faabe0aa8c985084356f2863fd821",
      "tree": "75a05e865b45b8dd9937a3de9eef64efa6520f70",
      "parents": [
        "af0a1d0a29bb765c4e646fe46ec1e840057ccaaf"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@gmail.com",
        "time": "Fri Aug 22 12:04:27 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Fri Aug 22 12:05:19 2025 -0500"
      },
      "message": "Put 💯 back in stdout\n\n🚫 makes sense for failed prerequisites but not for stdout cycles.\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "af0a1d0a29bb765c4e646fe46ec1e840057ccaaf",
      "tree": "06c7c462e467dad2262cf98a261e9652dafa7efd",
      "parents": [
        "87faf0a6c071e919a3eb5b028fff9e8665105140"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@gmail.com",
        "time": "Fri Aug 22 11:59:35 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@gmail.com",
        "time": "Fri Aug 22 12:00:13 2025 -0500"
      },
      "message": "Update failed prerequisites symbol\n\nDennis pointed out that 💯 isn\u0027t great for a failure.\nHe suggested using 🚫 .\n\nSuggested-by: Denis Benato \u003cbenato.denis96@gmail.com\u003e\nSigned-off-by: Mario Limonciello (AMD) \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "87faf0a6c071e919a3eb5b028fff9e8665105140",
      "tree": "3f1a1c3a0de29542b2e9e9beb169729c5f14d81c",
      "parents": [
        "8a833d3adb5710f156b674a6a0b97105e1420119"
      ],
      "author": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Thu Aug 21 10:26:37 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Thu Aug 21 10:26:49 2025 -0500"
      },
      "message": "amd-s2idle: Show cysystemd use\n\nSigned-off-by: Mario Limonciello (AMD) \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "8a833d3adb5710f156b674a6a0b97105e1420119",
      "tree": "36b0988673ff2b1892852cde64055b46f1999b02",
      "parents": [
        "e355b71de332780106ecbfb371389d71c130781d"
      ],
      "author": {
        "name": "Mario Limonciello",
        "email": "superm1@gmail.com",
        "time": "Thu Aug 14 15:52:18 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@gmail.com",
        "time": "Thu Aug 14 15:52:28 2025 -0500"
      },
      "message": "ttm: Use relaunch_sudo()\n\nRunning in a wheel is more awkward than necessary when using is_root()\n\nSigned-off-by: Mario Limonciello \u003csuperm1@kernel.org\u003e\n"
    },
    {
      "commit": "e355b71de332780106ecbfb371389d71c130781d",
      "tree": "a3b4f87e1a1d5f9b197631857468fc6f0d5c840a",
      "parents": [
        "1d365da510667f92f90b845c200ce61ec700e8d3"
      ],
      "author": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@debian.org",
        "time": "Thu Aug 14 14:50:12 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@debian.org",
        "time": "Thu Aug 14 14:50:26 2025 -0500"
      },
      "message": "trivial: install top level script for amd-ttm\n\nSigned-off-by: Mario Limonciello (AMD) \u003csuperm1@debian.org\u003e\n"
    },
    {
      "commit": "1d365da510667f92f90b845c200ce61ec700e8d3",
      "tree": "0fa6624a4b329b271a0e8d9cd3e24ba308ee7033",
      "parents": [
        "0407d087be5dc2fecddfe6487c7b739c9be82c4f"
      ],
      "author": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@debian.org",
        "time": "Thu Aug 14 13:23:52 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@debian.org",
        "time": "Thu Aug 14 13:23:52 2025 -0500"
      },
      "message": "trivial: add unit test for amd_ttm launcher.py too\n\nSigned-off-by: Mario Limonciello (AMD) \u003csuperm1@debian.org\u003e\n"
    },
    {
      "commit": "0407d087be5dc2fecddfe6487c7b739c9be82c4f",
      "tree": "21c62cd884dd74f84fa2796efa8426f55f8bee76",
      "parents": [
        "2d777e202548a4139e1e1e37530018078740c578"
      ],
      "author": {
        "name": "Mario Limonciello (AMD)",
        "email": "superm1@kernel.org",
        "time": "Thu Aug 14 12:36:15 2025 -0500"
      },
      "committer": {
        "name": "Mario Limonciello",
        "email": "superm1@kernel.org",
        "time": "Thu Aug 14 13:18:09 2025 -0500"
      },
      "message": "Add amd-ttm tool\n\nThe atm-ttm tool is a helper used for managing the pages limit\nutilized by TTM.\n\nSigned-off-by: Mario Limonciello (AMD) \u003csuperm1@debian.org\u003e\n"
    }
  ],
  "next": "2d777e202548a4139e1e1e37530018078740c578"
}
