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
