From patchwork Fri Jan 25 10:00:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 10780905 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B485E746 for ; Fri, 25 Jan 2019 10:01:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A12282F2C4 for ; Fri, 25 Jan 2019 10:01:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 94F842F2E0; Fri, 25 Jan 2019 10:01:06 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 56B2C2F2C4 for ; Fri, 25 Jan 2019 10:01:06 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 477036F2C6; Fri, 25 Jan 2019 10:01:03 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com [IPv6:2a00:1450:4864:20::344]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8A05A6F2C5 for ; Fri, 25 Jan 2019 10:01:01 +0000 (UTC) Received: by mail-wm1-x344.google.com with SMTP id b11so6154351wmj.1 for ; Fri, 25 Jan 2019 02:01:01 -0800 (PST) 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:mime-version :content-transfer-encoding; bh=T/UQeUZj1wfzsljb8R8UvciTizazppkj1s++DiCAs9I=; b=ADvOldjpY+QtRXqkeZmPJPDzRT6s56eWAPMqVa37FclVAr1ORw+D1a8Ir0CjqdBt9Q Oxifxx+M0dGM2zFHw1LqcCZH9e5c7cqgoeyjexUgoPIvvYc7WlFpIle/Eb+kBUoZ0WCb V+aNj3spGK5TsUIN6/R/3BCP1XUX2NNhHeRJXWMyDDXsylLPCcGsV0aSy0ybrold/4E/ PUskEUpwrRp6RD5d63CvitAA3HacVqCM3TXBJolHip8BmOJlQxTrC2X52BQmQgLuawWe ILr6pvlAEfCYhVVH+y8b6yJ0O+kDDwgFgHUK4dk1AyxhwaRe0Lp1ir81TaSfiNUZqYD2 SprQ== X-Gm-Message-State: AJcUukfS0kLHLngA06S6rPSYXrRr6rvdMPkKXXO9NKI0NoHIA9W6RcKc Sluf6915jZvub6qWNAq54Ag= X-Google-Smtp-Source: ALg8bN6o/Ufqg4njtKKf9pfdHFjfMD0mV2VuySrKKpMHLEs5GvUIuMZ+KUn3V6k77mLYkakE72K06w== X-Received: by 2002:a1c:8c13:: with SMTP id o19mr5929161wmd.56.1548410459958; Fri, 25 Jan 2019 02:00:59 -0800 (PST) Received: from localhost (pD9E51040.dip0.t-ipconnect.de. [217.229.16.64]) by smtp.gmail.com with ESMTPSA id n82sm61745661wma.42.2019.01.25.02.00.59 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 Jan 2019 02:00:59 -0800 (PST) From: Thierry Reding To: Thierry Reding , Rob Herring Subject: [PATCH 1/2] dt-bindings: display: tegra: Support SOR crossbar configuration Date: Fri, 25 Jan 2019 11:00:57 +0100 Message-Id: <20190125100058.20203-1-thierry.reding@gmail.com> X-Mailer: git-send-email 2.19.1 MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-tegra@vger.kernel.org, devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Thierry Reding The SOR has a crossbar that can map each lane of the SOR to each of the SOR pads. The mapping is usually the same across designs for a specific SoC generation, but every now and then there's a design that doesn't. Allow the crossbar configuration to be specified in device tree to make it possible to support these designs. Signed-off-by: Thierry Reding --- .../bindings/display/tegra/nvidia,tegra20-host1x.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt b/Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt index 593be44a53c9..9999255ac5b6 100644 --- a/Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt +++ b/Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt @@ -238,6 +238,9 @@ of the following host1x client modules: - nvidia,hpd-gpio: specifies a GPIO used for hotplug detection - nvidia,edid: supplies a binary EDID blob - nvidia,panel: phandle of a display panel + - nvidia,xbar-cfg: 5 cells containing the crossbar configuration. Each lane + of the SOR, identified by the cell's index, is mapped via the crossbar to + the pad specified by the cell's value. Optional properties when driving an eDP output: - nvidia,dpaux: phandle to a DispayPort AUX interface From patchwork Fri Jan 25 10:00:58 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 10780907 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 52AF6746 for ; Fri, 25 Jan 2019 10:01:09 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4214F2F2C4 for ; Fri, 25 Jan 2019 10:01:09 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 369A52F2E0; Fri, 25 Jan 2019 10:01:09 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id D95902F2C4 for ; Fri, 25 Jan 2019 10:01:08 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A9AE06F2C5; Fri, 25 Jan 2019 10:01:05 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by gabe.freedesktop.org (Postfix) with ESMTPS id D66746F2C5 for ; Fri, 25 Jan 2019 10:01:02 +0000 (UTC) Received: by mail-wr1-x444.google.com with SMTP id t6so9559198wrr.12 for ; Fri, 25 Jan 2019 02:01:02 -0800 (PST) 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=CyDtzJnNcUg1tv7KpcUNHzz0pb2P+fxH3FnYCzVySEE=; b=eCqrpATtirF7dX89tE70zk7kmu9jUJ2KFcCRvILjpxlVvW6PYo4xT5Hqsfjm1c32IE DxS8OZ/E6U0rfD/fYrdW2PaZvOseNNvJ7Qn56KXRvCtxGeBRn4wGB3lyD8WnNjKDn65O HAp9HhIHXG8kS5wkq9jiCms2z39ve1l13Bw+XeGzkbRphOWwlTOcxv7U2zGCNsszlCjc dBzMAkYz/H5yRTQnh+3NFnYhPpR6Jg0dk729NC/i5ti/+Fa2q6NU/aXrUPDRS9hBmT0Z UQXhUZxJV6wNCzm//GQg2BAkAD9vwb5jeREEXmiO8SxBkgmLyy3pn8zU0bfweW5XocVA Sk+A== X-Gm-Message-State: AJcUukdTRA5tEIF9qqMOviqUikTFU2ROPEiC+Fvt3zGlbu599PqUn4Fj qO2raE+nafoiM+I11T0RA/Y= X-Google-Smtp-Source: ALg8bN7Nfi5hAOOklmZyujjf255Q92k3Q1Z/koKaPpJmmIFdzx8R2N8YsVFxa9jHyPGNTD6Vw9aFWQ== X-Received: by 2002:adf:bb8d:: with SMTP id q13mr10623495wrg.183.1548410461423; Fri, 25 Jan 2019 02:01:01 -0800 (PST) Received: from localhost (pD9E51040.dip0.t-ipconnect.de. [217.229.16.64]) by smtp.gmail.com with ESMTPSA id c1sm50933264wmb.14.2019.01.25.02.01.00 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 Jan 2019 02:01:00 -0800 (PST) From: Thierry Reding To: Thierry Reding Subject: [PATCH 2/2] drm/tegra: sor: Support device tree crossbar configuration Date: Fri, 25 Jan 2019 11:00:58 +0100 Message-Id: <20190125100058.20203-2-thierry.reding@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190125100058.20203-1-thierry.reding@gmail.com> References: <20190125100058.20203-1-thierry.reding@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-tegra@vger.kernel.org, devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Thierry Reding The crossbar configuration is usually the same across all designs for a given SoC generation. But sometimes there are designs that require some other configuration. Implement support for parsing the crossbar configuration from a device tree. If the crossbar configuration is not present in the device tree, fall back to the default crossbar configuration. Signed-off-by: Thierry Reding --- drivers/gpu/drm/tegra/sor.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c index 23329f1e07e8..40057106f5f3 100644 --- a/drivers/gpu/drm/tegra/sor.c +++ b/drivers/gpu/drm/tegra/sor.c @@ -410,6 +410,8 @@ struct tegra_sor { struct clk *clk_dp; struct clk *clk; + u8 xbar_cfg[5]; + struct drm_dp_aux *aux; struct drm_info_list *debugfs_files; @@ -1814,7 +1816,7 @@ static void tegra_sor_edp_enable(struct drm_encoder *encoder) /* XXX not in TRM */ for (value = 0, i = 0; i < 5; i++) - value |= SOR_XBAR_CTRL_LINK0_XSEL(i, sor->soc->xbar_cfg[i]) | + value |= SOR_XBAR_CTRL_LINK0_XSEL(i, sor->xbar_cfg[i]) | SOR_XBAR_CTRL_LINK1_XSEL(i, i); tegra_sor_writel(sor, 0x00000000, SOR_XBAR_POL); @@ -2551,7 +2553,7 @@ static void tegra_sor_hdmi_enable(struct drm_encoder *encoder) /* XXX not in TRM */ for (value = 0, i = 0; i < 5; i++) - value |= SOR_XBAR_CTRL_LINK0_XSEL(i, sor->soc->xbar_cfg[i]) | + value |= SOR_XBAR_CTRL_LINK0_XSEL(i, sor->xbar_cfg[i]) | SOR_XBAR_CTRL_LINK1_XSEL(i, i); tegra_sor_writel(sor, 0x00000000, SOR_XBAR_POL); @@ -3172,6 +3174,8 @@ MODULE_DEVICE_TABLE(of, tegra_sor_of_match); static int tegra_sor_parse_dt(struct tegra_sor *sor) { struct device_node *np = sor->dev->of_node; + u32 xbar_cfg[5]; + unsigned int i; u32 value; int err; @@ -3189,6 +3193,17 @@ static int tegra_sor_parse_dt(struct tegra_sor *sor) sor->pad = TEGRA_IO_PAD_HDMI_DP0 + sor->index; } + err = of_property_read_u32_array(np, "nvidia,xbar-cfg", xbar_cfg, 5); + if (err < 0) { + /* fall back to default per-SoC XBAR configuration */ + for (i = 0; i < 5; i++) + sor->xbar_cfg[i] = sor->soc->xbar_cfg[i]; + } else { + /* copy cells to SOR XBAR configuration */ + for (i = 0; i < 5; i++) + sor->xbar_cfg[i] = xbar_cfg[i]; + } + return 0; }