R200 DRM/KMS

Steven Newbury steve at snewbury.org.uk
Tue Jul 7 06:46:58 PDT 2015


On Mon, 2015-07-06 at 23:26 +0200, Daniel Vetter wrote:
> On Mon, Jul 06, 2015 at 09:06:28PM +0100, Steven Newbury wrote:
> > On Mon, 2015-07-06 at 15:42 -0400, Alex Deucher wrote:
> > > On Mon, Jul 6, 2015 at 2:40 PM, Steven Newbury <
> > > steve at snewbury.org.uk
> > > > wrote:
> > > > On Mon, 2015-07-06 at 12:25 -0400, Alex Deucher wrote:
> > > > > On Mon, Jul 6, 2015 at 9:39 AM, Steven Newbury <
> > > > > steve at snewbury.org.uk
> > > > > > wrote:
> > > > > > Hi,
> > > > > > I've been trying to get DRM/KMS working with the current 
> > > > > > graphics
> > > > > > stack (xf86-video-ati 7.5, xserver-1.17) on a R200 series 
> > > > > > card.  I
> > > > > > assumed this should be working since KMS was implemented 
> > > > > > for 
> > > > > > it a
> > > > > > while back, and it has been working with xf86-video-ati
> > > > > > -6.x.
> > > > > > 
> > > > > > Unfortunately, it doesn't seem to work.
> > > > > > 
> > > > > > I've narrowed it down to drmSetInterfaceVersion() failing 
> > > > > > when
> > > > > > called
> > > > > > from the ATI driver (in radeon_kms.c).  This is a bit 
> > > > > > strange
> > > > > > since,
> > > > > > /sys/class/drm/version correctly reports 1.1.0 20060810. 
> > > > > >  Presuably
> > > > > > it's getting the correct fd for the DRM master otherwise 
> > > > > > it 
> > > > > > should
> > > > > > bail earlier?
> > > > > > 
> > > > > > 
> > > > > > Googling confirms others have had the same issue, and 
> > > > > > generally the
> > > > > > resolution has been to stick with the old driver.
> > > > > > 
> > > > > > Should this be working?  Is it known to be broken?
> > > > > 
> > > > > It should be working.  Make sure the kernel driver has kms 
> > > > > enabled,
> > > > > firmware available, and that the kernel driver is loaded 
> > > > > before
> > > > > starting X.  If the kernel driver is not loaded before X 
> > > > > starts 
> > > > > you
> > > > > can get a version mis-match error.
> > > > 
> > > > Yes, using Gentoos 4.1.1 kernel, driver is definitely loaded, 
> > > > with
> > > > modeset=1, which is working, all sysfs entries are there.  gdm 
> > > > manages
> > > > to fall back to starting up an X session without using DRM 
> > > > swrast
> > > > -only, not something you want to experience on such a weak CPU!
> > > > 
> > > 
> > > If the kernel driver loads properly and you get a kms console you
> > > should be good to go.
> > > 
> > > > Manually starting X fails with the "[drm] failed to set drm 
> > > > interface
> > > > version." error.
> > > > 
> > > 
> > > Maybe the ddx with that old system was build without KMS support?
> > Everything is freshly compiled.  The error itself is coming from
> > radeon_kms.c:651 in the ddx.
> 
> Do you have latest libdrm? We might have accidentally broken this 
> for very
> old versions of libdrm (although surprising this would compile with
> everything else).
> -Daniel
> > 
> > > 
> > > Alex
> > > 
> > > > It's a very old system, PCI-only(!) Coppermine-128, belonging 
> > > > to a
> > > > friend.  The system previously was (very slowly) running 
> > > > Ubuntu 10
> > > > LTS, I think.  It's not my machine so I'm not able to have 
> > > > continuous
> > > > access, but R200 DRM/KMS was working.  Apparently, Ubuntu no 
> > > > longer
> > > > support R200, so no further updates were possible.
> > > > 
> > > > My friend can't afford a new machine at the moment; and since 
> > > > I'm a
> > > > long time Gentoo dev I took it upon myself to build him a 
> > > > optimized
> > > > desktop with gcc-5, where possible LTO, -Os, -march=pentium3 
> > > > with 
> > > > the
> > > > system L1 and L2 cache size information.  It's quite possible 
> > > > some
> > > > part of the gfx stack is miscompiled, I tested it pretty 
> > > > throughly
> > > > under qemu (with qxl) before deployment, but that of course 
> > > > didn't
> > > > exercise the R200 driver.  FWIW, other than the failing DRI,
> > > > performance is surprisingly OK, not super fast obviously, but 
> > > > a 
> > > > *lot*
> > > > better than under Ubuntu! (start-up time is alot quicker, by 
> > > > an 
> > > > order
> > > > of magnitude!)
> > > > 
> > > > I'm attempting to downgrade the xserver and drivers (on the 
> > > > live
> > > > system) to see if that works, you can imagine that takes a 
> > > > little
> > > > while on a Coppermine-128!  I'll find out tomorrow. 
> > > >  Otherwise, I
> > > > guess I'm recompiling the stack with gcc-4.9 and no-LTO...
> 
Sorry about the accidental e-mail.

I've tried an xserver-1.16, and ddx, libdrm without LTO and with
gcc4.9.  Exactly the same thing.  I wondered whether the unused i810
could be interfering but triggering a device "remove" before starting 
X made no difference.

I'm a bit of a loss.  I suppose I could try writing a simple test for
drmSetInterfaceVersion().  At least that should determine whether the
xserver/ddx is in the clear.

Any other ideas?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20150707/b2112731/attachment-0001.sig>


More information about the dri-devel mailing list