)]}'
{
  "log": [
    {
      "commit": "d2f697875710039d5859cd438730f4c038dcf786",
      "tree": "4e2285f18ce16a2c45ccb0aae3c4d2810e01dc74",
      "parents": [
        "02e8e405dffa693fbb4e30d80d7e53de7ac577fc",
        "d2636407bf8c056619e0d975f49bd27778e0dca6"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 19:39:07 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 19:39:07 2026 +0100"
      },
      "message": "Merge branch \u0027for-linus\u0027\n"
    },
    {
      "commit": "d2636407bf8c056619e0d975f49bd27778e0dca6",
      "tree": "008c191a6e6c5b1d9391957cd531ca6940b7d6ae",
      "parents": [
        "d1a1f361e08311f6d9a4aea2da2d1bcb3891f4ef"
      ],
      "author": {
        "name": "Shengyu Qu",
        "email": "wiagn@4d2.org",
        "time": "Fri Nov 13 01:31:31 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 19:38:41 2026 +0100"
      },
      "message": "ALSA: usb-audio: Add native DSD support for NiceHCK Octave\n\nNiceHCK Octave is an OEM of TTGK TT39039F01-PROMAX[1] and supports DSD64/\nDSD128/DSD256/DSD512[2].\n\nIt advertises the UAC2 RAW_DATA format on altsetting 4 of its playback\ninterface, but without the DSD_RAW quirk flag the driver exposes it only as\na SPECIAL format that cannot be used.\n\nAdd QUIRK_FLAG_DSD_RAW for the device (USB ID 3302:39c3), so the altsetting\nis exposed as DSD_U32_BE, enabling native DSD playback.\n\n[1] https://www.audiosciencereview.com/forum/index.php?threads/nicehck-octave-dongle-dac.65535/post-2390027\n[2] https://szttgk.com/product/HIFIAUDIOMODULE/846.html\n\nSigned-off-by: Shengyu Qu \u003cwiagn@4d2.org\u003e\nLink: https://patch.msgid.link/20261112173131.86655-1-wiagn@4d2.org\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "02e8e405dffa693fbb4e30d80d7e53de7ac577fc",
      "tree": "b938c18835322b0d3fde497659571f3906cf0929",
      "parents": [
        "d8467ef357babd664b4b6a6eb27408db0b532bfd",
        "d1a1f361e08311f6d9a4aea2da2d1bcb3891f4ef"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 14:28:14 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 14:28:14 2026 +0100"
      },
      "message": "Merge branch \u0027for-linus\u0027\n"
    },
    {
      "commit": "d1a1f361e08311f6d9a4aea2da2d1bcb3891f4ef",
      "tree": "e743e09156ec613750d8a63822df34042cf59ff7",
      "parents": [
        "a2dac609bfcc395a8c2e87d3ba1fc26ac50811d0"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 13:48:42 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 14:28:08 2026 +0100"
      },
      "message": "Revert \"ALSA: hda/cs420x: Add CS4208 fixup for MacBookAir 7,2\"\n\nThis reverts commit 82cfab6a52621febf36752bd5ed5184f82c96e07.\n\nThe quirk entry seems matching with other multiple irrelevant models\nthat lead to a regression on those.\n\nMaybe we should use HDA_CODEC_QUIRK() entry for the corresponding\ncodec SSID, instead.  But let\u0027s revert for addressing the regression\nat first.\n\nFixes: 82cfab6a5262 (\"ALSA: hda/cs420x: Add CS4208 fixup for MacBookAir 7,2\")\nCloses: https://lore.kernel.org/71fb1e29-60e1-4522-a071-c53557cea39b@icloud.com\nCloses: https://lore.kernel.org/CABWzDrqrskmtb7MVFgJ54k4WNSqby7Qo3R1XeoVBaJ+djaO1ew@mail.gmail.com\nCc: \u003cstable@vger.kernel.org\u003e\nLink: https://patch.msgid.link/20261112124844.694544-1-tiwai@suse.de\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "d8467ef357babd664b4b6a6eb27408db0b532bfd",
      "tree": "a6c4f069d275f7be12327ecace879443b0587e8a",
      "parents": [
        "c356d990d509400aa58363851b396116a9c1d68b",
        "e66d8077d562b82052c2b4e35ddad493dc3d3a38"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 14:26:19 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 14:26:19 2026 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027\n"
    },
    {
      "commit": "e66d8077d562b82052c2b4e35ddad493dc3d3a38",
      "tree": "0fb1fd103132ba571b4c7324c542c3aecf661e51",
      "parents": [
        "f99722ed196c5b5e7c162c4ff05dc7dd889d9600"
      ],
      "author": {
        "name": "HyeongJun An",
        "email": "sammiee5311@gmail.com",
        "time": "Wed Nov 11 18:04:29 2026 +0900"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 14:26:11 2026 +0100"
      },
      "message": "ALSA: pcmtest: Add a volume control with event fault injection\n\nThe mixer-test selftest checks that a control sends an event when its\nvalue changes, and only then. No virtual driver has a control that\nbreaks this rule, so without broken hardware nothing shows that these\nchecks work.\n\nAdd a stereo volume control to pcmtest, and two parameters that make\nits put callback report the wrong result. With inject_ctl_no_event it\nreports no change, and with inject_ctl_spurious_event it reports a\nchange every time. Document both parameters.\n\nThe control is always present. It is named \"Test Playback Volume\", a\nname that the OSS mixer emulation does not map.\n\nWith both parameters off, mixer-test passes on the control. With\neither one on, only the matching event check fails.\n\nSigned-off-by: HyeongJun An \u003csammiee5311@gmail.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/c49e86d563eb751961bd40f4284c2549bf81126b.1794386073.git.sammiee5311@gmail.com\n"
    },
    {
      "commit": "f99722ed196c5b5e7c162c4ff05dc7dd889d9600",
      "tree": "522619a5fdbdf24cfd611bd3ab7f1517779ccbdf",
      "parents": [
        "7cb29f192b5cefbae738af1b94770133d9cad596"
      ],
      "author": {
        "name": "HyeongJun An",
        "email": "sammiee5311@gmail.com",
        "time": "Wed Nov 11 18:04:28 2026 +0900"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 14:26:10 2026 +0100"
      },
      "message": "ALSA: doc: pcmtest: Update to match the driver\n\nThe documentation does not match the driver in a few places.\n\nThe inject_open_err parameter is missing from the parameter list and\nfrom the list of callbacks that can return an error. The fill_mode\nparameter is a short, not a bool. The selftest is\nalsa/test-pcmtest-driver.c, not alsa/pcmtest-test.sh. Pause support is\nnot listed.\n\nFix these.\n\nSigned-off-by: HyeongJun An \u003csammiee5311@gmail.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/683abc21677cc2fea5e00d1b620b9722dc98fad0.1794386073.git.sammiee5311@gmail.com\n"
    },
    {
      "commit": "c356d990d509400aa58363851b396116a9c1d68b",
      "tree": "93f4cb274b1481e4c94d411d59dd3104b83eb082",
      "parents": [
        "01f44fb537ba078c9b90b367b2a14a0393aa0165",
        "a2dac609bfcc395a8c2e87d3ba1fc26ac50811d0"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 14:25:23 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 14:25:23 2026 +0100"
      },
      "message": "Merge branch \u0027for-linus\u0027\n"
    },
    {
      "commit": "a2dac609bfcc395a8c2e87d3ba1fc26ac50811d0",
      "tree": "31a250c538340fa6c0198e90b2bc61d279cb9926",
      "parents": [
        "1da5e525f0526a0b8e3b6c8c3208e6fad920f126"
      ],
      "author": {
        "name": "Fa-Iz Faadhillah Ibrahim",
        "email": "faiz.faadhillah@gmail.com",
        "time": "Thu Nov 12 00:21:08 2026 +0700"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 14:25:16 2026 +0100"
      },
      "message": "ALSA: hda/realtek: Update quirk for Acer Predator PHN16-72\n\nThe Acer Predator PHN16-72 (1025:1731) uses the ALC245 codec, but its\nmic-mute LED is not enabled by default. Replace the existing quirk with\nALC245_FIXUP_ACER_MICMUTE_LED quirk to enable the mic-mute LED chain the\nexisting ALC2XX_FIXUP_HEADSET_MIC quirk.\n\nFixes: 34e08ad3a8da (\"ALSA: hda/realtek: Add quirk for Acer Predator PHN16-72\")\nSigned-off-by: Fa-Iz Faadhillah Ibrahim \u003cfaiz.faadhillah@gmail.com\u003e\nLink: https://patch.msgid.link/20261111172108.30011-1-faiz.faadhillah@gmail.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "01f44fb537ba078c9b90b367b2a14a0393aa0165",
      "tree": "5927e1d47382f4ed4b434ebfc5bd609bf40bf615",
      "parents": [
        "7fde322cc8a93f066276e78df4a3747e0d272362",
        "7cb29f192b5cefbae738af1b94770133d9cad596"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 14:24:31 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 14:24:31 2026 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027\n"
    },
    {
      "commit": "7cb29f192b5cefbae738af1b94770133d9cad596",
      "tree": "f4c20e094f96708898544cd6e76b099f3f3c91ad",
      "parents": [
        "291d8707fa439ed4ec72552e7770177f6b6514e4"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 13:34:14 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 14:24:19 2026 +0100"
      },
      "message": "ALSA: pcm: oss: Compare max buffer size in bytes\n\nWe introduced the upper-limit check of the buffer size for PCM OSS to\n1MB bytes, but at one place (for PCM OSS plugin-base), the check was\napplied at a wrong position: the size is compared before scaling down\nto byte size, so it\u0027s limiting essentially to 1MB bits, i.e. 128kB\nbytes, instead.\n\nAlthough 128kB is enough in practical use cases, it\u0027s better to align\nwith other places for the code consistency.  So this patch moves the\ncheck to the right position after conversion to bytes, so that it can\nlimit to the correct size, 1MB bytes.\n\nFixes: efb6402c3c4a (\"ALSA: oss: Fix PCM OSS buffer allocation overflow\")\nLink: https://patch.msgid.link/20261112123430.684056-1-tiwai@suse.de\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "7fde322cc8a93f066276e78df4a3747e0d272362",
      "tree": "bdef58b773744abf2f0d4c66b1508b4a7fda6077",
      "parents": [
        "3de7985f17fbbfdf00a787c66395e4526dca1a88",
        "1da5e525f0526a0b8e3b6c8c3208e6fad920f126"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 13:39:22 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 13:39:22 2026 +0100"
      },
      "message": "Merge branch \u0027for-linus\u0027\n"
    },
    {
      "commit": "1da5e525f0526a0b8e3b6c8c3208e6fad920f126",
      "tree": "0a40455c8e5fbedf95ca93b2ad656cd58d9823b7",
      "parents": [
        "5d325345185015024a86abca4cc5fa6a3f75294e"
      ],
      "author": {
        "name": "Kailang Yang",
        "email": "kailang@realtek.com",
        "time": "Thu Nov 12 15:32:16 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 13:38:52 2026 +0100"
      },
      "message": "ALSA: hda/realtek - remove headphone MIC support for Dell Pro QC1255\n\nThis unit don\u0027t support headphone MIC.\nThe popping sound will disappear when you remove it.\n\nFixes: 97272a5704bf (\"ALSA: hda/realtek - Fixed Headphone noise issue for Dell QCM1255\")\nSigned-off-by: Kailang Yang \u003ckailang@realtek.com\u003e\nLink: https://lore.kernel.org/3c8129fbfa6d4ee2b464735f2f31dffa@realtek.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "3de7985f17fbbfdf00a787c66395e4526dca1a88",
      "tree": "d32c866d913f9cc6c942952b464ed676af5a1331",
      "parents": [
        "4c48aed8273f83ca6457432c58e6795a782372ea",
        "5d325345185015024a86abca4cc5fa6a3f75294e"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 13:38:10 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 13:38:10 2026 +0100"
      },
      "message": "Merge branch \u0027for-linus\u0027\n"
    },
    {
      "commit": "5d325345185015024a86abca4cc5fa6a3f75294e",
      "tree": "4f3752b9d764f58c649aca4454a19871e451962f",
      "parents": [
        "81d17d6911a79acdb69d6cfb213c847e84df18cb"
      ],
      "author": {
        "name": "Sergei Nizovtsev",
        "email": "snizovtsev@cloudlinux.com",
        "time": "Thu Nov 12 10:48:54 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 13:36:15 2026 +0100"
      },
      "message": "ALSA: caiaq: Kill EP1 URB before unregistering the input device\n\nsnd_disconnect() unregisters the input device via\nsnd_usb_caiaq_input_disconnect() and only afterwards kills the EP1\ncommand URB (cdev-\u003eep1_in_urb). The EP1 completion handler\nusb_ep1_command_reply_dispatch() feeds snd_usb_caiaq_input_dispatch()\nfor EP1_CMD_READ_{ERP,ANALOG,IO} replies, which report into\ncdev-\u003einput_dev. Since commit b04dcbb7f7b1 (\"ALSA: caiaq: Use\nsnd_card_free_when_closed() at disconnection\") the input device is\nunregistered from snd_usb_caiaq_input_disconnect() but cdev-\u003einput_dev\nis cleared only later, in snd_usb_caiaq_input_free() from the card\ndestructor. As the dispatch guard only tests cdev-\u003einput_dev for NULL,\nan EP1 reply that completes after input_unregister_device() but before\ncdev-\u003eep1_in_urb is killed reports into an input device that has\nalready been unregistered and, with no evdev client holding it open,\nfreed.\n\nNormally the window is closed by the USB core: usb_unbind_interface()\ncalls usb_disable_interface() before -\u003edisconnect(), which flushes the\nEP1 URB as long as endpoint 0x81 belongs to the interface being\nunbound. But caiaq addresses EP1 through the device-wide pipe\nusb_rcvbulkpipe(usb_dev, 0x1) without checking which interface owns\nthe endpoint. If a device declares it in another interface, the URB\nstays live across snd_disconnect() of the interface that owns the card.\n\nThis needs a crafted device descriptor; a device that has EP1 in the\ninterface caiaq is bound to is not affected.\n\nKill cdev-\u003eep1_in_urb (and the paired midi_out_urb) before the input\nand audio disconnect helpers, so no EP1 completion can run once the\ninput device has been unregistered.\n\nReproduced under KASAN with raw-gadget + dummy_hcd emulating an Audio\nKontrol 1 (17cc:0815) with the EP1 bulk pair in interface 1: only\ninterface 0 was bound to snd-usb-caiaq and then unbound through sysfs\nwhile the gadget flooded EP1 with EP1_CMD_READ_ERP replies. With no PCM\nstream running the window is very short and was only hit by stalling\nthe unbinding CPU with a kgdb breakpoint at\nsnd_usb_caiaq_audio_disconnect(). With the fix applied, the same test\nruns clean.\n\n  BUG: KASAN: slab-use-after-free in input_event+0x3a/0xc0\n  Read of size 8 at addr ffff8880151a4028 by task sh/118\n\n  Call Trace:\n   \u003cIRQ\u003e\n   input_event+0x3a/0xc0\n   snd_usb_caiaq_input_dispatch+0xab2/0xf00\n   usb_ep1_command_reply_dispatch+0x1f3/0x580\n   __usb_hcd_giveback_urb+0x246/0x400\n   dummy_timer+0x1415/0x3380\n   __hrtimer_run_queues+0x39d/0x800\n   hrtimer_run_softirq+0x187/0x2d0\n   handle_softirqs+0x1ff/0x930\n   __irq_exit_rcu+0x15b/0x210\n   irq_exit_rcu+0xe/0x20\n   sysvec_apic_timer_interrupt+0x81/0xb0\n   \u003c/IRQ\u003e\n   \u003cTASK\u003e\n   asm_sysvec_apic_timer_interrupt+0x1a/0x20\n  RIP: 0010:snd_usb_caiaq_audio_disconnect+0x0/0x70\n   snd_disconnect+0x81/0x110\n   usb_unbind_interface+0x1a0/0x860\n   device_release_driver_internal+0x2c5/0x470\n   unbind_store+0xde/0x100\n   \u003c/TASK\u003e\n\n  Allocated by task 80:\n   input_allocate_device+0x47/0x340\n   snd_usb_caiaq_input_init+0x4c/0x1ac0\n   snd_probe+0xab3/0x1160\n   usb_probe_interface+0x2ea/0x810\n\n  Freed by task 118:\n   kfree+0x1ea/0x5c0\n   input_dev_release+0xab/0xd0\n   device_release+0xcf/0x250\n   kobject_put+0x169/0x320\n   snd_disconnect+0x79/0x110\n   usb_unbind_interface+0x1a0/0x860\n\nFixes: b04dcbb7f7b1 (\"ALSA: caiaq: Use snd_card_free_when_closed() at disconnection\")\nCc: stable@vger.kernel.org\nSigned-off-by: Sergei Nizovtsev \u003csnizovtsev@cloudlinux.com\u003e\nAssisted-by: Claude:claude-opus-4-8\nLink: https://patch.msgid.link/20261112094904.2430318-1-snizovtsev@cloudlinux.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "81d17d6911a79acdb69d6cfb213c847e84df18cb",
      "tree": "8ef57d0c0cd38bbb28f995a9521b12217a8b49ad",
      "parents": [
        "ae28ba98f55a2f30fed57371899b8cecd7cbde64"
      ],
      "author": {
        "name": "Mikael Magnusson",
        "email": "mikachu@gmail.com",
        "time": "Thu Nov 12 10:46:36 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 12 13:35:05 2026 +0100"
      },
      "message": "ALSA: pcm: update state after xrun\n\nIf the snd_pcm_update_hw_ptr call from snd_pcm_status is what triggers\nthe xrun state (eg, as opposed to an IRQ), the returned status-\u003estate\nwas stale and told userspace the device was still playing, so they could\nget confused about device state and hang indefinitely.\n\nCloses: https://bugzilla.kernel.org/show_bug.cgi?id\u003d222201\nSigned-off-by: Mikael Magnusson \u003cmikachu@gmail.com\u003e\nLink: https://patch.msgid.link/20261112094636.13671-1-mikachu@gmail.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "4c48aed8273f83ca6457432c58e6795a782372ea",
      "tree": "642d4783756cc2a439bbba8a8ade0f787d5adbd3",
      "parents": [
        "3ca887175415b6f5b088d4747f46f5ca080af618",
        "ae28ba98f55a2f30fed57371899b8cecd7cbde64"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Nov 11 18:23:03 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Nov 11 18:23:03 2026 +0100"
      },
      "message": "Merge branch \u0027for-linus\u0027\n"
    },
    {
      "commit": "ae28ba98f55a2f30fed57371899b8cecd7cbde64",
      "tree": "4550eadd0ed603e61188151757dd37a8c9279070",
      "parents": [
        "eed0e9583a290e6adbe3a8480bdae911f31e1ed9"
      ],
      "author": {
        "name": "Angel J",
        "email": "iamanaws@httpd.dev",
        "time": "Tue Nov 03 07:03:36 2026 -0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Nov 11 18:22:07 2026 +0100"
      },
      "message": "ALSA: hda/realtek: Fix the Dell XPS 8940 headset microphone\n\nThe Dell XPS 8940 (1028:09c5) has an ALC3861 codec (0x10ec0899).\nIts BIOS marks the headset microphone pin at NID 0x19 as disconnected\n(0x411111f0). With no external microphone input in the pin configuration,\nthe generic parser creates a shared headphone/mic input on NID 0x1b\ninstead. Headphone playback works, but the headset microphone is silent.\n\nOverride NID 0x19 as a front microphone without independent presence\ndetection. This gives the generic parser the dedicated microphone\ninput and preserves NID 0x1b for simultaneous headphone playback.\n\nI encountered this issue on my XPS 8940. Similar symptoms were also\nreported by a user on Ubuntu:\nhttps://bugs.launchpad.net/bugs/1971232\n\nCc: stable@vger.kernel.org\nAssisted-by: Codex (GPT-6.1 Sol)\nSigned-off-by: Angel J \u003ciamanaws@httpd.dev\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/20261103150336.507675-1-iamanaws@httpd.dev\n"
    },
    {
      "commit": "3ca887175415b6f5b088d4747f46f5ca080af618",
      "tree": "127c62e824b4f02a3f66eed0575cb65cf2eb76e0",
      "parents": [
        "190eab23054b8981eda9674e0eea19f4912ca873",
        "291d8707fa439ed4ec72552e7770177f6b6514e4"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Nov 11 09:56:31 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Nov 11 09:56:31 2026 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027\n"
    },
    {
      "commit": "291d8707fa439ed4ec72552e7770177f6b6514e4",
      "tree": "00c413a71517325e5b6f647b9f646235dccbbcf8",
      "parents": [
        "c89ed856f3acbb0148aa0ee07cdbae98b4b65d8b"
      ],
      "author": {
        "name": "Sreeraj S Kurup",
        "email": "sreekuttan2156239@gmail.com",
        "time": "Sun Nov 08 14:12:19 2026 +0000"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Nov 11 09:56:22 2026 +0100"
      },
      "message": "ALSA: control: Validate element info in compat ioctl\n\nThe compat ioctl code calls the control\u0027s info callback directly\nin get_ctl_type() to get the element type and count.\n\nUnlike the normal control info path, this code does not validate\nthe information returned by the callback.\n\nThe compat read and write handlers use the returned type and\ncount to access fixed-size value buffers and calculate copy\nsizes.\n\nAn invalid type or an element count larger than the supported\nlimit can cause these handlers to access memory outside the\nexpected buffer boundaries.\n\nCall snd_ctl_check_elem_info() after the info callback to\nvalidate the returned type and count before using them.\n\nThis keeps the compat ioctl path from using invalid control\nmetadata when accessing its value buffers.\n\nSigned-off-by: Sreeraj S Kurup \u003csreekuttan2156239@gmail.com\u003e\nLink: https://patch.msgid.link/20261108141219.7655-1-sreekuttan2156239@gmail.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "190eab23054b8981eda9674e0eea19f4912ca873",
      "tree": "0c45fb03631e0c6bff619935f4644a2488b2e2c6",
      "parents": [
        "b974c8db5ca8f7d33b46c6026107797ad0febf81",
        "c89ed856f3acbb0148aa0ee07cdbae98b4b65d8b"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Nov 11 09:54:43 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Nov 11 09:54:43 2026 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027\n"
    },
    {
      "commit": "c89ed856f3acbb0148aa0ee07cdbae98b4b65d8b",
      "tree": "2ce5a91befde91aa40bae145f63b5960e22c7a9f",
      "parents": [
        "58394f47b4382bb89c023e3ffabda37b5edc5f67"
      ],
      "author": {
        "name": "HyeongJun An",
        "email": "sammiee5311@gmail.com",
        "time": "Tue Nov 10 10:22:13 2026 +0900"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Nov 11 09:54:25 2026 +0100"
      },
      "message": "selftests/alsa: Add a test for the sequencer UMP conversion of RPN/NRPN\n\nThe sequencer converts MIDI 1.0 CC and CONTROL14 events to UMP for\nUMP clients. Add a test that sends such events from a legacy client to\na UMP MIDI 2.0 client and checks the RPN/NRPN packets it receives, and\none that checks that a UMP MIDI 1.0 client gets the CCs as they are.\n\nThe cases cover switching between RPN and NRPN, Data Entry sent with\nnothing selected, repeated Data Entry, Null RPN and NRPN, and the\nCONTROL14 path. Some of them come from the KUnit test in Alyandra\nZahran Nadhir\u0027s patch.\n\nThe test skips when /dev/snd/seq can\u0027t be opened or the kernel has no\nUMP support in the sequencer.\n\nLink: https://lore.kernel.org/all/20261107111056.667-1-alyandra5b@gmail.com/\nSigned-off-by: HyeongJun An \u003csammiee5311@gmail.com\u003e\nLink: https://patch.msgid.link/20261110012213.740288-1-sammiee5311@gmail.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "58394f47b4382bb89c023e3ffabda37b5edc5f67",
      "tree": "5226cca74c385b0701b293e37e419ce7f582059c",
      "parents": [
        "d7a9cc2e5bdb4a2a3222bf5306ddabbc06a71f06"
      ],
      "author": {
        "name": "HyeongJun An",
        "email": "sammiee5311@gmail.com",
        "time": "Sun Nov 08 21:47:51 2026 +0900"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Nov 11 09:54:25 2026 +0100"
      },
      "message": "ALSA: seq: ump: Fix RPN/NRPN state handling at MIDI 1.0 CC conversion\n\nThe sequencer converts MIDI 1.0 CC and CONTROL14 events to MIDI 2.0 UMP\nwith the same RPN/NRPN state handling as the UMP core helper. It has\nthe same problems:\n\n- Data Entry without a selection is sent at the next RPN/NRPN\n  selection, with the number only half updated.\n- A repeated Data Entry for the same RPN is not sent right away and\n  ends up as above.\n- A Null NRPN is not handled.\n\nApply the same fix as for the UMP core helper to both the CC and the\nCONTROL14 paths.\n\nFixes: e9e02819a98a (\"ALSA: seq: Automatic conversion of UMP events\")\nFixes: a4ff92ff0bdd (\"ALSA: seq: ump: Transmit RPN/NRPN message at each MSB/LSB data reception\")\nCc: stable@vger.kernel.org\nLink: https://lore.kernel.org/all/20261104121508.3972314-1-sammiee5311@gmail.com/\nSigned-off-by: HyeongJun An \u003csammiee5311@gmail.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/81e86fb562df29953314f754b1daace962e85566.1794141913.git.sammiee5311@gmail.com\n"
    },
    {
      "commit": "d7a9cc2e5bdb4a2a3222bf5306ddabbc06a71f06",
      "tree": "d3279fe5a0c8ed1a33de8141a3ef663d82ea36ad",
      "parents": [
        "c1aa230682650ec3ebd28e271523dc0aaa149baa"
      ],
      "author": {
        "name": "HyeongJun An",
        "email": "sammiee5311@gmail.com",
        "time": "Sun Nov 08 21:47:50 2026 +0900"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Nov 11 09:54:25 2026 +0100"
      },
      "message": "ALSA: ump: Fix RPN/NRPN state handling at MIDI 1.0 CC conversion\n\nThe MIDI 1.0 to UMP converter keeps the RPN/NRPN selection and the\nData Entry values per channel. Since commit e6ce8a28c768 (\"ALSA: ump:\nTransmit RPN/NRPN message at each MSB/LSB data reception\"), a CC 98 to\n101 also sends the pending data. The state handling has a few problems:\n\n- Data Entry after a Null RPN, or before any selection, stays pending.\n  The next RPN/NRPN selection then sends it, with the number only\n  half updated.\n- The fill_rpn() clears the selection after each send. A second Data\n  Entry for the same RPN is not sent and ends up as above.\n- A Null NRPN is not handled, and its data goes to NRPN 127/127.\n\nKeep the selection after a send and clear only the data, and drop the\ndata when nothing is selected. On a Null RPN or NRPN, clear the\nselection and the data but keep the 7f/7f numbers, as a MIDI 1.0\nreceiver does. Commit 50a6dd19dca9 (\"ALSA: ump: Explicitly reset RPN\nwith Null RPN\") reset them to 0, so when the LSB was already 127, the\nsecond message of a Null selected RPN 0/127 again. This follows the UMP\nspec (M2-104-UM D.3.3), which holds the latest RPN/NRPN numbers and does\nnot translate an RPN/NRPN Null.\n\nFixes: 0b5288f5fe63 (\"ALSA: ump: Add legacy raw MIDI support\")\nFixes: e6ce8a28c768 (\"ALSA: ump: Transmit RPN/NRPN message at each MSB/LSB data reception\")\nCc: stable@vger.kernel.org\nLink: https://lore.kernel.org/all/20261104121508.3972314-1-sammiee5311@gmail.com/\nSigned-off-by: HyeongJun An \u003csammiee5311@gmail.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/22377a352b928cf3db750c32daf54250fb9477ff.1794141913.git.sammiee5311@gmail.com\n"
    },
    {
      "commit": "c1aa230682650ec3ebd28e271523dc0aaa149baa",
      "tree": "c67de7a1c63ba12f99de331ab0f8cf93ed31d687",
      "parents": [
        "ba8dcbf4a664be81790675f6e3af7ca3ec76788e"
      ],
      "author": {
        "name": "Alyandra Zahran Nadhir",
        "email": "alyandra5b@gmail.com",
        "time": "Sun Nov 08 21:47:49 2026 +0900"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Nov 11 09:54:25 2026 +0100"
      },
      "message": "ALSA: seq: ump: Clear stale selectors in sequencer conversion\n\nThe sequencer MIDI 2.0 converter tracks RPN and NRPN selection flags\nseparately. When the controller stream switches selector type, the\nprevious flag remains set; fill_rpn() checks RPN first and can encode\nsubsequent NRPN data as RPN.\n\nFlush pending parameter data with the old selector, then clear the\nopposite selector before recording new state in both CC and Control14\nevent paths.\n\nFixes: e9e02819a98a (\"ALSA: seq: Automatic conversion of UMP events\")\nCc: stable@vger.kernel.org\nSigned-off-by: Alyandra Zahran Nadhir \u003calyandra5b@gmail.com\u003e\n[HyeongJun An: drop the KUnit test, fix the subject, add Fixes and stable Cc]\nSigned-off-by: HyeongJun An \u003csammiee5311@gmail.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/3c5cb0ef0023c4d2e835805498a14751a92feda0.1794141913.git.sammiee5311@gmail.com\n"
    },
    {
      "commit": "ba8dcbf4a664be81790675f6e3af7ca3ec76788e",
      "tree": "1b6c77fb05c67f23076a66238a6bdbc115553810",
      "parents": [
        "ad40aa59a6ca9bf343346191f069f1153bb06aa3"
      ],
      "author": {
        "name": "Alyandra Zahran Nadhir",
        "email": "alyandra5b@gmail.com",
        "time": "Sun Nov 08 21:47:48 2026 +0900"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Nov 11 09:54:24 2026 +0100"
      },
      "message": "ALSA: ump: Clear stale RPN selector on NRPN change\n\nThe legacy-to-UMP converter keeps separate RPN and NRPN selector\nflags. When a stream changes selector type without sending data first,\nboth flags remain set and fill_rpn() gives RPN priority, so subsequent\nNRPN data is emitted as RPN.\n\nClear the previous selector flag after flushing any pending parameter\ndata and before recording the newly selected parameter type.\n\nFixes: 0b5288f5fe63 (\"ALSA: ump: Add legacy raw MIDI support\")\nCc: stable@vger.kernel.org\nSigned-off-by: Alyandra Zahran Nadhir \u003calyandra5b@gmail.com\u003e\n[HyeongJun An: capitalize the subject, add Fixes and stable Cc]\nSigned-off-by: HyeongJun An \u003csammiee5311@gmail.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/3ed25a99e07b8cd803f9bd6eb0f88ef00ae23f4b.1794141913.git.sammiee5311@gmail.com\n"
    },
    {
      "commit": "eed0e9583a290e6adbe3a8480bdae911f31e1ed9",
      "tree": "3ee3ff99f5cb5cc44700efa0775010ec22220202",
      "parents": [
        "031d437699ce693e4008acfca28b5f477839d1b7"
      ],
      "author": {
        "name": "Gichoon Han",
        "email": "gichoon.han@samsung.com",
        "time": "Tue Nov 10 15:00:21 2026 +0900"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Tue Nov 10 11:45:50 2026 +0100"
      },
      "message": "ALSA: usb-audio: Drop capture packets with bogus actual_length\n\nretire_capture_urb() copies urb-\u003eiso_frame_desc[i].actual_length bytes\nout of urb-\u003etransfer_buffer at the packet\u0027s offset, but never checks\nthat value against the requested packet length.  A host controller\nreporting more data than requested makes memcpy() read past the end\nof the URB transfer buffer.\n\nCommit 06be918062ad (\"ALSA: usb-audio: Bound packet copies by the PCM\nbuffer size\") clamps the count to the PCM ring buffer size, which\nprotects the destination.  The source slot is only ep-\u003ecurpacksize\nbytes per packet, though, so the over-read remains.\n\nThis was hit on an ARM32 system (vendor 5.4 kernel; the code path is\nunchanged in mainline) with a full-speed UAC1 microphone behind a\nhigh-speed hub, i.e. the EHCI siTD path.  sitd_complete() computes\nactual_length as desc-\u003elength - SITD_LENGTH(t); the controller\nreported a remaining length larger than the programmed one, the value\nwrapped to ~4G, and the capture copy faulted on the first unmapped\npage after the URB buffer:\n\n  Unable to handle kernel paging request at virtual address e8756000\n  Internal error: Oops: 7 [#1] PREEMPT SMP ARM\n  r3 : 00000000  r2 : 0001e700  r1 : e8756000  r0 : e878fc80\n  Code: ba000002 f5d1f03c f5d1f05c f5d1f07c (e8b151f8)\n\nA packet can never legitimately carry more than its requested length,\nso warn and skip it instead of copying.\n\nFixes: 1da177e4c3f4 (\"Linux-2.6.12-rc2\")\nCc: stable@vger.kernel.org\nSigned-off-by: Gichoon Han \u003cgichoon.han@samsung.com\u003e\nLink: https://patch.msgid.link/20261110060021.2146383-1-gichoon.han@samsung.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "031d437699ce693e4008acfca28b5f477839d1b7",
      "tree": "fc43f0d542ab5015ec271683b9ae2ecd7a3b9adb",
      "parents": [
        "fda103c1432f344e1cd548f346d157b1e67ee7c5"
      ],
      "author": {
        "name": "Lianqin Hu",
        "email": "hulianqin@vivo.com",
        "time": "Tue Nov 10 10:00:58 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Tue Nov 10 11:42:49 2026 +0100"
      },
      "message": "ALSA: usb-audio: Add iface reset and delay quirk for RYDZ Technology Piva AC20\n\nSetting up the interface when suspended/resuming fails on this card.\nAdding a reset and delay quirk will eliminate this problem.\n\nusb 1-1.4.1: New USB device found, idVendor\u003d0bda, idProduct\u003d8808\nusb 1-1.4.1: New USB device strings: Mfr\u003d1, Product\u003d2, SerialNumber\u003d3\nusb 1-1.4.1: Product: Piva AC20.\nusb 1-1.4.1: Manufacturer: RYDZ Technology\nusb 1-1.4.1: SerialNumber: 202511241125\n\nSigned-off-by: Lianqin Hu \u003chulianqin@vivo.com\u003e\nLink: https://patch.msgid.link/20261110020058.31037-1-hulianqin@vivo.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "b974c8db5ca8f7d33b46c6026107797ad0febf81",
      "tree": "67f2e730799502ced2ea24ce5f30b38a9e439cad",
      "parents": [
        "be32538205a040fac65798c6c11c1177f7383112",
        "ad40aa59a6ca9bf343346191f069f1153bb06aa3"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Tue Nov 10 11:42:42 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Tue Nov 10 11:42:42 2026 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027\n"
    },
    {
      "commit": "ad40aa59a6ca9bf343346191f069f1153bb06aa3",
      "tree": "b5010e079f5ba2c0826cacc265371ecd72674256",
      "parents": [
        "b606b54b2752beb94a62902430287ec8dec4a048"
      ],
      "author": {
        "name": "Sreeraj S Kurup",
        "email": "sreekuttan2156239@gmail.com",
        "time": "Mon Nov 09 16:35:31 2026 +0000"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Tue Nov 10 11:27:18 2026 +0100"
      },
      "message": "ALSA: control: Fix parsing of numeric fields\n\nparse_uint() passes the remaining input string to kstrtoull().\n\nWhen the input contains comma-separated fields, the string\ncontains both the numeric value and the following fields.\n\nFor example, with:\n\ndevice\u003d1,subdevice\u003d0,name\u003dMaster\n\nkstrtoull() receives \"1,subdevice\u003d0,name\u003dMaster\" and fails\nto parse the numeric value.\n\nStop parsing at the next comma and pass only the numeric\nfield to kstrtouint().\n\nMake all parse_*() functions return the end of the current\nsubstring, leaving delimiter handling to set_led_id().\nTemporarily terminate the numeric substring in parse_uint()\nbefore calling kstrtouint().\n\nThis allows numeric fields to be parsed correctly in\ncomma-separated input.\n\nFixes: a135dfb5de15 (\"ALSA: led control - add sysfs kcontrol LED marking layer\")\nSigned-off-by: Sreeraj S Kurup \u003csreekuttan2156239@gmail.com\u003e\nLink: https://patch.msgid.link/20261109163531.2639-1-sreekuttan2156239@gmail.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "b606b54b2752beb94a62902430287ec8dec4a048",
      "tree": "1495c87d5e1a7486801040b3afae887b7aa47ade",
      "parents": [
        "42b56b71b92c0483ef19d936880d2e9fac0be369"
      ],
      "author": {
        "name": "Xinyu Wei",
        "email": "xinyuwei1024@gmail.com",
        "time": "Sun Nov 08 21:03:03 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Mon Nov 09 15:11:21 2026 +0100"
      },
      "message": "ALSA: usb-audio: fix the format bits of the Steinberg UR22C\n\nIn configuration 2 of the Steinberg UR22C (0499:172f), the capture\nAS_GENERAL descriptor reports bmFormats \u003d 0xffffffff, causing the driver\nto advertise U8, S32_LE, FLOAT_LE, MU_LAW, A_LAW and SPECIAL even though\nthe hardware only supports 32-bit PCM (S32_LE).\n\nBecause playback is implicit-feedback synced to the capture endpoint\n(0x81 on interface 2), hw_rule_format() restricts playback to the active\ncapture stream\u0027s format.  If capture is opened first with a non-S32_LE\nformat such as FLOAT_LE, the intersection with playback\u0027s S32_LE-only\nformat mask is empty and playback fails to open with -EINVAL.\n\nClamp bmFormats to UAC2 PCM (1) in parse_audio_format_i_type() when\nchip-\u003eusb_id is 0499:172f and format \u003d\u003d 0xffffffff, matching the\nexisting DS4201 workaround below it.\n\nSigned-off-by: Xinyu Wei \u003cxinyuwei1024@gmail.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/20261108130303.387288-3-xinyuwei1024@gmail.com\n"
    },
    {
      "commit": "42b56b71b92c0483ef19d936880d2e9fac0be369",
      "tree": "c92bc35513e4d0ae1ee1918a5ce3c7a10e169269",
      "parents": [
        "94dd534d2eb96ceea4e36f3d3f0651a1abaa9b99"
      ],
      "author": {
        "name": "Xinyu Wei",
        "email": "xinyuwei1024@gmail.com",
        "time": "Sun Nov 08 21:03:02 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Mon Nov 09 15:08:06 2026 +0100"
      },
      "message": "ALSA: usb-audio: name the interfaces of the Steinberg UR22C\n\nConfiguration 2 of the Steinberg UR22C (0499:172f) exposes 6 playback\nand 8 capture channels over standard UAC2 descriptors with\nbInterfaceClass set to 0xFF.\n\nBecause the interfaces are vendor-class, they fall into the Yamaha\ncatch-all entry and QUIRK_AUTODETECT fails to set them up:\ncreate_auto_pcm_quirk() rejects 6-byte UAC2 format descriptors, and\ninterface 0 (audiocontrol, 1 altsetting, 0 endpoints) is rejected by\nboth auto-PCM and auto-MIDI paths, leaving interfaces 0-2 unbound with\nno PCM registered.\n\nAdd a USB_DEVICE_VENDOR_SPEC composite entry before the Yamaha catch-all:\n - interface 0: QUIRK_DATA_STANDARD_MIXER\n - interfaces 1, 2: QUIRK_DATA_STANDARD_AUDIO (6-ch playback, 8-ch capture)\n - interfaces 3, 4: QUIRK_DATA_MIDI_YAMAHA (DIN MIDI and DSP mixer\n   control; both carry Yamaha-style CS_INTERFACE jack descriptors with\n   no CS_ENDPOINT descriptor)\n\nConfiguration 1 uses bInterfaceClass 0x01 and is unaffected.  The\nexisting IMPLICIT_FB_FIXED_DEV(0x0499, 0x172f, 0x81, 2) entry in\nimplicit.c applies to both configurations unchanged.\n\nSigned-off-by: Xinyu Wei \u003cxinyuwei1024@gmail.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/20261108130303.387288-2-xinyuwei1024@gmail.com\n"
    },
    {
      "commit": "be32538205a040fac65798c6c11c1177f7383112",
      "tree": "13b12fca23cc58aee18bc1a3e1ee2c8d4f8475b9",
      "parents": [
        "3d669d178e7b2063e411535861499806c2d94d1c",
        "94dd534d2eb96ceea4e36f3d3f0651a1abaa9b99"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sun Nov 08 10:28:16 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sun Nov 08 10:28:16 2026 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027\n"
    },
    {
      "commit": "94dd534d2eb96ceea4e36f3d3f0651a1abaa9b99",
      "tree": "b99f6a80cfc22c56eff97276267b26ef72797176",
      "parents": [
        "ba9bccdf711ac6fec13240c9812bd859ce1f7743"
      ],
      "author": {
        "name": "Thorsten Blum",
        "email": "blum@kernel.org",
        "time": "Sat Nov 07 15:09:48 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sun Nov 08 10:28:09 2026 +0100"
      },
      "message": "ALSA: info: Use scnprintf() in snd_info_card_create()\n\nWhile the current code works correctly, replace the unbounded sprintf()\nwith scnprintf() to bound the formatted string to the str buffer.\n\nSigned-off-by: Thorsten Blum \u003cblum@kernel.org\u003e\nLink: https://patch.msgid.link/20261107140949.350482-2-blum@kernel.org\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "ba9bccdf711ac6fec13240c9812bd859ce1f7743",
      "tree": "80c5048c0710147f9d2f8fbf3d38f7e86264d98b",
      "parents": [
        "46b6ece07e74aef8273e9e181676f3ddb6493315"
      ],
      "author": {
        "name": "Cristiano Souza",
        "email": "cristianocps@gmail.com",
        "time": "Fri Nov 06 23:26:43 2026 -0300"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Nov 07 10:23:27 2026 +0100"
      },
      "message": "ALSA: usb-audio: Skip broken playback feature unit on XiiSound chips\n\nWeltrend XiiSound-based devices (040b:0897, e.g. Redragon H878\nwireless headset) expose a UAC1 playback feature unit whose volume\nand mute controls are unusable in practice: the reported per-channel\ndB range is only 0..+0.39dB, yet setting any volume below the\nmaximum mutes one or even both channels, and the mapping between\nlogical and physical channels is unreliable.  Any attempt by\nuserspace to drive the hardware volume therefore results in muted\nor one-sided audio.\n\nIgnore the playback feature unit via a usbmix_name_map so that\nuserspace falls back to software volume, and pin the unit\u0027s master\nand per-channel volumes to the reported maximum with mutes cleared\nwhen the mixer is created, so the signal path always stays fully\nopen.  The capture path (microphone feature unit) is not affected\nand keeps working.\n\nTested with a Redragon H878 wireless headset on PipeWire/PulseAudio:\nstereo output works on both channels at any volume, software volume\napplies smoothly, and mute/unmute works.\n\nCc: stable@vger.kernel.org\nSigned-off-by: Cristiano Souza \u003ccristianocps@gmail.com\u003e\nLink: https://patch.msgid.link/20261107022643.135168-1-cristianocps@gmail.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "3d669d178e7b2063e411535861499806c2d94d1c",
      "tree": "ef8d6540e25c93b5faa7ea648e04a19436e06749",
      "parents": [
        "c789734543b914e038554b52530f2c65026f8470",
        "fda103c1432f344e1cd548f346d157b1e67ee7c5"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Nov 07 10:11:04 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Nov 07 10:11:04 2026 +0100"
      },
      "message": "Merge branch \u0027for-linus\u0027\n"
    },
    {
      "commit": "c789734543b914e038554b52530f2c65026f8470",
      "tree": "6077d596e4384493825c9fe50197c75a90eb4d76",
      "parents": [
        "8614bc57576e99f1711a61f261f53fb5a5061847",
        "46b6ece07e74aef8273e9e181676f3ddb6493315"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Nov 07 10:11:00 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Nov 07 10:11:00 2026 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027\n"
    },
    {
      "commit": "46b6ece07e74aef8273e9e181676f3ddb6493315",
      "tree": "2222cc2a8876413126cc11e52d360da8e31647f5",
      "parents": [
        "80b8c4a92a2750183293708ef0fbf648ac10f13d"
      ],
      "author": {
        "name": "Yifei Gao",
        "email": "gyf161023@gmail.com",
        "time": "Fri Nov 06 20:50:47 2026 +0000"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Nov 07 10:10:44 2026 +0100"
      },
      "message": "ALSA: hdspm: Take hdspm-\u003elock when masking MIDI interrupts in IRQ handler\n\nsnd_hdspm_interrupt() clears a MIDI interrupt enable bit in\nhdspm-\u003econtrol_register without hdspm-\u003elock. Every other update holds\nthat lock. This includes snd_hdspm_midi_input_read(), which sets the bit\nagain, since commit c0da00145f9a (\"ALSA: hdspm - Fix locking in\nsnd_hdspm_midi_input_read\"). Updates racing with the handler on another\nCPU can be lost. This can stall MIDI input or revert a control setting.\n\nTake hdspm-\u003elock in the handler. All other users of the lock already\nrun with interrupts disabled.\n\nFound by static analysis. Compile-tested only; no hardware available.\n\nFixes: 763f356cd8de (\"[ALSA] Add HDSP MADI driver\")\nAssisted-by: Claude:claude-opus-5-5\nSigned-off-by: Yifei Gao \u003cgyf161023@gmail.com\u003e\nLink: https://patch.msgid.link/20261106205050.8048-3-gyf161023@gmail.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "80b8c4a92a2750183293708ef0fbf648ac10f13d",
      "tree": "80a71fe27b0c742233fa2e2afb1c1ff59c17fe82",
      "parents": [
        "988eb45d29808f9d9c1b3ea41019d15e75203840"
      ],
      "author": {
        "name": "Yifei Gao",
        "email": "gyf161023@gmail.com",
        "time": "Fri Nov 06 20:50:46 2026 +0000"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Nov 07 10:10:36 2026 +0100"
      },
      "message": "ALSA: hdsp: Serialize control_register updates in MIDI input paths\n\nhdsp-\u003econtrol_register is a software copy of a hardware register. It is\nupdated read-modify-write under hdsp-\u003elock, except in two MIDI paths:\nsnd_hdsp_midi_input_read() holds only the per-port hmidi-\u003elock, and\nsnd_hdsp_interrupt() holds no lock at all. Lock holders disable\ninterrupts only on the local CPU, so updates can be lost across CPUs.\nA lost MIDI interrupt enable bit stops MIDI input on that port. Other\nlost updates revert control or PCM settings.\n\nTake hdsp-\u003elock in both places. In snd_hdsp_midi_input_read(), drop\nhmidi-\u003elock before taking it, as commit c0da00145f9a (\"ALSA: hdspm -\nFix locking in snd_hdspm_midi_input_read\") did for hdspm.\n\nFound by static analysis. Compile-tested only; no hardware available.\n\nFixes: 1da177e4c3f4 (\"Linux-2.6.12-rc2\")\nAssisted-by: Claude:claude-opus-5-5\nSigned-off-by: Yifei Gao \u003cgyf161023@gmail.com\u003e\nLink: https://patch.msgid.link/20261106205050.8048-2-gyf161023@gmail.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "988eb45d29808f9d9c1b3ea41019d15e75203840",
      "tree": "28a1798f5f375c4fe5d15c90e0653fb7f5368f0e",
      "parents": [
        "9626eb83c6f0f6813a5a56944a9eccd800041cc1"
      ],
      "author": {
        "name": "Sreeraj S Kurup",
        "email": "sreekuttan2156239@gmail.com",
        "time": "Fri Nov 06 18:39:53 2026 +0000"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Nov 07 10:08:48 2026 +0100"
      },
      "message": "ALSA: control: Synchronize LED mode accesses\n\nmode_store() updates led-\u003emode while holding\nsnd_ctl_led_mutex.\n\nHowever, snd_ctl_led_set_state() and mode_show() read this\nfield without holding the same mutex.\n\nThis can cause a data race when userspace changes the mode\nwhile another path reads it.\n\nRead the mode under snd_ctl_led_mutex in\nsnd_ctl_led_set_state() and use the local value after\nreleasing the mutex.\n\nAlso protect the mode read in mode_show() with the mutex.\n\nFixes: cb17fe0045aa (\"ALSA: control - add sysfs support to the LED trigger module\")\nSigned-off-by: Sreeraj S Kurup \u003csreekuttan2156239@gmail.com\u003e\nLink: https://patch.msgid.link/20261106183953.2762-1-sreekuttan2156239@gmail.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "fda103c1432f344e1cd548f346d157b1e67ee7c5",
      "tree": "19309e74a4d2eab5ee1ca23ede7b6201a2cde518",
      "parents": [
        "b84bc6835a6b9cfc21b364610734f47b6b4cb36d"
      ],
      "author": {
        "name": "Andrew Davison",
        "email": "andy@dvsn.net",
        "time": "Fri Nov 06 17:55:18 2026 +0000"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Nov 07 10:07:36 2026 +0100"
      },
      "message": "ALSA: hda: Fix [codec] ID matching in patch files for IDs with bit 31 set\n\nparse_codec_mode() reads the vendor and subsystem IDs of a patch file\u0027s\n[codec] line into an int, and skips the check when the value is zero or\nnegative, as documented. An ID with bit 31 set, such as SigmaTel\u0027s\n0x8384xxxx or Intel\u0027s 0x8086xxxx, comes out negative, so it is taken as\na wildcard and the section is applied to every codec instead of the one\nit names.\n\nThis was seen on an OpenPeak OpenFrame 2 with an IDT 92HD75B2X5\n(0x111d7608). A patch file written for the STAC9202 (0x83847632) in the\nrelated OpenFrame 1 was applied to it, swapping the headphone and\nspeaker pin configurations, so auto-mute never muted the speaker.\n\nRead the IDs as long long, so real IDs are compared exactly. Values\nwritten as negative numbers (e.g. -1) still act as wildcards, as\ndocumented; a hex value such as 0xffffffff is now compared as written.\n\nTested on 6.18.60 on an OpenFrame 2, with a rebuilt snd-hda-codec and\nthe STAC9202 patch file: user_pin_configs stays empty for the IDT codec,\nand the headphone and line-out pins are assigned as the BIOS sets them.\nNot tested on a STAC9202 itself.\n\nThe bug was tracked down and this fix written with an AI coding\nassistant (Claude Code, Claude Opus 5.5), which also ran the tests\nabove. I have reviewed the change and the tests.\n\nFixes: ef940b0403d4 (\"ALSA: hda - Allow patching with any vendor/subsystem ids\")\nCc: stable@vger.kernel.org\nSigned-off-by: Andrew Davison \u003candy@dvsn.net\u003e\nLink: https://patch.msgid.link/20261106175518.18629-1-andy@dvsn.net\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "9626eb83c6f0f6813a5a56944a9eccd800041cc1",
      "tree": "4478d1ca7098f37c585f2e9fd46e3fad36aecafd",
      "parents": [
        "148a32166601ce00d614fde7648ceb156cd5fa27"
      ],
      "author": {
        "name": "Sreeraj S Kurup",
        "email": "sreekuttan2156239@gmail.com",
        "time": "Fri Nov 06 17:26:25 2026 +0000"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Nov 07 10:03:27 2026 +0100"
      },
      "message": "ALSA: control: Trim whitespace from sysfs input\n\nThe attach and detach sysfs interfaces receive input from\nuserspace.\n\nWhen userspace writes a value using echo, the input normally\nends with a newline character.\n\nThe parser does not remove this newline in all input formats.\nFor example, a bare numeric ID can be treated as a control name,\nand an unquoted name\u003d field can include the newline.\n\nTrim leading and trailing whitespace before parsing the input.\n\nThis keeps spaces inside mixer control names unchanged.\n\nFixes: a135dfb5de15 (\"ALSA: led control - add sysfs kcontrol LED marking layer\")\nSigned-off-by: Sreeraj S Kurup \u003csreekuttan2156239@gmail.com\u003e\nLink: https://patch.msgid.link/20261106172625.4622-1-sreekuttan2156239@gmail.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "b84bc6835a6b9cfc21b364610734f47b6b4cb36d",
      "tree": "3528f1826f361d9ae21939dd9c4b0fa059f04396",
      "parents": [
        "e0f6c0c60adc73582b40803a5c172077c5a4e84f"
      ],
      "author": {
        "name": "Devajith Jijush",
        "email": "devajuice@zohomail.in",
        "time": "Fri Nov 06 20:38:49 2026 +0530"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Nov 07 10:00:44 2026 +0100"
      },
      "message": "ALSA: hda/conexant: Add quirk for Acer TravelLite TL05-41M\n\nThe Acer TravelLite TL05-41M (subsystem 0x1558a600) uses a Conexant\nCX11880 codec whose analog output amplifier is enabled by codec GPIO\nbit 1.  The driver has no quirk for this machine, so the line is never\nraised and both the internal speakers and the 3.5 mm combo jack stay\nsilent, while the microphone on the same jack, USB and Bluetooth audio\nwork normally.\n\nAdd a CXT_FIXUP_GPIO2 fixup that raises GPIO bit 1 for this subsystem\nID.  The verbs are registered as init verbs, so they are replayed after\nevery codec resume, which matters because the codec loses the GPIO\nstate on a power transition.\n\nNote that the existing CXT_FIXUP_GPIO1 fixup raises GPIO bit 0, which\nhas no effect on this board.\n\nLink: https://bugzilla.kernel.org/show_bug.cgi?id\u003d222238\nSigned-off-by: Devajith Jijush \u003cdevajuice@zohomail.in\u003e\nLink: https://patch.msgid.link/179397772915.270716.9671410898445846938@zohomail.in\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "8614bc57576e99f1711a61f261f53fb5a5061847",
      "tree": "a407271132c53da9b16dc10247ccdb35267a5940",
      "parents": [
        "54456091fa6d47a33e97a344cffd86be91757d2e",
        "148a32166601ce00d614fde7648ceb156cd5fa27"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Nov 06 15:36:45 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Nov 06 15:36:45 2026 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027\n"
    },
    {
      "commit": "148a32166601ce00d614fde7648ceb156cd5fa27",
      "tree": "c34a7ecf81799f6640c45ed39b14886aa9907570",
      "parents": [
        "a52a60c0cea453992676b05d95a8668497c48a85"
      ],
      "author": {
        "name": "Deukjung Kim",
        "email": "mentalese@gmail.com",
        "time": "Thu Nov 05 20:29:03 2026 +0900"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Nov 06 15:34:37 2026 +0100"
      },
      "message": "ALSA: usb-audio: Add Arturia AudioFuse 48V/Main mute mixer controls\n\nAdd mixer quirk controls for Arturia AudioFuse (0x1c75:0xaf02):\n - Input1 48V LED Switch (wValue 0x0001)\n - Main Speaker Mute LED Switch (wValue 0x0500)\n\nValues are written with a class MEM request to entity 0x46 and the\ninitial state is read from a 178-byte status block of entity 0x47.\nProtocol reverse engineered from Arturia AudioFuse Control Center.\n\nSigned-off-by: Deukjung Kim \u003cmentalese@gmail.com\u003e\nLink: https://patch.msgid.link/20261105112903.536150-1-mentalese@gmail.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "54456091fa6d47a33e97a344cffd86be91757d2e",
      "tree": "72101638f43577b808b6c8e26b0966131b1a2d38",
      "parents": [
        "b87c34ffd04683b3582647133c44bdc2b41ecb52",
        "a52a60c0cea453992676b05d95a8668497c48a85"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Nov 06 15:17:52 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Nov 06 15:17:52 2026 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027\n"
    },
    {
      "commit": "a52a60c0cea453992676b05d95a8668497c48a85",
      "tree": "8c981357dd435eb879043ff7d19a0ff87805c263",
      "parents": [
        "1fde88bd72ad7a3c4a855d3ce2dcc597738eb5b1"
      ],
      "author": {
        "name": "Cen Zhang",
        "email": "zzzccc427@gmail.com",
        "time": "Sat Oct 31 13:14:30 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Nov 06 15:06:00 2026 +0100"
      },
      "message": "ALSA: hda: Wait for the files of the codec PCMs before freeing them\n\nThe codec remove waits for codec-\u003epcm_ref, which only counts the streams\nopened through the HD-audio PCM ops. A file uses the PCM before that:\nsnd_pcm_open() takes pcm-\u003eopen_mutex, and an OSS open walks the setup\nlist of the PCM, before a substream is opened. snd_pcm_release() also\nstill takes pcm-\u003eopen_mutex after the close callback has dropped the\nreference. When a codec is unbound through sysfs while the card stays\nregistered, the remove can free the PCMs under such a file:\n\n  PCM open                           codec unbind\n  --------                           ------------\n  snd_lookup_minor_data()\n  snd_card_file_add()\n                                     snd_hda_codec_disconnect_pcms()\n                                     snd_refcount_sync(\u0026codec-\u003epcm_ref)\n                                     snd_hda_codec_cleanup_for_unbind()\n                                       snd_pcm_free()\n  mutex_lock(\u0026pcm-\u003eopen_mutex)\n\nOpening the PCM while the codec is unbound and bound in a loop triggers\nit:\n\n  BUG: KASAN: slab-use-after-free in mutex_spin_on_owner+0x94/0x2b0\n  Read of size 8 at addr ffff888005d52a58 by task hdatest/90\n  Call Trace:\n   __mutex_lock+0x16a4/0x24a0\n   snd_pcm_open+0x230/0x600\n   snd_pcm_playback_open+0x5e/0xb0\n  Freed by task 94:\n   kfree+0x2e5/0x510\n   snd_pcm_free+0x9d/0x150\n   __snd_device_free+0x121/0x370\n   snd_hda_codec_cleanup_for_unbind+0x219/0x920\n   hda_codec_driver_remove+0x1a7/0x2b0\n   unbind_store+0xd1/0xf0\n\nAn open can also get past the wait and call into the codec driver after\nthe remove has cleared its state, which ends in a NULL pointer\ndereference in playback_pcm_open().\n\nAfter disconnecting the PCMs, wait until the files opened on them are\nclosed. Do the same on the probe error path, which frees PCMs that a\nlate probe may already have registered.\n\nFixes: bcd96557bd0a (\"ALSA: hda - Build PCMs and controls at codec driver probe\")\nSuggested-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: Cen Zhang \u003czzzccc427@gmail.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/pm-pmb-a4703edca61d34aa679b-v12-b75145090f6bcd7cf145-5@gmail.com\n"
    },
    {
      "commit": "1fde88bd72ad7a3c4a855d3ce2dcc597738eb5b1",
      "tree": "c3a9ef49dca96ebd9668a333b46788d3dcbd8f98",
      "parents": [
        "02c816a7162007c0a89dd930568906507aee74ba"
      ],
      "author": {
        "name": "Cen Zhang",
        "email": "zzzccc427@gmail.com",
        "time": "Sat Oct 31 13:14:29 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Nov 06 15:06:00 2026 +0100"
      },
      "message": "ALSA: pcm: Refuse to open a disconnected PCM\n\nAn open that found the PCM before snd_pcm_dev_disconnect() can still\nattach a substream after it, because nothing in the open path checks\nwhether the PCM was disconnected. When only the PCM is disconnected, as\non an HD-audio codec unbind, the open then succeeds on a device that is\ngoing away, and its file delays the remove until it is closed.\n\nMark the PCM as disconnected under open_mutex in snd_pcm_dev_disconnect()\nand make snd_pcm_attach_substream() fail with -ENODEV for it.\n\nSigned-off-by: Cen Zhang \u003czzzccc427@gmail.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/pm-pmb-a4703edca61d34aa679b-v12-b75145090f6bcd7cf145-4@gmail.com\n"
    },
    {
      "commit": "02c816a7162007c0a89dd930568906507aee74ba",
      "tree": "b84a46157ff49b9a967974a802ce6c90871c8302",
      "parents": [
        "1ad267d71c3503b59b1f2bcd587b86ac6db29ed8"
      ],
      "author": {
        "name": "Cen Zhang",
        "email": "zzzccc427@gmail.com",
        "time": "Sat Oct 31 13:14:28 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Nov 06 15:06:00 2026 +0100"
      },
      "message": "ALSA: pcm: Add the file to the card while looking up the minor\n\nUse snd_lookup_minor_data_file() and snd_lookup_oss_minor_data_file() in\nthe native and OSS PCM opens, so that the file is on the card before the\nPCM minor can be unregistered. The opens then no longer need the extra\ncard reference from the lookup.\n\nWithout that reference, a failed open also no longer reads pcm-\u003ecard\nafter it has removed its file, which would race with a remove that waits\nfor the files before freeing the PCM.\n\nSigned-off-by: Cen Zhang \u003czzzccc427@gmail.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/pm-pmb-a4703edca61d34aa679b-v12-b75145090f6bcd7cf145-3@gmail.com\n"
    },
    {
      "commit": "1ad267d71c3503b59b1f2bcd587b86ac6db29ed8",
      "tree": "d2ee8faca1f038a233d11d697a177ab6fba173be",
      "parents": [
        "c64fd9e2efeb6cb4cdc3f98fde96ad543e1356ab"
      ],
      "author": {
        "name": "Cen Zhang",
        "email": "zzzccc427@gmail.com",
        "time": "Sat Oct 31 13:14:27 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Nov 06 15:06:00 2026 +0100"
      },
      "message": "ALSA: core: Add the card file while looking up a minor\n\nAn open looks up its device with snd_lookup_minor_data(), which takes a\ncard reference, and adds its file to the card with snd_card_file_add()\nonly afterwards. The card reference does not keep alive a device that\nits driver frees while the card stays registered, as the HD-audio codec\nremove does with its PCMs. A remove that waits for the files of the card\ncan miss an open between the lookup and snd_card_file_add().\n\nAdd snd_lookup_minor_data_file() and snd_lookup_oss_minor_data_file(),\nwhich add the file to the card while the minor lock is still held, and\nrecord the device data of the minor with the file. After the minor has\nbeen unregistered, an open either has its file on the card already or\ndoes not find the device.\n\nAdd snd_card_file_sync() to wait until the files opened for a device are\ngone, and wake its waiters in snd_card_file_remove(). Waiting for the\nfiles of one device instead of all files of the card matters, because\nthe card files include the control device, which a sound server keeps\nopen for as long as it runs.\n\nSigned-off-by: Cen Zhang \u003czzzccc427@gmail.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/pm-pmb-a4703edca61d34aa679b-v12-b75145090f6bcd7cf145-2@gmail.com\n"
    },
    {
      "commit": "c64fd9e2efeb6cb4cdc3f98fde96ad543e1356ab",
      "tree": "83d0ab386b4d5e08e830a1ba8ddc90de76e61266",
      "parents": [
        "82f733e54a919ef46e8ac7265413b05f9c2ab3ce"
      ],
      "author": {
        "name": "Cen Zhang",
        "email": "zzzccc427@gmail.com",
        "time": "Sat Oct 31 13:14:26 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Nov 06 15:06:00 2026 +0100"
      },
      "message": "ALSA: hda: Serialize codec probe and remove on the same bus\n\nThe probe and remove of different codecs on one HD-audio bus can run at\nthe same time, for example when two codecs are bound and unbound through\nsysfs. A codec probe on a registered card calls snd_card_register(),\nwhich walks card-\u003edevices in snd_device_register_all(), while the remove\nof another codec frees its PCMs and deletes them from the same list.\nThe list has no lock of its own. The controller probe and the reconfig\nsysfs knob also call snd_card_register() after the codecs are bound, so\na codec bound or unbound through sysfs at that time changes the list as\nwell.\n\nAdd a mutex to struct hdac_bus and hold it in hda_codec_driver_probe()\nand hda_codec_driver_remove(). Add snd_hda_card_register(), which\nregisters the card of a bus under the same mutex, and use it in the\ncontroller drivers and in reconfig_codec(). The ASoC ext_ops paths are\nunchanged.\n\nFixes: bcd96557bd0a (\"ALSA: hda - Build PCMs and controls at codec driver probe\")\nSuggested-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: Cen Zhang \u003czzzccc427@gmail.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/pm-pmb-a4703edca61d34aa679b-v12-b75145090f6bcd7cf145-1@gmail.com\n"
    },
    {
      "commit": "b87c34ffd04683b3582647133c44bdc2b41ecb52",
      "tree": "fa0819018b6091d545c4a6bac95543d282e9e3d4",
      "parents": [
        "827f543c2f2f85456f58c209ce824efb5d398e17",
        "e0f6c0c60adc73582b40803a5c172077c5a4e84f"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Nov 06 09:33:36 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Nov 06 09:33:36 2026 +0100"
      },
      "message": "Merge branch \u0027for-linus\u0027\n"
    },
    {
      "commit": "e0f6c0c60adc73582b40803a5c172077c5a4e84f",
      "tree": "6f2fa278124f676329ce57005e9b4855439444f1",
      "parents": [
        "22733b6e2e1ebf75228a1e15b9fb9760a86137cc"
      ],
      "author": {
        "name": "Stefan Binding",
        "email": "sbinding@opensource.cirrus.com",
        "time": "Thu Nov 05 17:03:34 2026 +0000"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Nov 06 09:32:46 2026 +0100"
      },
      "message": "ALSA: hda: cs35l41: Override malformed _DSD properties for various laptops\n\nSeveral HP laptops have malformed and incorrect _DSD properties used by\nthe CS35L41 HDA driver. This results in audio for those laptops being\nbroken. We can fix this by overriding the _DSD for those laptops,\nensuring the driver uses the correct settings.\n\nThe laptops whose _DSD will be overridden are:\n\n- 103C8E11\n- 103C8E12\n- 103C8E13\n- 103C8E3A\n- 103C8E3B\n- 103C8E60\n- 103C8E61\n- 103C8E62\n- 103C8E75\n- 103C8F57\n\nSigned-off-by: Stefan Binding \u003csbinding@opensource.cirrus.com\u003e\nLink: https://patch.msgid.link/20261105170341.219204-1-sbinding@opensource.cirrus.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "827f543c2f2f85456f58c209ce824efb5d398e17",
      "tree": "331ce6ce3652de7001ca63627985f1fc8713fce4",
      "parents": [
        "8cba9633e416fdbfacf9ccdfc35f21374126e202",
        "22733b6e2e1ebf75228a1e15b9fb9760a86137cc"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 17:02:20 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 17:02:20 2026 +0100"
      },
      "message": "Merge branch \u0027for-linus\u0027\n"
    },
    {
      "commit": "22733b6e2e1ebf75228a1e15b9fb9760a86137cc",
      "tree": "c7388fd1cb44ed49347418ae058ead753d2c473b",
      "parents": [
        "d54c3cc224dab59cb6b4db43cceaf84a4b39c87a",
        "cf09d02dc0c49593fdd9e0ec2f17251cba39a94e"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 16:56:23 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 16:56:23 2026 +0100"
      },
      "message": "Merge tag \u0027asoc-fix-v7.4-rc1\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus\n\nASoC: Fixes for v7.4\n\nMore fixes that have come in since -rc1, a lot of this is quirks but\nthere\u0027s some bug fixes as well.  The bug fixes should mostly be those\nthat seem to be affecting actual users rather than just being pure\nstatic analysis work.  I also took some fixes for missing Kconfig\ndependencies which won\u0027t have any runtime impact.\n"
    },
    {
      "commit": "8cba9633e416fdbfacf9ccdfc35f21374126e202",
      "tree": "a5d3d9513403ab3adba4b6c4656adfb8e6823d67",
      "parents": [
        "96abd0c5bc58ed422a7068635ff34a046de9ecca",
        "82f733e54a919ef46e8ac7265413b05f9c2ab3ce"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 16:05:47 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 16:05:47 2026 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027\n"
    },
    {
      "commit": "82f733e54a919ef46e8ac7265413b05f9c2ab3ce",
      "tree": "285959c30fd72da262fda8c5eb9542ff7e6c89ec",
      "parents": [
        "12bb41f20b71cfb70061faf54f92a20d6ad6b7f7"
      ],
      "author": {
        "name": "Rafael Gago",
        "email": "rafael.gago@gmail.com",
        "time": "Thu Nov 05 10:22:50 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 16:03:01 2026 +0100"
      },
      "message": "ALSA: hdsp: allow sample rate changes from hw_params\n\nhdsp_set_rate() refuses to switch between single, double and quad\nspeed whenever capture_pid or playback_pid is set. Both are set in the\nPCM open callbacks, so the substream that asks for the new rate in\nhw_params always blocks itself:\n\n  cannot change speed mode (capture PID \u003d -1, playback PID \u003d 4242)\n\nAs a result no application can move an HDSP from 48 kHz to 96 kHz (or\nto 192 kHz on the H9632) through the normal ALSA API. Rate changes\nwithin one speed mode work, and a speed mode change only works through\nthe \"Sample Clock Source\" control while no PCM is open, which is what\nusers have to script around today.\n\nThe restriction exists because a speed mode change moves the channels\nto other DMA buffer slots (hdsp-\u003echannel_map) and changes the channel\ncount, which must not happen under a substream that was already set up\nwith the old layout. The substream calling hw_params is about to be set\nup anyway, so it is not such a substream.\n\nPass the requesting substream to hdsp_set_rate() in place of the\ncalled_internally flag, and from hw_params only refuse the speed mode\nchange if the other direction has hw_params of its own. A substream of\nanother process is still turned away by the existing check in\nsnd_hdsp_hw_params(), and requests from the controls and from card\ninitialization (substream \u003d\u003d NULL) keep the old rule of no open\nsubstreams at all.\n\nA duplex client therefore opens both directions, sets hw_params on the\nfirst one (which may change the speed mode) and then on the second one\nat the same rate. To change the speed mode later it has to hw_free or\nclose the other direction first.\n\nWhich directions have hw_params is tracked in a new setup_streams mask\nunder hdsp-\u003elock: hw_params sets the bit, and a new hw_free callback\nand close clear it. The other substream\u0027s runtime state cannot be used\nfor this, because the PCM core only moves it to SETUP after the driver\u0027s\nhw_params has returned and dropped hdsp-\u003elock. Two threads calling\nhw_params on the two directions at once could then both change the\nspeed mode.\n\nTested on an HDSP 9632 (v7.0 based kernel, same hdsp.c as v7.0) with\naplay/arecord -M on hw:DSP: one stream moves the clock between 44.1k,\n48k, 88.2k, 96k and 192k in both directions; alsaloop runs duplex in one\nprocess at 48k/12ch, 96k/8ch and 192k/4ch; while another process plays\nat 96k, a capture at 96k works and one at 48k or 192k is still refused;\nthe \"Sample Clock Source\" control is still refused while a stream is\nopen. REAPER on raw ALSA now changes the project rate between speed\nmodes without presetting the clock first. Also built with W\u003d1 on\ncurrent mainline without warnings.\n\nOnly the HDSP 9632 was available for testing; the Digiface, Multiface,\nRPM and 9652 were not. The change is not model specific: the speed\nmode switch itself is the same code the \"Sample Clock Source\" control\nalready runs on every model, and it still only happens while no stream\nis transferring data. The per-model channel counts and channel maps\ncome from the driver\u0027s existing tables.\n\nA Claude AI coding assistant (Claude Code) read the driver, wrote this\nchange, the changelog and the tests at the request of the submitter,\nwho reviewed them.\n\nSigned-off-by: Rafael Gago \u003crafael.gago@gmail.com\u003e\nLink: https://patch.msgid.link/20261105-hdsp-sound-v2-1-458a3cfafbcd@gmail.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "96abd0c5bc58ed422a7068635ff34a046de9ecca",
      "tree": "dace073d4fa81c97cf20d94ae889f4c55d56ed2d",
      "parents": [
        "39a31d2ffb9d268d3c49447527227f8792fea522",
        "d54c3cc224dab59cb6b4db43cceaf84a4b39c87a"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 16:02:53 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 16:02:53 2026 +0100"
      },
      "message": "Merge branch \u0027for-linus\u0027\n"
    },
    {
      "commit": "d54c3cc224dab59cb6b4db43cceaf84a4b39c87a",
      "tree": "ec48011fc133df1832996515c6f33fc03f5245aa",
      "parents": [
        "022e9f8f094279ecd632b3846968790fad7d8ad6"
      ],
      "author": {
        "name": "Nguyen Thanh Nhat",
        "email": "nguyenthanhnhat397@gmail.com",
        "time": "Thu Nov 05 20:03:30 2026 +0700"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 16:00:46 2026 +0100"
      },
      "message": "ALSA: hda/realtek: Add quirk for Acer Predator PHN16-71\n\nThe Acer Predator PHN16-71 (subsystem ID 1025:170f) with a Realtek\nALC245 codec does not detect external headset microphone on the 3.5mm\ncombo jack because 0x19 pin is marked as unconnected (0x411111f0). Add a\nquirk using ALC2XX_FIXUP_HEADSET_MIC.\n\nSigned-off-by: Nguyen Thanh Nhat \u003cnguyenthanhnhat397@gmail.com\u003e\nLink: https://patch.msgid.link/20261105130330.6797-1-nguyenthanhnhat397@gmail.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "39a31d2ffb9d268d3c49447527227f8792fea522",
      "tree": "b249e1b3d7b1260f2042bc94d3f4287900b8657a",
      "parents": [
        "ecc867a4bb1431c6ac6784bdfce4c7952c6e5e8e",
        "12bb41f20b71cfb70061faf54f92a20d6ad6b7f7"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:56:05 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:56:05 2026 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027\n"
    },
    {
      "commit": "ecc867a4bb1431c6ac6784bdfce4c7952c6e5e8e",
      "tree": "36559c53309bf3102697a7755ada32e7c4ddc247",
      "parents": [
        "5590052aa77d0edfe565d0be404431bcdb66b4d8",
        "022e9f8f094279ecd632b3846968790fad7d8ad6"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:56:01 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:56:01 2026 +0100"
      },
      "message": "Merge branch \u0027for-linus\u0027\n"
    },
    {
      "commit": "12bb41f20b71cfb70061faf54f92a20d6ad6b7f7",
      "tree": "62970988fc546aa412aa814e9dcb18c0d5312449",
      "parents": [
        "3461b38f7c4c0cbed4d797756d5dd7068e622507"
      ],
      "author": {
        "name": "Xu Rao",
        "email": "raoxu@uniontech.com",
        "time": "Thu Nov 05 09:46:42 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:10 2026 +0100"
      },
      "message": "ALSA: intel8x0: keep AC97 PCM descriptors for ICH4 capture\n\nWhen S/PDIF uses the AC-link, spdif_idx is negative and the AC97\nPCM assignment drops its last descriptor.  On ICH4 this leaves five\nentries, but PCM2IN and MIC2 still use entries four and five.\nOpening MIC2 then reads beyond the allocated descriptor array.\n\nKeep all six descriptors on ICH4 so the capture stream indices stay\nvalid.  The S/PDIF descriptor occupies its fixed position but does\nnot create a separate hardware PCM when S/PDIF uses the AC-link.\nOther controller types retain their existing descriptor counts.\n\nSigned-off-by: Xu Rao \u003craoxu@uniontech.com\u003e\nLink: https://patch.msgid.link/5387AE07DB9C7930+20261105014642.73877-1-raoxu@uniontech.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "3461b38f7c4c0cbed4d797756d5dd7068e622507",
      "tree": "fca24e484d023c774512d64da98cc30e6c416bbf",
      "parents": [
        "dddc85c161758963d7d9aced4882e3cd6f2e8c61"
      ],
      "author": {
        "name": "Sreeraj S Kurup",
        "email": "sreekuttan2156239@gmail.com",
        "time": "Wed Nov 04 15:52:05 2026 +0000"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:10 2026 +0100"
      },
      "message": "ALSA: core: Validate device type for dynamic minors\n\nReject unsupported device types when allocating dynamic minors.\n\nThis prevents invalid device types from being registered and\navoids unnecessarily consuming available minor numbers.\n\nReturn -EINVAL for unsupported device types.\n\nSigned-off-by: Sreeraj S Kurup \u003csreekuttan2156239@gmail.com\u003e\nLink: https://patch.msgid.link/20261104155205.3378-1-sreekuttan2156239@gmail.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "dddc85c161758963d7d9aced4882e3cd6f2e8c61",
      "tree": "57ca04e16bb33f446dd1f5a6d26475f422885e45",
      "parents": [
        "449fbf2b404980ffd304aec6d60c2f7440f1711e"
      ],
      "author": {
        "name": "Joseph Telaak",
        "email": "joseph@telaak.dev",
        "time": "Mon Nov 02 18:55:23 2026 -0500"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:10 2026 +0100"
      },
      "message": "ALSA: hda/generic: Add indep_dig_outs hint\n\nThe generic parser gives a codec one digital playback PCM. Any further\ndigital output pin is set up as a follower of the first: it gets the\nsame stream tag, so every digital jack plays the same stream. That is\nthe right default for a codec with, say, a coax and an optical jack.\n\nSome boards wire two digital converters to different places instead.\nOn the Control4 HC-800, an ALC888 has converter 0x10 driving pin 0x11,\nwhich feeds an HDMI transmitter, and converter 0x06 driving pin 0x1e,\nthe S/PDIF coax jack. These are two outputs that should play different\nstreams at the same time. The follower setup cannot express that, and\nuserspace cannot split one stream tag in two.\n\nAdd an \"indep_dig_outs\" hint. Like indep_hp does for the headphone DAC,\nit gives the second digital output pin its own stream: its own\nhda_multi_out and its own PCM, \"Alt Digital\", typed from its pin and\nwith its own IEC958 controls. The digital playback ops pick the\nmultiout by the stream\u0027s NID. The analog \"IEC958 Default PCM\"\nduplication stays on the first digital output only. Unlike indep_hp,\nthe split is fixed at parse time; there is no mixer switch. A codec\ndriver can also set spec-\u003eindep_dig_outs itself. Without the hint or\nthe flag nothing changes.\n\nThe new PCM takes the next free device number of its type. With an\nHDMI-typed first output and an S/PDIF-typed second one, as on the\nHC-800, the HDMI output stays the \"Digital\" PCM (device 3) and the\ncoax output becomes \"Alt Digital\" (device 1), with its IEC958 controls\nat index 16.\n\nAssisted-by: LLM\nSigned-off-by: Joseph Telaak \u003cjoseph@telaak.dev\u003e\nLink: https://patch.msgid.link/20261102-indep-dig-outs-v1-1-b468f76bdd2e@telaak.dev\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "449fbf2b404980ffd304aec6d60c2f7440f1711e",
      "tree": "acf9ffffd6a498702464d19e84d2d67aaae04825",
      "parents": [
        "afdbc45618fa46eb9e922ba6f785120818e0fccc"
      ],
      "author": {
        "name": "Xu Rao",
        "email": "raoxu@uniontech.com",
        "time": "Wed Nov 04 16:33:04 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:10 2026 +0100"
      },
      "message": "ALSA: cs8427: read the PCM stream IEC958 status from its own buffer\n\nThe IEC958 Playback PCM Stream control writes pcm_status, but its\nget callback always returns def_status.  As a result, userspace\nreads back the default status instead of the PCM stream status after\nwriting the stream control.  Rate changes also update pcm_status\nwithout being reflected in the value returned by the control.\n\nSelect the status buffer using the same private_value as the put\ncallback.  The default control continues to return def_status,\nwhile the PCM stream control now returns its own current status.\n\nSigned-off-by: Xu Rao \u003craoxu@uniontech.com\u003e\nLink: https://patch.msgid.link/7A8A7F3C30522F89+20261104083304.4000520-1-raoxu@uniontech.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "afdbc45618fa46eb9e922ba6f785120818e0fccc",
      "tree": "ba6f958eebdd163f35b1078124672d7c6855b072",
      "parents": [
        "553e8de72bf9f4c9da15d8f17db8044807fb0409"
      ],
      "author": {
        "name": "Bob Song",
        "email": "songxiebing@kylinos.cn",
        "time": "Wed Nov 04 15:56:42 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:10 2026 +0100"
      },
      "message": "ALSA: mixer: oss: Fix uninitialized index in recsrc ioctls\n\nsnd_mixer_oss_get_recsrc2() returns success without setting active_index\nwhen the current Capture Source does not match any OSS mixer slot.\nsnd_mixer_oss_get_recsrc() then uses that uninitialized index for\n\"1 \u003c\u003c index\", and snd_mixer_oss_set_recsrc() does the same while ignoring\nthe callback\u0027s return value.\n\nMake get_recsrc2() return -ENOENT if no slot matches, only use the\nreturned index in set_recsrc() when the lookup succeeds, and initialize\nthe index variables as a defensive measure.\n\nSigned-off-by: Bob Song \u003csongxiebing@kylinos.cn\u003e\nLink: https://patch.msgid.link/20261104075642.1790966-1-songxiebing@kylinos.cn\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "553e8de72bf9f4c9da15d8f17db8044807fb0409",
      "tree": "9de5539f91b193ed254ee99445ad89c7791c7747",
      "parents": [
        "dcc62c6452b90010e67dbb0bb4e6a4898c1a6fc4"
      ],
      "author": {
        "name": "Sreeraj S Kurup",
        "email": "sreekuttan2156239@gmail.com",
        "time": "Mon Nov 02 14:16:47 2026 +0000"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:10 2026 +0100"
      },
      "message": "ALSA: pcm: Fix source frame count calculation\n\nPass the updated frame count to the \"src_frames()\" callback.\n\nWhen the next plugin handles fewer frames than requested, use the\nactual frame count instead of the original requested count.\n\nThis ensures the correct number of source frames is calculated.\n\n[ Note: this code path isn\u0027t actually reached by the current code,\n  as all client_channels callbacks return the given frame as-is\n  without modification.\n  So this change is only for hypothetical issues for now, not really\n  fixing any actual problem. ]\n\nSigned-off-by: Sreeraj S Kurup \u003csreekuttan2156239@gmail.com\u003e\nLink: https://patch.msgid.link/20261102141647.3133-1-sreekuttan2156239@gmail.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "dcc62c6452b90010e67dbb0bb4e6a4898c1a6fc4",
      "tree": "93a62d8141eb2b15880638d2a4f8ffe5d3a379b7",
      "parents": [
        "9f4237359691a8fd23ed20825e48e518e9d384a8"
      ],
      "author": {
        "name": "Ingyu Jang",
        "email": "ingyujang25@korea.ac.kr",
        "time": "Mon Nov 02 18:38:24 2026 +0900"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:10 2026 +0100"
      },
      "message": "ALSA: ice1712: Make chip_init helpers return void\n\nsnd_ice1712_chip_init() and snd_vt1724_chip_init() always return 0, so\nthe error checks on their return values in the probe and resume paths\nnever trigger.\n\nChange both functions to return void and remove the dead checks.\n\nSigned-off-by: Ingyu Jang \u003cingyujang25@korea.ac.kr\u003e\nLink: https://patch.msgid.link/20261102093824.3123528-1-ingyujang25@korea.ac.kr\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "9f4237359691a8fd23ed20825e48e518e9d384a8",
      "tree": "14e740b0e83f385d91bded4825d172d44ab0d9c2",
      "parents": [
        "5ff4fd858813264d8465bc544995a756894080b5"
      ],
      "author": {
        "name": "Ingyu Jang",
        "email": "ingyujang25@korea.ac.kr",
        "time": "Mon Nov 02 02:21:34 2026 +0900"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:10 2026 +0100"
      },
      "message": "ALSA: ali5451: Make snd_ali_reset_5451() return void\n\nsnd_ali_reset_5451() always returns 0, as a reset timeout is treated as\nnon-fatal, so the error check in snd_ali_chip_init() never triggers.\n\nChange the function\u0027s return type to void and remove the dead check.\n\nSigned-off-by: Ingyu Jang \u003cingyujang25@korea.ac.kr\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/20261101172134.3451066-6-ingyujang25@korea.ac.kr\n"
    },
    {
      "commit": "5ff4fd858813264d8465bc544995a756894080b5",
      "tree": "f4fe8ba4a43ea2998d8266498d865f8697b9a782",
      "parents": [
        "5c54e6df663c28c791ea0462c0d75e9508e7185f"
      ],
      "author": {
        "name": "Ingyu Jang",
        "email": "ingyujang25@korea.ac.kr",
        "time": "Mon Nov 02 02:21:33 2026 +0900"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:09 2026 +0100"
      },
      "message": "ALSA: vx222: Make put_xilinx_data() return void\n\nput_xilinx_data() always returns 0, so the error check on its return\nvalue in vx2_load_xilinx_binary() never triggers.\n\nChange the function\u0027s return type to void and remove the dead check.\n\nSigned-off-by: Ingyu Jang \u003cingyujang25@korea.ac.kr\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/20261101172134.3451066-5-ingyujang25@korea.ac.kr\n"
    },
    {
      "commit": "5c54e6df663c28c791ea0462c0d75e9508e7185f",
      "tree": "1888bc5e42f25f25d763bbf7515ec2a887d6ee0f",
      "parents": [
        "3afeddc22974a57beb1fed57e3a0ea510f8ba8a9"
      ],
      "author": {
        "name": "Ingyu Jang",
        "email": "ingyujang25@korea.ac.kr",
        "time": "Mon Nov 02 02:21:32 2026 +0900"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:09 2026 +0100"
      },
      "message": "ALSA: cs4236: Make snd_cs423x_pnp_init_mpu() return void\n\nsnd_cs423x_pnp_init_mpu() handles a pnp_activate_dev() failure itself by\nfalling back to SNDRV_AUTO_PORT and always returns 0, so the error check\nin snd_card_cs423x_pnp() never triggers.\n\nChange the function\u0027s return type to void and remove the dead check.\n\nSigned-off-by: Ingyu Jang \u003cingyujang25@korea.ac.kr\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/20261101172134.3451066-4-ingyujang25@korea.ac.kr\n"
    },
    {
      "commit": "3afeddc22974a57beb1fed57e3a0ea510f8ba8a9",
      "tree": "969b568913fd42b2a8bdf74efb007189ae8166e8",
      "parents": [
        "cdbe81f0b1509777cc9ed3140a7136d6c49b53f3"
      ],
      "author": {
        "name": "Ingyu Jang",
        "email": "ingyujang25@korea.ac.kr",
        "time": "Mon Nov 02 02:21:30 2026 +0900"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:09 2026 +0100"
      },
      "message": "ALSA: hda: Make snd_hda_multi_out_analog_{prepare,cleanup}() return void\n\nsnd_hda_multi_out_analog_prepare() and snd_hda_multi_out_analog_cleanup()\nalways return 0, so the error checks on their return values in\nplayback_pcm_prepare() and playback_pcm_cleanup() never trigger.\n\nMake both functions return void, and call the playback hooks\nunconditionally.\n\nSigned-off-by: Ingyu Jang \u003cingyujang25@korea.ac.kr\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/20261101172134.3451066-2-ingyujang25@korea.ac.kr\n"
    },
    {
      "commit": "cdbe81f0b1509777cc9ed3140a7136d6c49b53f3",
      "tree": "c69e306c254d5ba3d1442308f2ff8cdb31cb0cac",
      "parents": [
        "4dd75414525b3c991e48a5df0e442800a2cefbc9"
      ],
      "author": {
        "name": "Davide Gironi",
        "email": "davide.gironi@gmail.com",
        "time": "Wed Oct 28 19:24:10 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:09 2026 +0100"
      },
      "message": "ALSA: ice1712: add TerraTec PHASE 88 support\n\nHandle PHASE 88-specific expander, EEPROM, control, and MIDI behavior\nin the EWS driver. Use a distinct TS88 model name and preserve the\nexpander state when a write fails.\n\nAssisted-by: Pi:gpt-6-luna\nSigned-off-by: Davide Gironi \u003cdavide.gironi@gmail.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/20261028183155.787599-3-davide.gironi@gmail.com\n"
    },
    {
      "commit": "4dd75414525b3c991e48a5df0e442800a2cefbc9",
      "tree": "70250198b7d87e9249dd0b33e92248232ad612f3",
      "parents": [
        "848a68e764a7ec6ac7d87b3193ed20dd1c351e58"
      ],
      "author": {
        "name": "Davide Gironi",
        "email": "davide.gironi@gmail.com",
        "time": "Wed Oct 28 19:24:09 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:09 2026 +0100"
      },
      "message": "ALSA: ice1712: add a board-specific EEPROM initialization hook\n\nAdd an eeprom_init callback to card info and call it after reading the\nEEPROM but before generic chip setup. Move the existing DMX6Fire fixup\ninto the EWS driver.\n\nAssisted-by: Pi:gpt-6-luna\nSigned-off-by: Davide Gironi \u003cdavide.gironi@gmail.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/20261028183155.787599-2-davide.gironi@gmail.com\n"
    },
    {
      "commit": "848a68e764a7ec6ac7d87b3193ed20dd1c351e58",
      "tree": "1e394513e39d953ce5f2c32af20f2035ad7fc1f8",
      "parents": [
        "2992cc5b646f1375c0f9bef807da970fa85cba0b"
      ],
      "author": {
        "name": "Geoffrey D. Bennett",
        "email": "g@b4.vu",
        "time": "Thu Oct 29 04:24:42 2026 +1030"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:09 2026 +0100"
      },
      "message": "ALSA: scarlett2: Update offsets for Gen 4 firmware 2432 and 2449\n\nSolo, 2i2, and 4i4 Gen 4 firmware 2449 and 4i4 firmware 2432 move the\nsettings the driver uses, so it reads and writes the wrong ones, and\nthe 2i2 locks up until it is rebooted. 2i2 firmware 2449 also adds\ntwo mixer outputs and the input combining switch that the Solo already\nhas. Add config sets for them.\n\nFixes: 4e809a299677 (\"ALSA: scarlett2: Add support for Solo, 2i2, and 4i4 Gen 4\")\nCloses: https://github.com/geoffreybennett/alsa-scarlett-gui/issues/270\nCc: stable@vger.kernel.org # ALSA: scarlett2: Allow config sets to override port counts\nCc: stable@vger.kernel.org\nAssisted-by: Claude:claude-opus-5-5\nSigned-off-by: Geoffrey D. Bennett \u003cg@b4.vu\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/288b4cd4b10f0185de029f7327d14fdc413a740b.1793207190.git.g@b4.vu\n"
    },
    {
      "commit": "2992cc5b646f1375c0f9bef807da970fa85cba0b",
      "tree": "3bb5faefc4d64a47315ebc1a4948f775acedcc69",
      "parents": [
        "e32df694d32340ff42ede40b644a06a6e17e9e2d"
      ],
      "author": {
        "name": "Geoffrey D. Bennett",
        "email": "g@b4.vu",
        "time": "Thu Oct 29 04:24:32 2026 +1030"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:09 2026 +0100"
      },
      "message": "ALSA: scarlett2: Allow config sets to override port counts\n\nFirmware updates can change the number of mux ports. Let a config set\noverride the device port counts.\n\nAssisted-by: Claude:claude-opus-5-5\nSigned-off-by: Geoffrey D. Bennett \u003cg@b4.vu\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/da781a3cc3ffe2f9684586e874e118ec9ad01c20.1793207190.git.g@b4.vu\n"
    },
    {
      "commit": "e32df694d32340ff42ede40b644a06a6e17e9e2d",
      "tree": "c0b9f268052cb5510535694b06c0cd09e48742d8",
      "parents": [
        "35d9f383973baa8bce70f6afeb033ce550a684cb"
      ],
      "author": {
        "name": "HyeongJun An",
        "email": "sammiee5311@gmail.com",
        "time": "Thu Oct 22 20:12:44 2026 +0900"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:09 2026 +0100"
      },
      "message": "selftests: ALSA: pcmtest: Test pausing a capture stream\n\nThe driver supports pause, but no test uses it.\n\nAdd a capture test that pauses the stream halfway for half a second.\nThe core does not read the hardware pointer while the stream is\npaused, so a driver that keeps running shows up only at the release,\nas a jump of the pointer. Check that the jump is under a tenth of a\nsecond, and that the data carries on from where it stopped.\n\nAssisted-by: Claude:claude-opus-5-5\nSigned-off-by: HyeongJun An \u003csammiee5311@gmail.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/906d65ff1cf78f5e173a5476eadcbca285aa2b17.1792660433.git.sammiee5311@gmail.com\n"
    },
    {
      "commit": "35d9f383973baa8bce70f6afeb033ce550a684cb",
      "tree": "b85c0c07a39be92c272fedc87398157dd3e35e0c",
      "parents": [
        "c8eaa2d9f0cfa2e5f1e238ab39c33970be9b13a2"
      ],
      "author": {
        "name": "HyeongJun An",
        "email": "sammiee5311@gmail.com",
        "time": "Thu Oct 22 20:12:43 2026 +0900"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:09 2026 +0100"
      },
      "message": "selftests: ALSA: pcmtest: Test errors from the PCM callbacks\n\nThe driver can return an error from its open, hw_params, prepare and\ntrigger callbacks, controlled by the inject_*_err module parameters.\nNo test uses them, so nothing checks that these errors reach user space.\n\nAdd a test for each callback. It sets the parameter, checks that the\nmatching call fails with the driver\u0027s error, then clears the parameter\nand checks that the call succeeds. The trigger test also checks that a\nfailed start leaves the stream in the PREPARED state. The fixture\nteardown clears all parameters, so a failed test does not affect the\nnext one.\n\nAssisted-by: Claude:claude-opus-5-5\nSigned-off-by: HyeongJun An \u003csammiee5311@gmail.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/f1b98dad097550f09e38ee7e90ce30106d89a09d.1792660433.git.sammiee5311@gmail.com\n"
    },
    {
      "commit": "c8eaa2d9f0cfa2e5f1e238ab39c33970be9b13a2",
      "tree": "c1b38f150a68497b1a8c726f2cb11e45f6e82d1e",
      "parents": [
        "d4ada42c7a0a1d285fd4847c0da15254b56911bf"
      ],
      "author": {
        "name": "HyeongJun An",
        "email": "sammiee5311@gmail.com",
        "time": "Thu Oct 22 20:12:42 2026 +0900"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:09 2026 +0100"
      },
      "message": "selftests: ALSA: pcmtest: Move the capture data check into a helper\n\nThe capture test checks the captured bytes against the patterns in an\ninline loop. A pause test added later needs the same check, so move the\nloop into find_capture_mismatch(). It returns the offset of the first\nwrong byte, or -1 when all bytes match.\n\nNo functional change.\n\nAssisted-by: Claude:claude-opus-5-5\nSigned-off-by: HyeongJun An \u003csammiee5311@gmail.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/2922e4e3021760ebed68b8e44b80fe0b2e3f1d9c.1792660433.git.sammiee5311@gmail.com\n"
    },
    {
      "commit": "d4ada42c7a0a1d285fd4847c0da15254b56911bf",
      "tree": "fa05393dce17266e8e39fba0bfb23201386542ff",
      "parents": [
        "804b99c463a67699211c202b7e09cf8afd492fd9"
      ],
      "author": {
        "name": "Rong Zhang",
        "email": "i@rong.moe",
        "time": "Tue Oct 20 04:18:25 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:09 2026 +0100"
      },
      "message": "ALSA: usb-audio: Add dB scale quirk for Xiaomi Speaker Mini\n\nI recently brought an Xiaomi Speaker Mini (USB Product string, marketing\nname: Xiaomi Bluetooth Speaker Mini), which is never advertised as UAC\ncapable.\n\nBy chance, I connected it to my PC, and a UAC device showed up.\nUnsurprisingly, it\u0027s yet another device with insane volume control, so I\ntried to measure its volume mapping @ 1000Hz with a microphone:\n\n+--------+--------+-----------+-------------+--------+\n|  hex   |  dec   | dec \u003d\u003e dB | measured dB |  res   |\n+--------+--------+-----------+-------------+--------+\n| 0xd000 | -12288 |    -48.00 |      (mute) |        |\n| 0xdd00 |  -8960 |    -35.00 |       -68.6 | 3328 # |\n| 0xe540 |  -6848 |    -26.75 |       -61.2 | 2112   |\n| 0xea40 |  -5568 |    -21.75 |       -57.0 | 1280   |\n| 0xed80 |  -4736 |    -18.50 |       -52.5 |  832   |\n| 0xf0a0 |  -3936 |    -15.38 |       -48.3 |  800   |\n| 0xf2d0 |  -3376 |    -13.19 |       -42.1 |  560   |\n| 0xf4d0 |  -2864 |    -11.19 |       -36.1 |  512   |\n| 0xf6c0 |  -2368 |     -9.25 |       -32.0 |  496   |\n| 0xf840 |  -1984 |     -7.75 |       -24.0 |  384   |\n| 0xf9e0 |  -1568 |     -6.13 |       -17.9 |  416   |\n| 0xfb30 |  -1232 |     -4.81 |       -13.9 |  336   |\n| 0xfc80 |   -896 |     -3.50 |       -10.0 |  336   |\n| 0xfd90 |   -624 |     -2.44 |        -6.0 |  272   |\n| 0xfeb0 |   -336 |     -1.31 |        -4.0 |  288   |\n| 0xffb0 |    -80 |     -0.31 |        -2.0 |  256   |\n| 0x0000 |      0 |      0.00 |         0.0 |   80   |\n+--------+--------+-----------+-------------+--------+\n\nFootnote #: running out of the 10-item limit of TLV ranges. The\nlimitation is from alsa-lib, where MAX_TLV_RANGE_SIZE \u003d\u003d 256 Bytes.\n\nThe volume control mixer declares res \u003d\u003d 256, but actually acts like\nres \u003d\u003d 1 (i.e., accepts any value between min and max) and has uneven\nresolutions in reality. Setting any value between (0xd000, 0xdd00]\nresults in the same audible volume as 0xdd00, and so on.\n\nCarefully overrides cval-\u003e{min,max,res} so that volume steps with\n2dB or 4dB resolution can be approximately represented togother.\nWith that, we can expose a 25-step TLV range mapping with 10 items.\n\nThe quirk is applied only when the mixer values match the seen ones,\nso that it won\u0027t be accidentally applied to unseen variants.\n\nQuirky device sample:\n\n  usb 3-1: new full-speed USB device number 14 using xhci_hcd\n  usb 3-1: New USB device found, idVendor\u003d2717, idProduct\u003d5096, bcdDevice\u003d 1.00\n  usb 3-1: New USB device strings: Mfr\u003d1, Product\u003d2, SerialNumber\u003d3\n  usb 3-1: Product: Xiaomi Speaker Mini-****\n  usb 3-1: Manufacturer: bestechnic\n  usb 3-1: SerialNumber: 20160406.1\n  usb 3-1: Found last interface \u003d 0\n  usb 3-1: 1:1: add audio endpoint 0x3\n  usb 3-1: Creating new data endpoint #3\n  usb 3-1: 1:1 Set sample rate 48000, clock 0\n  usb 3-1: [5] FU [PCM Playback Switch] ch \u003d 1, val \u003d 0/1/1\n  usb 3-1: cannot set ctl value: req \u003d 0x4, wValue \u003d 0x200, wIndex \u003d 0x500, type \u003d 4, data \u003d 0x80/0x0\n  usb 3-1: [5] FU [PCM Playback Volume] ch \u003d 1, val \u003d -12288/0/256\n  input: bestechnic Xiaomi Speaker Mini-2421 as /devices/pci0000:00/0000:00:08.3/0000:67:00.0/usb3/3-1/3-1:1.2/0003:2717:5096.002A/input/input69\n  hid-generic 0003:2717:5096.002A: input,hidraw10: USB HID v1.11 Device [bestechnic Xiaomi Speaker Mini-2421] on usb-0000:67:00.0-1/input2\n\n(**** is the last four digits of the device\u0027s serial number)\n\nSigned-off-by: Rong Zhang \u003ci@rong.moe\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/20261020-b4-uac-ya-audio-v1-4-2d6e053b7f50@rong.moe\n"
    },
    {
      "commit": "804b99c463a67699211c202b7e09cf8afd492fd9",
      "tree": "b1c8f4382c7a8ddd224af8ede2127bdd76fe2717",
      "parents": [
        "d82b7b150c2eae1e5b21db5826b28d3f10dcbe9c"
      ],
      "author": {
        "name": "Rong Zhang",
        "email": "i@rong.moe",
        "time": "Tue Oct 20 04:18:24 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:09 2026 +0100"
      },
      "message": "ALSA: usb-audio: Add dB scale quirk for an AB13X variant\n\nI recently got an AB13X variant with insane volume control, so I tried\nto measure its volume mapping @ 1000Hz:\n\n+--------+--------+-----------+---------+----------+--------+\n|  hex   |  dec   | dec \u003d\u003e dB | mVrms * | mV \u003d\u003e dB |  res   |\n+--------+--------+-----------+---------+----------+--------+\n| 0xd300 | -11520 |    -45.00 |         |          |        |\n| 0xdb5a |  -9382 |    -36.65 |   1.285 |   -26.68 | 2138 # |\n| 0xe2d0 |  -7472 |    -29.19 |   4.104 |   -21.63 | 1910 # |\n| 0xe7cc |  -6196 |    -24.20 |  13.693 |   -16.40 | 1276 # |\n| 0xeb8c |  -5236 |    -20.45 |  26.71  |   -13.50 |  960   |\n| 0xee8d |  -4467 |    -17.45 |  42.29  |   -11.50 |  769   |\n| 0xf10e |  -3826 |    -14.95 |  66.81  |    -9.52 |  641   |\n| 0xf335 |  -3275 |    -12.79 |  94.43  |    -8.01 |  551   |\n| 0xf517 |  -2793 |    -10.91 | 133.25  |    -6.52 |  482   |\n| 0xf6c5 |  -2363 |     -9.23 | 168.73  |    -5.49 |  430   |\n| 0xf847 |  -1977 |     -7.72 | 212.05  |    -4.50 |  386   |\n| 0xf9a7 |  -1625 |     -6.35 | 267.1   |    -3.50 |  352   |\n| 0xfae9 |  -1303 |     -5.09 | 336.3   |    -2.50 |  322   |\n| 0xfc13 |  -1005 |     -3.93 | 377.4   |    -2.00 |  298   |\n| 0xfd27 |   -729 |     -2.85 | 423.6   |    -1.50 |  276   |\n| 0xfe29 |   -471 |     -1.84 | 475.3   |    -1.00 |  258   |\n| 0xff69 |   -151 |     -0.59 | 533.1   |    -0.50 |  320   |\n| 0x0000 |      0 |      0.00 | 597.7   |     0.00 |  151   |\n+--------+--------+-----------+---------+----------+--------+\n\nFootnote *: measured through a power amplifier\u0027s loopback line out\nto ensure high input impedance (see #). The raw voltage at 0x0000\nwithout going through a power amplifier is 677mVrms.\n\nFootnote #: low output power. Even the impedance of a multimeter is\ntoo low, causing a massive voltage drop (-10dB!), which means that\nthey are inaudible when connected to earphones. Do not expose them.\n\nThe volume control mixer has uneven resolutions in reality. Setting any\nvalue between [0xd300, 0xdb5a] results in the same audible volume as\n0xdb5a, (0xdb5a, 0xe2d0] results in the same audible volume as 0xe2d0,\nand so on. The read back value always acts like res \u003d\u003d 1.\n\nCarefully overrides cval-\u003e{min,max,res} so that volume steps with\n0.5dB or 1.0dB resolution can be approximately represented togother.\nWith that, we can expose a 19-step TLV range mapping with 7 items.\n\nThe capture mixer is also quirky and requires linear volume.\n\nThe AB13X seems to have a lot of variants, probably because it\u0027s a OEM\nproduct. I believe mine is one of them considering that its idVendor,\nidProduct, Manufacturer and SerialNumber are the same as the original\nAB13X. Only the Product string differs.\n\nBoth quirks are applied only when the mixer values match the seen ones,\nso that they won\u0027t be accidentally applied on unaffected variants.\n\nQuirky device sample:\n\n  usb 7-1: new full-speed USB device number 2 using xhci_hcd\n  usb 7-1: not running at top speed; connect to a high speed hub\n  usb 7-1: New USB device found, idVendor\u003d001f, idProduct\u003d0b21, bcdDevice\u003d 1.00\n  usb 7-1: New USB device strings: Mfr\u003d1, Product\u003d2, SerialNumber\u003d3\n  usb 7-1: Product: YA USB Audio\n  usb 7-1: Manufacturer: Generic\n  usb 7-1: SerialNumber: 20210726905926\n  usb 7-1: From builtin table apply quirk flag IFACE_DELAY for device 001f:0b21\n  usb 7-1: From builtin table apply quirk flag FORCE_IFACE_RESET for device 001f:0b21\n  usb 7-1: Found last interface \u003d 0\n  usb 7-1: 1:1: add audio endpoint 0x3\n  usb 7-1: Creating new data endpoint #3\n  usb 7-1: 1:1 Set sample rate 48000, clock 0\n  usb 7-1: 2:1: add audio endpoint 0x83\n  usb 7-1: Creating new data endpoint #83\n  usb 7-1: 2:1 Set sample rate 48000, clock 0\n  usb 7-1: [2] FU [PCM Playback Switch] ch \u003d 1, val \u003d 0/1/1\n  usb 7-1: [2] FU [PCM Playback Volume] ch \u003d 1, val \u003d -11520/0/1\n  usb 7-1: [5] FU [Mic Capture Switch] ch \u003d 1, val \u003d 0/1/1\n  usb 7-1: Warning! Unlikely big volume step count (\u003d8191), linear volume or wrong cval-\u003eres?\n  usb 7-1: [5] FU [Mic Capture Volume] ch \u003d 1, val \u003d 0/8191/1\n  input: Generic YA USB Audio as /devices/pci0000:00/0000:00:08.3/0000:67:00.4/usb7/7-1/7-1:1.3/0003:001F:0B21.000F/input/input41\n  hid-generic 0003:001F:0B21.000F: input,hidraw12: USB HID v2.01 Device [Generic YA USB Audio] on usb-0000:67:00.4-1/input3\n\nSigned-off-by: Rong Zhang \u003ci@rong.moe\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/20261020-b4-uac-ya-audio-v1-3-2d6e053b7f50@rong.moe\n"
    },
    {
      "commit": "d82b7b150c2eae1e5b21db5826b28d3f10dcbe9c",
      "tree": "fe2eba5f01937ed125dffa6e060cd2bf62adf507",
      "parents": [
        "a102d018ed9107f8defe0a82745c6914e74f4f74"
      ],
      "author": {
        "name": "Rong Zhang",
        "email": "i@rong.moe",
        "time": "Tue Oct 20 04:18:23 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:09 2026 +0100"
      },
      "message": "ALSA: usb-audio: Apply MV-SILICON linear volume quirk per mixer\n\nThe snd_usb_mv_silicon_quirks() tries to apply both\nMIXER_PLAYBACK_LINEAR_VOL and MIXER_CAPTURE_LINEAR_VOL on the device at\nthe same time, as long as one of the mixers fulfills val \u003d\u003d 0/4096/1.\nIOW, even if only one of them matches the control values, the linear\nvolume quirk applies to all mixers.\n\nApply the quirk by calling snd_usb_mixer_fu_quirk_linear_scale()\ndirectly, so that the MV-SILICON quirk becomes mixer-wise. The existing\nquirk flags are also checked to respect conflicting quirks.\n\nFixes: dfd4b0d46e77 (\"ALSA: usb-audio: Apply linear volume quirk on MV-SILICON devices\")\nSigned-off-by: Rong Zhang \u003ci@rong.moe\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/20261020-b4-uac-ya-audio-v1-2-2d6e053b7f50@rong.moe\n"
    },
    {
      "commit": "a102d018ed9107f8defe0a82745c6914e74f4f74",
      "tree": "3b6401a1dbc7f171ee8b39131b542ab92b9e00f7",
      "parents": [
        "2e17c72cc4db5d1e55788adbdeea0291b3c793dd"
      ],
      "author": {
        "name": "Rong Zhang",
        "email": "i@rong.moe",
        "time": "Tue Oct 20 04:18:22 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:09 2026 +0100"
      },
      "message": "ALSA: usb-audio: Unify dB scale override\n\nCurrently, both snd_dragonfly_quirk_db_scale() and\nsnd_usb_mixer_fu_quirk_linear_scale() override dB scale.\n\nCollect the code snippets for dB scale override into a helper function,\nwith unified info and warning messages. Also deconflict playback dB\nscale quirks of DragonFly.\n\nSigned-off-by: Rong Zhang \u003ci@rong.moe\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/20261020-b4-uac-ya-audio-v1-1-2d6e053b7f50@rong.moe\n"
    },
    {
      "commit": "2e17c72cc4db5d1e55788adbdeea0291b3c793dd",
      "tree": "2ae728518ba22ab50b712cdf3b941251c04b08ff",
      "parents": [
        "022e9f8f094279ecd632b3846968790fad7d8ad6"
      ],
      "author": {
        "name": "renpanpan",
        "email": "renpanpan@kylinos.cn",
        "time": "Tue Oct 27 17:09:13 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:55:09 2026 +0100"
      },
      "message": "ALSA: usb-audio: Fix card name for CVT Touch Device (1ff7:0f33)\n\nThe CVT Touch Device (1ff7:0f33) is a USB composite device (HID + UAC\naudio). Its iProduct string \"Touch Device\" is generic and does not\nidentify the audio function. Windows names the audio function\n\"MAXHUB Speaker\" from the UAC OUTPUT_TERMINAL iTerminal descriptor.\n\nAdd a quirk entry to override the card shortname to \"MAXHUB Speaker\"\nwith QUIRK_NO_INTERFACE to preserve normal stream and mixer creation.\n\nSigned-off-by: renpanpan \u003crenpanpan@kylinos.cn\u003e\nLink: https://patch.msgid.link/20261027090913.37647-1-renpanpan@kylinos.cn\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "022e9f8f094279ecd632b3846968790fad7d8ad6",
      "tree": "7daf043d9e6ba6eea38648f0467e44e6d4fd740b",
      "parents": [
        "fd86c06ad6147c07fe6dff2d548a70bc9dce5c91"
      ],
      "author": {
        "name": "Chris Chiu",
        "email": "chris.chiu@canonical.com",
        "time": "Thu Nov 05 10:56:47 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:54:47 2026 +0100"
      },
      "message": "ALSA: hda/realtek: Use inverted mute LED quirk for HP ZBook 8 G2a\n\nHP ZBook 8 G2a (SSIDs 0x103c:0x8f40, 0x103c:0x8f41, 0x103c:0x8f42,\n0x103c:0x8f62) use the Realtek ALC245 codec with a TAS2781 amplifier\nvia I2C. They share the same hardware configuration as the related\n0x103c:0x8f94 / 0x103c:0x8f95 models but were left on\nALC245_FIXUP_HP_TAS2781_I2C_MUTE_LED, which drives the speaker mute\nLED backwards: off when muted and on when unmuted.\n\nReassign these SSIDs to ALC245_FIXUP_HP_TAS2781_I2C_MUTE_LED_INVERTED\nso the LED follows mute state correctly.\n\nFixes: 9afbbf490322 (\"ALSA: hda/realtek - Enable Mute LED and Tas2781 for HP platform\")\nSigned-off-by: Chris Chiu \u003cchris.chiu@canonical.com\u003e\nLink: https://patch.msgid.link/20261105025647.1116662-1-chris.chiu@canonical.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "fd86c06ad6147c07fe6dff2d548a70bc9dce5c91",
      "tree": "b39ec49f6358cf0d4b98b18f7c49ee7dc5d2ed22",
      "parents": [
        "e2c6de52ffacb2c0f4076884ee3fdb744735a4cb"
      ],
      "author": {
        "name": "Zhang Heng",
        "email": "zhangheng@kylinos.cn",
        "time": "Thu Nov 05 09:45:35 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:54:47 2026 +0100"
      },
      "message": "ALSA: hda: cs35l41: Add support for HP OmniBook 7 Laptop 16-ay0xxx\n\nAdd a configuration entry for the HP OmniBook 7 Laptop 16-ay0xxx,\nwhich uses the HDA subsystem ID 103C8E13.\n\nThe laptop has a malformed _DSD which causes the cirrus,dev-index\nproperty to fail to parse, so it needs to be supported using the\nconfiguration table.\n\nCloses: https://bugzilla.kernel.org/show_bug.cgi?id\u003d222202\nSigned-off-by: Zhang Heng \u003czhangheng@kylinos.cn\u003e\nLink: https://patch.msgid.link/20261105014535.47907-1-zhangheng@kylinos.cn\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "e2c6de52ffacb2c0f4076884ee3fdb744735a4cb",
      "tree": "443c37c4471e6dea9311dbd5fa27100299cd31a1",
      "parents": [
        "4cbb826b3b36df6c275454287ba1df4564a5370b"
      ],
      "author": {
        "name": "Sinan Turunc",
        "email": "enscrpt@pm.me",
        "time": "Wed Nov 04 12:22:03 2026 +0000"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:54:46 2026 +0100"
      },
      "message": "ALSA: usx2y: Guard the playback copy\n\nusx2y_urb_play_prepare() sums the packet lengths of a whole URB, copies\nthat many frames with a single wrap, and sizes each playback packet from\nthe capture packet\u0027s actual_length. Three things are unchecked: that the\nURB fits in the ring buffer, that a packet fits in the playback\nendpoint\u0027s maxpacksize, from which tmpbuf is allocated, and that\nactual_length is a whole number of frames. The ISO descriptors take the\nraw actual_length while transfer_buffer_length and the copies take\ncount * stride, so a packet that is not a multiple of the stride makes\nthe descriptors add up to more than the buffer, by up to stride - 1\nbytes per packet.\n\nReturn -EPIPE, as the existing packet-size check does, when the URB is\nlarger than the buffer or a packet is larger than maxpacksize, and size\neach descriptor from whole frames, so the descriptors add up to\ntransfer_buffer_length and each stays within maxpacksize. The buffer\ncase is prevented by the previous patch and this is the guard for it;\nthe other two depend only on the device.\n\nThe first case is reachable on the unpatched driver with ordinary\npackets: on 7.3-rc7, a USB/IP device presenting the US-122 interface\nlayout and sending 48-frame packets, with a 100-frame playback buffer\n(two 50-frame periods, inside the stock constraints), KASAN reports:\n\n  BUG: KASAN: out-of-bounds in i_usx2y_urb_complete+0x79b/0x1ac0\n  Read of size 18446744073709551280 at addr ffff88800e6b02e0 by task vhci_rx/80\n\nWith both patches, the same device and a 200-frame playback buffer is\nrefused at hw_params with EINVAL, and a 400-frame buffer plays for 30 s\nwith the position advancing inside the buffer, no KASAN report and\nneither guard message. The maxpacksize check is not exercised: the\nemulated device reports the same wMaxPacketSize on both endpoints.\n\nThe descriptor case is visible with capture packets of 195 bytes at\nstride 4 (48 frames and 3 bytes): without this change the four\ndescriptors add up to 780 bytes for 768 bytes of data, and USB/IP\u0027s\ncompletion check refuses the URB (\"total length of iso packets 780 not\nequal to actual length of buffer 768\", -EPROTO), after which the driver\nstops the streams. With this patch every descriptor is 192 bytes, the\ndescriptors add up to the data in every URB for 30 s, the position\nadvances inside the buffer and KASAN reports nothing. The 48-frame\nplayback run above is unchanged.\n\nFixes: 1da177e4c3f4 (\"Linux-2.6.12-rc2\")\nCc: stable@vger.kernel.org\nSigned-off-by: Sinan Turunc \u003censcrpt@pm.me\u003e\nLink: https://patch.msgid.link/20261104122136.1518-3-enscrpt@pm.me\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "4cbb826b3b36df6c275454287ba1df4564a5370b",
      "tree": "6a713208491c432ded88830f12ce503a3fc4ef3d",
      "parents": [
        "8c63987ac7fe605c337edbf9052cf97e2a415558"
      ],
      "author": {
        "name": "Sinan Turunc",
        "email": "enscrpt@pm.me",
        "time": "Wed Nov 04 12:21:57 2026 +0000"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:54:46 2026 +0100"
      },
      "message": "ALSA: usx2y: Require a buffer of two URBs\n\nusx2y_urb_capt_retire() wraps the ring buffer once per packet and\nusx2y_urb_play_prepare() once per URB of nr_of_packs() packets of up to\n50 frames. Both assume that the data fits in the buffer, and the hw\nconstraints only require about two 1 ms periods, so a packet larger\nthan the buffer on capture, or a URB larger than the buffer on playback,\nviolates that assumption.\n\nConstrain SNDRV_PCM_HW_PARAM_BUFFER_SIZE in snd_usx2y_pcm_open() to at\nleast two URBs, 2 * nr_of_packs() * 50 frames, for both directions. The\nbound is in frames and derived from the driver\u0027s own packet limit, so it\ndoes not read the endpoint, whose altsetting is only selected in\nprepare. Two URBs rather than one, because the position advances by a\nURB on playback and only moves when a URB is less than the whole buffer.\nKeep a guard in usx2y_urb_capt_retire() that drops a packet larger than\nthe buffer, for the case the constraint makes unreachable.\n\nWith nrpacks above about 163 (S16_LE) or 109 (S24_3LE) the bound exceeds\nthe 64 KiB buffer the substream preallocates (twice that with the\npreallocation raised to its 128 KiB maximum), so hw_params fails for\nthose module settings. That is intended: the driver cannot be safe with\na URB larger than half the largest buffer.\n\nReproduced on 7.3-rc7 with a USB/IP device presenting the US-122\ninterface layout and 1024-byte packets into a 512-byte capture buffer:\n\n  BUG: KASAN: out-of-bounds in i_usx2y_urb_complete+0x1285/0x1ac0\n  Read of size 18446744073709551104 at addr ffff88800e448800 by task vhci_rx/83\n\nTested on 7.3-rc7 with the same device, S16_LE at 44100 Hz, nrpacks 4,\nso the bound is 400 frames. A 128-frame capture buffer and a 200-frame\nplayback buffer are refused at hw_params with EINVAL. A 400-frame buffer\nstreams for 30 s in each direction with the position advancing inside\nthe buffer and no KASAN report; the capture guard did not fire. The\nsame 400-frame capture buffer with S24_3LE, which selects altsetting 2\nin prepare, streams for 30 s with the same result.\n\nFixes: 1da177e4c3f4 (\"Linux-2.6.12-rc2\")\nCc: stable@vger.kernel.org\nSigned-off-by: Sinan Turunc \u003censcrpt@pm.me\u003e\nLink: https://patch.msgid.link/20261104122136.1518-2-enscrpt@pm.me\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "8c63987ac7fe605c337edbf9052cf97e2a415558",
      "tree": "4d22be6a7faf58bbfa113b0d1a4fa2c5fb994759",
      "parents": [
        "aebc5461e2d0ef8f09920dfbc90e05b427aa5d35"
      ],
      "author": {
        "name": "Richard Fitzgerald",
        "email": "rf@opensource.cirrus.com",
        "time": "Wed Nov 04 12:23:37 2026 +0000"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:54:46 2026 +0100"
      },
      "message": "ALSA: hda: cs35l56: Stop cs_dsp before calling cs_dsp_power_down()\n\nIn cs35l56_hda_unbind() call cs_dsp_stop() before cs_dsp_power_down()\nif cs_dsp is in a running state.\n\ncs35l56_hda_runtime_resume() calls cs_dsp_run() if cs_dsp_power_up() has\npreviously run successfully. If cs35l56_hda_unbind() is then called while\nin this runtime-resumed state cs_dsp will be running. The code wasn\u0027t\nchecking for this and was calling cs_dsp_power_down() while still in a\nrunning state, which is illegal. This is currently fairly harmless for\nthe cs35l56 driver. But it doesn\u0027t comply with the API, so potentially\ncould break with any future changes that expect the correct API use.\n\nFixes: fb78d73dde2d4 (\"ALSA: hda/cs35l56: Call cs_dsp_power_down() before calling cs_dsp_remove()\")\nSigned-off-by: Richard Fitzgerald \u003crf@opensource.cirrus.com\u003e\nLink: https://patch.msgid.link/20261104122337.1072468-1-rf@opensource.cirrus.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "aebc5461e2d0ef8f09920dfbc90e05b427aa5d35",
      "tree": "669605374c64de1f670a5bceff56ee2aa3b10706",
      "parents": [
        "d2895945d37e3426191894a010f94db31c206e10"
      ],
      "author": {
        "name": "Richard Fitzgerald",
        "email": "rf@opensource.cirrus.com",
        "time": "Wed Nov 04 11:36:10 2026 +0000"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:54:46 2026 +0100"
      },
      "message": "ALSA: doc: cs35l56: Update calibration write failure message info\n\nUpdate the descriptions of the \"Failed to write calibration\" and\n\"Calibration disabled due to missing firmware controls\" error messages.\n\nOriginally \"Failed to write calibration\" was described as having the same\ncause as \"Calibration disabled due to missing firmware controls\". This\nwas _typically_ true because the most likely cause of the write failure\nwas missing controls (because both messages would be logged in that case).\nBut it wasn\u0027t clear from the description that this was referring to the\n_typical_ root cause being the same.\n\nReword the \"Failed to write calibration\" info to describe the possible\nother reasons for this error.\n\nAlso slightly reword the description of \"Calibration disabled due to\nmissing firmware controls\" to say \"firmware wmfw file\" instead of only\n\"wmfw\" and fix a missing \"the\" in the second bullet point. Also note\nthat this is not necessarily an error, only information.\n\nSigned-off-by: Richard Fitzgerald \u003crf@opensource.cirrus.com\u003e\nLink: https://patch.msgid.link/20261104113610.1057194-1-rf@opensource.cirrus.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "d2895945d37e3426191894a010f94db31c206e10",
      "tree": "899b2a7a49efd4cc1de07ca8b7dd901fec7c1f54",
      "parents": [
        "42bbdb212cb37d3653ef7542114b8cd3e6263657"
      ],
      "author": {
        "name": "Richard Fitzgerald",
        "email": "rf@opensource.cirrus.com",
        "time": "Wed Nov 04 11:11:21 2026 +0000"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:54:46 2026 +0100"
      },
      "message": "ALSA: hda: cs35l56: Fix mixed cleanup and goto in cs35l56_hda_fw_load()\n\nRemove the gotos from cs35l56_hda_fw_load() to prevent mixing\nauto-cleanup and goto-cleanup in the same function. Replace them with\nreturns and remove the goto cleanup code, as there\u0027s no need to \"undo\"\na cs_dsp_power_up() with a cs_dsp_power_down() here.\n\nTwo previous commits added auto-cleanup to cs35l56_hda_fw_load() but\ndidn\u0027t remove the goto, which leaves mixed cleanup and goto.\n\ncommit 0ff22680e51f4 (\"ALSA: hda/cs35l56: Clean up with\nPM_RUNTIME_ACQUIRE*() macros\")\n\ncommit 185841c94accc (\"ALSA: hda: cs35l56: Use auto-cleanup for firmware\nloading\")\n\nThere\u0027s actually no need to call cs_dsp_power_down() here. On the\nCS35L54/56/57 amps it doesn\u0027t control the DSP subsystem power (that is all\nmanaged by the firmware), so it\u0027s perfectly safe to just return if there\nare any errors after a successful cs_dsp_power_up(). As cs_dsp_power_up()\nwas successful it is valid to leave cs_dsp in this state, which matches\nthe state of the hardware.\n\nThe two places that cs_dsp_power_down() is called conditionally have been\nchanged to check the cs_dsp.booted flag, now the fw_patched flag is not\na guaranteed proxy. The booted flag is directly indicating that there has\nbeen a successful cs_dsp_power_up() so this is more correct anyway.\n\nFixes: 0ff22680e51f4 (\"ALSA: hda/cs35l56: Clean up with PM_RUNTIME_ACQUIRE*() macros\")\nSigned-off-by: Richard Fitzgerald \u003crf@opensource.cirrus.com\u003e\nLink: https://patch.msgid.link/20261104111121.1054077-1-rf@opensource.cirrus.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "42bbdb212cb37d3653ef7542114b8cd3e6263657",
      "tree": "180e3ea9f0f74b9b4b6c6c796e37cfde8729d91c",
      "parents": [
        "81c4b0e3545805f18334273d1d0f72ac50f633ef"
      ],
      "author": {
        "name": "Anupama Kunkulagunta",
        "email": "akunkulagunt@nvidia.com",
        "time": "Wed Nov 04 10:29:55 2026 +0000"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:54:46 2026 +0100"
      },
      "message": "ALSA: hda/tegra: Add Tegra268 HDMI/DP codec ID\n\nThe Tegra268 HDMI/DP HDA codec reports codec ID 0x10de0037, which is\nnot present in the Tegra HDMI codec driver\u0027s device table. Add this\nID so the driver can bind to the Tegra268 codec.\n\nTegra268 uses the same HDMI/DP codec programming model as Tegra234.\nReuse MODEL_TEGRA234 to enable DP MST, dynamic pin output assignment\nand HDMI interrupt trigger control for Tegra268.\n\nSigned-off-by: Anupama Kunkulagunta \u003cakunkulagunt@nvidia.com\u003e\nSigned-off-by: Sheetal \u003csheetal@nvidia.com\u003e\nLink: https://patch.msgid.link/20261104102955.1089991-1-sheetal@nvidia.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "81c4b0e3545805f18334273d1d0f72ac50f633ef",
      "tree": "029bf5ebf090f47cbd50dacee5b9fefce5dd46ad",
      "parents": [
        "994cd0af4dcd1ae34c990deb06079d7b1e30a1da"
      ],
      "author": {
        "name": "Zhang Heng",
        "email": "zhangheng@kylinos.cn",
        "time": "Wed Nov 04 18:04:27 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:54:46 2026 +0100"
      },
      "message": "ALSA: hda/realtek: Fix pop noise on ASUS PRIME B650M-K\n\nThe ASUS PRIME B650M-K motherboard with the ALC897 codec produces a\nloud \"pop\" noise from the audio outputs when the driver initializes\nthe codec during boot.\n\nAdd a specific fixup to toggle the EAPD pin (disable, wait 200ms,\nthen re-enable) during the initialization phase to eliminate the pop.\n\nTested-by: Catalonia_State \u003calejandrolibre@disroot.org\u003e\nCloses: https://bugzilla.kernel.org/show_bug.cgi?id\u003d222096\nSigned-off-by: Zhang Heng \u003czhangheng@kylinos.cn\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/20261104100427.474270-3-zhangheng@kylinos.cn\n"
    },
    {
      "commit": "994cd0af4dcd1ae34c990deb06079d7b1e30a1da",
      "tree": "af90a6eaeb21c7ef8da4ce72d2f6bff6935fe5a2",
      "parents": [
        "df6cc85923d96381a24f2a24ac2cb6ac92220a8e"
      ],
      "author": {
        "name": "Zhang Heng",
        "email": "zhangheng@kylinos.cn",
        "time": "Wed Nov 04 18:04:26 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:54:46 2026 +0100"
      },
      "message": "ALSA: hda/realtek: Fix DAC binding for Legion Pro 7 16ARX8H variant\n\nSimilar to SSID 17aa:38a7, the Lenovo Legion Pro 7 16ARX8H variant\n(SSID 17aa:38a8) also lacks the 0x14 speaker node. The generic\nALC287_FIXUP_TAS2781_I2C quirk assumes the presence of 0x14 and\nwill result in incorrect DAC bindings on this machine.\n\nLink: https://lore.kernel.org/all/CAGPQRHYXcbWTiKpCANEQ1mq9aUHM\u003dv82T231fw7Ld\u003dC-NM4+Bw@mail.gmail.com/\nSigned-off-by: Zhang Heng \u003czhangheng@kylinos.cn\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/20261104100427.474270-2-zhangheng@kylinos.cn\n"
    },
    {
      "commit": "df6cc85923d96381a24f2a24ac2cb6ac92220a8e",
      "tree": "a68b0420b944b78755aae69f602314a7fb7863de",
      "parents": [
        "d21746bafdb8e1a5fc9bdcb86f603d827a500a62"
      ],
      "author": {
        "name": "Zhang Heng",
        "email": "zhangheng@kylinos.cn",
        "time": "Wed Nov 04 18:04:25 2026 +0800"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:54:46 2026 +0100"
      },
      "message": "ALSA: hda/realtek: Fix DAC binding for Lenovo Legion Pro 7 16ARX8H\n\nThe Lenovo Legion Pro 7 16ARX8H (SSID 17aa:38a7) uses the TAS2781\nI2C DAC. The generic ALC287_FIXUP_TAS2781_I2C quirk assumes two\nspeakers (0x14 and 0x17). It forcibly binds 0x14 to DAC 0x02, and\nbinds 0x17 and 0x21 to DAC 0x03.\n\nHowever, this machine only has 0x17 as the speaker and lacks 0x14,\nwhich leads to incorrect DAC binding. To fix this, chain the\nalc295_fixup_asus_dacs() fixup before the generic quirk to ensure\nthe correct DAC routing for this hardware layout.\n\nTested-by: Roman Maidanovych via B4 Relay \u003cdevnull+devuarpd.gmail.com@kernel.org\u003e\nLink: https://bugzilla.kernel.org/show_bug.cgi?id\u003d221735\nSigned-off-by: Zhang Heng \u003czhangheng@kylinos.cn\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nLink: https://patch.msgid.link/20261104100427.474270-1-zhangheng@kylinos.cn\n"
    },
    {
      "commit": "d21746bafdb8e1a5fc9bdcb86f603d827a500a62",
      "tree": "b254267662f63e7acb2555b59732187294e67002",
      "parents": [
        "db51425c9eb038a8e40e09b837afde015ae9e3ec"
      ],
      "author": {
        "name": "Wentao Liang",
        "email": "vulab@iscas.ac.cn",
        "time": "Wed Nov 04 02:53:41 2026 +0000"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:54:46 2026 +0100"
      },
      "message": "ALSA: caiaq: free the EP4 URB when input setup fails\n\nThe three controllers that use the EP4 input URB allocate it before\nchecking the endpoint type and before registering the input device. On\nfailure they jump to exit_free_idev, which clears cdev-\u003einput_dev but\nleaves cdev-\u003eep4_in_urb set. The card teardown then calls\nsnd_usb_caiaq_input_free(), which returns early because input_dev is\nNULL, so the URB is never freed.\n\nRelease the URB before dropping the input device on the error path.\n\nFixes: 6da7a2aa899f (\"ALSA: usb/caiaq: Add support for Traktor Kontrol X1\")\nCc: stable@vger.kernel.org\nAssisted-by: DeepSeek-V4.1-Flash and OpenAI Codex\nSigned-off-by: Wentao Liang \u003cvulab@iscas.ac.cn\u003e\nLink: https://patch.msgid.link/20261104025341.1527407-1-vulab@iscas.ac.cn\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "db51425c9eb038a8e40e09b837afde015ae9e3ec",
      "tree": "bc7849032aa1fe596340b9074041fcbefaae37dd",
      "parents": [
        "f14f5be3c9e1ca01dce882f43a6fd07afb39542c"
      ],
      "author": {
        "name": "Sinan Turunc",
        "email": "enscrpt@pm.me",
        "time": "Tue Nov 03 13:22:44 2026 +0000"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:54:46 2026 +0100"
      },
      "message": "ALSA: line6: Reject capture buffers smaller than two packets\n\nline6_capture_copy() splits the copy into the ALSA ring buffer once at\nthe buffer end and wraps pos_done once, which is only correct when one\npacket holds at most buffer_size frames. The packet size comes from the\ndevice\u0027s endpoint, and the per-device hw structs allow 64-byte periods\nwith periods_min 1, so a packet can be larger than the whole buffer.\naudio_in_callback() logs an oversized packet and then copies it anyway.\n\nThe packet size is known at probe time, so constrain\nSNDRV_PCM_HW_PARAM_BUFFER_BYTES in snd_line6_capture_open() to at least\ntwice the larger of the two endpoints\u0027 packet sizes. Two rather than\none, because pos_done advances by the packet and wraps once, so a buffer\nof exactly one packet leaves the position unchanged after every packet.\nhw_params then rejects a buffer that cannot hold two packets, and the\nsingle wrap is valid for every configuration that gets through. Keep a\nguard in line6_capture_copy() that drops an oversized packet with a\nratelimited error, for the case that should no longer be reachable.\n\nReproduced on 7.3-rc7 with a USB/IP device presenting the GuitarPort\ninterface layout and 1024-byte packets into a 128-byte buffer: ALSA\nlogged \"invalid position: pos \u003d 224, buffer size \u003d 32\" and the driver\nlogged \"driver bug: len\" on every following packet. With this patch a\n1024-byte buffer is refused at hw_params, and a 2048-byte buffer streams\nfor 30 s with no report and with the position moving inside the buffer.\n\nFixes: 705ececd1c60 (\"Staging: add line6 usb driver\")\nCc: stable@vger.kernel.org\nSigned-off-by: Sinan Turunc \u003censcrpt@pm.me\u003e\nLink: https://patch.msgid.link/20261103132227.696-1-enscrpt@pm.me\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "f14f5be3c9e1ca01dce882f43a6fd07afb39542c",
      "tree": "93332d2d5146f1eca689d7efbc268190f180e817",
      "parents": [
        "f13964de5ee38be8af3cdcbe143cb17431ba3c0d"
      ],
      "author": {
        "name": "Vincent Cloutier",
        "email": "vincent@cloutier.co",
        "time": "Tue Nov 03 19:40:25 2026 -0500"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:54:46 2026 +0100"
      },
      "message": "ALSA: pcm: Allow HW_REFINE queries with mapped buffers\n\nPulseAudio 16.1 queries supported formats after configuring and mapping\na PCM buffer. Sharing HW_PARAMS\u0027 state checker with HW_REFINE causes\nthese queries to fail with -EBADFD because a non-OSS stream has active\nbuffer mappings. PulseAudio then fails to create its sinks and sources.\n\nMake the mmap restriction optional in the shared state checker. Keep it\nfor HW_PARAMS, which can reconfigure the mapped buffer, but skip it for\nHW_REFINE, which only refines the caller\u0027s constraint structure. Keep\nthe stream-state checks and buffer access locking for native, compat\nand legacy refinement ioctls rather than bypassing their wrapper.\nLeave the accepted stream states unchanged.\n\nOn Librem 5, both L5 and Modem cards reproduce the failure for playback\nand capture: refinement succeeds before setup and after RW setup, but\nfails after MMAP setup in PREPARED state. With this change, all eight\ncases pass, PulseAudio starts normally and audible playback works.\nThe reproducer does not start streams or transfer audio data.\n\nFixes: ad28d2f607d1 (\"ALSA: pcm: Serialize and check HW_REFINE ioctls\")\nLink: https://lore.kernel.org/linux-sound/41a2e39a-5637-8afa-f84f-f79e63b3b56e@xenosoft.de/\nLink: https://lore.kernel.org/linux-sound/874idyx9n6.wl-tiwai@suse.de/\nAssisted-by: OpenCode:GPT-6.1 Sol\nSigned-off-by: Vincent Cloutier \u003cvincent@cloutier.co\u003e\nLink: https://patch.msgid.link/20261104004113.546712-1-vincent.cloutier@icloud.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "f13964de5ee38be8af3cdcbe143cb17431ba3c0d",
      "tree": "e9947b06ff6b409d7c6cb3171c7343f580c7a897",
      "parents": [
        "8dbab764f1e0a92c3fac0ce070ce30c0c33c2692"
      ],
      "author": {
        "name": "Rafael Medina",
        "email": "rafael@gexdigital.net",
        "time": "Mon Nov 02 16:57:23 2026 -0600"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:54:46 2026 +0100"
      },
      "message": "ALSA: hda/ca0132: Restore AE-5 audio registers after LED strip send\n\nThe AE-5 LED strip transport added by commit c3e35f355fad (\"ALSA:\nhda/ca0132: Add Sound BlasterX AE-5 external RGB LED strip support\")\nreprograms the CA0113 audio serializer block in BAR2 to clock out the\nWS2812 data, and at the end clears only the stream routing register.\nThe format and channel enable register at 0x100 is left at 0x3000ff8f\ninstead of the 0x00000700 it reads after a normal codec init, and the\nanalog outputs stay silent until the codec is initialised again.\n\nThe strip control is marked volatile, but alsactl still stores it, and\nthe udev rule runs \"alsactl restore\" for every card probe. The saved\nstate of a card that never had a strip attached contains \"AE-5 LED\nStrip\" and \"AE-5 LED Strip Count\" with access \"read write volatile\".\nae5_strip_ctl_put() sent a frame even when the colors were unchanged,\nso every boot of an AE-5 or AE-5 Plus ended with a silent card.\n\nSave the registers that the transmit touches before programming them\nand write them back at the end of ae5_strip_send_frame(), and do not\ntransmit from ae5_strip_ctl_put() when the colors did not change.\n\nFixes: c3e35f355fad (\"ALSA: hda/ca0132: Add Sound BlasterX AE-5 external RGB LED strip support\")\nCc: Devin Christensen \u003cdchristensen8@proton.me\u003e\nSigned-off-by: Rafael Medina \u003crafael@gexdigital.net\u003e\nLink: https://patch.msgid.link/20261102225723.123266-1-rafael@gexdigital.net\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "8dbab764f1e0a92c3fac0ce070ce30c0c33c2692",
      "tree": "fbf9f251357902c25671c18c17f467ccfb21062d",
      "parents": [
        "cf79cc4996bf936fe159af2a600519b3ebd4ccb7"
      ],
      "author": {
        "name": "Mohamed Yassine Jebabli",
        "email": "med.jebabli@gmail.com",
        "time": "Tue Nov 03 10:27:12 2026 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Nov 05 08:54:46 2026 +0100"
      },
      "message": "ALSA: hda/tas2781: Only accept CRC-less V1 data if all entries are valid\n\nCommit 408249089c48 (\"ALSA: hda/tas2781: Accept V1 calibration data\nwithout CRC\") only checked the first device entry. On machines where\nthe BIOS populates fewer entries than p-\u003endev, the remaining all-zero\nentries are applied and tas2781_cali_preproc() divides by zero on\nplayback open.\n\nAccept CRC-less V1 data only if every expected entry is non-zero and\nself-consistent (R0 * 1/R0 close to 1.0), otherwise reject it as\nbefore.\n\nFixes: 408249089c48 (\"ALSA: hda/tas2781: Accept V1 calibration data without CRC\")\nReported-by: Cristian Castellano \u003ccristian.castellano@icloud.com\u003e\nCloses: https://lore.kernel.org/all/4e500063-d985-46b6-a0a1-3feaa77c4b2f@leemhuis.info/\nCc: stable@vger.kernel.org\nSigned-off-by: Mohamed Yassine Jebabli \u003cmed.jebabli@gmail.com\u003e\nLink: https://patch.msgid.link/20261103-tas2781-v1-nocrc-fix-v1-1-a769c27f21ce@gmail.com\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    }
  ],
  "next": "cf79cc4996bf936fe159af2a600519b3ebd4ccb7"
}
