[Openchrome-devel] [Bug 94473] DRM / KMS bootup error on VX900 platform
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Fri Mar 18 06:56:39 UTC 2016
https://bugs.freedesktop.org/show_bug.cgi?id=94473
--- Comment #36 from HuangRan <huangran at iscas.ac.cn> ---
Hi Kevin,
I looked at your comments from #27 to #30. Your analysis and comparison to
current DDX code(xf86-video-openchrome) is correct and I totally agree with
that.
from K8M890, it should be PCIe instead of AGP.
Let me give a try with your suggestion.
Thanks,
Frank
(In reply to Kevin Brace from comment #30)
> Hi Frank,
>
> Never mind.
> There is a function inside via_ums.c called viaInitAgp.
>
> _________________________________________________________________________
> static void
> viaInitAgp(VIAPtr pVia)
> {
> VIASETREG(VIA_REG_TRANSET, 0x00100000);
> VIASETREG(VIA_REG_TRANSPACE, 0x00000000);
> VIASETREG(VIA_REG_TRANSPACE, 0x00333004);
> VIASETREG(VIA_REG_TRANSPACE, 0x60000000);
> VIASETREG(VIA_REG_TRANSPACE, 0x61000000);
> VIASETREG(VIA_REG_TRANSPACE, 0x62000000);
> VIASETREG(VIA_REG_TRANSPACE, 0x63000000);
> VIASETREG(VIA_REG_TRANSPACE, 0x64000000);
> VIASETREG(VIA_REG_TRANSPACE, 0x7D000000);
>
> VIASETREG(VIA_REG_TRANSET, 0xfe020000);
> VIASETREG(VIA_REG_TRANSPACE, 0x00000000);
> }
> _________________________________________________________________________
>
>
>
> Also from via_ums.c, it appears that Chrome 9 IGPs are considered PCIe (PCI
> Express) devices.
>
> _________________________________________________________________________
> static void
> VIAInitialize2DEngine(ScrnInfoPtr pScrn)
> {
> VIAPtr pVia = VIAPTR(pScrn);
> ViaTwodContext *tdc = &pVia->td;
> int i;
>
> . . .
>
> switch (pVia->Chipset) {
> case VIA_K8M890:
> case VIA_P4M900:
> case VIA_VX800:
> case VIA_VX855:
> case VIA_VX900:
> viaInitPCIe(pVia);
> break;
> default:
> viaInitAgp(pVia);
> break;
> }
>
> . . .
>
> if (pVia->VQStart != 0) {
> switch (pVia->Chipset) {
> case VIA_K8M890:
> case VIA_P4M900:
> case VIA_VX800:
> case VIA_VX855:
> case VIA_VX900:
> viaEnablePCIeVQ(pVia);
> break;
> default:
> viaEnableAgpVQ(pVia);
> break;
> }
> } else {
> viaDisableVQ(pScrn);
> }
>
> viaAccelSetMode(pScrn->bitsPerPixel, tdc);
> }
> _________________________________________________________________________
>
>
> Why not rewrite the if statement in question.
>
> if ((dev_priv->engine_type > VIA_ENG_H2) ||
> (dev->agp && drm_pci_device_is_agp(dev))) {
>
> To something like this.
>
> if ((dev_priv->engine_type <= VIA_ENG_H2) ||
> (dev->agp && drm_pci_device_is_agp(dev))) {
>
> This way, anything older than Chrome 9 go through AGP detection.
> This basically means, anything that is UniChrome, UniChrome Pro, and
> UniChrome Pro II.
> Chrome 9 has H5 or H6 DMA engine.
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/openchrome-devel/attachments/20160318/dc0c4622/attachment-0001.html>
More information about the Openchrome-devel
mailing list