Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp827275pxv; Fri, 9 Jul 2021 09:54:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwQSA+WpdnPUj8ll4ncCXXDniHJ4VXdptFUfXrTbOjQyn277XVyaIezLlh4saCrgfYHbstv X-Received: by 2002:a05:6402:26d4:: with SMTP id x20mr34523101edd.118.1625849687793; Fri, 09 Jul 2021 09:54:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625849687; cv=none; d=google.com; s=arc-20160816; b=K+leioqdPN1eOPskY9IzTptpX2obYjgtO9u/6BiaqUSx+O8CTmq8Nbh0JACyHtmFv6 azmr27rH+hYvymJkncJxYIl9tNkOjgA5UAdNHwQ8PEcyHT8pNx9cRSpYkViGT9TfoG4V xXGnO2ehtU/iEQ8JaoegiAlcncYrzwTsPCCmKNU3VT3cR4Ig3Y8Zjae8c6CAbhCfOWPO XOLOYc6HYsjycvRsmYMoIdTuCei/uT7BzRiqicdd/FL7Z6TkfIqAdOfWN3zoUj/1+N3T 9o22EnbFm+2Hw+FgsbHEFs+QCHrxjL5QBbwCRz+OtIFNmZXRN2ITbN/plkZWg9ucEKP2 2bAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=8jL9oKaCTDC1f4W3yCVG/S/rvOa1orj8gmDz/rvkjq4=; b=NoFp7rWHv8fCvSr1ixIRF8Q/x2vlKgh6y/a5V22iuF4qNaQvXEQJqqq/KyNXw2O3U2 gyv+HR/3mDR2IgIxFcPNIYl61Hp3lIoag4Ed/s7cV+D8z5Pgd2WP8khho7w0B1IH52lO 93FHRnsKZ2/m2jXvK9lj7cMtC4xiPx+0mHnePCajyKdXTmSA0CyHHY6GwboIYA7bxYsb GfoW3NNcCvO3CmDxI3t6dFJNDWBAozvZkTkzgTzzWDoXExGra4CJuMFOgWrXRwlor86D RwzUGOakSWBIm9FvJ9XV6nMFSai9ILOfkriH7zn7dB4dEPlvEMuzrJWUGAAjswgn3dzC LKbA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=YP3uwR1e; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m19si9408725edd.117.2021.07.09.09.54.24; Fri, 09 Jul 2021 09:54:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=YP3uwR1e; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229546AbhGIQ4D (ORCPT + 99 others); Fri, 9 Jul 2021 12:56:03 -0400 Received: from mail.kernel.org ([198.145.29.99]:33276 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229459AbhGIQ4D (ORCPT ); Fri, 9 Jul 2021 12:56:03 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id E83E6613AF for ; Fri, 9 Jul 2021 16:53:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1625849599; bh=JsXIl7xahTFA/MerH9QEXjUdUOH9+NPpHNCD++zUxTk=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=YP3uwR1e39ZF0LGLmQ1KhhI1yV0dsehQ0B5GGW1ZkK1yArsWTMGp6GpjXfz4eR4nd LpPdHaFFBZcRnQ4ooawStcN+9EtqlZmFzSzpxune8b1HfsWZH6DltMU0ETr2SkxRMF uO71nSyDq1F7RTKBZ0AYgWZF+0qDSQgUEo4w9Vh/bOupc9HhcDDHxvJAIJTQPVcXMk 3ikDIWFBjt1ok1Y7TnZU356120/OQXVxRfmef1gOWmO8/fFujAAMI0ElVf5FTbaxLC ymJyinqwuNpNXHarKTkrUPYHk+84Sm/rdYnFrrgS8cPBMvjm21JGeO920M6GkP74Q5 /V6/JmiEZrKtQ== Received: by mail-ej1-f43.google.com with SMTP id ga14so2361918ejc.6 for ; Fri, 09 Jul 2021 09:53:19 -0700 (PDT) X-Gm-Message-State: AOAM531NsVObEJzlUX/5gBAllo372w0Rx45/XTrpA+CI3OOKzA63CjNk UrBEiZ92BD4iIRUzBDXM2GIkrOEMokQYmcRZgA== X-Received: by 2002:a17:907:62a1:: with SMTP id nd33mr38892423ejc.303.1625849598502; Fri, 09 Jul 2021 09:53:18 -0700 (PDT) MIME-Version: 1.0 References: <25d61873-38ae-5648-faab-03431b74f777@collabora.com> In-Reply-To: From: Chun-Kuang Hu Date: Sat, 10 Jul 2021 00:53:07 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: Re: Re: BUG: MTK DRM/HDMI broken on 5.13 (mt7623/bpi-r2) To: Frank Wunderlich Cc: chunkuang Hu , Dafna Hirschfeld , linux-kernel , Enric Balletbo i Serra , David Airlie , "moderated list:ARM/Mediatek SoC support" , dri-devel , Thomas Zimmermann , Collabora Kernel ML , Matthias Brugger Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Frank: Frank Wunderlich =E6=96=BC 2021=E5=B9=B47=E6=9C= =889=E6=97=A5 =E9=80=B1=E4=BA=94 =E4=B8=8B=E5=8D=887:28=E5=AF=AB=E9=81=93= =EF=BC=9A > > > Gesendet: Freitag, 09. Juli 2021 um 12:38 Uhr > > Von: "Frank Wunderlich" > > An: "Enric Balletbo Serra" > > Cc: "CK Hu" , "Dafna Hirschfeld" , "chunkuang Hu" , "Thomas Zimmerman= n" , "David Airlie" , "linux-kernel"= , "Enric Balletbo i Serra" , "moderated list:ARM/Mediatek SoC support" , "dri-devel" , "Matthia= s Brugger" , "Collabora Kernel ML" > > Betreff: Aw: Re: Re: BUG: MTK DRM/HDMI broken on 5.13 (mt7623/bpi-r2) > > > > > > > Gesendet: Freitag, 09. Juli 2021 um 12:24 Uhr > > > Von: "Enric Balletbo Serra" > > > If this is the offending commit, could you try if the following patch > > > fixes the issue for you? > > > > > > https://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux.gi= t/commit/?h=3Dv5.13-next/fixes&id=3Ddb39994e0bd852c6612a9709e63c09b98b161e0= 0 > > > > > > If not, and that patch is the offending commit, it probably means tha= t > > > the default routing table doesn't work for mt7623. Needs a specific > > > soc table. > > > > Hi Eric, > > > > thanks for response, but it does not fix the issue for me. hdmi on mt76= 23 is DPI not DSI. There is already a mt7623 specific routing-table defined= (one for DPI/HDMI and one for external=3DDSI/MIPI): > > > > https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/mediatek= /mtk_drm_drv.c#L74 > > > > maybe it can be included or compared with the "default" route? > > > > regards Frank > > Hi > > i tried to convert the old routing table into the new format > > diff --git a/drivers/soc/mediatek/mtk-mmsys.c b/drivers/soc/mediatek/mtk-= mmsys.c > index 080660ef11bf..134dae13382f 100644 > --- a/drivers/soc/mediatek/mtk-mmsys.c > +++ b/drivers/soc/mediatek/mtk-mmsys.c > @@ -20,6 +20,12 @@ static const struct mtk_mmsys_driver_data mt2701_mmsys= _driver_data =3D { > .num_routes =3D ARRAY_SIZE(mmsys_default_routing_table), > }; > > +static const struct mtk_mmsys_driver_data mt7623_mmsys_driver_data =3D { > + .clk_driver =3D "clk-mt2701-mm", > + .routes =3D mmsys_mt7623_routing_table, > + .num_routes =3D ARRAY_SIZE(mmsys_mt7623_routing_table), > +}; > + > static const struct mtk_mmsys_driver_data mt2712_mmsys_driver_data =3D { > .clk_driver =3D "clk-mt2712-mm", > .routes =3D mmsys_default_routing_table, > @@ -133,6 +139,10 @@ static const struct of_device_id of_match_mtk_mmsys[= ] =3D { > .compatible =3D "mediatek,mt2701-mmsys", > .data =3D &mt2701_mmsys_driver_data, > }, > + { > + .compatible =3D "mediatek,mt7623-mmsys", > + .data =3D &mt7623_mmsys_driver_data, > + }, > { > .compatible =3D "mediatek,mt2712-mmsys", > .data =3D &mt2712_mmsys_driver_data, > diff --git a/drivers/soc/mediatek/mtk-mmsys.h b/drivers/soc/mediatek/mtk-= mmsys.h > index 11388961dded..fd397f68339c 100644 > --- a/drivers/soc/mediatek/mtk-mmsys.h > +++ b/drivers/soc/mediatek/mtk-mmsys.h > @@ -214,5 +214,14 @@ static const struct mtk_mmsys_routes mmsys_default_r= outing_table[] =3D { > DISP_REG_CONFIG_DISP_UFOE_MOUT_EN, UFOE_MOUT_EN_DSI0, > } > }; > - > +static const struct mtk_mmsys_routes mmsys_mt7623_routing_table[] =3D { > + //HDMI > + { > + DDP_COMPONENT_OVL0, DDP_COMPONENT_RDMA0, > + DISP_REG_CONFIG_DISP_OVL_MOUT_EN, OVL_MOUT_EN_RDMA > + }, { > + DDP_COMPONENT_RDMA0, DDP_COMPONENT_DPI0, > + DISP_REG_CONFIG_DISP_RDMA0_SOUT_EN, RDMA0_SOUT_DPI0 > + } > +}; > #endif /* __SOC_MEDIATEK_MTK_MMSYS_H */ > :...skipping... > diff --git a/drivers/soc/mediatek/mtk-mmsys.c b/drivers/soc/mediatek/mtk-= mmsys.c > index 080660ef11bf..134dae13382f 100644 > --- a/drivers/soc/mediatek/mtk-mmsys.c > +++ b/drivers/soc/mediatek/mtk-mmsys.c > @@ -20,6 +20,12 @@ static const struct mtk_mmsys_driver_data mt2701_mmsys= _driver_data =3D { > .num_routes =3D ARRAY_SIZE(mmsys_default_routing_table), > }; > > +static const struct mtk_mmsys_driver_data mt7623_mmsys_driver_data =3D { > + .clk_driver =3D "clk-mt2701-mm",//leave clock as mt7623 is based = on mt2701 > + .routes =3D mmsys_mt7623_routing_table, > + .num_routes =3D ARRAY_SIZE(mmsys_mt7623_routing_table), > +}; > + > static const struct mtk_mmsys_driver_data mt2712_mmsys_driver_data =3D { > .clk_driver =3D "clk-mt2712-mm", > .routes =3D mmsys_default_routing_table, > @@ -133,6 +139,10 @@ static const struct of_device_id of_match_mtk_mmsys[= ] =3D { > .compatible =3D "mediatek,mt2701-mmsys", > .data =3D &mt2701_mmsys_driver_data, > }, > + { > + .compatible =3D "mediatek,mt7623-mmsys", > + .data =3D &mt7623_mmsys_driver_data, > + }, > { > .compatible =3D "mediatek,mt2712-mmsys", > .data =3D &mt2712_mmsys_driver_data, > diff --git a/drivers/soc/mediatek/mtk-mmsys.h b/drivers/soc/mediatek/mtk-= mmsys.h > index 11388961dded..fd397f68339c 100644 > --- a/drivers/soc/mediatek/mtk-mmsys.h > +++ b/drivers/soc/mediatek/mtk-mmsys.h > @@ -214,5 +214,14 @@ static const struct mtk_mmsys_routes mmsys_default_r= outing_table[] =3D { > DISP_REG_CONFIG_DISP_UFOE_MOUT_EN, UFOE_MOUT_EN_DSI0, > } > }; > - > +static const struct mtk_mmsys_routes mmsys_mt7623_routing_table[] =3D { > + //HDMI > + { > + DDP_COMPONENT_OVL0, DDP_COMPONENT_RDMA0, > + DISP_REG_CONFIG_DISP_OVL_MOUT_EN, OVL_MOUT_EN_RDMA > + }, { > + DDP_COMPONENT_RDMA0, DDP_COMPONENT_DPI0, > + DISP_REG_CONFIG_DISP_RDMA0_SOUT_EN, RDMA0_SOUT_DPI0 > + } > +}; > > here i've left out COLOR0 and BLS because i have not found the 3rd (addre= ss) and 4th params (value) for the routing between them and edging componen= ts > > this is the old route: > > DDP_COMPONENT_OVL0, > DDP_COMPONENT_RDMA0, > DDP_COMPONENT_COLOR0, > DDP_COMPONENT_BLS, > DDP_COMPONENT_DPI0, > > so i guess i need: > > DISP_REG_CONFIG_DISP_RDMA0_MOUT_EN, RDMA0_MOUT_EN_COLOR0 > DISP_REG_CONFIG_DISP_COLOR0_MOUT_EN, COLOR0_MOUT_EN_BLS > DISP_REG_CONFIG_DISP_BLS_MOUT_EN, BLS_MOUT_EN_DPI0 > > thinking OUT is right for display...it's no HDMI-in > but i'm unsure whats the difference between MOUT and SOUT > > compatible for mmsys is already set to mediatek,mt7623-mmsys in arch/arm/= boot/dts/mt7623n.dtsi but it's not working, i guess because color0 and bls = are missing in route > > any hint how to add them? SOUT means even though data could output to multiple sink, but could only output to single sink at one moment. MOUT means data could output to multiple sink at one moment. For SOUT with 4 sink output, the value for each sink would be 0, 1, 2, 3. For MOUT with 4 sink output, the value for each sink would be BIT(0), BIT(1), BIT(2), BIT(3). [1] is my original design, and it has 'mask' in struct mtk_mmsys_conn_cfg. For SOUT with 4 sink output, the mask would be 0x3. For MOUT with 4 sink output, the mask would be 0xf. You could try to add back the mask. [1] https://chromium-review.googlesource.com/c/chromiumos/third_party/kerne= l/+/2345186 Regards, Chun-Kuang. > > regards Frank