Summary: | No mouse cursor (invisible) with DVI cable | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | caozong <caozong> | ||||||||
Component: | Driver/openchrome | Assignee: | Openchrome development list <openchrome-devel> | ||||||||
Status: | RESOLVED MOVED | QA Contact: | |||||||||
Severity: | normal | ||||||||||
Priority: | medium | CC: | kevinbrace | ||||||||
Version: | unspecified | ||||||||||
Hardware: | All | ||||||||||
OS: | Linux (All) | ||||||||||
Whiteboard: | |||||||||||
i915 platform: | i915 features: | ||||||||||
Attachments: |
|
Description
caozong
2016-04-26 09:34:31 UTC
Created attachment 123271 [details]
tooltips appear but no cursor icon
I have some updates. First,I have 4 kinds of environments: vx900 KMS, vx900 UMS, cn700 KMS(bug), cn700 UMS. And I tried to print all values of cursor-related registers (PRIM_HI_FBOFFSET, PRIM_HI_CTRL, HI_FBOFFSET, HI_CONTROL). I found that the cn700 platform use HI_FBOFFSET and HI_CONTROL which are for second display to show cursor. And the others' value is 0. (the result is in the attachment) Then I check the code in drm-openchrome/driver/gpu/drm/via/via_crtc.c /* Program the offset and turn on Hardware icon Cursor */ if (iga->index) { VIA_WRITE(HI_FBOFFSET, iga->cursor_kmap.bo->offset); VIA_WRITE(HI_CONTROL, 0xB6000005); }else { VIA_WRITE(PRIM_HI_FBOFFSET, iga->cursor_kmap.bo->offset); VIA_WRITE(PRIM_HI_CTRL, 0x36000005); } On cn700, it's "else" that always takes place. The register for second display is never set. So I simply change the condition into true. HI_FBOFFSET and HI_CONTROL are set correctly, but cursor is still not showing. Created attachment 123906 [details]
value of register
Hi Zong, I tried to fix the bug with Eric Kudzin the other day, but apparently the fix does not work. https://bugs.freedesktop.org/show_bug.cgi?id=94259#c45 Please note that the patch will likely not work. It appears that CN700's video display engine and later model's (i.e., P4M890 and later) video display engine are different, hence, the code only works as long as the user is using VGA only, and VGA is coming from IGA1 (display controller #1). It appears that VIA updated the video display engine around P4M890 to CME from the older CLE engine. Based on how the patch did not work, I think CN700 contains the older CLE engine. When James Simmons worked on the new DRM module supporting KMS, he probably simply copied the code from OpenChrome UMS code to the KMS portion of the new DRM module. He probably did not know that the cursor will not work in CN700 when using IGA2 (i.e., DVI from VT1632A). When I tested the fix with Eric using his Wyse Vx0 thin client, one monitor can display the cursor (technically, hardware icon or HI), but the other one cannot. I managed to get DVI working in Vx0 by tinkering with 3X5.96 via (no pun intended) via_regs_dump tool. It now appears that Wyse Vx0's DVI chip (VT1632A) is connected to DVP0 (Digital Video Port 0). The register to control this is located at 3X5.96. I will call this register Digital Video Port 0 Function Select 0. The bit fields appear to be identical to 3X5.9B (Digital Video Port 1 Function Select 0). Please note that none of the OGPM (Open Graphics Programming Manual) documents VIA Technologies released mentions DVP0 since DVP0 was discontinued starting with CX700 chipset. 3X5.96 is reserved starting with CX700 chipset. In order to get IGA2 to be the source of DVP0, set bit 4 to 1. Keep all the other fields intact. We managed to get DVI working this way, and I may be able to put the DVP0 related fix in the Version 0.5. As for the cursor issue, software cursor may have to be turned on all the time for CN700 and older chipsets since HI does not seem to work when IGA1 and IGA2 are running simultaneously (i.e., VGA + DVI RandR situation). Hi Zong, Here is a list OpenChrome developers compiled some while ago. https://www.freedesktop.org/wiki/Openchrome/HardwareCheatSheet/ I personally doubt CN700 has CME engine though based on the hardware icon not working correctly. -- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/openchrome/old-bug-database/issues/19. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.