Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp1213437ybl; Wed, 18 Dec 2019 14:38:24 -0800 (PST) X-Google-Smtp-Source: APXvYqyvPaDqfGEdqXu2jX0kO6zgDqdf2WatkOCPKLcU58SyksP/DMtsWF1zxmZI1HMoCTtByoOn X-Received: by 2002:a9d:4e97:: with SMTP id v23mr4882552otk.201.1576708704529; Wed, 18 Dec 2019 14:38:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1576708704; cv=none; d=google.com; s=arc-20160816; b=JJQmJsdFn920Y4VkbhZXD52ZQwkCJEcE6GzUDn/SU9v7an8bufmaaZato8xXxf9T2R CgseNGkIV2SdbFaJW5toj2zm4T6oloSzaj54USbvr0g0iH1GZy72ThNPV1j+hbDLaqqd +WwUICVd41cZjvLp+Hcjxjst0o4uOnDMoP64QFJXLFBuiCm8WoR3XcXijtaebI2LjWxK yNf3A6sESjIiR947J7504e8sWk1SBsA7mwjZAe3rHC5/j3iH0J7h/T0xjklfYrdrKZHT s9b1995GaLzF0NRepCwfgCgUUWNWrPCM7tDO6TjYusVySzfUwG3Ncvnp/2Q6CVYD4OMx uINQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=aVcs3f9CGlt/+nQiP5cZVj6UdPdZJEJRd9zsk3/kEqU=; b=wdzn0WDyl/ipmawT3NhgUSptI8nWffUsFNN7Wnbm/+qo6Q+065lcUNuEbw+1FO20Hf 5htDlgfVQ7De0xsSZST7vfCYRx+9jhC5rdO1ZLHFoTKXCXoYSd0gem3YogrTGo7g3IkC qohqqb0WYV+bJ44s7D0CRV1Ok0UQauBD3/U/+WKIq/T7GQ147heoVgUky4Q8iS9q13CI Z0iRw350hh0AYW99LgV+ZWeXlBwxlPwDyEHPvvqRj337ZKNMgPe+aHCpQm7BEY8nK5un fjYyVXqaBXNcxg1GrkLCxRbKBAqci+tLR789YgtEOZO4q95na3byK14fqb0nZEz02WHU vxQQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=MAYs9Wjb; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t142si2120175oih.242.2019.12.18.14.38.13; Wed, 18 Dec 2019 14:38:24 -0800 (PST) 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; dkim=pass header.i=@chromium.org header.s=google header.b=MAYs9Wjb; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726846AbfLRWgG (ORCPT + 99 others); Wed, 18 Dec 2019 17:36:06 -0500 Received: from mail-pj1-f66.google.com ([209.85.216.66]:37906 "EHLO mail-pj1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726760AbfLRWgC (ORCPT ); Wed, 18 Dec 2019 17:36:02 -0500 Received: by mail-pj1-f66.google.com with SMTP id l35so1544101pje.3 for ; Wed, 18 Dec 2019 14:36:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=aVcs3f9CGlt/+nQiP5cZVj6UdPdZJEJRd9zsk3/kEqU=; b=MAYs9WjbiomTlPc/h8MKbpGyWSGTomtedxCumqg5fWZTMq2TL4J8l3/RFFehqS00hJ eeDWGfdCHGZJMg8HVZtgMzAiCxQCwTM9NGubj9KL+1QyU0Z8N5cnezuG5vBmRML6wblh P96H45EKoK+mW5GNvZa19jyV5T19Cc+yhbc30= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=aVcs3f9CGlt/+nQiP5cZVj6UdPdZJEJRd9zsk3/kEqU=; b=reYNcEHPBUrXzx9zJdODpk0mOjh2ok7b2FBiPrwBpw4rfLBmm5JTIkIjJUiqJsOgvP dQZbpidbMCQ2aANmF7L0HjXtnFhVrYXF4ELdGv/vmc2Sc9yAunSuE2rdsLPhTc9+Cjfq MNeLSC70DNeE7MsPx2xew06UBcVtb8eFsKLLxZY3MGtQ7VKS7NP03QODpOfhlzng9Ie2 o/sey8BSIE13LmzP5E18Nd1NcVN4ERu/4iefYWLnbJZOxfI+5KUK2qvBM7gr6qE1OwY/ F/SmnOSzSgbrPh6HBInVN6MkpWnUagBEj5Sy8qYEqoOFHdODPvT6FyZRZWiVy01IhHHk nfSA== X-Gm-Message-State: APjAAAXPyu75bIdqmcmzUqg9r36w2ZoGo19hGCXJ3otnG5MDWKCEhJN7 lxLcZEva99H7TR/xwgIIJsBQiw== X-Received: by 2002:a17:90a:fe02:: with SMTP id ck2mr5617043pjb.10.1576708561255; Wed, 18 Dec 2019 14:36:01 -0800 (PST) Received: from tictac2.mtv.corp.google.com ([2620:15c:202:1:24fa:e766:52c9:e3b2]) by smtp.gmail.com with ESMTPSA id i9sm4709919pfk.24.2019.12.18.14.36.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Dec 2019 14:36:00 -0800 (PST) From: Douglas Anderson To: Andrzej Hajda , Neil Armstrong Cc: robdclark@chromium.org, linux-arm-msm@vger.kernel.org, bjorn.andersson@linaro.org, seanpaul@chromium.org, Jeffrey Hugo , Daniel Vetter , Douglas Anderson , Rob Clark , Jonas Karlman , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, David Airlie , Jernej Skrabec , Laurent Pinchart Subject: [PATCH v3 3/9] drm/bridge: ti-sn65dsi86: Don't use MIPI variables for DP link Date: Wed, 18 Dec 2019 14:35:24 -0800 Message-Id: <20191218143416.v3.3.Ia6e05f4961adb0d4a0d32ba769dd7781ee8db431@changeid> X-Mailer: git-send-email 2.24.1.735.g03f4e72817-goog In-Reply-To: <20191218223530.253106-1-dianders@chromium.org> References: <20191218223530.253106-1-dianders@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The ti-sn65dsi86 is a bridge from MIPI to DP and thus has two links: the MIPI link and the DP link. The two links do not need to have the same format or number of lanes. Stop using MIPI variables when talking about the DP link. This has zero functional change because: * currently we are hardcoding the MIPI link as unpacked RGB888 which requires 24 bits and currently we are not changing the DP link rate from the bridge's default of 8 bits per pixel. * currently we are hardcoding both the MIPI and DP as being 4 lanes. This is all in prep for fixing some of the above. Signed-off-by: Douglas Anderson Tested-by: Rob Clark Reviewed-by: Rob Clark --- Changes in v3: None Changes in v2: None drivers/gpu/drm/bridge/ti-sn65dsi86.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c index 7b596af265e4..ab644baaf90c 100644 --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c @@ -100,6 +100,7 @@ struct ti_sn_bridge { struct drm_panel *panel; struct gpio_desc *enable_gpio; struct regulator_bulk_data supplies[SN_REGULATOR_SUPPLY_NUM]; + int dp_lanes; }; static const struct regmap_range ti_sn_bridge_volatile_ranges[] = { @@ -313,6 +314,7 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge) } /* TODO: setting to 4 lanes always for now */ + pdata->dp_lanes = 4; dsi->lanes = 4; dsi->format = MIPI_DSI_FMT_RGB888; dsi->mode_flags = MIPI_DSI_MODE_VIDEO; @@ -451,13 +453,17 @@ static void ti_sn_bridge_set_dp_rate(struct ti_sn_bridge *pdata) struct drm_display_mode *mode = &pdata->bridge.encoder->crtc->state->adjusted_mode; - /* set DSIA clk frequency */ - bit_rate_mhz = (mode->clock / 1000) * - mipi_dsi_pixel_format_to_bpp(pdata->dsi->format); + /* + * Calculate minimum bit rate based on our pixel clock. At + * the moment this driver never sets the DP_18BPP_EN bit in + * register 0x5b so we hardcode 24bpp. + */ + bit_rate_mhz = (mode->clock / 1000) * 24; - /* set DP data rate */ - dp_rate_mhz = ((bit_rate_mhz / pdata->dsi->lanes) * DP_CLK_FUDGE_NUM) / + /* Calculate minimum DP data rate, taking 80% as per DP spec */ + dp_rate_mhz = ((bit_rate_mhz / pdata->dp_lanes) * DP_CLK_FUDGE_NUM) / DP_CLK_FUDGE_DEN; + for (i = 1; i < ARRAY_SIZE(ti_sn_bridge_dp_rate_lut) - 1; i++) if (ti_sn_bridge_dp_rate_lut[i] > dp_rate_mhz) break; @@ -517,7 +523,7 @@ static void ti_sn_bridge_enable(struct drm_bridge *bridge) CHA_DSI_LANES_MASK, val); /* DP lane config */ - val = DP_NUM_LANES(pdata->dsi->lanes - 1); + val = DP_NUM_LANES(pdata->dp_lanes - 1); regmap_update_bits(pdata->regmap, SN_SSC_CONFIG_REG, DP_NUM_LANES_MASK, val); -- 2.24.1.735.g03f4e72817-goog