Re: Kernel changes causing AMDGPU / DRM to fail? i2c related?

From: Stefan Esser <se_at_FreeBSD.org>
Date: Sun, 30 Jan 2022 19:43:09 UTC
Am 30.01.22 um 19:23 schrieb Vladimir Kondratyev:
> On 30.01.2022 00:25, Stefan Esser wrote:
>> After rebooting with freshly built world, kernel and the amdgpu driver
>> my console stopped working. It goes blank and the display goes into a
>> power save mode, as soon as the amdgpu driver is loaded.
>>
>> The GPU (a Radeon R7 250E) is correctly detected as before, but there
>> is an error message "drmn0: [drm] Cannot find any crtc or sizes".
>>
[...]
>> [drm] AMDGPU Display Connectors
>> [drm] Connector 0:
>> [drm]   DP-1
>> [drm]   HPD4
>> [drm]   DDC: 0x1950 0x1950 0x1951 0x1951 0x1952 0x1952 0x1953 0x1953
>> [drm]   Encoders:
>> [drm]     DFP1: INTERNAL_UNIPHY2
>> [drm] Connector 1:
>> [drm]   HDMI-A-1
>> [drm]   HPD1
>> [drm]   DDC: 0x195c 0x195c 0x195d 0x195d 0x195e 0x195e 0x195f 0x195f
>> [drm]   Encoders:
>> [drm]     DFP2: INTERNAL_UNIPHY2
>> [drm] Connector 2:
>> [drm]   DVI-I-1
>> [drm]   HPD2
>> [drm]   DDC: 0x1958 0x1958 0x1959 0x1959 0x195a 0x195a 0x195b 0x195b
>> [drm]   Encoders:
>> [drm]     DFP3: INTERNAL_UNIPHY
>> [drm]     CRT1: INTERNAL_KLDSCP_DAC1
>> drmn0: [drm] Cannot find any crtc or sizes
>> drmn0: [drm] Cannot find any crtc or sizes
>> drmn0: [drm] Cannot find any crtc or sizes
>> [drm] Initialized amdgpu 3.37.0 20150101 for drmn0 on minor 0
>>
>> A successful driver attach from a reboot a few days ago had ended in:
>>
>> [drm]     CRT1: INTERNAL_KLDSCP_DAC1
>> [drm] fb mappable at 0xE0503000
>> [drm] vram apper at 0xE0000000
>> [drm] size 33177600
>> [drm] fb depth is 24
>> [drm]    pitch is 15360
>> [drm] Initialized amdgpu 3.36.0 20150101 for drmn0 on minor 0
>>
>> Regards, STefan
> 
> drm-kmod commit 534aa199c10d forced it to use i2c from base.

Hi Vladimir,

thank you for the information! I'm using drm-devel-kmod, and in fact found
that 5.5.19.g20211230 works, while 5.7.19.g20220126 (committed as 0c38674b389ad
on 2022-01-26) causes the failure.

> You may try to checkout previous revision (444dc58f0247) to find out if in-base
> i2c is guilty or not.

Assuming that the same change to use the system i2c code has been in the latest
commit to the drm-devel-kmod port, this should be proven, now. ;-)

These is the list of in-kernel i2c modules on my system (a Ryzen 9 5950 on an
ASUS mainboard with B550 chip-set):

$ kldstat -v | grep iic
		 68 iicsmb/smbus
		 67 iicbus/iicsmb
		 66 iichb/iicbus
		 65 iicbb/iicbus
		 64 iicbus/iic
		 63 iicbus/ic
		213 lkpi_iicbb/iicbb
		212 lkpi_iic/lkpi_iicbb
		211 lkpi_iic/iicbus
		210 drmn/lkpi_iic
		 56 iichid/hidbus

Can I help debug this issue?

I could re-install the latest version and boot with hw.dri.drm_debug or
dev.drm.drm_debug set?

Or are there other settings to get a debug log from the i2c side?

Regards, STefan

PS: I'm keeping the CC to current@, since this might be an issue in the i2c
    kernel code ...