• Lucas De Marchi's avatar
    drm/xe: Fix media detection for pre-GMD_ID platforms · ad799e4a
    Lucas De Marchi authored
    Reading the GMD_ID register on platforms before that register
    became available is not reliable. The assumption was that since the
    register was not allocated, it would return 0. But on PVC for example it
    returns garbage (or a very specific number), triggering the following
    error:
    
    	xe 0000:8c:00.0: [drm] *ERROR* Hardware reports unknown media version 1025.55
    
    Fix it by stop relying on the value returned by that registers on
    platforms before GMD_ID. Instead this relies on the graphics description
    struct being already pre-set on the device: this can only ever be true
    for platforms before the GMD_ID support. In that case, GMD_ID is skipped
    and the hardcoded values are used.  This should also help on early
    bring-up in case the GMD_ID returns something not expected and we need to
    temporarily hardcode values. With this, PVC doesn't trigger the error
    and goes straight to:
    
    	xe 0000:8c:00.0: [drm:xe_display_info_init [xe]] No display IP, skipping
    	xe 0000:8c:00.0: [drm:xe_pci_probe [xe]] XE_PVC  0bd5:002f dgfx:1 gfx:Xe_HPC (12.60) media:none (0.00) dma_m_s:52 tc:2
    	xe 0000:8c:00.0: [drm:xe_pci_probe [xe]] Stepping = (G:C0, M:**, D:**, B:B3)
    
    Fixes: 5822bba9 ("drm/xe: Select graphics/media descriptors from GMD_ID")
    Reviewed-by: default avatarJosé Roberto de Souza <jose.souza@intel.com>
    Link: https://lore.kernel.org/r/20230427184408.1340988-1-lucas.demarchi@intel.comSigned-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
    Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    ad799e4a
xe_pci.c 19.1 KB