Bug 42852

Summary: radeon driver (also ati driver) works only once.
Product: xorg Reporter: sergio lenzi <lenzi.sergio>
Component: Driver/RadeonAssignee: xf86-video-ati maintainers <xorg-driver-ati>
Status: RESOLVED WONTFIX QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium CC: pukku
Version: 7.5 (2009.10)   
Hardware: x86-64 (AMD64)   
OS: FreeBSD   
Whiteboard:
i915 platform: i915 features:

Description sergio lenzi 2011-11-12 07:56:51 UTC
I have a new notebook AMD vision with radeon 6250HD graphics.
The operating system is FreeBSD 8.2 64bits
When I turn the machine on, everything works, I can enter the desktop (gdm 2.29, or 2.30) the resolution is 1366x768 24bits. the screen is correct, no problems at all, the system does not recognize agp and dri is not enable, so I do not have any 3D accel, no 2D accell  (I do not need it, as I only play some media: totam, avidemux, openshot...).
The problem shows when I log off from my account, 

1) the screen resets to black, and when gdm tries to show screen again,
the screen show half shifted to the right, (the cursor is on the right border of
the screen and is located at the middle of the logical screen. when I move the mouse to the right, the cursor jumps to the left corner of the lcd panel...
2) another init from gdm, the screen turns black
3) another reset, the screen flickers to blue....
4) several resets afer, the screen show correct gdm login... and everything
works...
5) another logout, the system goes back to (2).

Seems that the Xserver (7.5.1) and/or the driver (ati,radeon) is not resetting the chip to the power on state.. so it point to the wrong screen memory (shifted by half)... several resets, later, the screen memory goes back to the power on address, and things work again..

Solution: seems that the ati, and so radeon driver is not resetting the chip to
the original power on state...

Can someone points me to the correct initialization logic for the radeon 6250HD chip???

Any help is very wellcome....


SErgio
Comment 1 Alex Deucher 2011-11-12 08:21:46 UTC
Your chip requires KMS to work properly.
Comment 2 sergio lenzi 2011-11-12 13:57:27 UTC
Em Sáb, 2011-11-12 às 16:21 +0000, bugzilla-daemon@freedesktop.org
escreveu:

> https://bugs.freedesktop.org/show_bug.cgi?id=42852
> 
> --- Comment #1 from Alex Deucher <agd5f@yahoo.com> 2011-11-12 08:21:46 PST ---
> Your chip requires KMS to work properly.
> 


FreeBSD does not have KMS.. 
On another notebook Radeon XPRESS 200M 5955 
it works ok...

As I said in the bug report, the chip works very good Only after power
on,
and the driver "ati" or "radeon" is not aware of KMS either...

Seems to me that the screen memory is not align propper with
the registers on the chipset, a propper align situation  occurs only
after power on,
or after about 10 resets.. 

A propper reset or initial program in the chip (using the ati, or radeon
driver)
would resolve the problem...

Can someone please point me to a documentation of the radeon 6250 that
explains how to reset the chip to power on state???

Thanks for any help,

Sergio
Comment 3 Alex Deucher 2011-11-13 11:29:21 UTC
(In reply to comment #2)
> Em Sáb, 2011-11-12 às 16:21 +0000, bugzilla-daemon@freedesktop.org
> escreveu:

> FreeBSD does not have KMS.. 
> On another notebook Radeon XPRESS 200M 5955 
> it works ok...
> 

That's a completely different chip that is supported properly with both UMS and KMS.

> As I said in the bug report, the chip works very good Only after power
> on,
> and the driver "ati" or "radeon" is not aware of KMS either...
> 

There is very limited UMS support for your chip, but it's not nearly as robust as the KMS support and there are no plans at the moment to do any more work on UMS.

> Seems to me that the screen memory is not align propper with
> the registers on the chipset, a propper align situation  occurs only
> after power on,
> or after about 10 resets.. 
> 
> A propper reset or initial program in the chip (using the ati, or radeon
> driver)
> would resolve the problem...
> 
> Can someone please point me to a documentation of the radeon 6250 that
> explains how to reset the chip to power on state???

You can take a look at the KMS code and port the relevant changes to UMS.
http://cgit.freedesktop.org/~airlied/linux/tree/drivers/gpu/drm/radeon?h=drm-fixes
There isn't just a simple function to reset the chip, you need to reprogram the memory controller, the display hardware, etc.
As your problem appears to be display related, I would take a look at the code in atombios_encoders.c and atombios_crtc.c in KMS and compare it to the code in atombios_output.c and atombios_crtc.c in the UMS tree.  Your chip is in the PALM family and has a DCE4.1 based display block.
Comment 4 sergio lenzi 2011-11-13 23:11:34 UTC
> You can take a look at the KMS code and port the relevant changes to UMS.
> http://cgit.freedesktop.org/~airlied/linux/tree/drivers/gpu/drm/radeon?h=drm-fixes
> There isn't just a simple function to reset the chip, you need to reprogram the
> memory controller, the display hardware, etc.
> As your problem appears to be display related, I would take a look at the code
> in atombios_encoders.c and atombios_crtc.c in KMS and compare it to the code in
> atombios_output.c and atombios_crtc.c in the UMS tree.  Your chip is in the
> PALM family and has a DCE4.1 based display block.
> 

Thank you very much for the help..

Another work around is to reprogram gdm to not reset the X server
at the next login... 

As the Xserver works ok after power on, I need to use it only once..
of course I will not be able to suspend the notebook.

Sergio
Comment 5 Alex Deucher 2012-02-20 07:25:29 UTC
*** Bug 46314 has been marked as a duplicate of this bug. ***
Comment 6 Ricky 2012-02-20 07:28:49 UTC
If I understand this correctly, there is no plan to support FreeBSD for the Radeon 6310 HD then?
Comment 7 Alex Deucher 2012-02-20 07:32:19 UTC
(In reply to comment #6)
> If I understand this correctly, there is no plan to support FreeBSD for the Radeon 6310 HD then?

No more than is currently supported unless someone steps up to improve/maintain the UMS code for newer asics.

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.