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).

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

-- 
Rafał Miłecki

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

Reply via email to