HDMI audio from GTX1650 not working on some devices

Hello. I have been redirected here from nvidia product support. I have purchased new graphics card for new pc, the GeForce® GTX 1650 (KalmX from Palit vendor). Previously I was using different setup with laptop also with proprietary NVidia driver with some GT220m and it was working perfectly with the same devices. Now I have following problem with the new card:
I have:

  1. ViewSonic LCD and both with hdmi and display port interfaces with integrated speakers. Both audio and video works fine from this card.
  2. LG Pojector with hdmi interface with itegrated speakers. With old graphics the audio was working fine, with the new graphics card the PulseAudio reports the hdmi audio port as ‘unplugged’. No matter what type of cable i use (hdmi or dp->hdmi)

I am using regularly the projector with many various devices, the laptop with the gt220m and others such as nintendo consoles, dvb-t tuners and also nvidia game console, all were playing sound okay.
I am observing this issue with both drivers i have currently in repositories of my ubuntu, 440 and 435.
Was there introduced in history since the GT220m some incompatibility in HDMI audio standard? IS it possible to force on the linux driver the audio codec or the port avalability detection?
In case i use the LCD and the audio goes through the lcd, the audio output reports as HDA Nvidia Digital Stereo (HDMI) no matter i use real HDMI or the display port cable.

When I plug the HDMI from projector, no other audio appears as available in pulse audio, only as disconnected (although the driver knows something, see below output from some tools).

Thanks for any advice.
Martin

Additionally some basic system information are here:
martin@machine:~/Documents/KEVIN/private$ lspci -v | grep VGA
07:00.0 VGA compatible controller: NVIDIA Corporation TU117 [GeForce GTX 1650] (rev a1) (prog-if 00 [VGA controller])

martin@machine:~/Documents/KEVIN/private$ dmesg | grep nvidia
[ 0.781249] nvidia: loading out-of-tree module taints kernel.
[ 0.781256] nvidia: module license ‘NVIDIA’ taints kernel.
[ 0.787868] nvidia: module verification failed: signature and/or required key missing - tainting kernel
[ 0.792516] nvidia-nvlink: Nvlink Core is being initialized, major device number 237
[ 0.792840] nvidia 0000:07:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=io+mem
[ 0.846571] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 435.21 Sun Aug 25 08:07:52 CDT 2019
[ 0.847122] [drm] [nvidia-drm] [GPU ID 0x00000700] Loading driver
[ 0.847124] [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:07:00.0 on minor 0
[ 3.161277] audit: type=1400 audit(1591680770.003:5): apparmor=“STATUS” operation=“profile_load” profile=“unconfined” name=“nvidia_modprobe” pid=533 comm=“apparmor_parser”
[ 3.161280] audit: type=1400 audit(1591680770.003:6): apparmor=“STATUS” operation=“profile_load” profile=“unconfined” name=“nvidia_modprobe//kmod” pid=533 comm=“apparmor_parser”
[ 3.227648] nvidia-uvm: Loaded the UVM driver, major device number 234.
[ 3.480417] caller os_map_kernel_space.part.0+0x73/0x80 [nvidia] mapping multiple BARs
[ 10.244076] caller os_map_kernel_space.part.0+0x73/0x80 [nvidia] mapping multiple BARs

[ 4.335480] input: HDA NVidia HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:03.1/0000:07:00.1/sound/card0/input26
[ 4.335527] input: HDA NVidia HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:03.1/0000:07:00.1/sound/card0/input27

martin@machine:~/Documents/KEVIN/private$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 0: ALC892 Analog [ALC892 Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0

uname -a
Linux machine 5.4.0-33-generic #37-Ubuntu SMP Thu May 21 12:53:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

martin@machine:~/Documents/KEVIN/private$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04 LTS
Release: 20.04
Codename: focal

Attaching output of nvidia-bug-report.sh
nvidia-bug-report.log (999.8 KB)

Additionally, i see that the LG projector is not correctly recognized at all. On the GT220m it was working better. It was recognized by name (LG PF80G) with full HD resolution.
Now it is recognized just as HDMI-0 and the maximal resolution is 1600x900. I cannot use it in full resolution as the computer starts freezing. I am able now to run the projector only at 1024x768.

The EDID from the projector can’t be read so it’s added as an unknown device with 1024x768 resolution.
Since it’s working on other devices and you already tried different cables, this might be an incompatibility between the nvidia’s HDMI 2.0/2.1 and the projector’s HDMI 1.4, shouldn’t happen normally.
Please check if the manufacturer of the gtx 1650 provides an updated vbios that might fix it.
As a workaround, you could extract the edid on a system where the projector works and then load it from file for the gtx 1650.

Thank. I have written to manufacturer, but I am not sure whether they will be able to reflect. Would you perhaps have link to how-to or instructions how to do the workaround?
I have found this tool to get the file i will try to use on different computer
http://manpages.ubuntu.com/manpages/bionic/man1/get-edid.1.html

however I am not sure about the load, is it the last post on this thread?
https://bbs.archlinux.org/viewtopic.php?id=229894

Ah, I found this link, that is probably better:
https://nvidia.custhelp.com/app/answers/detail/a_id/3571/~/managing-a-display-edid-on-linux

Another idea comes to my mind, it might be that the just the edid checksum is broken. Older drivers ignored that, newer drivers will drop the edid in that case. Please try setting

Option "IgnoreEDIDChecksum" "HDMI-0"

in xorg.conf device section.
To debug this further, please set

Option "ModeDebug" "true"

and create a new nvidia-bug-report.log.

Well, i did few more cable exchanges and i tried also another hdmi input on the projector and now it suddenly started working. Is it possible that the contacts may conduct less during the time, as the projector side were installed long time ago?


Actually I did lot of cable xchange, but as the projector is far away, tehre is one 10m long cable plus coupler or switch to the devices. I have replaced the join with coupler and lot of the short path cables… and maybe remove and insert the projector side to the same input.
After usage of the oteher input it started working.
Anyway, thanks for your time and assistance.

And actually it works including the audio and it is possible to swith the output in pulse audio, so the issue was the device identification.

Long hdmi cables are always problematic, especially whith connectors oxidizing over time.