<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - DRM / KMS bootup error on VX900 platform"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=94473#c36">Comment # 36</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - DRM / KMS 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:huangran@iscas.ac.cn" title="HuangRan <huangran@iscas.ac.cn>"> <span class="fn">HuangRan</span></a>
</span></b>
        <pre>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 <a href="show_bug.cgi?id=94473#c30">comment #30</a>)
<span class="quote">> 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.</span ></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>