Re: [Nouveau] [PATCH 3/3] drm/nouveau/pci: SOR crossbar quirk for 10b0:1b81

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Feb 5, 2018 at 12:19 PM, Danilo Krummrich
<danilokrummrich@xxxxxxxxxxxxx> wrote:
> On 2018-02-05 02:39, Ben Skeggs wrote:
>>
>> On 5 February 2018 at 11:37, Ben Skeggs <skeggsb@xxxxxxxxx> wrote:
>>>
>>> On 5 February 2018 at 11:22, Danilo Krummrich
>>> <danilokrummrich@xxxxxxxxxxxxx> wrote:
>>>>
>>>> On Gainward GTX 1070 routing any other SOR than SOR-1 to macro link
>>>> 'G' (outp index 7) causes failures:
>>>>
>>>> [    6.712111] nouveau 0000:01:00.0: bus: MMIO read of 00000000 FAULT at
>>>> 61c880 [ IBUS ]
>>>> [    6.724888] nouveau 0000:01:00.0: disp: intr24 80000000
>>>> [    8.716668] nouveau 0000:01:00.0: DRM: base-0: timeout
>>>> [   10.716679] nouveau 0000:01:00.0: DRM: base-1: timeout
>>>> [   63.511862] nouveau 0000:01:00.0: DRM: EVO timeout
>>>>
>>>> As I'm not able to spot an issue in the driver, I suppose it's
>>>> firmware related.
>>>
>>> Are you able to mail me /dev/dri/card0/vbios.rom from that, please?
>>> I'd like to look into this some more and be 100% certain this is
>>> indeed a quirk, and not some subtle driver bug.
>>
>> Err.. /sys/kernel/debug/dri/0/vbios.rom rather ;)
>>
> Sure, that makes sense definitely, as I have checked gm200_sor_route_set and
> gm200_sor_route_get only to conform to the statements in this mail thread:
> https://lists.freedesktop.org/archives/nouveau/2014-December/019408.html
>
> BTW, I can reproduce the problem with a two monitor setup only, as (of
> course) having one
> monitor only at the physical port macro link 'G' is attached to makes to
> vbios pick the
> working SOR. Therefore the physical port macro link 'G' is attached to must
> not be picked
> as primary monitor.
Thanks for that.  I've only had a quick look so far, but I'm going to
guess the is a driver bug already.  The DCB specifies two different
outputs on pad macro 1 (which, would be SOR1 if identity-mapped) that
can apparently be used together.  If used at the same time though,
they both can't be driven by the same SOR, and would need routing.

I guess it'd be interesting to see if NVIDIA can manage to drive those
two outputs together, which would be a big hint as to whether the
board is buggy, or we are.  I'm going to guess the latter ;)

>
> Also, may I ask you a related question: I was a bit confused why 'link' is
> completely unused
> in nvkm_outp_init_route() after gm200_sor_route_get() returns. Is this just
> obsolete or
> intended to use in the future somehow?
I suspect it's a left-over from an earlier revision of that code, or
perhaps I intended to validate it against what we discovered?  Not
sure now!

Thanks,
Ben.

>
> Thanks,
> Danilo
>
>>>
>>> Thanks,
>>> Ben.
>>>
>>>>
>>>> Therefore to work around this issue skip crossbar routing for this
>>>> particular macro link and instead use identity mapping.
>>>>
>>>> Signed-off-by: Danilo Krummrich <danilokrummrich@xxxxxxxxxxxxx>
>>>> ---
>>>>  drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c | 9 ++++++++-
>>>>  1 file changed, 8 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c
>>>> b/drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c
>>>> index d2f9664afcf4..29de270f2232 100644
>>>> --- a/drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c
>>>> +++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c
>>>> @@ -797,6 +797,13 @@ nvkm_device_pci_10de_139b[] = {
>>>>         {}
>>>>  };
>>>>
>>>> +static const struct nvkm_device_pci_vendor
>>>> +nvkm_device_pci_10de_1b81[] = {
>>>> +       /* Gainward GTX 1070 8192 MB */
>>>> +       { 0x10b0, 0x1b81, "GeForce GTX 1070",{ .outp_links_skip = BIT(7)
>>>> } },
>>>> +       {}
>>>> +};
>>>> +
>>>>  static const struct nvkm_device_pci_device
>>>>  nvkm_device_pci_10de[] = {
>>>>         { 0x0020, "RIVA TNT" },
>>>> @@ -1556,7 +1563,7 @@ nvkm_device_pci_10de[] = {
>>>>         { 0x1b06, "GeForce GTX 1080 TI" },
>>>>         { 0x1bb7, "Quadro P6000" },
>>>>         { 0x1b80, "GeForce GTX 1080" },
>>>> -       { 0x1b81, "GeForce GTX 1070" },
>>>> +       { 0x1b81, "GeForce GTX 1070", nvkm_device_pci_10de_1b81 },
>>>>         { 0x1b82, "GeForce GTX 1070 TI" },
>>>>         { 0x1b84, "GeForce GTX 1060 3GB" },
>>>>         { 0x1b87, "P104-100" },
>>>> --
>>>> 2.14.1
>>>>
>>>> _______________________________________________
>>>> Nouveau mailing list
>>>> Nouveau@xxxxxxxxxxxxxxxxxxxxx
>>>> https://lists.freedesktop.org/mailman/listinfo/nouveau
>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel@xxxxxxxxxxxxxxxxxxxxx
>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux