<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - DRM bootup error on VX900 platform"
href="https://bugs.freedesktop.org/show_bug.cgi?id=94473#c5">Comment # 5</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - DRM bootup error on VX900 platform"
href="https://bugs.freedesktop.org/show_bug.cgi?id=94473">bug 94473</a>
from <span class="vcard"><a class="email" href="mailto:kevinbrace@gmx.com" title="Kevin Brace <kevinbrace@gmx.com>"> <span class="fn">Kevin Brace</span></a>
</span></b>
<pre>(In reply to HuangRan from <a href="show_bug.cgi?id=94473#c0">comment #0</a>)
Hi Frank,
<span class="quote">> Created <span class=""><a href="attachment.cgi?id=122190" name="attach_122190" title="VX900 drm driver bootup log">attachment 122190</a> <a href="attachment.cgi?id=122190&action=edit" title="VX900 drm driver bootup log">[details]</a></span>
> VX900 drm driver bootup log
>
> I have a board ID-PDM9W which is based on VIA's C7 + VX900 platform. The
> board has a "HDMI+VGA" ports and with a serial port on the board.
> Then I install Ubuntu 12.04 OS and see UMS driver xf86-video-openchrome is
> working fine on VGA port. Then I am trying to get latest git openchrome
> driver and build it and see the latest UMS code can work on VGA port. That
> is good.
> And I preferred to make KMS driver work on OpenChrome, so I tried latest
> code on <a href="https://cgit.freedesktop.org/openchrome/drm-openchrome/">https://cgit.freedesktop.org/openchrome/drm-openchrome/</a> and build
> the kernel. After the kernel is built and reboot, I get the log with dmesg
> information as below:
> [ 9.042371] [drm:via_driver_load [via]] *ERROR* Failed acquiring AGP
> device.
> [ 9.049488] [drm:via_driver_load [via]] *ERROR* Failed to allocate AGP
>
> Thanks,
> Frank</span >
Congratulations for getting Linux kernel compiled for KMS.
I have not gotten that far so far, so you are way ahead of me. (^_^)
Anyway, it appears that via_driver_load function is inside via_drv.c is causing
problems.
<a href="https://cgit.freedesktop.org/openchrome/drm-openchrome/tree/drivers/gpu/drm/via/via_drv.c">https://cgit.freedesktop.org/openchrome/drm-openchrome/tree/drivers/gpu/drm/via/via_drv.c</a>
_____________________________________________________________
static int
via_driver_load(struct drm_device *dev, unsigned long chipset)
{
. . .
#if __OS_HAS_AGP
if ((dev_priv->engine_type > VIA_ENG_H2) ||
(dev->agp && drm_pci_device_is_agp(dev))) {
ret = via_detect_agp(dev);
if (!ret)
via_agp_engine_init(dev_priv);
else
DRM_ERROR("Failed to allocate AGP\n");
}
. . .
_____________________________________________________________
via_detect_agp function is where the error occurs.
_____________________________________________________________
static int
via_detect_agp(struct drm_device *dev)
{
struct drm_via_private *dev_priv = dev->dev_private;
struct drm_agp_info agp_info;
struct drm_agp_mode mode;
int ret = 0;
ret = drm_agp_acquire(dev);
if (ret) {
DRM_ERROR("Failed acquiring AGP device.\n");
return ret;
}
ret = drm_agp_info(dev, &agp_info);
. . .
_____________________________________________________________
I must say that James Simmons wrote far clearer code than the original
OpenChrome developers.
I guess the question now is what does this drm_agp_acquire DRM API call do?
Why is it failing at that point?</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>