https://bugs.kde.org/show_bug.cgi?id=438476

            Bug ID: 438476
           Summary: Powerdevil crashes and not properly works with nvidia
                    blob i2c ddc/ci
           Product: Powerdevil
           Version: 5.22.0
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: plasma-b...@kde.org
          Reporter: zvova7...@gmail.com
  Target Milestone: ---

Created attachment 139236
  --> https://bugs.kde.org/attachment.cgi?id=139236&action=edit
powerdevil-nvidia-blob-ddc-fix.patch

SUMMARY
Powerdevil crashes and not properly work with nvidia blob provided i2c dcc/ci.
It is looks like an old nvidia bug when ddcutils not realy like nvidia i2c.
https://forums.developer.nvidia.com/t/gddccontrol-issues-with-nvidia-drivers-i2c-monitor-display-ddc-dp-hdmi-failing/30427

On boot powerdevil has not detected ddc/ci in system because
ddca_get_non_table_vcp_value return error -3011(DDCRC_ALL_RESPONSES_NULL). If
restart powerdevil manually, ddca_get_non_table_vcp_value return 0 and
brightness control is actually is being provided, but plasma still does not
"see" dbus provided services. I think it is another bug related to plasma. If
restart plasmashell - brightness control come to be available. But if change
brightness - powerdevil going to crash on ddcutil lib, due to bugs in second
call of detect() function, that not close old display handlers and also not
free resources of ddcutils lib. After crash powerdevil automatically restarts
and after that cycles of hell brightness control start's to work properly.

I'm prepare patch, that I'm testing now, for fix this bugs on powerdevil side.
Algorithm is not the best, but it is must to work on most cases. Main idea -
start detecting i2c bus that provided by nvidia blob, and introduce for this
bus redetecting ddc/ci until errors come and errors count less then some magic
number(for exclude potential dead loop). Also when set brightness, nvidia blob
might return null response when brightness actually set, so I'm also add quirk
for ignore null response and interpret this as "ok" result on blob.

Now brightness control over nvidia i2c is usable. Applied patch for discussion,
probably I will not push it to MR

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to