Избавление от PWM-мерцания на железе intel. Нюансы
Всем привет Как известно, есть такая проблема как PWM-мерцания, связанная с реализацией функции изменения яркости.
На драйверах intel есть возможность это пофиксить с помощью intel_gpu_tools. А точнее, прописать в спец регистр значение периода мерцания (обратно пропорционально частоте). Туда же в нижние байты можно записать значение цикла внутри периода, который отвечает за яркость (цикл =0 - яркость 0%, цикл = период - яркость 100%)
Собственно, с этим все ок, это действительно работает. Подробнее есть здесь
Но есть большая проблема в том, что после этого изменения яркость практически не регулируется. Например, оригинальный период 937 (200Hz, шаг изменения яркости - 9). Я меняю период на 94 (2000Hz, шаг изменения яркости должен стать 1). Кол-во шагов для примера - 100 (то есть, в условных единицах - от 0 до 100 с шагом 1)
Таким образом, получается, что после изменения частоты, я дохожу до 100% яркости всего за 10 шагов (10%). То есть 0-10% еще есть какая-то регулировка, а 10-100% уже максимальная яркость.
Полагаю, что эту ситуацию можно исправить, изменив параметр /sys/class/backlight/intel_backlight/max_brightness. Он всегда остается равным периоду, который был задан изначально. Если можно было бы синхронизировать изменение регистра и этого параметра, то теоретически можно было бы сохранить регулировку яркости в полном диапазоне. Но этот параметр не получается изменить даже под рутом (permission denied) путем echo >
Есть ли какие-нибудь мысли, каким образом его еще можно изменить. Может опять таки есть регистр, который отвечает за этот параметр?
Спасибо
Upd: Думаю важно добавить, что это ноут