2009/6/30 Rafał Miłecki <[email protected]>:
> W dniu 29 czerwca 2009 03:03 użytkownik Alex Deucher
> <[email protected]> napisał:
>> 2009/6/24 Rafał Miłecki <[email protected]>:
>>> Khem, hi, my first patch here and my first touching kernel code ever.
>>>
>>> I try to make my RV620 work in console using radeon KMS. Using
>>> Jerome's WIP code and my own hacks I discovered this quite general bug
>>> in treating encoders.
>>>
>>> Before patch:
>>> Jun 23 15:15:49 linux-aodr kernel: i2c-adapter i2c-1: unable to read EDID 
>>> block.
>>> Jun 23 15:15:49 linux-aodr kernel: radeon 0000:01:00.0: VGA-1: no EDID data
>>> Jun 23 15:15:49 linux-aodr kernel: i2c-adapter i2c-2: unable to read EDID 
>>> block.
>>> Jun 23 15:15:49 linux-aodr kernel: radeon 0000:01:00.0: LVDS-1: no EDID data
>>> Jun 23 15:15:49 linux-aodr kernel: i2c-adapter i2c-3: unable to read EDID 
>>> block.
>>> Jun 23 15:15:49 linux-aodr kernel: radeon 0000:01:00.0: HDMI Type B-1:
>>> no EDID data
>>> Jun 23 15:15:49 linux-aodr kernel: i2c-adapter i2c-2: unable to read EDID 
>>> block.
>>> Jun 23 15:15:49 linux-aodr kernel: radeon 0000:01:00.0: LVDS-1: no EDID data
>>> Jun 23 15:15:49 linux-aodr kernel: [drm:drm_helper_initial_config]
>>> *ERROR* connectors have no modes, using standard modes
>>> Jun 23 15:15:49 linux-aodr kernel:
>>> [drm_mode:drm_mode_debug_printmodeline], Modeline 11:"800x600" 60315
>>> 40000 800 840 968 1056 600 601 605 628 0x10 0x5
>>> Jun 23 15:15:49 linux-aodr kernel:
>>> [drm_mode:drm_mode_debug_printmodeline], Modeline 12:"800x600" 60315
>>> 40000 800 840 968 1056 600 601 605 628 0x10 0x5
>>> Jun 23 15:15:49 linux-aodr kernel:
>>> [drm_mode:drm_mode_debug_printmodeline], Modeline 13:"800x600" 60315
>>> 40000 800 840 968 1056 600 601 605 628 0x10 0x5
>>> Jun 23 15:15:49 linux-aodr kernel: [drm] fb mappable at 0xFFFFC90011800000
>>> Jun 23 15:15:49 linux-aodr kernel: [drm] vram apper at 0xC0000000
>>> Jun 23 15:15:49 linux-aodr kernel: [drm] size 1996800
>>> Jun 23 15:15:49 linux-aodr kernel: [drm] fb depth is 24
>>> Jun 23 15:15:49 linux-aodr kernel: [drm]    pitch is 3328
>>> Jun 23 15:15:49 linux-aodr kernel: Console: switching to colour frame
>>> buffer device 100x37
>>>
>>> Witch patch applied:
>>> Jun 23 15:25:20 linux-aodr kernel: i2c-adapter i2c-1: unable to read EDID 
>>> block.
>>> Jun 23 15:25:20 linux-aodr kernel: radeon 0000:01:00.0: VGA-1: no EDID data
>>> Jun 23 15:25:20 linux-aodr kernel: i2c-adapter i2c-2: unable to read EDID 
>>> block.
>>> Jun 23 15:25:20 linux-aodr kernel: radeon 0000:01:00.0: LVDS-1: no EDID data
>>> Jun 23 15:25:20 linux-aodr kernel: i2c-adapter i2c-3: unable to read EDID 
>>> block.
>>> Jun 23 15:25:20 linux-aodr kernel: radeon 0000:01:00.0: HDMI Type B-1:
>>> no EDID data
>>> Jun 23 15:25:20 linux-aodr kernel: i2c-adapter i2c-2: unable to read EDID 
>>> block.
>>> Jun 23 15:25:20 linux-aodr kernel: radeon 0000:01:00.0: LVDS-1: no EDID data
>>> Jun 23 15:25:20 linux-aodr kernel:
>>> [drm_mode:drm_mode_debug_printmodeline], Modeline 11:"1600x900" 59954
>>> 88540 1600 1614 1626 1630 900 902 904 906 0x48 0x0
>>> Jun 23 15:25:20 linux-aodr kernel: [drm] fb mappable at 0xFFFFC90011E00000
>>> Jun 23 15:25:20 linux-aodr kernel: [drm] vram apper at 0xC0000000
>>> Jun 23 15:25:20 linux-aodr kernel: [drm] size 5760000
>>> Jun 23 15:25:20 linux-aodr kernel: [drm] fb depth is 24
>>> Jun 23 15:25:20 linux-aodr kernel: [drm]    pitch is 6400
>>> Jun 23 15:25:20 linux-aodr kernel: Console: switching to colour frame
>>> buffer device 200x56
>>> Jun 23 15:25:20 linux-aodr kernel:
>>> [drm_mode:drm_mode_debug_printmodeline], Modeline 0:"" 0 0 0 0 0 0 0 0
>>> 0 0 0x0 0x0
>>> Jun 23 15:25:20 linux-aodr kernel:
>>> [drm_mode:drm_mode_debug_printmodeline], Modeline 13:"1600x900" 59954
>>> 88540 1600 1614 1626 1630 900 902 904 906 0x48 0x0
>>> Jun 23 15:25:20 linux-aodr kernel:
>>> [drm_mode:drm_mode_debug_printmodeline], Modeline 13:"1600x900" 59954
>>> 88540 1600 1614 1626 1630 900 902 904 906 0x48 0x0
>>>
>>> So this just makes radeon drm call radeon_atombios_get_lvds_info to
>>> get mode for PANEL.
>>>
>>> I'm not sure how would you like to apply this and if this actually is
>>> important for 2.6.31. As we support up to R5xx only here, can we hit
>>> this bug actually? Can hardware below R6xx use
>>> ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA?
>>
>> Only DCE 3.0/3.1 cards have ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA,
>> so you'll only see this on rv620/rv635/rv780/rv770 hw.  The proper fix
>> is attached.  We'll need to get lvds info for other encoder types as
>> well since newer cards only have uniphy blocks.
>
> I suspected your patch may incorrectly try to use
> radeon_atombios_get_lvds_info (if first condition block) also for my
> LCD controlled by UNIPHY (HDMI).
>
> After testing it seems
> if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT))
> is actually condition testing if device is notebook panel, not any LCD
> monitor (poor const name imo).
>

In the bios LCD refers to locally connected flat panels.  Digital
connectors (DVI, hdmi, dp) are referred to as DFP, and analog
connectors are CRT.

> So finally: yes, your patch works fine. Acked/Tested/don't know :)

Thanks for verifying.

Alex

------------------------------------------------------------------------------
--
_______________________________________________
Dri-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to