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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C7AEFC4332F for ; Tue, 15 Nov 2022 08:09:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230125AbiKOIJv (ORCPT ); Tue, 15 Nov 2022 03:09:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38324 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229631AbiKOIJt (ORCPT ); Tue, 15 Nov 2022 03:09:49 -0500 Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E0C546306 for ; Tue, 15 Nov 2022 00:09:47 -0800 (PST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20221115080943euoutp010a960c60ece9430c0e414efcee1e27b6~ns7Z3lZjT2267622676euoutp01W for ; Tue, 15 Nov 2022 08:09:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20221115080943euoutp010a960c60ece9430c0e414efcee1e27b6~ns7Z3lZjT2267622676euoutp01W DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1668499783; bh=44tbPwKCuHTSozLXnbTA8C1enz9cryZUjc9DVJaG81o=; h=Date:Subject:To:Cc:From:In-Reply-To:References:From; b=gKPxWkrDgQ1VcSlPTFTJJt+xpTCXFl+MuV4x66Bb9ChwzLjW6MjA0/yAMGmlWkKCr pkXhFzUcILZ9eUnLV0P0G8pDrJVSdPvE44gpGZQ1vUA1fl1hlWp8Lnrt6LC47iW2BP YAX/4jZOaUH6upA09keZW4rg510h1Ck0tn/aA4/0= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20221115080942eucas1p28bb759d87b4ab816472ac419fc533acc~ns7ZeXMy51520815208eucas1p26; Tue, 15 Nov 2022 08:09:42 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 2E.58.09549.64943736; Tue, 15 Nov 2022 08:09:42 +0000 (GMT) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20221115080942eucas1p21db7e8d7ffc6f825a95059495e75d959~ns7ZCeV0a0491604916eucas1p2n; Tue, 15 Nov 2022 08:09:42 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20221115080942eusmtrp1458b6cfaacb7eea6b2ffd0a75a79fa16~ns7ZBWIMr1130911309eusmtrp1d; Tue, 15 Nov 2022 08:09:42 +0000 (GMT) X-AuditID: cbfec7f5-f47ff7000000254d-37-6373494623b6 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 42.2D.08916.64943736; Tue, 15 Nov 2022 08:09:42 +0000 (GMT) Received: from [106.210.134.192] (unknown [106.210.134.192]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20221115080941eusmtip261c09f683fcac978c32d8a78b43a162c~ns7X8zezX1955519555eusmtip2u; Tue, 15 Nov 2022 08:09:41 +0000 (GMT) Message-ID: <928ec100-83c0-cbfe-8005-ccf872538999@samsung.com> Date: Tue, 15 Nov 2022 09:09:41 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: [PATCH v8 09/14] drm: bridge: samsung-dsim: Add atomic_get_input_bus_fmts Content-Language: en-US To: Jagan Teki Cc: Andrzej Hajda , Inki Dae , Joonyoung Shim , Seung-Woo Kim , Kyungmin Park , Frieder Schrempf , Fancy Fang , Tim Harvey , Michael Nazzareno Trimarchi , Adam Ford , Neil Armstrong , Robert Foss , Laurent Pinchart , Tommaso Merciai , Marek Vasut , Matteo Lisi , dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, NXP Linux Team , linux-amarula From: Marek Szyprowski In-Reply-To: Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA01Sf0xTVxjdfe/19dGk9bY6uQO3mc4NZa7AcNldtjFNzPKYk2HcH0aWuaa8 gFpKaWXozMaPbB1UJKVSgTfUDtBWEyDrSAfOmVjUAhVQI8qk0rGxOZAKyC8BYbM83fjvfOd8 J985N5chFTY6gtmt28cZdGqtkpZQ7sszna+9n2jUxJrvRmF/r4/EgZpxCt/rddL4xuQIjQ+f 7BRha8BC4QmXhcZ/912jcEfBsBgXldaKscNynsauP26KsHn2NIkrus4TeNiUD7Dv9wYSt+d/ Q+HrZS00fsD3P1aPDNL4WusDEk/PdZAbV7J1YwERe5xvpdiy1ositrP4Ds0283fE7HeFlSK2 5twgwV7srhGx/pvnaDZwyEuwP9bmsj/cbyLYksYzgB13vZAs2yl5J5XT7v6cM8QkfCZJ/+3R EKHnVfsHOo6L80D7GjMIYxDcgIrmSwkzkDAK6ATI5G4TC8MEQJes/aQwjAPkuFAofmpx9Dc8 sTgA+rl0hAgJCjgGULX1XTNgGClMQHPOxBBNwZfRVL6HDGEplKO2ygEqhJ+Fqej7xp5F63K4 A/1iO7nIkzAc3R44scivgK+iqcp7dOgWCSdpdMLdCkICDeOQOWimQzgMbkMzowuEYH4R/RSs WkyNoE2Cps0DhJB6M3LaHaSAl6Mhb+OTNquQ70gxJRi+Bcg+FyCEwQJQ3t3bQNh6G/k7Z+lQ NRKuQw1nYwR6E+opcBEhGkEZ6gnKhRAyZHWXkwItRYUmhbD9CuK99f+dvXD1OmkBSn7Ju/BL +vNL6vD/37UD6gwI57KNGWmcMV7H5aiM6gxjti5NpcnMcIHHP9e34J1sAs6hMZUHEAzwAMSQ yhXSA3KjRiFNVR/4gjNk7jJkazmjB0QylDJcSldEaxQwTb2P28txes7wVCWYsIg8wv7GXjVO yFunb7FsHu2Tdfs3rF9W0dITWzSx8Hw7J2lJ2lL3EZ7T6gqimjXcrD6xOL4vhcgM/ytZcWtV ZdJLW/Rl8NTrsNdjaY3+c23xI3D0zdio0qy0Xe7BiZLtp/mPr8Z8PTKYdKs6fZt8q/Vh3P7L G6s+4f35oz3HBg5vXdO2J6Utsii9EJtSj83nmrpyamxZwWqje/jDLIPMXl1Vp1nZwcgDo2z8 pvd2rv9Um5NhHSl/zvtwGepSJz9z8J8U1VDDjo5y+6l521dNaXOOMV9uWPPMnu31dWt/1a6+ cpCf+hIenZ4+5Kolb5D3P9A3Oucjz75FN126Uh8sWd1d6YpQUsZ0dVw0aTCq/wUlDicnKAQA AA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrOKsWRmVeSWpSXmKPExsVy+t/xe7punsXJBs8u8VjcuX2a2eL+4s8s Fq9vr2CzuPL1PZtF79JzrBaT7k9gsfiyaQKbxYt7F1kszja9YbfonLiE3WL5hH1sFpseX2O1 6Pq1ktlixvl9TBZv2hoZLU4/Ws9scaqxlcXi0pTDbBafZj0Eyk5+yWZx8cQnZovvv88yO4h5 rP14n9Vj3qwTLB5TThxh9TjXc5fNY+esu+wesztmsnos3vOSyePI1cWsHneu7WHzuN99nMlj 85J6j43vdjB59G1ZxejxeZNcAF+Unk1RfmlJqkJGfnGJrVK0oYWRnqGlhZ6RiaWeobF5rJWR qZK+nU1Kak5mWWqRvl2CXsaDP6+YCmbpVTw5O4+9gfGUShcjJ4eEgInE8ofrmboYuTiEBJYy Sqw/+ZEVIiEjcXJaA5QtLPHnWhcbRNF7Rom5C98BORwcvAJ2Er9XeILUsAioSnxrPMQMYvMK CEqcnPmEBaREVCBFYt2RKJCwsECExN6pS1lAbGYBcYlbT+YzgdgiAtoS32a+BhvPLPCdTWLm 9yksELv+M0lcenUMrIpNwFCi6y3IEZwcnAKBEj8//GOCmGQm0bW1ixHClpfY/nYO8wRGoVlI 7piFZOEsJC2zkLQsYGRZxSiSWlqcm55bbKhXnJhbXJqXrpecn7uJEZhith37uXkH47xXH/UO MTJxMB5ilOBgVhLhrRQsThbiTUmsrEotyo8vKs1JLT7EaAoMjInMUqLJ+cAkl1cSb2hmYGpo YmZpYGppZqwkzutZ0JEoJJCeWJKanZpakFoE08fEwSnVwFS78pvvWvWnerc+PHZkX2Egsn8L 09QLCnkdTo0tGyenXUs8Y6H6UFlyK+engO18E9f/6/+1g0lBLfjOjSU5r7sPfsg59zvI6WFC bYew0u+d6wTD26NSJx5l/+1qsa/wx5IPHu83ih68dNXryFKGizkS3HNu/rxZ8+bp1LrsGy6F mlIbDGX2M1eciNvjeHFn9M872rnrdzcoOXx68zywx+jqtNB5hmsWJ1V9nay7MDMkNTnt0xNV 19eb5/192R7G/lPD16vv2aQZOz6v+jopsdimnl/ONn7mds3WmoXf92X/qNsxkfO8oZKdXPNn pRnFcpk2e7jm3dLaurbpeobIxV2HDhj2GzXck3NOu+J0r3e1EktxRqKhFnNRcSIAw+MZCLoD AAA= X-CMS-MailID: 20221115080942eucas1p21db7e8d7ffc6f825a95059495e75d959 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20221110184122eucas1p11379ff6b85cf9a66455a026259c93340 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20221110184122eucas1p11379ff6b85cf9a66455a026259c93340 References: <20221110183853.3678209-1-jagan@amarulasolutions.com> <20221110183853.3678209-10-jagan@amarulasolutions.com> <56cab7d0-d9fb-d890-0b1c-678980eafd9c@samsung.com> Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org Hi Jagan, On 14.11.2022 18:07, Jagan Teki wrote: > On Mon, Nov 14, 2022 at 8:10 PM Marek Szyprowski > wrote: >> On 14.11.2022 11:57, Marek Szyprowski wrote: >>> On 10.11.2022 19:38, Jagan Teki wrote: >>>> Finding the right input bus format throughout the pipeline is hard >>>> so add atomic_get_input_bus_fmts callback and initialize with the >>>> proper input format from list of supported output formats. >>>> >>>> This format can be used in pipeline for negotiating bus format between >>>> the DSI-end of this bridge and the other component closer to pipeline >>>> components. >>>> >>>> List of Pixel formats are taken from, >>>> AN13573 i.MX 8/RT MIPI DSI/CSI-2, Rev. 0, 21 March 2022 >>>> 3.7.4 Pixel formats >>>> Table 14. DSI pixel packing formats >>>> >>>> v8: >>>> * added pixel formats supported by NXP AN13573 i.MX 8/RT MIPI DSI/CSI-2 >>>> >>>> v7, v6, v5, v4: >>>> * none >>>> >>>> v3: >>>> * include media-bus-format.h >>>> >>>> v2: >>>> * none >>>> >>>> v1: >>>> * new patch >>>> >>>> Signed-off-by: Jagan Teki >>>> --- >>>> drivers/gpu/drm/bridge/samsung-dsim.c | 53 +++++++++++++++++++++++++++ >>>> 1 file changed, 53 insertions(+) >>>> >>>> diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c >>>> b/drivers/gpu/drm/bridge/samsung-dsim.c >>>> index 0fe153b29e4f..33e5ae9c865f 100644 >>>> --- a/drivers/gpu/drm/bridge/samsung-dsim.c >>>> +++ b/drivers/gpu/drm/bridge/samsung-dsim.c >>>> @@ -15,6 +15,7 @@ >>>> #include >>>> #include >>>> #include >>>> +#include >>>> #include >>>> #include >>>> @@ -1321,6 +1322,57 @@ static void >>>> samsung_dsim_atomic_post_disable(struct drm_bridge *bridge, >>>> pm_runtime_put_sync(dsi->dev); >>>> } >>>> +/* >>>> + * This pixel output formats list referenced from, >>>> + * AN13573 i.MX 8/RT MIPI DSI/CSI-2, Rev. 0, 21 March 2022 >>>> + * 3.7.4 Pixel formats >>>> + * Table 14. DSI pixel packing formats >>>> + */ >>>> +static const u32 samsung_dsim_pixel_output_fmts[] = { >>>> + MEDIA_BUS_FMT_UYVY8_1X16, >>>> + MEDIA_BUS_FMT_RGB101010_1X30, >>>> + MEDIA_BUS_FMT_RGB121212_1X36, >>>> + MEDIA_BUS_FMT_RGB565_1X16, >>>> + MEDIA_BUS_FMT_RGB666_1X18, >>>> + MEDIA_BUS_FMT_RGB888_1X24, >>>> +}; >>>> + >>>> +static bool samsung_dsim_pixel_output_fmt_supported(u32 fmt) >>>> +{ >>>> + int i; >>>> + >>>> + for (i = 0; i < ARRAY_SIZE(samsung_dsim_pixel_output_fmts); i++) { >>>> + if (samsung_dsim_pixel_output_fmts[i] == fmt) >>>> + return true; >>>> + } >>>> + >>>> + return false; >>>> +} >>>> + >>>> +static u32 * >>>> +samsung_dsim_atomic_get_input_bus_fmts(struct drm_bridge *bridge, >>>> + struct drm_bridge_state *bridge_state, >>>> + struct drm_crtc_state *crtc_state, >>>> + struct drm_connector_state *conn_state, >>>> + u32 output_fmt, >>>> + unsigned int *num_input_fmts) >>>> +{ >>>> + u32 *input_fmts; >>>> + >>>> + if (!samsung_dsim_pixel_output_fmt_supported(output_fmt)) >>>> + return NULL; >>> >>> Please add support for MEDIA_BUS_FMT_FIXED and maybe default to >>> MEDIA_BUS_FMT_RGB888_1X24 if requested format is not matched. >>> >>> Otherwise the above check breaks all current clients of the Samsung >>> DSIM/Exynos DSI. I didn't dig into the bus matching code yet, but all >>> DSI panels requests such format on my test systems... >> I've checked a bit more the bus format related code and it looks that >> there are more issues. The DSI panels don't use the MEDIA_BUS_FMT_* >> formats thus the bridge negotiation code selects MEDIA_BUS_FMT_FIXED for >> them. On Arndale board with Toshiba tc358764 bridge the >> MEDIA_BUS_FMT_RGB888_1X7X4_SPWG output_fmt is requested in >> samsung_dsim_atomic_get_input_bus_fmts() (forwarded from the LVDS panel, > dsim => tc358764 => panel-simple > > If I understand the bridge format negotiation correctly - If > atomic_get_input_bus_fmts is not implemented in tc358764 then > MEDIA_BUS_FMT_FIXED will be the output_fmt for dsim so we can assign > MEDIA_BUS_FMT_RGB888_1X24 for FIXED formats. > > from include/drm/drm_bridge.h: > > * This method is called on all elements of the bridge chain as part of > * the bus format negotiation process that happens in > * drm_atomic_bridge_chain_select_bus_fmts(). > * This method is optional. When not implemented, the core will bypass > * bus format negotiation on this element of the bridge without > * failing, and the previous element in the chain will be passed > * MEDIA_BUS_FMT_FIXED as its output bus format. > > As I can see tc358764 is not implemented either > atomic_get_input_bus_fmts or atomic API, so I think dsim gets the > MEDIA_BUS_FMT_FIXED bridge pipeline. I have tested sn65dsi without > atomic_get_input_bus_fmts I can see the dsim is getting > MEDIA_BUS_FMT_FIXED. > > Can you check the same from your side? Here in case of Arndale 5250 with the following pipeline: dsim => tc358764 => panel-simple (boe,hv070wsa-100 panel) the DRM core requests MEDIA_BUS_FMT_RGB888_1X7X4_SPWG format, taken from the boe_hv070wsa panel (see from drivers/gpu/drm/panel/panel-simple.c). Please note that in case of Exynos, the reversed bridge chain order is used for dsim, so this is another nasty consequence of that hack. :/ Maybe if no compatible bus format is found, the driver should force MEDIA_BUS_FMT_RGB888_1X24 until a proper format negotiation is implemented and hacks removed? Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 331E0C433FE for ; Tue, 15 Nov 2022 08:09:54 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9D8F610E374; Tue, 15 Nov 2022 08:09:52 +0000 (UTC) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5DFB110E374 for ; Tue, 15 Nov 2022 08:09:45 +0000 (UTC) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20221115080943euoutp01786a79535450329f36686218a0cd3025~ns7Z2uLQj2407224072euoutp01u for ; Tue, 15 Nov 2022 08:09:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20221115080943euoutp01786a79535450329f36686218a0cd3025~ns7Z2uLQj2407224072euoutp01u DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1668499783; bh=44tbPwKCuHTSozLXnbTA8C1enz9cryZUjc9DVJaG81o=; h=Date:Subject:To:Cc:From:In-Reply-To:References:From; b=gKPxWkrDgQ1VcSlPTFTJJt+xpTCXFl+MuV4x66Bb9ChwzLjW6MjA0/yAMGmlWkKCr pkXhFzUcILZ9eUnLV0P0G8pDrJVSdPvE44gpGZQ1vUA1fl1hlWp8Lnrt6LC47iW2BP YAX/4jZOaUH6upA09keZW4rg510h1Ck0tn/aA4/0= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20221115080942eucas1p28bb759d87b4ab816472ac419fc533acc~ns7ZeXMy51520815208eucas1p26; Tue, 15 Nov 2022 08:09:42 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 2E.58.09549.64943736; Tue, 15 Nov 2022 08:09:42 +0000 (GMT) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20221115080942eucas1p21db7e8d7ffc6f825a95059495e75d959~ns7ZCeV0a0491604916eucas1p2n; Tue, 15 Nov 2022 08:09:42 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20221115080942eusmtrp1458b6cfaacb7eea6b2ffd0a75a79fa16~ns7ZBWIMr1130911309eusmtrp1d; Tue, 15 Nov 2022 08:09:42 +0000 (GMT) X-AuditID: cbfec7f5-f47ff7000000254d-37-6373494623b6 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 42.2D.08916.64943736; Tue, 15 Nov 2022 08:09:42 +0000 (GMT) Received: from [106.210.134.192] (unknown [106.210.134.192]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20221115080941eusmtip261c09f683fcac978c32d8a78b43a162c~ns7X8zezX1955519555eusmtip2u; Tue, 15 Nov 2022 08:09:41 +0000 (GMT) Message-ID: <928ec100-83c0-cbfe-8005-ccf872538999@samsung.com> Date: Tue, 15 Nov 2022 09:09:41 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: [PATCH v8 09/14] drm: bridge: samsung-dsim: Add atomic_get_input_bus_fmts Content-Language: en-US To: Jagan Teki From: Marek Szyprowski In-Reply-To: Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA01Sf0xTVxjdfe/19dGk9bY6uQO3mc4NZa7AcNldtjFNzPKYk2HcH0aWuaa8 gFpKaWXozMaPbB1UJKVSgTfUDtBWEyDrSAfOmVjUAhVQI8qk0rGxOZAKyC8BYbM83fjvfOd8 J985N5chFTY6gtmt28cZdGqtkpZQ7sszna+9n2jUxJrvRmF/r4/EgZpxCt/rddL4xuQIjQ+f 7BRha8BC4QmXhcZ/912jcEfBsBgXldaKscNynsauP26KsHn2NIkrus4TeNiUD7Dv9wYSt+d/ Q+HrZS00fsD3P1aPDNL4WusDEk/PdZAbV7J1YwERe5xvpdiy1ositrP4Ds0283fE7HeFlSK2 5twgwV7srhGx/pvnaDZwyEuwP9bmsj/cbyLYksYzgB13vZAs2yl5J5XT7v6cM8QkfCZJ/+3R EKHnVfsHOo6L80D7GjMIYxDcgIrmSwkzkDAK6ATI5G4TC8MEQJes/aQwjAPkuFAofmpx9Dc8 sTgA+rl0hAgJCjgGULX1XTNgGClMQHPOxBBNwZfRVL6HDGEplKO2ygEqhJ+Fqej7xp5F63K4 A/1iO7nIkzAc3R44scivgK+iqcp7dOgWCSdpdMLdCkICDeOQOWimQzgMbkMzowuEYH4R/RSs WkyNoE2Cps0DhJB6M3LaHaSAl6Mhb+OTNquQ70gxJRi+Bcg+FyCEwQJQ3t3bQNh6G/k7Z+lQ NRKuQw1nYwR6E+opcBEhGkEZ6gnKhRAyZHWXkwItRYUmhbD9CuK99f+dvXD1OmkBSn7Ju/BL +vNL6vD/37UD6gwI57KNGWmcMV7H5aiM6gxjti5NpcnMcIHHP9e34J1sAs6hMZUHEAzwAMSQ yhXSA3KjRiFNVR/4gjNk7jJkazmjB0QylDJcSldEaxQwTb2P28txes7wVCWYsIg8wv7GXjVO yFunb7FsHu2Tdfs3rF9W0dITWzSx8Hw7J2lJ2lL3EZ7T6gqimjXcrD6xOL4vhcgM/ytZcWtV ZdJLW/Rl8NTrsNdjaY3+c23xI3D0zdio0qy0Xe7BiZLtp/mPr8Z8PTKYdKs6fZt8q/Vh3P7L G6s+4f35oz3HBg5vXdO2J6Utsii9EJtSj83nmrpyamxZwWqje/jDLIPMXl1Vp1nZwcgDo2z8 pvd2rv9Um5NhHSl/zvtwGepSJz9z8J8U1VDDjo5y+6l521dNaXOOMV9uWPPMnu31dWt/1a6+ cpCf+hIenZ4+5Kolb5D3P9A3Oucjz75FN126Uh8sWd1d6YpQUsZ0dVw0aTCq/wUlDicnKAQA AA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrOKsWRmVeSWpSXmKPExsVy+t/xe7punsXJBs8u8VjcuX2a2eL+4s8s Fq9vr2CzuPL1PZtF79JzrBaT7k9gsfiyaQKbxYt7F1kszja9YbfonLiE3WL5hH1sFpseX2O1 6Pq1ktlixvl9TBZv2hoZLU4/Ws9scaqxlcXi0pTDbBafZj0Eyk5+yWZx8cQnZovvv88yO4h5 rP14n9Vj3qwTLB5TThxh9TjXc5fNY+esu+wesztmsnos3vOSyePI1cWsHneu7WHzuN99nMlj 85J6j43vdjB59G1ZxejxeZNcAF+Unk1RfmlJqkJGfnGJrVK0oYWRnqGlhZ6RiaWeobF5rJWR qZK+nU1Kak5mWWqRvl2CXsaDP6+YCmbpVTw5O4+9gfGUShcjJ4eEgInE8ofrmboYuTiEBJYy Sqw/+ZEVIiEjcXJaA5QtLPHnWhcbRNF7Rom5C98BORwcvAJ2Er9XeILUsAioSnxrPMQMYvMK CEqcnPmEBaREVCBFYt2RKJCwsECExN6pS1lAbGYBcYlbT+YzgdgiAtoS32a+BhvPLPCdTWLm 9yksELv+M0lcenUMrIpNwFCi6y3IEZwcnAKBEj8//GOCmGQm0bW1ixHClpfY/nYO8wRGoVlI 7piFZOEsJC2zkLQsYGRZxSiSWlqcm55bbKhXnJhbXJqXrpecn7uJEZhith37uXkH47xXH/UO MTJxMB5ilOBgVhLhrRQsThbiTUmsrEotyo8vKs1JLT7EaAoMjInMUqLJ+cAkl1cSb2hmYGpo YmZpYGppZqwkzutZ0JEoJJCeWJKanZpakFoE08fEwSnVwFS78pvvWvWnerc+PHZkX2Egsn8L 09QLCnkdTo0tGyenXUs8Y6H6UFlyK+engO18E9f/6/+1g0lBLfjOjSU5r7sPfsg59zvI6WFC bYew0u+d6wTD26NSJx5l/+1qsa/wx5IPHu83ih68dNXryFKGizkS3HNu/rxZ8+bp1LrsGy6F mlIbDGX2M1eciNvjeHFn9M872rnrdzcoOXx68zywx+jqtNB5hmsWJ1V9nay7MDMkNTnt0xNV 19eb5/192R7G/lPD16vv2aQZOz6v+jopsdimnl/ONn7mds3WmoXf92X/qNsxkfO8oZKdXPNn pRnFcpk2e7jm3dLaurbpeobIxV2HDhj2GzXck3NOu+J0r3e1EktxRqKhFnNRcSIAw+MZCLoD AAA= X-CMS-MailID: 20221115080942eucas1p21db7e8d7ffc6f825a95059495e75d959 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20221110184122eucas1p11379ff6b85cf9a66455a026259c93340 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20221110184122eucas1p11379ff6b85cf9a66455a026259c93340 References: <20221110183853.3678209-1-jagan@amarulasolutions.com> <20221110183853.3678209-10-jagan@amarulasolutions.com> <56cab7d0-d9fb-d890-0b1c-678980eafd9c@samsung.com> X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Marek Vasut , linux-samsung-soc@vger.kernel.org, Joonyoung Shim , dri-devel@lists.freedesktop.org, Tommaso Merciai , linux-amarula , Seung-Woo Kim , Neil Armstrong , Frieder Schrempf , Kyungmin Park , Matteo Lisi , Robert Foss , Andrzej Hajda , NXP Linux Team , Fancy Fang , Michael Nazzareno Trimarchi , Adam Ford , linux-arm-kernel@lists.infradead.org, Laurent Pinchart Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Hi Jagan, On 14.11.2022 18:07, Jagan Teki wrote: > On Mon, Nov 14, 2022 at 8:10 PM Marek Szyprowski > wrote: >> On 14.11.2022 11:57, Marek Szyprowski wrote: >>> On 10.11.2022 19:38, Jagan Teki wrote: >>>> Finding the right input bus format throughout the pipeline is hard >>>> so add atomic_get_input_bus_fmts callback and initialize with the >>>> proper input format from list of supported output formats. >>>> >>>> This format can be used in pipeline for negotiating bus format between >>>> the DSI-end of this bridge and the other component closer to pipeline >>>> components. >>>> >>>> List of Pixel formats are taken from, >>>> AN13573 i.MX 8/RT MIPI DSI/CSI-2, Rev. 0, 21 March 2022 >>>> 3.7.4 Pixel formats >>>> Table 14. DSI pixel packing formats >>>> >>>> v8: >>>> * added pixel formats supported by NXP AN13573 i.MX 8/RT MIPI DSI/CSI-2 >>>> >>>> v7, v6, v5, v4: >>>> * none >>>> >>>> v3: >>>> * include media-bus-format.h >>>> >>>> v2: >>>> * none >>>> >>>> v1: >>>> * new patch >>>> >>>> Signed-off-by: Jagan Teki >>>> --- >>>> drivers/gpu/drm/bridge/samsung-dsim.c | 53 +++++++++++++++++++++++++++ >>>> 1 file changed, 53 insertions(+) >>>> >>>> diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c >>>> b/drivers/gpu/drm/bridge/samsung-dsim.c >>>> index 0fe153b29e4f..33e5ae9c865f 100644 >>>> --- a/drivers/gpu/drm/bridge/samsung-dsim.c >>>> +++ b/drivers/gpu/drm/bridge/samsung-dsim.c >>>> @@ -15,6 +15,7 @@ >>>> #include >>>> #include >>>> #include >>>> +#include >>>> #include >>>> #include >>>> @@ -1321,6 +1322,57 @@ static void >>>> samsung_dsim_atomic_post_disable(struct drm_bridge *bridge, >>>> pm_runtime_put_sync(dsi->dev); >>>> } >>>> +/* >>>> + * This pixel output formats list referenced from, >>>> + * AN13573 i.MX 8/RT MIPI DSI/CSI-2, Rev. 0, 21 March 2022 >>>> + * 3.7.4 Pixel formats >>>> + * Table 14. DSI pixel packing formats >>>> + */ >>>> +static const u32 samsung_dsim_pixel_output_fmts[] = { >>>> + MEDIA_BUS_FMT_UYVY8_1X16, >>>> + MEDIA_BUS_FMT_RGB101010_1X30, >>>> + MEDIA_BUS_FMT_RGB121212_1X36, >>>> + MEDIA_BUS_FMT_RGB565_1X16, >>>> + MEDIA_BUS_FMT_RGB666_1X18, >>>> + MEDIA_BUS_FMT_RGB888_1X24, >>>> +}; >>>> + >>>> +static bool samsung_dsim_pixel_output_fmt_supported(u32 fmt) >>>> +{ >>>> + int i; >>>> + >>>> + for (i = 0; i < ARRAY_SIZE(samsung_dsim_pixel_output_fmts); i++) { >>>> + if (samsung_dsim_pixel_output_fmts[i] == fmt) >>>> + return true; >>>> + } >>>> + >>>> + return false; >>>> +} >>>> + >>>> +static u32 * >>>> +samsung_dsim_atomic_get_input_bus_fmts(struct drm_bridge *bridge, >>>> + struct drm_bridge_state *bridge_state, >>>> + struct drm_crtc_state *crtc_state, >>>> + struct drm_connector_state *conn_state, >>>> + u32 output_fmt, >>>> + unsigned int *num_input_fmts) >>>> +{ >>>> + u32 *input_fmts; >>>> + >>>> + if (!samsung_dsim_pixel_output_fmt_supported(output_fmt)) >>>> + return NULL; >>> >>> Please add support for MEDIA_BUS_FMT_FIXED and maybe default to >>> MEDIA_BUS_FMT_RGB888_1X24 if requested format is not matched. >>> >>> Otherwise the above check breaks all current clients of the Samsung >>> DSIM/Exynos DSI. I didn't dig into the bus matching code yet, but all >>> DSI panels requests such format on my test systems... >> I've checked a bit more the bus format related code and it looks that >> there are more issues. The DSI panels don't use the MEDIA_BUS_FMT_* >> formats thus the bridge negotiation code selects MEDIA_BUS_FMT_FIXED for >> them. On Arndale board with Toshiba tc358764 bridge the >> MEDIA_BUS_FMT_RGB888_1X7X4_SPWG output_fmt is requested in >> samsung_dsim_atomic_get_input_bus_fmts() (forwarded from the LVDS panel, > dsim => tc358764 => panel-simple > > If I understand the bridge format negotiation correctly - If > atomic_get_input_bus_fmts is not implemented in tc358764 then > MEDIA_BUS_FMT_FIXED will be the output_fmt for dsim so we can assign > MEDIA_BUS_FMT_RGB888_1X24 for FIXED formats. > > from include/drm/drm_bridge.h: > > * This method is called on all elements of the bridge chain as part of > * the bus format negotiation process that happens in > * drm_atomic_bridge_chain_select_bus_fmts(). > * This method is optional. When not implemented, the core will bypass > * bus format negotiation on this element of the bridge without > * failing, and the previous element in the chain will be passed > * MEDIA_BUS_FMT_FIXED as its output bus format. > > As I can see tc358764 is not implemented either > atomic_get_input_bus_fmts or atomic API, so I think dsim gets the > MEDIA_BUS_FMT_FIXED bridge pipeline. I have tested sn65dsi without > atomic_get_input_bus_fmts I can see the dsim is getting > MEDIA_BUS_FMT_FIXED. > > Can you check the same from your side? Here in case of Arndale 5250 with the following pipeline: dsim => tc358764 => panel-simple (boe,hv070wsa-100 panel) the DRM core requests MEDIA_BUS_FMT_RGB888_1X7X4_SPWG format, taken from the boe_hv070wsa panel (see from drivers/gpu/drm/panel/panel-simple.c). Please note that in case of Exynos, the reversed bridge chain order is used for dsim, so this is another nasty consequence of that hack. :/ Maybe if no compatible bus format is found, the driver should force MEDIA_BUS_FMT_RGB888_1X24 until a proper format negotiation is implemented and hacks removed? Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 321A5C4332F for ; Tue, 15 Nov 2022 08:11:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:References:In-Reply-To:From:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=K4CpuAG+EWT71vVfJTekT9UE/7o2q/SCZBkpvOQZ27k=; b=ZTE2rRm6WOh4ba PZjsiawbITHUyEeAZJAffBtRC0CVTN2VYYR8Pra7IA2Pn/BOoAzVWNmY8ZQAAfvsXi5PygS5isM4s /AfCUSFGw1qFh+vacb8wDmOnTBljz87RfA7P/iiLWGj2Vn4g62ptXEWPqy802zR75xyYRYsahGqiw 4H3sLjIezf918LCXQSdNIz+ZdlZXpOw5SbTOmPNXXVAf1LnfdiCwabK6CZGoGnaXvcJeB/uEHYf+0 4IubxFZslAvLQtD8SisiYdCCtb4z0FX3lnhexkk1JZHn5H924NEbfhyodMus4kE1JN4s75Qzmb688 9W+DOUPMlxHPHjVd+cWg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1our0y-008thP-D4; Tue, 15 Nov 2022 08:09:52 +0000 Received: from mailout1.w1.samsung.com ([210.118.77.11]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1our0u-008tg4-Ip for linux-arm-kernel@lists.infradead.org; Tue, 15 Nov 2022 08:09:51 +0000 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20221115080943euoutp01147a1d877cf625ee4c9d5533bdcd9f40~ns7Z2uHSY2267322673euoutp01S for ; Tue, 15 Nov 2022 08:09:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20221115080943euoutp01147a1d877cf625ee4c9d5533bdcd9f40~ns7Z2uHSY2267322673euoutp01S DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1668499783; bh=44tbPwKCuHTSozLXnbTA8C1enz9cryZUjc9DVJaG81o=; h=Date:Subject:To:Cc:From:In-Reply-To:References:From; b=gKPxWkrDgQ1VcSlPTFTJJt+xpTCXFl+MuV4x66Bb9ChwzLjW6MjA0/yAMGmlWkKCr pkXhFzUcILZ9eUnLV0P0G8pDrJVSdPvE44gpGZQ1vUA1fl1hlWp8Lnrt6LC47iW2BP YAX/4jZOaUH6upA09keZW4rg510h1Ck0tn/aA4/0= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20221115080942eucas1p28bb759d87b4ab816472ac419fc533acc~ns7ZeXMy51520815208eucas1p26; Tue, 15 Nov 2022 08:09:42 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 2E.58.09549.64943736; Tue, 15 Nov 2022 08:09:42 +0000 (GMT) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20221115080942eucas1p21db7e8d7ffc6f825a95059495e75d959~ns7ZCeV0a0491604916eucas1p2n; Tue, 15 Nov 2022 08:09:42 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20221115080942eusmtrp1458b6cfaacb7eea6b2ffd0a75a79fa16~ns7ZBWIMr1130911309eusmtrp1d; Tue, 15 Nov 2022 08:09:42 +0000 (GMT) X-AuditID: cbfec7f5-f47ff7000000254d-37-6373494623b6 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 42.2D.08916.64943736; Tue, 15 Nov 2022 08:09:42 +0000 (GMT) Received: from [106.210.134.192] (unknown [106.210.134.192]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20221115080941eusmtip261c09f683fcac978c32d8a78b43a162c~ns7X8zezX1955519555eusmtip2u; Tue, 15 Nov 2022 08:09:41 +0000 (GMT) Message-ID: <928ec100-83c0-cbfe-8005-ccf872538999@samsung.com> Date: Tue, 15 Nov 2022 09:09:41 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: [PATCH v8 09/14] drm: bridge: samsung-dsim: Add atomic_get_input_bus_fmts Content-Language: en-US To: Jagan Teki Cc: Andrzej Hajda , Inki Dae , Joonyoung Shim , Seung-Woo Kim , Kyungmin Park , Frieder Schrempf , Fancy Fang , Tim Harvey , Michael Nazzareno Trimarchi , Adam Ford , Neil Armstrong , Robert Foss , Laurent Pinchart , Tommaso Merciai , Marek Vasut , Matteo Lisi , dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, NXP Linux Team , linux-amarula From: Marek Szyprowski In-Reply-To: X-Brightmail-Tracker: H4sIAAAAAAAAA01Sf0xTVxjdfe/19dGk9bY6uQO3mc4NZa7AcNldtjFNzPKYk2HcH0aWuaa8 gFpKaWXozMaPbB1UJKVSgTfUDtBWEyDrSAfOmVjUAhVQI8qk0rGxOZAKyC8BYbM83fjvfOd8 J985N5chFTY6gtmt28cZdGqtkpZQ7sszna+9n2jUxJrvRmF/r4/EgZpxCt/rddL4xuQIjQ+f 7BRha8BC4QmXhcZ/912jcEfBsBgXldaKscNynsauP26KsHn2NIkrus4TeNiUD7Dv9wYSt+d/ Q+HrZS00fsD3P1aPDNL4WusDEk/PdZAbV7J1YwERe5xvpdiy1ositrP4Ds0283fE7HeFlSK2 5twgwV7srhGx/pvnaDZwyEuwP9bmsj/cbyLYksYzgB13vZAs2yl5J5XT7v6cM8QkfCZJ/+3R EKHnVfsHOo6L80D7GjMIYxDcgIrmSwkzkDAK6ATI5G4TC8MEQJes/aQwjAPkuFAofmpx9Dc8 sTgA+rl0hAgJCjgGULX1XTNgGClMQHPOxBBNwZfRVL6HDGEplKO2ygEqhJ+Fqej7xp5F63K4 A/1iO7nIkzAc3R44scivgK+iqcp7dOgWCSdpdMLdCkICDeOQOWimQzgMbkMzowuEYH4R/RSs WkyNoE2Cps0DhJB6M3LaHaSAl6Mhb+OTNquQ70gxJRi+Bcg+FyCEwQJQ3t3bQNh6G/k7Z+lQ NRKuQw1nYwR6E+opcBEhGkEZ6gnKhRAyZHWXkwItRYUmhbD9CuK99f+dvXD1OmkBSn7Ju/BL +vNL6vD/37UD6gwI57KNGWmcMV7H5aiM6gxjti5NpcnMcIHHP9e34J1sAs6hMZUHEAzwAMSQ yhXSA3KjRiFNVR/4gjNk7jJkazmjB0QylDJcSldEaxQwTb2P28txes7wVCWYsIg8wv7GXjVO yFunb7FsHu2Tdfs3rF9W0dITWzSx8Hw7J2lJ2lL3EZ7T6gqimjXcrD6xOL4vhcgM/ytZcWtV ZdJLW/Rl8NTrsNdjaY3+c23xI3D0zdio0qy0Xe7BiZLtp/mPr8Z8PTKYdKs6fZt8q/Vh3P7L G6s+4f35oz3HBg5vXdO2J6Utsii9EJtSj83nmrpyamxZwWqje/jDLIPMXl1Vp1nZwcgDo2z8 pvd2rv9Um5NhHSl/zvtwGepSJz9z8J8U1VDDjo5y+6l521dNaXOOMV9uWPPMnu31dWt/1a6+ cpCf+hIenZ4+5Kolb5D3P9A3Oucjz75FN126Uh8sWd1d6YpQUsZ0dVw0aTCq/wUlDicnKAQA AA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrOKsWRmVeSWpSXmKPExsVy+t/xe7punsXJBs8u8VjcuX2a2eL+4s8s Fq9vr2CzuPL1PZtF79JzrBaT7k9gsfiyaQKbxYt7F1kszja9YbfonLiE3WL5hH1sFpseX2O1 6Pq1ktlixvl9TBZv2hoZLU4/Ws9scaqxlcXi0pTDbBafZj0Eyk5+yWZx8cQnZovvv88yO4h5 rP14n9Vj3qwTLB5TThxh9TjXc5fNY+esu+wesztmsnos3vOSyePI1cWsHneu7WHzuN99nMlj 85J6j43vdjB59G1ZxejxeZNcAF+Unk1RfmlJqkJGfnGJrVK0oYWRnqGlhZ6RiaWeobF5rJWR qZK+nU1Kak5mWWqRvl2CXsaDP6+YCmbpVTw5O4+9gfGUShcjJ4eEgInE8ofrmboYuTiEBJYy Sqw/+ZEVIiEjcXJaA5QtLPHnWhcbRNF7Rom5C98BORwcvAJ2Er9XeILUsAioSnxrPMQMYvMK CEqcnPmEBaREVCBFYt2RKJCwsECExN6pS1lAbGYBcYlbT+YzgdgiAtoS32a+BhvPLPCdTWLm 9yksELv+M0lcenUMrIpNwFCi6y3IEZwcnAKBEj8//GOCmGQm0bW1ixHClpfY/nYO8wRGoVlI 7piFZOEsJC2zkLQsYGRZxSiSWlqcm55bbKhXnJhbXJqXrpecn7uJEZhith37uXkH47xXH/UO MTJxMB5ilOBgVhLhrRQsThbiTUmsrEotyo8vKs1JLT7EaAoMjInMUqLJ+cAkl1cSb2hmYGpo YmZpYGppZqwkzutZ0JEoJJCeWJKanZpakFoE08fEwSnVwFS78pvvWvWnerc+PHZkX2Egsn8L 09QLCnkdTo0tGyenXUs8Y6H6UFlyK+engO18E9f/6/+1g0lBLfjOjSU5r7sPfsg59zvI6WFC bYew0u+d6wTD26NSJx5l/+1qsa/wx5IPHu83ih68dNXryFKGizkS3HNu/rxZ8+bp1LrsGy6F mlIbDGX2M1eciNvjeHFn9M872rnrdzcoOXx68zywx+jqtNB5hmsWJ1V9nay7MDMkNTnt0xNV 19eb5/192R7G/lPD16vv2aQZOz6v+jopsdimnl/ONn7mds3WmoXf92X/qNsxkfO8oZKdXPNn pRnFcpk2e7jm3dLaurbpeobIxV2HDhj2GzXck3NOu+J0r3e1EktxRqKhFnNRcSIAw+MZCLoD AAA= X-CMS-MailID: 20221115080942eucas1p21db7e8d7ffc6f825a95059495e75d959 X-Msg-Generator: CA X-RootMTR: 20221110184122eucas1p11379ff6b85cf9a66455a026259c93340 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20221110184122eucas1p11379ff6b85cf9a66455a026259c93340 References: <20221110183853.3678209-1-jagan@amarulasolutions.com> <20221110183853.3678209-10-jagan@amarulasolutions.com> <56cab7d0-d9fb-d890-0b1c-678980eafd9c@samsung.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221115_000949_243447_6D264DF4 X-CRM114-Status: GOOD ( 31.44 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Jagan, On 14.11.2022 18:07, Jagan Teki wrote: > On Mon, Nov 14, 2022 at 8:10 PM Marek Szyprowski > wrote: >> On 14.11.2022 11:57, Marek Szyprowski wrote: >>> On 10.11.2022 19:38, Jagan Teki wrote: >>>> Finding the right input bus format throughout the pipeline is hard >>>> so add atomic_get_input_bus_fmts callback and initialize with the >>>> proper input format from list of supported output formats. >>>> >>>> This format can be used in pipeline for negotiating bus format between >>>> the DSI-end of this bridge and the other component closer to pipeline >>>> components. >>>> >>>> List of Pixel formats are taken from, >>>> AN13573 i.MX 8/RT MIPI DSI/CSI-2, Rev. 0, 21 March 2022 >>>> 3.7.4 Pixel formats >>>> Table 14. DSI pixel packing formats >>>> >>>> v8: >>>> * added pixel formats supported by NXP AN13573 i.MX 8/RT MIPI DSI/CSI-2 >>>> >>>> v7, v6, v5, v4: >>>> * none >>>> >>>> v3: >>>> * include media-bus-format.h >>>> >>>> v2: >>>> * none >>>> >>>> v1: >>>> * new patch >>>> >>>> Signed-off-by: Jagan Teki >>>> --- >>>> drivers/gpu/drm/bridge/samsung-dsim.c | 53 +++++++++++++++++++++++++++ >>>> 1 file changed, 53 insertions(+) >>>> >>>> diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c >>>> b/drivers/gpu/drm/bridge/samsung-dsim.c >>>> index 0fe153b29e4f..33e5ae9c865f 100644 >>>> --- a/drivers/gpu/drm/bridge/samsung-dsim.c >>>> +++ b/drivers/gpu/drm/bridge/samsung-dsim.c >>>> @@ -15,6 +15,7 @@ >>>> #include >>>> #include >>>> #include >>>> +#include >>>> #include >>>> #include >>>> @@ -1321,6 +1322,57 @@ static void >>>> samsung_dsim_atomic_post_disable(struct drm_bridge *bridge, >>>> pm_runtime_put_sync(dsi->dev); >>>> } >>>> +/* >>>> + * This pixel output formats list referenced from, >>>> + * AN13573 i.MX 8/RT MIPI DSI/CSI-2, Rev. 0, 21 March 2022 >>>> + * 3.7.4 Pixel formats >>>> + * Table 14. DSI pixel packing formats >>>> + */ >>>> +static const u32 samsung_dsim_pixel_output_fmts[] = { >>>> + MEDIA_BUS_FMT_UYVY8_1X16, >>>> + MEDIA_BUS_FMT_RGB101010_1X30, >>>> + MEDIA_BUS_FMT_RGB121212_1X36, >>>> + MEDIA_BUS_FMT_RGB565_1X16, >>>> + MEDIA_BUS_FMT_RGB666_1X18, >>>> + MEDIA_BUS_FMT_RGB888_1X24, >>>> +}; >>>> + >>>> +static bool samsung_dsim_pixel_output_fmt_supported(u32 fmt) >>>> +{ >>>> + int i; >>>> + >>>> + for (i = 0; i < ARRAY_SIZE(samsung_dsim_pixel_output_fmts); i++) { >>>> + if (samsung_dsim_pixel_output_fmts[i] == fmt) >>>> + return true; >>>> + } >>>> + >>>> + return false; >>>> +} >>>> + >>>> +static u32 * >>>> +samsung_dsim_atomic_get_input_bus_fmts(struct drm_bridge *bridge, >>>> + struct drm_bridge_state *bridge_state, >>>> + struct drm_crtc_state *crtc_state, >>>> + struct drm_connector_state *conn_state, >>>> + u32 output_fmt, >>>> + unsigned int *num_input_fmts) >>>> +{ >>>> + u32 *input_fmts; >>>> + >>>> + if (!samsung_dsim_pixel_output_fmt_supported(output_fmt)) >>>> + return NULL; >>> >>> Please add support for MEDIA_BUS_FMT_FIXED and maybe default to >>> MEDIA_BUS_FMT_RGB888_1X24 if requested format is not matched. >>> >>> Otherwise the above check breaks all current clients of the Samsung >>> DSIM/Exynos DSI. I didn't dig into the bus matching code yet, but all >>> DSI panels requests such format on my test systems... >> I've checked a bit more the bus format related code and it looks that >> there are more issues. The DSI panels don't use the MEDIA_BUS_FMT_* >> formats thus the bridge negotiation code selects MEDIA_BUS_FMT_FIXED for >> them. On Arndale board with Toshiba tc358764 bridge the >> MEDIA_BUS_FMT_RGB888_1X7X4_SPWG output_fmt is requested in >> samsung_dsim_atomic_get_input_bus_fmts() (forwarded from the LVDS panel, > dsim => tc358764 => panel-simple > > If I understand the bridge format negotiation correctly - If > atomic_get_input_bus_fmts is not implemented in tc358764 then > MEDIA_BUS_FMT_FIXED will be the output_fmt for dsim so we can assign > MEDIA_BUS_FMT_RGB888_1X24 for FIXED formats. > > from include/drm/drm_bridge.h: > > * This method is called on all elements of the bridge chain as part of > * the bus format negotiation process that happens in > * drm_atomic_bridge_chain_select_bus_fmts(). > * This method is optional. When not implemented, the core will bypass > * bus format negotiation on this element of the bridge without > * failing, and the previous element in the chain will be passed > * MEDIA_BUS_FMT_FIXED as its output bus format. > > As I can see tc358764 is not implemented either > atomic_get_input_bus_fmts or atomic API, so I think dsim gets the > MEDIA_BUS_FMT_FIXED bridge pipeline. I have tested sn65dsi without > atomic_get_input_bus_fmts I can see the dsim is getting > MEDIA_BUS_FMT_FIXED. > > Can you check the same from your side? Here in case of Arndale 5250 with the following pipeline: dsim => tc358764 => panel-simple (boe,hv070wsa-100 panel) the DRM core requests MEDIA_BUS_FMT_RGB888_1X7X4_SPWG format, taken from the boe_hv070wsa panel (see from drivers/gpu/drm/panel/panel-simple.c). Please note that in case of Exynos, the reversed bridge chain order is used for dsim, so this is another nasty consequence of that hack. :/ Maybe if no compatible bus format is found, the driver should force MEDIA_BUS_FMT_RGB888_1X24 until a proper format negotiation is implemented and hacks removed? Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel