From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Richter Subject: =?utf-8?q?=5BPATCH=5D=C2=A0Enable_dithering_for_intel?= =?utf-8?q?_VCH_DVO?= Date: Mon, 30 Mar 2015 10:18:53 +0200 Message-ID: <551906ED.4090500@math.tu-berlin.de> References: <20150327140357.GV23521@phenom.ffwll.local> <1427693592-12941-1-git-send-email-ander.conselvan.de.oliveira@intel.com> <28056_1427699754_5518F829_28056_1298_1_20150330071734.GH23521@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------000600040002040304020002" Return-path: Received: from mx2.rus.uni-stuttgart.de (mx2.rus.uni-stuttgart.de [129.69.192.2]) by gabe.freedesktop.org (Postfix) with ESMTP id B9D9F6E31F for ; Mon, 30 Mar 2015 01:26:37 -0700 (PDT) In-Reply-To: <28056_1427699754_5518F829_28056_1298_1_20150330071734.GH23521@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org, Daniel Vetter , =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= List-Id: intel-gfx@lists.freedesktop.org This is a multi-part message in MIME format. --------------000600040002040304020002 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Hi Daniel, hi Ville, did you get the attached patch? This enables dithering for the iVCH DVO chip and improves image quality for 24 pipes on 18bpp displays greatly. Thanks for reviewing and considering this patch. Thomas Richter --------------000600040002040304020002 Content-Type: text/x-patch; name="0001-Enabled-dithering-in-the-intel-VCH-DVO-for-18bpp-pip.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0001-Enabled-dithering-in-the-intel-VCH-DVO-for-18bpp-pip.pa"; filename*1="tch" >>From 3d0b1a15302aa704c7cf4ebbf7c2b8a1566b9beb Mon Sep 17 00:00:00 2001 From: Thomas Richter Date: Sat, 28 Mar 2015 10:57:46 +0100 Subject: [PATCH 1/1] Enabled dithering in the intel VCH DVO for 18bpp pipelines. Signed-off-by: Thomas Richter --- drivers/gpu/drm/i915/dvo_ivch.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/dvo_ivch.c b/drivers/gpu/drm/i915/dvo_ivch.c index 0f2587f..89b08a8 100644 --- a/drivers/gpu/drm/i915/dvo_ivch.c +++ b/drivers/gpu/drm/i915/dvo_ivch.c @@ -23,6 +23,9 @@ * Authors: * Eric Anholt * + * Minor modifications (Dithering enable): + * Thomas Richter + * */ #include "dvo.h" @@ -59,6 +62,8 @@ # define VR01_DVO_BYPASS_ENABLE (1 << 1) /** Enables the DVO clock */ # define VR01_DVO_ENABLE (1 << 0) +/** Enable dithering for 18bpp panels. Not documented. */ +# define VR01_DITHER_ENABLE (1 << 4) /* * LCD Interface Format @@ -74,6 +79,8 @@ # define VR10_INTERFACE_2X18 (2 << 2) /** Enables 2x24-bit LVDS output */ # define VR10_INTERFACE_2X24 (3 << 2) +/** Mask that defines the depth of the pipeline */ +# define VR10_INTERFACE_DEPTH_MASK (3 << 2) /* * VR20 LCD Horizontal Display Size @@ -342,9 +349,15 @@ static void ivch_mode_set(struct intel_dvo_device *dvo, struct drm_display_mode *adjusted_mode) { uint16_t vr40 = 0; - uint16_t vr01; + uint16_t vr01 = 0; + uint16_t vr10; + + ivch_read(dvo, VR10, &vr10); + /* Enable dithering for 18 bpp pipelines */ + vr10 &= VR10_INTERFACE_DEPTH_MASK; + if (vr10 == VR10_INTERFACE_2X18 || vr10 == VR10_INTERFACE_1X18) + vr01 = VR01_DITHER_ENABLE; - vr01 = 0; vr40 = (VR40_STALL_ENABLE | VR40_VERTICAL_INTERP_ENABLE | VR40_HORIZONTAL_INTERP_ENABLE); @@ -353,7 +366,7 @@ static void ivch_mode_set(struct intel_dvo_device *dvo, uint16_t x_ratio, y_ratio; vr01 |= VR01_PANEL_FIT_ENABLE; - vr40 |= VR40_CLOCK_GATING_ENABLE; + vr40 |= VR40_CLOCK_GATING_ENABLE | VR40_ENHANCED_PANEL_FITTING; x_ratio = (((mode->hdisplay - 1) << 16) / (adjusted_mode->hdisplay - 1)) >> 2; y_ratio = (((mode->vdisplay - 1) << 16) / @@ -380,6 +393,8 @@ static void ivch_dump_regs(struct intel_dvo_device *dvo) DRM_DEBUG_KMS("VR00: 0x%04x\n", val); ivch_read(dvo, VR01, &val); DRM_DEBUG_KMS("VR01: 0x%04x\n", val); + ivch_read(dvo, VR10, &val); + DRM_DEBUG_KMS("VR10: 0x%04x\n", val); ivch_read(dvo, VR30, &val); DRM_DEBUG_KMS("VR30: 0x%04x\n", val); ivch_read(dvo, VR40, &val); -- 1.7.10.4 --------------000600040002040304020002 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK --------------000600040002040304020002--