From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 40F17C3F68F for ; Sat, 7 Dec 2019 22:48:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 16A6F2467B for ; Sat, 7 Dec 2019 22:48:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1575758885; bh=93NzKwhH96xN9ph6jHZTyuNaVTL3dPzKjPH/rfZohME=; h=From:To:Cc:Subject:Date:List-ID:From; b=QActdag/SKYPm+LDoRFIq5wyxlZIctmGUcV4EYgTlp+r/6YB7xZHM552U/cCwtkiL EgELJa8FlqKPsNuzHuE3xWD5Y4Cbz9eceg7S/WaberpWreDzyXJllYJoNlJXPWLB/6 giI2lQE8TihCBZjVW9MiYyTfzvGD0RgHQu6ZGqR0= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726654AbfLGWsE (ORCPT ); Sat, 7 Dec 2019 17:48:04 -0500 Received: from mail.kernel.org ([198.145.29.99]:42852 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726416AbfLGWsE (ORCPT ); Sat, 7 Dec 2019 17:48:04 -0500 Received: from ziggy.de (unknown [95.169.229.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D691D206DF; Sat, 7 Dec 2019 22:47:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1575758882; bh=93NzKwhH96xN9ph6jHZTyuNaVTL3dPzKjPH/rfZohME=; h=From:To:Cc:Subject:Date:From; b=e5NmXO42FZJxfWU96LzDKeiQX5mbz0BLaxnTby1/9Pn0Q+JizVFSuHjnqRW0s9ZnY hnN5q3R2ur6DOk9b02yjQvdFxlp7N/IsI5sxaEXsJM68Q0thsq6Sc5+H0jUsrVLdY3 ORalyU0pxGNSd6MkPptb313Q+9TlthVRPr6mio+w= From: matthias.bgg@kernel.org To: robh+dt@kernel.org, mark.rutland@arm.com, ck.hu@mediatek.com, p.zabel@pengutronix.de, airlied@linux.ie, mturquette@baylibre.com, sboyd@kernel.org, ulrich.hecht+renesas@gmail.com, laurent.pinchart@ideasonboard.com, enric.balletbo@collabora.com Cc: sean.wang@mediatek.com, sean.wang@kernel.org, rdunlap@infradead.org, wens@csie.org, hsinyi@chromium.org, frank-w@public-files.de, drinkcat@chromium.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, mbrugger@suse.com, matthias.bgg@kernel.org Subject: [resend PATCH v6 00/12] arm/arm64: mediatek: Fix mmsys device probing Date: Sat, 7 Dec 2019 23:47:28 +0100 Message-Id: <20191207224740.24536-1-matthias.bgg@kernel.org> X-Mailer: git-send-email 2.24.0 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 From: Matthias Brugger [reseding due to wrong mail of Stephen] This is version five of the series. It's a long time this wasn't worked on, so as a reminder, version four can be found here: https://patchwork.kernel.org/cover/10686247/ The biggest changes this new version does, is to implement the clock probing through a platform driver. The corresponding platform device get's created in the DRM driver. I converted all the clock drivers to platform drivers and tested the approach on the Acer Chromebook R13 (mt8173 based). Apart from that I reordered the patches so that the DT bindings update are the first patches. Changes since v5: - re-arrange the patch order - generate platform_device for mmsys clock driver inside the DRM driver - fix DTS binding accordingly - switch all mmsys clock driver to platform probing - fix mt8173 platform driver remove function - fix probe defer path in HDMI driver - fix probe defer path in mtk_mdp_comp - fix identation of error messages Changes since v4: - fix missing regmap accessors in drm diver (patch 1) - omit probe deffered warning on all drivers (patch 5) - update drm and clk bindings (patch 6 and 7) - put mmsys clock part in dts child node of mmsys. Only done for HW where no dts backport compatible breakage is expected (either DRM driver not yet implemented or no HW available to the public) (patch 9 to 12) Changes since v3: - use platform device to probe clock driver - add Acked-by CK Hu for the probe deferred patch Changes since v2: - fix kconfig typo (shame on me) - delete __initconst from mm_clocks as converted to a platform driver Changes since v1: - add binding documentation - ddp: use regmap_update_bits - ddp: ignore EPROBE_DEFER on clock probing - mfd: delete mmsys_private - add Reviewed-by and Acked-by tags MMSYS in Mediatek SoCs has some registers to control clock gates (which is used in the clk driver) and some registers to set the routing and enable the differnet blocks of the display subsystem. Up to now both drivers, clock and drm are probed with the same device tree compatible. But only the first driver get probed, which in effect breaks graphics on mt8173 and mt2701. This patch uses a platform device registration in the DRM driver, which will trigger the probe of the corresponding clock driver. It was tested on the bananapi-r2 and the Acer R13 Chromebook. Matthias Brugger (12): dt-bindings: display: mediatek: Add mmsys binding description dt-bindings: mediatek: Add compatible for mt7623 drm/mediatek: Use regmap for register access drm: mediatek: Omit warning on probe defers media: mtk-mdp: Check return value of of_clk_get clk: mediatek: mt2701: switch mmsys to platform device probing clk: mediatek: mt2712e: switch to platform device probing clk: mediatek: mt6779: switch mmsys to platform device probing clk: mediatek: mt6797: switch to platform device probing clk: mediatek: mt8183: switch mmsys to platform device probing clk: mediatek: mt8173: switch mmsys to platform device probing drm/mediatek: Add support for mmsys through a pdev .../display/mediatek/mediatek,disp.txt | 30 ++++++----- drivers/clk/mediatek/clk-mt2701-mm.c | 41 +++++++++----- drivers/clk/mediatek/clk-mt2712-mm.c | 39 +++++++++----- drivers/clk/mediatek/clk-mt6779-mm.c | 41 +++++++++----- drivers/clk/mediatek/clk-mt6797-mm.c | 43 ++++++++++----- drivers/clk/mediatek/clk-mt8173.c | 51 +++++++++++++++--- drivers/clk/mediatek/clk-mt8183-mm.c | 39 +++++++++----- drivers/gpu/drm/mediatek/mtk_disp_color.c | 5 +- drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 5 +- drivers/gpu/drm/mediatek/mtk_disp_rdma.c | 5 +- drivers/gpu/drm/mediatek/mtk_dpi.c | 12 +++-- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 4 +- drivers/gpu/drm/mediatek/mtk_drm_ddp.c | 54 +++++++++---------- drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 4 +- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 35 +++++++++--- drivers/gpu/drm/mediatek/mtk_drm_drv.h | 4 +- drivers/gpu/drm/mediatek/mtk_dsi.c | 8 ++- drivers/gpu/drm/mediatek/mtk_hdmi.c | 4 +- drivers/media/platform/mtk-mdp/mtk_mdp_comp.c | 6 +++ 19 files changed, 295 insertions(+), 135 deletions(-) -- 2.24.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6A0D7C2D0BE for ; Sat, 7 Dec 2019 22:48:25 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2EF0A24684 for ; Sat, 7 Dec 2019 22:48:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="tqZBUhX6"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="e5NmXO42" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2EF0A24684 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=GAx4JdKl655Tr9y7k5Ekb1QnSIoxTUG1ikgsmr0GvHU=; b=tqZBUhX6hI7UF7 yjpl3kSi3bwd5fB4bULyJYpqRgB25BhupAYxt3ZjJxCXOroAsSewfWcnBMpft03D4YE3n8J+XT6jO LI+NQcl4Ay5+2QTSfW6STtieHQ96EAaFlW7opgMfzyYzQHhvKMLnNp0rD5PMqoeWKIeDa6bs858Dc v3g9iBBlZUutiell9RoJBXqq1wSS/xTCqnenXTdE1VbhKA/VA/Ruc/ad6g7vTVUvhHtQsx8+zna7A kfmxMJegcLxwbq8OdjSQX20epyviA1Vx3tSxjBcD5si+QllcXOhsJqVSKBIsTO5iTnW6afdCtXREq nYU+fYF+7nAsKk6Jor6w==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1idirz-000374-VP; Sat, 07 Dec 2019 22:48:11 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1idirr-0002yy-71; Sat, 07 Dec 2019 22:48:04 +0000 Received: from ziggy.de (unknown [95.169.229.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D691D206DF; Sat, 7 Dec 2019 22:47:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1575758882; bh=93NzKwhH96xN9ph6jHZTyuNaVTL3dPzKjPH/rfZohME=; h=From:To:Cc:Subject:Date:From; b=e5NmXO42FZJxfWU96LzDKeiQX5mbz0BLaxnTby1/9Pn0Q+JizVFSuHjnqRW0s9ZnY hnN5q3R2ur6DOk9b02yjQvdFxlp7N/IsI5sxaEXsJM68Q0thsq6Sc5+H0jUsrVLdY3 ORalyU0pxGNSd6MkPptb313Q+9TlthVRPr6mio+w= From: matthias.bgg@kernel.org To: robh+dt@kernel.org, mark.rutland@arm.com, ck.hu@mediatek.com, p.zabel@pengutronix.de, airlied@linux.ie, mturquette@baylibre.com, sboyd@kernel.org, ulrich.hecht+renesas@gmail.com, laurent.pinchart@ideasonboard.com, enric.balletbo@collabora.com Subject: [resend PATCH v6 00/12] arm/arm64: mediatek: Fix mmsys device probing Date: Sat, 7 Dec 2019 23:47:28 +0100 Message-Id: <20191207224740.24536-1-matthias.bgg@kernel.org> X-Mailer: git-send-email 2.24.0 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191207_144803_297732_856A0B7D X-CRM114-Status: GOOD ( 14.86 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: matthias.bgg@kernel.org, devicetree@vger.kernel.org, rdunlap@infradead.org, frank-w@public-files.de, sean.wang@mediatek.com, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, sean.wang@kernel.org, wens@csie.org, drinkcat@chromium.org, linux-mediatek@lists.infradead.org, mbrugger@suse.com, hsinyi@chromium.org, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org From: Matthias Brugger [reseding due to wrong mail of Stephen] This is version five of the series. It's a long time this wasn't worked on, so as a reminder, version four can be found here: https://patchwork.kernel.org/cover/10686247/ The biggest changes this new version does, is to implement the clock probing through a platform driver. The corresponding platform device get's created in the DRM driver. I converted all the clock drivers to platform drivers and tested the approach on the Acer Chromebook R13 (mt8173 based). Apart from that I reordered the patches so that the DT bindings update are the first patches. Changes since v5: - re-arrange the patch order - generate platform_device for mmsys clock driver inside the DRM driver - fix DTS binding accordingly - switch all mmsys clock driver to platform probing - fix mt8173 platform driver remove function - fix probe defer path in HDMI driver - fix probe defer path in mtk_mdp_comp - fix identation of error messages Changes since v4: - fix missing regmap accessors in drm diver (patch 1) - omit probe deffered warning on all drivers (patch 5) - update drm and clk bindings (patch 6 and 7) - put mmsys clock part in dts child node of mmsys. Only done for HW where no dts backport compatible breakage is expected (either DRM driver not yet implemented or no HW available to the public) (patch 9 to 12) Changes since v3: - use platform device to probe clock driver - add Acked-by CK Hu for the probe deferred patch Changes since v2: - fix kconfig typo (shame on me) - delete __initconst from mm_clocks as converted to a platform driver Changes since v1: - add binding documentation - ddp: use regmap_update_bits - ddp: ignore EPROBE_DEFER on clock probing - mfd: delete mmsys_private - add Reviewed-by and Acked-by tags MMSYS in Mediatek SoCs has some registers to control clock gates (which is used in the clk driver) and some registers to set the routing and enable the differnet blocks of the display subsystem. Up to now both drivers, clock and drm are probed with the same device tree compatible. But only the first driver get probed, which in effect breaks graphics on mt8173 and mt2701. This patch uses a platform device registration in the DRM driver, which will trigger the probe of the corresponding clock driver. It was tested on the bananapi-r2 and the Acer R13 Chromebook. Matthias Brugger (12): dt-bindings: display: mediatek: Add mmsys binding description dt-bindings: mediatek: Add compatible for mt7623 drm/mediatek: Use regmap for register access drm: mediatek: Omit warning on probe defers media: mtk-mdp: Check return value of of_clk_get clk: mediatek: mt2701: switch mmsys to platform device probing clk: mediatek: mt2712e: switch to platform device probing clk: mediatek: mt6779: switch mmsys to platform device probing clk: mediatek: mt6797: switch to platform device probing clk: mediatek: mt8183: switch mmsys to platform device probing clk: mediatek: mt8173: switch mmsys to platform device probing drm/mediatek: Add support for mmsys through a pdev .../display/mediatek/mediatek,disp.txt | 30 ++++++----- drivers/clk/mediatek/clk-mt2701-mm.c | 41 +++++++++----- drivers/clk/mediatek/clk-mt2712-mm.c | 39 +++++++++----- drivers/clk/mediatek/clk-mt6779-mm.c | 41 +++++++++----- drivers/clk/mediatek/clk-mt6797-mm.c | 43 ++++++++++----- drivers/clk/mediatek/clk-mt8173.c | 51 +++++++++++++++--- drivers/clk/mediatek/clk-mt8183-mm.c | 39 +++++++++----- drivers/gpu/drm/mediatek/mtk_disp_color.c | 5 +- drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 5 +- drivers/gpu/drm/mediatek/mtk_disp_rdma.c | 5 +- drivers/gpu/drm/mediatek/mtk_dpi.c | 12 +++-- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 4 +- drivers/gpu/drm/mediatek/mtk_drm_ddp.c | 54 +++++++++---------- drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 4 +- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 35 +++++++++--- drivers/gpu/drm/mediatek/mtk_drm_drv.h | 4 +- drivers/gpu/drm/mediatek/mtk_dsi.c | 8 ++- drivers/gpu/drm/mediatek/mtk_hdmi.c | 4 +- drivers/media/platform/mtk-mdp/mtk_mdp_comp.c | 6 +++ 19 files changed, 295 insertions(+), 135 deletions(-) -- 2.24.0 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0443FC2D0BE for ; Sat, 7 Dec 2019 22:48:10 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CCBE62467D for ; Sat, 7 Dec 2019 22:48:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="dnFt9wIo"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="e5NmXO42" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CCBE62467D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=GZGUt1nxz76OrdV0mF2LoisvHAe4ctlHDKJIX9RT9kY=; b=dnFt9wIosRQZIj vqc9CRiiScw97wrggDtO1VSI1+v2RSla8G8cKxgXr02l5RCiYbh363dxXERO40KNzWKE7E6F6LTAG lqsMJL75soullYKdr3KU/AyXVewVGRUQbGWXgT7eq6gcKSEZWw3llZyb6E/NIfC79D0R0B29bhmX0 /PB8Tfo10mff1jbMj1Q/od3bukbFzrifs1lhhNEjwprMAG5Wx17r0cK1puMeXAgUyZLV174D1zhNI EaKgE2+vb/9CTru3fcwkChytCvStJdPIvVhZCDxbk0b1Psaxe59hfWINAWwbi9s/TuG8v1FPfYcAw DiIZr1JyNC8C0CtqCMoQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1idiru-0002zb-Pd; Sat, 07 Dec 2019 22:48:06 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1idirr-0002yy-71; Sat, 07 Dec 2019 22:48:04 +0000 Received: from ziggy.de (unknown [95.169.229.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D691D206DF; Sat, 7 Dec 2019 22:47:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1575758882; bh=93NzKwhH96xN9ph6jHZTyuNaVTL3dPzKjPH/rfZohME=; h=From:To:Cc:Subject:Date:From; b=e5NmXO42FZJxfWU96LzDKeiQX5mbz0BLaxnTby1/9Pn0Q+JizVFSuHjnqRW0s9ZnY hnN5q3R2ur6DOk9b02yjQvdFxlp7N/IsI5sxaEXsJM68Q0thsq6Sc5+H0jUsrVLdY3 ORalyU0pxGNSd6MkPptb313Q+9TlthVRPr6mio+w= From: matthias.bgg@kernel.org To: robh+dt@kernel.org, mark.rutland@arm.com, ck.hu@mediatek.com, p.zabel@pengutronix.de, airlied@linux.ie, mturquette@baylibre.com, sboyd@kernel.org, ulrich.hecht+renesas@gmail.com, laurent.pinchart@ideasonboard.com, enric.balletbo@collabora.com Subject: [resend PATCH v6 00/12] arm/arm64: mediatek: Fix mmsys device probing Date: Sat, 7 Dec 2019 23:47:28 +0100 Message-Id: <20191207224740.24536-1-matthias.bgg@kernel.org> X-Mailer: git-send-email 2.24.0 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191207_144803_297732_856A0B7D X-CRM114-Status: GOOD ( 14.86 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: matthias.bgg@kernel.org, devicetree@vger.kernel.org, rdunlap@infradead.org, frank-w@public-files.de, sean.wang@mediatek.com, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, sean.wang@kernel.org, wens@csie.org, drinkcat@chromium.org, linux-mediatek@lists.infradead.org, mbrugger@suse.com, hsinyi@chromium.org, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Matthias Brugger [reseding due to wrong mail of Stephen] This is version five of the series. It's a long time this wasn't worked on, so as a reminder, version four can be found here: https://patchwork.kernel.org/cover/10686247/ The biggest changes this new version does, is to implement the clock probing through a platform driver. The corresponding platform device get's created in the DRM driver. I converted all the clock drivers to platform drivers and tested the approach on the Acer Chromebook R13 (mt8173 based). Apart from that I reordered the patches so that the DT bindings update are the first patches. Changes since v5: - re-arrange the patch order - generate platform_device for mmsys clock driver inside the DRM driver - fix DTS binding accordingly - switch all mmsys clock driver to platform probing - fix mt8173 platform driver remove function - fix probe defer path in HDMI driver - fix probe defer path in mtk_mdp_comp - fix identation of error messages Changes since v4: - fix missing regmap accessors in drm diver (patch 1) - omit probe deffered warning on all drivers (patch 5) - update drm and clk bindings (patch 6 and 7) - put mmsys clock part in dts child node of mmsys. Only done for HW where no dts backport compatible breakage is expected (either DRM driver not yet implemented or no HW available to the public) (patch 9 to 12) Changes since v3: - use platform device to probe clock driver - add Acked-by CK Hu for the probe deferred patch Changes since v2: - fix kconfig typo (shame on me) - delete __initconst from mm_clocks as converted to a platform driver Changes since v1: - add binding documentation - ddp: use regmap_update_bits - ddp: ignore EPROBE_DEFER on clock probing - mfd: delete mmsys_private - add Reviewed-by and Acked-by tags MMSYS in Mediatek SoCs has some registers to control clock gates (which is used in the clk driver) and some registers to set the routing and enable the differnet blocks of the display subsystem. Up to now both drivers, clock and drm are probed with the same device tree compatible. But only the first driver get probed, which in effect breaks graphics on mt8173 and mt2701. This patch uses a platform device registration in the DRM driver, which will trigger the probe of the corresponding clock driver. It was tested on the bananapi-r2 and the Acer R13 Chromebook. Matthias Brugger (12): dt-bindings: display: mediatek: Add mmsys binding description dt-bindings: mediatek: Add compatible for mt7623 drm/mediatek: Use regmap for register access drm: mediatek: Omit warning on probe defers media: mtk-mdp: Check return value of of_clk_get clk: mediatek: mt2701: switch mmsys to platform device probing clk: mediatek: mt2712e: switch to platform device probing clk: mediatek: mt6779: switch mmsys to platform device probing clk: mediatek: mt6797: switch to platform device probing clk: mediatek: mt8183: switch mmsys to platform device probing clk: mediatek: mt8173: switch mmsys to platform device probing drm/mediatek: Add support for mmsys through a pdev .../display/mediatek/mediatek,disp.txt | 30 ++++++----- drivers/clk/mediatek/clk-mt2701-mm.c | 41 +++++++++----- drivers/clk/mediatek/clk-mt2712-mm.c | 39 +++++++++----- drivers/clk/mediatek/clk-mt6779-mm.c | 41 +++++++++----- drivers/clk/mediatek/clk-mt6797-mm.c | 43 ++++++++++----- drivers/clk/mediatek/clk-mt8173.c | 51 +++++++++++++++--- drivers/clk/mediatek/clk-mt8183-mm.c | 39 +++++++++----- drivers/gpu/drm/mediatek/mtk_disp_color.c | 5 +- drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 5 +- drivers/gpu/drm/mediatek/mtk_disp_rdma.c | 5 +- drivers/gpu/drm/mediatek/mtk_dpi.c | 12 +++-- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 4 +- drivers/gpu/drm/mediatek/mtk_drm_ddp.c | 54 +++++++++---------- drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 4 +- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 35 +++++++++--- drivers/gpu/drm/mediatek/mtk_drm_drv.h | 4 +- drivers/gpu/drm/mediatek/mtk_dsi.c | 8 ++- drivers/gpu/drm/mediatek/mtk_hdmi.c | 4 +- drivers/media/platform/mtk-mdp/mtk_mdp_comp.c | 6 +++ 19 files changed, 295 insertions(+), 135 deletions(-) -- 2.24.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 350A9C2D0C2 for ; Sat, 7 Dec 2019 22:48:05 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 139DF2467D for ; Sat, 7 Dec 2019 22:48:05 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 139DF2467D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 834A36E0FD; Sat, 7 Dec 2019 22:48:04 +0000 (UTC) Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by gabe.freedesktop.org (Postfix) with ESMTPS id D6D536E0FD for ; Sat, 7 Dec 2019 22:48:02 +0000 (UTC) Received: from ziggy.de (unknown [95.169.229.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D691D206DF; Sat, 7 Dec 2019 22:47:57 +0000 (UTC) From: matthias.bgg@kernel.org To: robh+dt@kernel.org, mark.rutland@arm.com, ck.hu@mediatek.com, p.zabel@pengutronix.de, airlied@linux.ie, mturquette@baylibre.com, sboyd@kernel.org, ulrich.hecht+renesas@gmail.com, laurent.pinchart@ideasonboard.com, enric.balletbo@collabora.com Subject: [resend PATCH v6 00/12] arm/arm64: mediatek: Fix mmsys device probing Date: Sat, 7 Dec 2019 23:47:28 +0100 Message-Id: <20191207224740.24536-1-matthias.bgg@kernel.org> X-Mailer: git-send-email 2.24.0 MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1575758882; bh=93NzKwhH96xN9ph6jHZTyuNaVTL3dPzKjPH/rfZohME=; h=From:To:Cc:Subject:Date:From; b=e5NmXO42FZJxfWU96LzDKeiQX5mbz0BLaxnTby1/9Pn0Q+JizVFSuHjnqRW0s9ZnY hnN5q3R2ur6DOk9b02yjQvdFxlp7N/IsI5sxaEXsJM68Q0thsq6Sc5+H0jUsrVLdY3 ORalyU0pxGNSd6MkPptb313Q+9TlthVRPr6mio+w= 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: devicetree@vger.kernel.org, rdunlap@infradead.org, matthias.bgg@kernel.org, frank-w@public-files.de, sean.wang@mediatek.com, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, sean.wang@kernel.org, wens@csie.org, drinkcat@chromium.org, linux-mediatek@lists.infradead.org, mbrugger@suse.com, hsinyi@chromium.org, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" RnJvbTogTWF0dGhpYXMgQnJ1Z2dlciA8bWJydWdnZXJAc3VzZS5jb20+CgpbcmVzZWRpbmcgZHVl IHRvIHdyb25nIG1haWwgb2YgU3RlcGhlbl0KClRoaXMgaXMgdmVyc2lvbiBmaXZlIG9mIHRoZSBz ZXJpZXMuIEl0J3MgYSBsb25nIHRpbWUgdGhpcyB3YXNuJ3Qgd29ya2VkIG9uLCBzbwphcyBhIHJl bWluZGVyLCB2ZXJzaW9uIGZvdXIgY2FuIGJlIGZvdW5kIGhlcmU6Cmh0dHBzOi8vcGF0Y2h3b3Jr Lmtlcm5lbC5vcmcvY292ZXIvMTA2ODYyNDcvCgpUaGUgYmlnZ2VzdCBjaGFuZ2VzIHRoaXMgbmV3 IHZlcnNpb24gZG9lcywgaXMgdG8gaW1wbGVtZW50IHRoZSBjbG9jayBwcm9iaW5nCnRocm91Z2gg YSBwbGF0Zm9ybSBkcml2ZXIuIFRoZSBjb3JyZXNwb25kaW5nIHBsYXRmb3JtIGRldmljZSBnZXQn cyBjcmVhdGVkIGluCnRoZSBEUk0gZHJpdmVyLiBJIGNvbnZlcnRlZCBhbGwgdGhlIGNsb2NrIGRy aXZlcnMgdG8gcGxhdGZvcm0gZHJpdmVycyBhbmQgdGVzdGVkCnRoZSBhcHByb2FjaCBvbiB0aGUg QWNlciBDaHJvbWVib29rIFIxMyAobXQ4MTczIGJhc2VkKS4KQXBhcnQgZnJvbSB0aGF0IEkgcmVv cmRlcmVkIHRoZSBwYXRjaGVzIHNvIHRoYXQgdGhlIERUIGJpbmRpbmdzIHVwZGF0ZSBhcmUgdGhl IGZpcnN0CnBhdGNoZXMuCgpDaGFuZ2VzIHNpbmNlIHY1OgotIHJlLWFycmFuZ2UgdGhlIHBhdGNo IG9yZGVyCi0gZ2VuZXJhdGUgcGxhdGZvcm1fZGV2aWNlIGZvciBtbXN5cyBjbG9jayBkcml2ZXIg aW5zaWRlIHRoZSBEUk0gZHJpdmVyCi0gZml4IERUUyBiaW5kaW5nIGFjY29yZGluZ2x5Ci0gc3dp dGNoIGFsbCBtbXN5cyBjbG9jayBkcml2ZXIgdG8gcGxhdGZvcm0gcHJvYmluZwotIGZpeCBtdDgx NzMgcGxhdGZvcm0gZHJpdmVyIHJlbW92ZSBmdW5jdGlvbgotIGZpeCBwcm9iZSBkZWZlciBwYXRo IGluIEhETUkgZHJpdmVyCi0gZml4IHByb2JlIGRlZmVyIHBhdGggaW4gbXRrX21kcF9jb21wCi0g Zml4IGlkZW50YXRpb24gb2YgZXJyb3IgbWVzc2FnZXMKCkNoYW5nZXMgc2luY2UgdjQ6Ci0gZml4 IG1pc3NpbmcgcmVnbWFwIGFjY2Vzc29ycyBpbiBkcm0gZGl2ZXIgKHBhdGNoIDEpCi0gb21pdCBw cm9iZSBkZWZmZXJlZCB3YXJuaW5nIG9uIGFsbCBkcml2ZXJzIChwYXRjaCA1KQotIHVwZGF0ZSBk cm0gYW5kIGNsayBiaW5kaW5ncyAocGF0Y2ggNiBhbmQgNykKLSBwdXQgbW1zeXMgY2xvY2sgcGFy dCBpbiBkdHMgY2hpbGQgbm9kZSBvZiBtbXN5cy4gT25seSBkb25lCmZvciBIVyB3aGVyZSBubyBk dHMgYmFja3BvcnQgY29tcGF0aWJsZSBicmVha2FnZSBpcyBleHBlY3RlZCAKKGVpdGhlciBEUk0g ZHJpdmVyIG5vdCB5ZXQgaW1wbGVtZW50ZWQgb3Igbm8gSFcgYXZhaWxhYmxlIHRvCnRoZSBwdWJs aWMpIChwYXRjaCA5IHRvIDEyKQoKQ2hhbmdlcyBzaW5jZSB2MzoKLSB1c2UgcGxhdGZvcm0gZGV2 aWNlIHRvIHByb2JlIGNsb2NrIGRyaXZlcgotIGFkZCBBY2tlZC1ieSBDSyBIdSBmb3IgdGhlIHBy b2JlIGRlZmVycmVkIHBhdGNoCgpDaGFuZ2VzIHNpbmNlIHYyOgotIGZpeCBrY29uZmlnIHR5cG8g KHNoYW1lIG9uIG1lKQotIGRlbGV0ZSBfX2luaXRjb25zdCBmcm9tIG1tX2Nsb2NrcyBhcyBjb252 ZXJ0ZWQgdG8gYSBwbGF0Zm9ybSBkcml2ZXIKICAKQ2hhbmdlcyBzaW5jZSB2MToKLSBhZGQgYmlu ZGluZyBkb2N1bWVudGF0aW9uCi0gZGRwOiB1c2UgcmVnbWFwX3VwZGF0ZV9iaXRzCi0gZGRwOiBp Z25vcmUgRVBST0JFX0RFRkVSIG9uIGNsb2NrIHByb2JpbmcKLSBtZmQ6IGRlbGV0ZSBtbXN5c19w cml2YXRlCi0gYWRkIFJldmlld2VkLWJ5IGFuZCBBY2tlZC1ieSB0YWdzCiAKTU1TWVMgaW4gTWVk aWF0ZWsgU29DcyBoYXMgc29tZSByZWdpc3RlcnMgdG8gY29udHJvbCBjbG9jayBnYXRlcyAod2hp Y2ggaXMgCnVzZWQgaW4gdGhlIGNsayBkcml2ZXIpIGFuZCBzb21lIHJlZ2lzdGVycyB0byBzZXQg dGhlIHJvdXRpbmcgYW5kIGVuYWJsZQp0aGUgZGlmZmVybmV0IGJsb2NrcyBvZiB0aGUgZGlzcGxh eSBzdWJzeXN0ZW0uCgpVcCB0byBub3cgYm90aCBkcml2ZXJzLCBjbG9jayBhbmQgZHJtIGFyZSBw cm9iZWQgd2l0aCB0aGUgc2FtZSBkZXZpY2UgdHJlZQpjb21wYXRpYmxlLiBCdXQgb25seSB0aGUg Zmlyc3QgZHJpdmVyIGdldCBwcm9iZWQsIHdoaWNoIGluIGVmZmVjdCBicmVha3MKZ3JhcGhpY3Mg b24gbXQ4MTczIGFuZCBtdDI3MDEuCgpUaGlzIHBhdGNoIHVzZXMgYSBwbGF0Zm9ybSBkZXZpY2Ug cmVnaXN0cmF0aW9uIGluIHRoZSBEUk0gZHJpdmVyLCB3aGljaAp3aWxsIHRyaWdnZXIgdGhlIHBy b2JlIG9mIHRoZSBjb3JyZXNwb25kaW5nIGNsb2NrIGRyaXZlci4gSXQgd2FzIHRlc3RlZCBvbiB0 aGUKYmFuYW5hcGktcjIgYW5kIHRoZSBBY2VyIFIxMyBDaHJvbWVib29rLgoKCk1hdHRoaWFzIEJy dWdnZXIgKDEyKToKICBkdC1iaW5kaW5nczogZGlzcGxheTogbWVkaWF0ZWs6IEFkZCBtbXN5cyBi aW5kaW5nIGRlc2NyaXB0aW9uCiAgZHQtYmluZGluZ3M6IG1lZGlhdGVrOiBBZGQgY29tcGF0aWJs ZSBmb3IgbXQ3NjIzCiAgZHJtL21lZGlhdGVrOiBVc2UgcmVnbWFwIGZvciByZWdpc3RlciBhY2Nl c3MKICBkcm06IG1lZGlhdGVrOiBPbWl0IHdhcm5pbmcgb24gcHJvYmUgZGVmZXJzCiAgbWVkaWE6 IG10ay1tZHA6IENoZWNrIHJldHVybiB2YWx1ZSBvZiBvZl9jbGtfZ2V0CiAgY2xrOiBtZWRpYXRl azogbXQyNzAxOiBzd2l0Y2ggbW1zeXMgdG8gcGxhdGZvcm0gZGV2aWNlIHByb2JpbmcKICBjbGs6 IG1lZGlhdGVrOiBtdDI3MTJlOiBzd2l0Y2ggdG8gcGxhdGZvcm0gZGV2aWNlIHByb2JpbmcKICBj bGs6IG1lZGlhdGVrOiBtdDY3Nzk6IHN3aXRjaCBtbXN5cyB0byBwbGF0Zm9ybSBkZXZpY2UgcHJv YmluZwogIGNsazogbWVkaWF0ZWs6IG10Njc5Nzogc3dpdGNoIHRvIHBsYXRmb3JtIGRldmljZSBw cm9iaW5nCiAgY2xrOiBtZWRpYXRlazogbXQ4MTgzOiBzd2l0Y2ggbW1zeXMgdG8gcGxhdGZvcm0g ZGV2aWNlIHByb2JpbmcKICBjbGs6IG1lZGlhdGVrOiBtdDgxNzM6IHN3aXRjaCBtbXN5cyB0byBw bGF0Zm9ybSBkZXZpY2UgcHJvYmluZwogIGRybS9tZWRpYXRlazogQWRkIHN1cHBvcnQgZm9yIG1t c3lzIHRocm91Z2ggYSBwZGV2CgogLi4uL2Rpc3BsYXkvbWVkaWF0ZWsvbWVkaWF0ZWssZGlzcC50 eHQgICAgICAgIHwgMzAgKysrKysrLS0tLS0KIGRyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDI3 MDEtbW0uYyAgICAgICAgICB8IDQxICsrKysrKysrKy0tLS0tCiBkcml2ZXJzL2Nsay9tZWRpYXRl ay9jbGstbXQyNzEyLW1tLmMgICAgICAgICAgfCAzOSArKysrKysrKystLS0tLQogZHJpdmVycy9j bGsvbWVkaWF0ZWsvY2xrLW10Njc3OS1tbS5jICAgICAgICAgIHwgNDEgKysrKysrKysrLS0tLS0K IGRyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3OTctbW0uYyAgICAgICAgICB8IDQzICsrKysr KysrKystLS0tLQogZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10ODE3My5jICAgICAgICAgICAg IHwgNTEgKysrKysrKysrKysrKysrLS0tCiBkcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXQ4MTgz LW1tLmMgICAgICAgICAgfCAzOSArKysrKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL21lZGlh dGVrL210a19kaXNwX2NvbG9yLmMgICAgIHwgIDUgKy0KIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRl ay9tdGtfZGlzcF9vdmwuYyAgICAgICB8ICA1ICstCiBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2Rpc3BfcmRtYS5jICAgICAgfCAgNSArLQogZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210 a19kcGkuYyAgICAgICAgICAgIHwgMTIgKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9t dGtfZHJtX2NydGMuYyAgICAgICB8ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRr X2RybV9kZHAuYyAgICAgICAgfCA1NCArKysrKysrKystLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAuaCAgICAgICAgfCAgNCArLQogZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL210a19kcm1fZHJ2LmMgICAgICAgIHwgMzUgKysrKysrKysrLS0tCiBkcml2ZXJz L2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaCAgICAgICAgfCAgNCArLQogZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19kc2kuYyAgICAgICAgICAgIHwgIDggKystCiBkcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWkuYyAgICAgICAgICAgfCAgNCArLQogZHJpdmVycy9tZWRp YS9wbGF0Zm9ybS9tdGstbWRwL210a19tZHBfY29tcC5jIHwgIDYgKysrCiAxOSBmaWxlcyBjaGFu Z2VkLCAyOTUgaW5zZXJ0aW9ucygrKSwgMTM1IGRlbGV0aW9ucygtKQoKLS0gCjIuMjQuMAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs