2014-06-02, 04:21
(2014-05-11, 18:59)fritsch Wrote: We would still need limited color range support.
Please look at this patch I put together for today's OE git pull. It enables full-range RGB 0-255 in the OSS driver via some of the GPU registers. I can now get black and whites correct like the FGLRX when calibrating. Hopefully it fixes your AVR squashing stuff. Obviously you can set it how you like. Just look up the constants [NI_OUTPUT_CSC_TV_RGB, NI_INPUT_CSC_BYPASS] in the ni_reg.h file.
EDIT- fix typos for better playback.
#/home/xbmc/OpenELEC.tv/packages/linux/patches/3.14.5/linux-999.06-drm-radeon-RGB.patch
Code:
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -152,8 +152,8 @@
(NI_GRPH_REGAMMA_MODE(NI_REGAMMA_BYPASS) |
NI_OVL_REGAMMA_MODE(NI_REGAMMA_BYPASS)));
WREG32(NI_OUTPUT_CSC_CONTROL + radeon_crtc->crtc_offset,
- (NI_OUTPUT_CSC_GRPH_MODE(NI_OUTPUT_CSC_BYPASS) |
- NI_OUTPUT_CSC_OVL_MODE(NI_OUTPUT_CSC_BYPASS)));
+ (NI_OUTPUT_CSC_GRPH_MODE(NI_OUTPUT_CSC_TV_RGB) |
+ NI_OUTPUT_CSC_OVL_MODE(NI_OUTPUT_CSC_BYPASS)));
/* XXX match this to the depth of the crtc fmt block, move to modeset? */
WREG32(0x6940 + radeon_crtc->crtc_offset, 0);
if (ASIC_IS_DCE8(rdev)) {
I will play with it more (the other colors spaces). But for now, colors seem better.
EDIT- NI_OUTPUT_CSC_YCBCR_709 should be the limited range you are looking for? Instead of NI_OUTPUT_CSC_TV_RGB for full.