R200 DRM/KMS
Steven Newbury
steve at snewbury.org.uk
Wed Jul 8 09:48:38 PDT 2015
On Wed, 2015-07-08 at 17:10 +0100, Emil Velikov wrote:
> On 8 July 2015 at 14:55, Alex Deucher <alexdeucher at gmail.com> wrote:
> > On Wed, Jul 8, 2015 at 9:53 AM, Steven Newbury <
> > steve at snewbury.org.uk> wrote:
> > >
> > >
> > > On Wed Jul 8 14:20:28 2015 GMT+0100, Alex Deucher wrote:
> > > > On Wed, Jul 8, 2015 at 8:58 AM, Steven Newbury <
> > > > steve at snewbury.org.uk> wrote:
> > > > >
> > > > >
> > > > > On Tue Jul 7 15:12:28 2015 GMT+0100, Alex Deucher wrote:
> > > > > > On Tue, Jul 7, 2015 at 9:46 AM, Steven Newbury <
> > > > > > steve at snewbury.org.uk> wrote:
> > > > > > >
> > > > > > > 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?
> > > > > > >
> > > > > >
> > > > > > Can you start a non-X runlevel and start X manually as
> > > > > > root (assuming
> > > > > > you are using a login manager now)?
> > > > > >
> > > > > My test program worked fine. I considerably improved it over
> > > > > the version I posted. I'll send it to the list when I get
> > > > > back.
> > > > >
> > > > > I removed the drmSetInterfaceVersion() from radeon_kms.c and
> > > > > it got much further. Starting Xserver as root apparently
> > > > > started normally, according to the log, although there was
> > > > > a permission denied error on mode set during init. I don't
> > > > > know whether it was related or not, but the display then
> > > > > hung with a non-blinking cursor. Strange to get a permission
> > > > > denied as root!
> > > > >
> > > > > Starting GNOME via gdm gives a working slow X session but
> > > > > for some reason only uses sw dri even though the Xorg log
> > > > > shows r200 DRI2 as initialized. Perhaps it's a config error
> > > > > somewhere.. ?
> > > > >
> > > > > startx as a regular user just works!
> > > > >
> > > > > But mutter doesn't, perhaps that's
> > > > > why a gnome session isn't working. It just gives the
> > > > > following error:
> > > > > Cogl-ERROR **: Failed to create texture 2d due to
> > > > > size/format constraints
> > > > >
> > > > > Mutter is supposed to work on r200, right?
> > > >
> > > > IIRC it tries to use a render buffer format that's not
> > > > supported by the hw.
> > > Is there anything to be done about it? Have to use a different
> > > wm/compositor?
> > >
> >
> > Another wm or compositor may help.
> >
> > > Any idea why removing the call from radeon_kms.c worked?
> >
> > No idea.
> >
> From a quick look at the actual implementation drmSetInterfaceVersion
> is not something that we want/need to use with KMS drivers.
>
> In general the original issue sound like the drm driver is not
> (fully)
> loaded before the xserver/ddx kicks in. Additionally it may be a race
> condition if something else (plymouth) is using the device. In the
> latter case DRM_MASTER might still be held by $(other_app), thus
> attempting to either SetInterfaceVersion or do any modeset operation
> will fail.
>
>
Sitting on a KMS console, "systemctl start gdm", no plymouth
installed. It's just during Xserver initialisation that
drmSetInterfaceVersion() fails. AFAIK Xserver startup is entirely
single process, single thread. I've written a little test utility
which works fine on the system in question.
Compile attached file with:
gcc -O2 -o test-drm test-drm.c $(pkg-config --cflags libdrm) $(pkg
-config --libs libdrm)
> Personally I would add a healthy amount of printk/printf though the
> kernel drm + radeon and the ddx.
I guess it doesn't really matter since patching out the code "fixes"
it...
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test-drm.c
Type: text/x-csrc
Size: 1783 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20150708/f4f234fa/attachment-0001.c>
-------------- 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/20150708/f4f234fa/attachment-0001.sig>
More information about the dri-devel
mailing list