Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp1335265imm; Thu, 23 Aug 2018 01:01:52 -0700 (PDT) X-Google-Smtp-Source: AA+uWPwOlFSuyIZAeVvE+rm/o3oWPUvYnNpANDaut009ItzATZzMwhKzOFkP3QbxdZCi9UPOJUJc X-Received: by 2002:a63:586:: with SMTP id 128-v6mr23548095pgf.169.1535011312767; Thu, 23 Aug 2018 01:01:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1535011312; cv=none; d=google.com; s=arc-20160816; b=TXOJqP1MJr5efQOTXICf/zvxM7sl75m1WlyWmUu2vBtcIflC5GbpywNcvzg1hvPiSJ RzjroS3XrtZb/naqGHG63q/SdZsNG1SDrzuRjLPQY64Yna5vYHp66hVufvhN43IEOE8Q Nf6Wy1xfQkwh93FuitZ6Sygnzc6x0wCFcHKaS6ZAP1YwF1/GaMlew8PPA1Lk+4m/Z/up qU5oT6nYP+TQ8Tz6vBqX17OClyXOxH40wklCoPVJx6dD+j8rtD86KXMxJUxIDhoQXMLu gw5rT5DOzZ1cQcFzW1eWSmMgxKZN3ixJJJih6YDbvhvWA/8ozkbl3cah2acmXI3Zz02r eQzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=OjVa+ly6wJ+U/l5lCbpAyBZC6ULE6bNR69et2WjcNNE=; b=jD4hkOHFLg/76WxyGEHPubZzvqXHghBh+UtkZEiHHKOsEJMt2y9i/XC8psutEFGc/2 Fa79neAYu8y+NmG2IwDsIhbk3VRKtGg8yCN2Y/qC7NVwb9rp5me9xClyKWg8/ND2kfNH yVri7GE5IucfQYiHvZ/UwfjqZBtloLo+xz4BAiy7tg9dyJLx1owBekwbCw+CetLitK+o wzr6R+va3fxqSjP8C9xzC56BKEL6ugycddZ1FW+QpYc1Frq7/1/5wCvmVg74WE5AyfqB PaTDNRX3OTV8BSGly8JBxkoQEqMg8rPSzTG0/uw59aHE/WSAHXHuzcTyKnzQSFNwRmkY FSSg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 184-v6si4083660pfe.249.2018.08.23.01.01.37; Thu, 23 Aug 2018 01:01:52 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728404AbeHWL1l (ORCPT + 99 others); Thu, 23 Aug 2018 07:27:41 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:41982 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726836AbeHWL1k (ORCPT ); Thu, 23 Aug 2018 07:27:40 -0400 Received: from localhost (5355525A.cm-6-6b.dynamic.ziggo.nl [83.85.82.90]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id BA2129D2; Thu, 23 Aug 2018 07:59:16 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Russell King , Sasha Levin Subject: [PATCH 4.4 50/79] drm/armada: fix colorkey mode property Date: Thu, 23 Aug 2018 09:53:26 +0200 Message-Id: <20180823074922.391052029@linuxfoundation.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180823074918.641878835@linuxfoundation.org> References: <20180823074918.641878835@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.4-stable review patch. If anyone has any objections, please let me know. ------------------ From: Russell King [ Upstream commit d378859a667edc99e3473704847698cae97ca2b1 ] The colorkey mode property was not correctly disabling the colorkeying when "disabled" mode was selected. Arrange for this to work as one would expect. Signed-off-by: Russell King Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/gpu/drm/armada/armada_hw.h | 1 + drivers/gpu/drm/armada/armada_overlay.c | 30 ++++++++++++++++++++++-------- 2 files changed, 23 insertions(+), 8 deletions(-) --- a/drivers/gpu/drm/armada/armada_hw.h +++ b/drivers/gpu/drm/armada/armada_hw.h @@ -160,6 +160,7 @@ enum { CFG_ALPHAM_GRA = 0x1 << 16, CFG_ALPHAM_CFG = 0x2 << 16, CFG_ALPHA_MASK = 0xff << 8, +#define CFG_ALPHA(x) ((x) << 8) CFG_PIXCMD_MASK = 0xff, }; --- a/drivers/gpu/drm/armada/armada_overlay.c +++ b/drivers/gpu/drm/armada/armada_overlay.c @@ -27,6 +27,7 @@ struct armada_ovl_plane_properties { uint16_t contrast; uint16_t saturation; uint32_t colorkey_mode; + uint32_t colorkey_enable; }; struct armada_ovl_plane { @@ -62,11 +63,13 @@ armada_ovl_update_attr(struct armada_ovl writel_relaxed(0x00002000, dcrtc->base + LCD_SPU_CBSH_HUE); spin_lock_irq(&dcrtc->irq_lock); - armada_updatel(prop->colorkey_mode | CFG_ALPHAM_GRA, - CFG_CKMODE_MASK | CFG_ALPHAM_MASK | CFG_ALPHA_MASK, - dcrtc->base + LCD_SPU_DMA_CTRL1); - - armada_updatel(ADV_GRACOLORKEY, 0, dcrtc->base + LCD_SPU_ADV_REG); + armada_updatel(prop->colorkey_mode, + CFG_CKMODE_MASK | CFG_ALPHAM_MASK | CFG_ALPHA_MASK, + dcrtc->base + LCD_SPU_DMA_CTRL1); + if (dcrtc->variant->has_spu_adv_reg) + armada_updatel(prop->colorkey_enable, + ADV_GRACOLORKEY | ADV_VIDCOLORKEY, + dcrtc->base + LCD_SPU_ADV_REG); spin_unlock_irq(&dcrtc->irq_lock); } @@ -339,8 +342,17 @@ static int armada_ovl_plane_set_property dplane->prop.colorkey_vb |= K2B(val); update_attr = true; } else if (property == priv->colorkey_mode_prop) { - dplane->prop.colorkey_mode &= ~CFG_CKMODE_MASK; - dplane->prop.colorkey_mode |= CFG_CKMODE(val); + if (val == CKMODE_DISABLE) { + dplane->prop.colorkey_mode = + CFG_CKMODE(CKMODE_DISABLE) | + CFG_ALPHAM_CFG | CFG_ALPHA(255); + dplane->prop.colorkey_enable = 0; + } else { + dplane->prop.colorkey_mode = + CFG_CKMODE(val) | + CFG_ALPHAM_GRA | CFG_ALPHA(0); + dplane->prop.colorkey_enable = ADV_GRACOLORKEY; + } update_attr = true; } else if (property == priv->brightness_prop) { dplane->prop.brightness = val - 256; @@ -469,7 +481,9 @@ int armada_overlay_plane_create(struct d dplane->prop.colorkey_yr = 0xfefefe00; dplane->prop.colorkey_ug = 0x01010100; dplane->prop.colorkey_vb = 0x01010100; - dplane->prop.colorkey_mode = CFG_CKMODE(CKMODE_RGB); + dplane->prop.colorkey_mode = CFG_CKMODE(CKMODE_RGB) | + CFG_ALPHAM_GRA | CFG_ALPHA(0); + dplane->prop.colorkey_enable = ADV_GRACOLORKEY; dplane->prop.brightness = 0; dplane->prop.contrast = 0x4000; dplane->prop.saturation = 0x4000;