<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>49475</bug_id>
          
          <creation_ts>2024-02-22 12:09:00 +0300</creation_ts>
          <short_desc>kernel un-def 6.6: исчезли костыли из es8336</short_desc>
          <delta_ts>2024-03-08 01:57:28 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>kernel-image-un-def</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>NOTABUG</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="mikhailnov">m</reporter>
          <assigned_to name="Vasiliy Kovalev">kovalevvv</assigned_to>
          <cc>bircoph</cc>
    
    <cc>kernelbot</cc>
    
    <cc>kovalev</cc>
    
    <cc>kovalevvv</cc>
    
    <cc>nickel</cc>
    
    <cc>placeholder</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>241943</commentid>
    <comment_count>0</comment_count>
    <who name="mikhailnov">m</who>
    <bug_when>2024-02-22 12:09:00 +0300</bug_when>
    <thetext>Заметил, что в kernel-image-un-def 6.6 в sound/soc/intel/boards/sof_es8336.c больше нет костылей и подпорок (&quot;quirks&quot;) для различного российского оборудования.

Вот эти:
https://git.altlinux.org/gears/k/kernel-image-std-def.git?p=kernel-image-std-def.git;a=blob_plain;f=sound/soc/intel/boards/sof_es8336.c;h=d2a8309c3d520d97fb3e9a1747fa374dd7786beb;hb=882bb4ce852b88412e92bf6d508b19acdcee29e3

static const struct dmi_system_id sof_es8336_quirk_table[] = {
	{
		.callback = sof_es8336_quirk_cb,
		.ident = &quot;pa-enable ACPI deviant&quot;,
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, &quot;3Logic Group&quot;),
			DMI_MATCH(DMI_PRODUCT_NAME, &quot;Graviton N15i&quot;),
		},
		.driver_data = (void *)(SOF_ES8336_SSP_CODEC(0) |
					SOF_ES8336_TGL_GPIO_QUIRK)
	},
	{
		.callback = sof_es8336_quirk_cb,
		.ident = &quot;pa-enable ACPI deviant&quot;,
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, &quot;3Logic Group&quot;),
			DMI_MATCH(DMI_PRODUCT_NAME, &quot;Graviton N15i-K2&quot;),
		},
		.driver_data = (void *)(SOF_ES8336_SSP_CODEC(0) |
					SOF_ES8336_TGL_GPIO_QUIRK)
	},
	{
		.callback = sof_es8336_quirk_cb,
		.ident = &quot;pa-enable ACPI deviant&quot;,
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, &quot;3Logic Group&quot;),
			DMI_MATCH(DMI_PRODUCT_NAME, &quot;Lime 15.6&quot;),
		},
		.driver_data = (void *)(SOF_ES8336_SSP_CODEC(0) |
					SOF_ES8336_TGL_GPIO_QUIRK)
	},
	{
		.callback = sof_es8336_quirk_cb,
		.matches = {
			/* market name: Aquarius Cmp NS685U R11 */
			DMI_MATCH(DMI_SYS_VENDOR, &quot;Aquarius&quot;),
			DMI_MATCH(DMI_PRODUCT_NAME, &quot;NS685U R11&quot;),
		},
		.driver_data = (void *)(SOF_ES8336_SSP_CODEC(0) |
					SOF_ES8336_JD_INVERTED)
	},
	{
		.callback = sof_es8336_quirk_cb,
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, &quot;CHUWI Innovation And Technology&quot;),
			DMI_MATCH(DMI_BOARD_NAME, &quot;Hi10 X&quot;),
		},
		.driver_data = (void *)SOF_ES8336_SSP_CODEC(2)
	},
	{
		.callback = sof_es8336_quirk_cb,
		.ident = &quot;pa-enable ACPI deviant&quot;,
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, &quot;DEPO Computers&quot;),
			DMI_MATCH(DMI_PRODUCT_NAME, &quot;DPC156&quot;),
		},
		.driver_data = (void *)(SOF_ES8336_SSP_CODEC(0) |
					SOF_ES8336_TGL_GPIO_QUIRK)
	},

Так задумано или случайно потеряли?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241944</commentid>
    <comment_count>1</comment_count>
    <who name="mikhailnov">m</who>
    <bug_when>2024-02-22 12:12:21 +0300</bug_when>
    <thetext>Вот эту подпорку

	{
		.callback = sof_es8336_quirk_cb,
		.matches = {
			/* market name: Aquarius Cmp NS685U R11 */
			DMI_MATCH(DMI_SYS_VENDOR, &quot;Aquarius&quot;),
			DMI_MATCH(DMI_PRODUCT_NAME, &quot;NS685U R11&quot;),
		},
		.driver_data = (void *)(SOF_ES8336_SSP_CODEC(0) |
					SOF_ES8336_JD_INVERTED)
	},

можно написать чуть иначе:
.driver_data = (void *)(SOF_ES8336_JD_INVERTED)

Не знаю, рабочий ли ваш вариант, но SOF_ES8336_JD_INVERTED точно работало
https://abf.io/import/kernel-6.1/blob/beefa777f9/0403-ASoC-Intel-sof_es8336-Add-a-quirk-for-Aquarius-NS685.patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241981</commentid>
    <comment_count>2</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2024-02-23 04:26:28 +0300</bug_when>
    <thetext>В какой версии ядра это было?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242081</commentid>
    <comment_count>3</comment_count>
    <who name="mikhailnov">m</who>
    <bug_when>2024-02-26 09:29:12 +0300</bug_when>
    <thetext>(Ответ для Vitaly Chikunov на комментарий #2)
&gt; В какой версии ядра это было?

Не помню. В 6.1, кажется.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242151</commentid>
    <comment_count>4</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2024-02-27 03:01:31 +0300</bug_when>
    <thetext>Похоже эти изменения были только до kernel-image-un-def-5.15.84-alt1 (p10). Затем они были заменены обновлением драйвера https://lists.altlinux.org/pipermail/devel-kernel/2022-December/007798.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242180</commentid>
    <comment_count>5</comment_count>
    <who name="mikhailnov">m</who>
    <bug_when>2024-02-27 10:46:59 +0300</bug_when>
    <thetext>По ссылке нет замены, там просто удаление.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242181</commentid>
    <comment_count>6</comment_count>
    <who name="mikhailnov">m</who>
    <bug_when>2024-02-27 11:04:41 +0300</bug_when>
    <thetext>(Ответ для Vitaly Chikunov на комментарий #4)
&gt; Похоже эти изменения были только до kernel-image-un-def-5.15.84-alt1 (p10).
&gt; Затем они были заменены обновлением драйвера
&gt; https://lists.altlinux.org/pipermail/devel-kernel/2022-December/007798.html

Похоже, что при copy driver source code from kernel v6.0.9 просто потеряли правки, сделанные поверх бекпортированного в старые ядра es8336. У вас там был сделанный Виталием из Аквариуса бекпорт, мне кажется, если правильно помню. А я в Росиное ядро 5.15 (https://abf.io/import/kernel-5.15/tree/rosa2021.1) вместо использования его бекпорта по-коммитово перенес изменения в es8336 и, посмотрев, как сделано в Альтовом ядре, добавил quirk. В Росином ядре 6.1 (https://abf.io/import/kernel-6.1/tree/rosa2021.1) уже нет бекпортов es8336 (как раз из района примерно 6.1 бекпортировали в 5.15), но есть патч с добавлением quirk. Не могу вспомнить или найти информацию, тестировали ли Росу с 6.1 на железе или нет. Но 5.15 точно тестировали, а код в 5.15 был перенесен из ~6.1, патч для quirk нужен на 5.15, значит он нужен и на 6.1.
Вот это в Альте было, очевидно, сделано для того же оборудования: https://git.altlinux.org/gears/f/firmware-alsa-sof.git?p=firmware-alsa-sof.git;a=commitdiff;h=3e1039d55a64f83cb43fdacbef2b9f4c6857557e</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242682</commentid>
    <comment_count>7</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2024-03-07 12:12:30 +0300</bug_when>
    <thetext>@nickel @kovalev скажите, пожалуйста, почему вы отревертили эти квирки?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242689</commentid>
    <comment_count>8</comment_count>
    <who name="Vasiliy Kovalev">kovalevvv</who>
    <bug_when>2024-03-07 12:44:06 +0300</bug_when>
    <thetext>(Ответ для mikhailnov на комментарий #0)
&gt; Заметил, что в kernel-image-un-def 6.6 в sound/soc/intel/boards/sof_es8336.c
&gt; больше нет костылей и подпорок (&quot;quirks&quot;) для различного российского
&gt; оборудования.

&gt; Так задумано или случайно потеряли?

Большинство квирков стали не актуальны после обновления драйвера.

(Ответ для Vitaly Chikunov на комментарий #7)
&gt; @nickel @kovalev скажите, пожалуйста, почему вы отревертили эти квирки?

Для 6.6 ядра мы не добавляли и не ревертили квирки.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242690</commentid>
    <comment_count>9</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2024-03-07 12:46:01 +0300</bug_when>
    <thetext>(In reply to Vasiliy Kovalev from comment #8)
&gt; Большинство квирков стали не актуальны после обновления драйвера.

Спасибо за ответ. Я так и предполагал.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242693</commentid>
    <comment_count>10</comment_count>
    <who name="mikhailnov">m</who>
    <bug_when>2024-03-07 13:10:32 +0300</bug_when>
    <thetext>А как вы определили, что квирки перестали быть актуальными?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242695</commentid>
    <comment_count>11</comment_count>
    <who name="Vasiliy Kovalev">kovalevvv</who>
    <bug_when>2024-03-07 13:20:17 +0300</bug_when>
    <thetext>(Ответ для mikhailnov на комментарий #10)
&gt; А как вы определили, что квирки перестали быть актуальными?

Заметьте &quot;Большинство&quot; квирков, а это из приведенной таблицы
3Logic Group, DEPO Computers и CHUWI. 

Для Aquarius проблема остается и на ядре 6.6, например, не решена.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242698</commentid>
    <comment_count>12</comment_count>
    <who name="mikhailnov">m</who>
    <bug_when>2024-03-07 13:44:58 +0300</bug_when>
    <thetext>Мне казалось, что драйвер не менялся как либо, чтоб квирки могли быть перестать актуальны. Получается, вы проверили функционально, и теперь работает без них? Для Аквариуса рабочее решение в Росе, ссылка в комментарии 1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242700</commentid>
    <comment_count>13</comment_count>
    <who name="mikhailnov">m</who>
    <bug_when>2024-03-07 13:49:37 +0300</bug_when>
    <thetext>https://abf.io/import/kernel-6.6 - здесь патчи для Аквариуса, перенесенные из 6.1, но пока не было возможности проверить их на железе.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242705</commentid>
    <comment_count>14</comment_count>
    <who name="Vasiliy Kovalev">kovalevvv</who>
    <bug_when>2024-03-07 14:02:52 +0300</bug_when>
    <thetext>(Ответ для mikhailnov на комментарий #12)
&gt; Мне казалось, что драйвер не менялся как либо, чтоб квирки могли быть
&gt; перестать актуальны. Получается, вы проверили функционально, и теперь
&gt; работает без них?

Ага

&gt; Для Аквариуса рабочее решение в Росе, ссылка в комментарии 1.

Я имел ввиду проблема не решена в апстриме.

&gt; https://abf.io/import/kernel-6.6 - здесь патчи для Аквариуса, перенесенные из 6.1, но пока не было возможности проверить их на железе.

В этих ноутбуках кодеки es8326 и именно с ними проблемы на 6.1 и выше.
Мы еще не портировали на 6-ые ядра квирки и на текущий момент рабочая ветка
протестированных моделей для тасков https://git.altlinux.org/people/kovalev/packages/?p=kernel-image.git;a=shortlog;h=refs/heads/branch-kovalev_es8326_6.1.x_new
Там же можете проверить и модель из вашего патча.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242719</commentid>
    <comment_count>15</comment_count>
    <who name="mikhailnov">m</who>
    <bug_when>2024-03-07 21:12:42 +0300</bug_when>
    <thetext>(Ответ для Vasiliy Kovalev на комментарий #14)
&gt; (Ответ для mikhailnov на комментарий #12)
&gt; &gt; Мне казалось, что драйвер не менялся как либо, чтоб квирки могли быть
&gt; &gt; перестать актуальны. Получается, вы проверили функционально, и теперь
&gt; &gt; работает без них?
&gt; 
&gt; Ага
Интересно, почему так...

&gt; 
&gt; &gt; Для Аквариуса рабочее решение в Росе, ссылка в комментарии 1.
&gt; 
&gt; Я имел ввиду проблема не решена в апстриме.
С одной стороны, было бы неплохо заапстримить квирки, но с другой — не очень понятно, как поддерживать их актуальность в апстриме.

&gt; 
&gt; &gt; https://abf.io/import/kernel-6.6 - здесь патчи для Аквариуса, перенесенные из 6.1, но пока не было возможности проверить их на железе.
&gt; 
&gt; В этих ноутбуках кодеки es8326 и именно с ними проблемы на 6.1 и выше.
&gt; Мы еще не портировали на 6-ые ядра квирки и на текущий момент рабочая ветка
&gt; протестированных моделей для тасков
&gt; https://git.altlinux.org/people/kovalev/packages/?p=kernel-image.git;
&gt; a=shortlog;h=refs/heads/branch-kovalev_es8326_6.1.x_new
&gt; Там же можете проверить и модель из вашего патча.

Спасибо, посмотрел, у меня:
DMI_MATCH(DMI_PRODUCT_NAME, &quot;NS685U R11&quot;)
и это же оборудование:
DMI_MATCH(DMI_PRODUCT_NAME, &quot;win10 HOME rs10&quot;)
А у вас:
DMI_MATCH(DMI_BOARD_NAME, &quot;NS685&quot;)

Без U модель не находится (https://yandex.ru/search/?text=aquarius+NS685). Либо у кого-то из нас ошибка, либо в природе сущеcтвуют оба варианта (плюс третий - &quot;win10 HOME rs10&quot;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242720</commentid>
    <comment_count>16</comment_count>
    <who name="mikhailnov">m</who>
    <bug_when>2024-03-07 21:14:18 +0300</bug_when>
    <thetext>&quot;NS685U R11&quot; точно существует: https://linux-hardware.org/?probe=339dc3db60&amp;log=dmidecode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242721</commentid>
    <comment_count>17</comment_count>
    <who name="Vasiliy Kovalev">kovalevvv</who>
    <bug_when>2024-03-07 22:43:41 +0300</bug_when>
    <thetext>(Ответ для mikhailnov на комментарий #15)
&gt; 
&gt; Спасибо, посмотрел, у меня:
&gt; DMI_MATCH(DMI_PRODUCT_NAME, &quot;NS685U R11&quot;)
&gt; А у вас:
&gt; DMI_MATCH(DMI_BOARD_NAME, &quot;NS685&quot;)

&quot;NS685&quot; у нас - начальные буквы названия материнской платы (DMI_BOARD_NAME),
если посмотреть здесь
(https://linux-hardware.org/?probe=339dc3db60&amp;log=dmidecode) -
полное название у вас &quot;NS685Uv3&quot;, тогда как у нас на тестировании была модель:
Manufacturer:      Aquarius
Product Name:      CMP NS685U_4
Board Name:        NS685IS4

то есть, по DMI_MATCH пройдут обе модели.

&gt; и это же оборудование:
&gt; DMI_MATCH(DMI_PRODUCT_NAME, &quot;win10 HOME rs10&quot;)
&gt; 
&gt; Без U модель не находится (https://yandex.ru/search/?text=aquarius+NS685).
&gt; Либо у кого-то из нас ошибка, либо в природе сущеcтвуют оба варианта (плюс
&gt; третий - &quot;win10 HOME rs10&quot;).

У вас &quot;win10 HOME rs10&quot; - название модели (DMI_PRODUCT_NAME)
из данных &quot;System Information&quot;
(https://linux-hardware.org/?probe=988e1b3035&amp;log=dmidecode).
Альтернатива - использовать &quot;EM_CM525_PRO_V2.0&quot; (DMI_BOARD_NAME) из
&quot;Base Board Information&quot;, или обрезать до &quot;EM_CM525_PRO&quot; для других ревизий:

+			DMI_MATCH(DMI_SYS_VENDOR, &quot;Aquarius&quot;),
+			DMI_MATCH(DMI_BOARD_NAME, &quot;EM_CM525_PRO&quot;),

Заодно уйдет и сомнительное &quot;win10&quot; из названия.

Такой модели у нас не было, расширю список, и вам спасибо.

&gt; С одной стороны, было бы неплохо заапстримить квирки, но с другой — не очень 
&gt; понятно, как поддерживать их актуальность в апстриме.

Да, здесь двойная проблема - непредсказуемость названий материнских плат
(например, NS685 и EM_CM525_PRO для похожих моделей), что породит большое кол-во патчей, что вызовет подозрения, и другая - это всё же костыли, правильное решение - хранить специфичные конфигурационные параметры в прошивке биос и правильно интерпретировать их драйвером. Отсюда, либо драйвер недоработан,
либо разработчики биос что-то упустили.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242722</commentid>
    <comment_count>18</comment_count>
    <who name="mikhailnov">m</who>
    <bug_when>2024-03-08 01:57:28 +0300</bug_when>
    <thetext>(Ответ для Vasiliy Kovalev на комментарий #17)
&gt; (Ответ для mikhailnov на комментарий #15)
&gt; &gt; 
&gt; &gt; Спасибо, посмотрел, у меня:
&gt; &gt; DMI_MATCH(DMI_PRODUCT_NAME, &quot;NS685U R11&quot;)
&gt; &gt; А у вас:
&gt; &gt; DMI_MATCH(DMI_BOARD_NAME, &quot;NS685&quot;)
&gt; 
&gt; &quot;NS685&quot; у нас - начальные буквы названия материнской платы (DMI_BOARD_NAME),
&gt; если посмотреть здесь
&gt; (https://linux-hardware.org/?probe=339dc3db60&amp;log=dmidecode) -
&gt; полное название у вас &quot;NS685Uv3&quot;, тогда как у нас на тестировании была
&gt; модель:
&gt; Manufacturer:      Aquarius
&gt; Product Name:      CMP NS685U_4
&gt; Board Name:        NS685IS4
&gt; 
&gt; то есть, по DMI_MATCH пройдут обе модели.
Спасибо за пояснение, не заметил замылившимся глазом, что в одном месте DMI_PRODUCT_NAME, а в другом DMI_BOARD_NAME, и думал, что DMI_MATCH - это точное соответствие, а это поиск вхождения подстроки в строку.

&gt; 
&gt; &gt; и это же оборудование:
&gt; &gt; DMI_MATCH(DMI_PRODUCT_NAME, &quot;win10 HOME rs10&quot;)
&gt; &gt; 
&gt; &gt; Без U модель не находится (https://yandex.ru/search/?text=aquarius+NS685).
&gt; &gt; Либо у кого-то из нас ошибка, либо в природе сущеcтвуют оба варианта (плюс
&gt; &gt; третий - &quot;win10 HOME rs10&quot;).
&gt; 
&gt; У вас &quot;win10 HOME rs10&quot; - название модели (DMI_PRODUCT_NAME)
&gt; из данных &quot;System Information&quot;
&gt; (https://linux-hardware.org/?probe=988e1b3035&amp;log=dmidecode).
&gt; Альтернатива - использовать &quot;EM_CM525_PRO_V2.0&quot; (DMI_BOARD_NAME) из
&gt; &quot;Base Board Information&quot;, или обрезать до &quot;EM_CM525_PRO&quot; для других ревизий:
&gt; 
&gt; +			DMI_MATCH(DMI_SYS_VENDOR, &quot;Aquarius&quot;),
&gt; +			DMI_MATCH(DMI_BOARD_NAME, &quot;EM_CM525_PRO&quot;),
&gt; 
&gt; Заодно уйдет и сомнительное &quot;win10&quot; из названия.
&gt; 
&gt; Такой модели у нас не было, расширю список, и вам спасибо.
&gt; 
&gt; &gt; С одной стороны, было бы неплохо заапстримить квирки, но с другой — не очень 
&gt; &gt; понятно, как поддерживать их актуальность в апстриме.
&gt; 
&gt; Да, здесь двойная проблема - непредсказуемость названий материнских плат
&gt; (например, NS685 и EM_CM525_PRO для похожих моделей), что породит большое
&gt; кол-во патчей, что вызовет подозрения, и другая - это всё же костыли,
&gt; правильное решение - хранить специфичные конфигурационные параметры в
&gt; прошивке биос и правильно интерпретировать их драйвером. Отсюда, либо
&gt; драйвер недоработан,
&gt; либо разработчики биос что-то упустили.
Интересная мысль, попробую выяснить у инженеров Everest Semiconductor, возможно ли такое, вроде бы есть связь с ними.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>