#9361 NORM 1.5-F11: drm not working
Zarro Boogs per Child
bugtracker at laptop.org
Thu Jun 25 12:59:05 EDT 2009
#9361: drm not working
---------------------------------------+------------------------------------
Reporter: dsd | Owner: cjb
Type: defect | Status: new
Priority: normal | Milestone: 1.5-F11
Component: x window system | Version: not specified
Resolution: | Keywords:
Next_action: never set | Verified: 0
Deployment_affected: | Blockedby:
Blocking: |
---------------------------------------+------------------------------------
Comment(by dsd):
{{{
(EE) CHROME(0): [drm] drmAgpAcquire failed 22
}}}
This is because we don't have CONFIG_AGP in the kernel. I enabled it, now
I get ENODEV.
See drm_fill_in_dev() in drm_stub.c. drm_device_is_agp() returns false
because the AGP capability bit is not set in the PCI config space of our
video device. We don't initialize AGP and hence the drmAgpAcquire fails as
designed. Also we lose out on MTRR because of this, judging by that
function.
In openchrome, AGP not being available means that we use PCI instead. This
means we lose some EXA composite accelerations, and it means that the EXA
scratch area goes in framebuffer memory instead of AGP. I guess PCI is
slower, presumably there's a reason why AGP was invented.
{{{
(WW) CHROME(0): [drm] Failure adding IRQ handler. Falling back to IRQ-free
operation.
}}}
This failure ultimately comes from the fact that the PCI configuration
space says that the PCI interrupt line on our video adapter is routed to
IRQ 0, and this causes drm_irq_install() to return -EINVAL.
I'm not sure of the performance consequences of this.
{{{
(EE) CHROME(0): [drm] Failed to initialize DMA ring-buffer: 14
}}}
This looks like an openchrome bug. It uses AGP space for this ring buffer,
so given that AGP initialization failed it should not be attempting this.
(it does try to check "is AGP available?" before this, but the check is
wrong)
This also causes the via_initialize() dmesg error message.
The lack of this ring-buffer causes openchrome not to do any DMA of
commands. Instead, it writes the commands to PCI registers.
--
Ticket URL: <http://dev.laptop.org/ticket/9361#comment:2>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system
More information about the Bugs
mailing list