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=-18.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable 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 9FFE5C4338F for ; Fri, 13 Aug 2021 06:40:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 787E1610CC for ; Fri, 13 Aug 2021 06:40:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238889AbhHMGlW (ORCPT ); Fri, 13 Aug 2021 02:41:22 -0400 Received: from mailout1.samsung.com ([203.254.224.24]:61237 "EHLO mailout1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234716AbhHMGlT (ORCPT ); Fri, 13 Aug 2021 02:41:19 -0400 Received: from epcas1p4.samsung.com (unknown [182.195.41.48]) by mailout1.samsung.com (KnoxPortal) with ESMTP id 20210813064050epoutp0184f0b6afbaeabed02f9fbef169138f52~aynw9GrmU0906409064epoutp01d for ; Fri, 13 Aug 2021 06:40:50 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.samsung.com 20210813064050epoutp0184f0b6afbaeabed02f9fbef169138f52~aynw9GrmU0906409064epoutp01d DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1628836850; bh=GX0PO2UHB6tTTJjjXKR54Z+KLcMN1qE53qgK1OrgN60=; h=Subject:To:Cc:From:Date:In-Reply-To:References:From; b=J8wEaX0dBPDLhms2cd/7kSOWnYettEydvQLMrx/Gc8C0iVeCznEprPy+C7wmvYhfk iJCETxT62wKZWHqYkjxxunFJ7j/2Gj7TRAJai2lExZGnpCbMPdwDa1YZxq0hvbNx7u znQgFA9HqLPx3EF2bxTUGxEE7VL5VAnvLVOPRwpI= Received: from epsnrtp4.localdomain (unknown [182.195.42.165]) by epcas1p1.samsung.com (KnoxPortal) with ESMTP id 20210813064047epcas1p17a8367b4039e58d070f50b9b5fa0435e~aynur26k81882218822epcas1p1e; Fri, 13 Aug 2021 06:40:47 +0000 (GMT) Received: from epsmges1p2.samsung.com (unknown [182.195.40.156]) by epsnrtp4.localdomain (Postfix) with ESMTP id 4GmDTT3Pwqz4x9QH; Fri, 13 Aug 2021 06:40:45 +0000 (GMT) Received: from epcas1p2.samsung.com ( [182.195.41.46]) by epsmges1p2.samsung.com (Symantec Messaging Gateway) with SMTP id 29.5D.09551.DE316116; Fri, 13 Aug 2021 15:40:45 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas1p4.samsung.com (KnoxPortal) with ESMTPA id 20210813064044epcas1p4f7c29f06e3cef0a2bfc68e2ee11235b8~aynri7T0q0205602056epcas1p4Y; Fri, 13 Aug 2021 06:40:44 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20210813064044epsmtrp12719afc16604b5f1140a951b39c13782~aynrgns5S2484924849epsmtrp1i; Fri, 13 Aug 2021 06:40:44 +0000 (GMT) X-AuditID: b6c32a36-2b3ff7000000254f-1d-611613ed5110 Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 53.B2.08394.CE316116; Fri, 13 Aug 2021 15:40:44 +0900 (KST) Received: from [10.113.221.211] (unknown [10.113.221.211]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20210813064044epsmtip10c02018d10720510f320b6285c1addb7~aynrRs_hm2938429384epsmtip1h; Fri, 13 Aug 2021 06:40:44 +0000 (GMT) Subject: Re: [RFC PATCH 06/17] drm/exynos: dsi: Handle exynos specifics via driver_data To: Sam Ravnborg , Jagan Teki Cc: Joonyoung Shim , Seung-Woo Kim , Kyungmin Park , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Frieder Schrempf , Daniel Vetter , Marek Vasut , Krzysztof Kozlowski , Fabio Estevam , devicetree@vger.kernel.org, linux-samsung-soc@vger.kernel.org, dri-devel@lists.freedesktop.org, NXP Linux Team , linux-amarula , linux-arm-kernel@lists.infradead.org From: Inki Dae Message-ID: <79ef7f71-b167-2368-e0fd-d4ccaee596c2@samsung.com> Date: Fri, 13 Aug 2021 15:50:56 +0900 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA02TfUxTVxjGd+69vS0sHaWgnJEM8ZJhxIG9heKVgVtEt5sgGdvCyJQJd3BH GaVtWnDovnAo4Uu+3ARbt7oAQzCyiYUAMh2VKGTIRwbIGqFQGLELiCjgCoyt7XUZ//2e9zzv e85zTo4AFRfyfQXpyixWo2QUBO6Otd7aGRI877WVkRhLfShzUz+Pqu9rQilDt4OGlxdwamrk LepMnUMtNZfj1IOJIYy6Ov8XQt39ao5PFVbU8qn68hs41Tw9yqOKVhtQqnrgBkLN5Z8ElKn0 CPVYN4VSl+wtgKo+a8Nf96avLFp49MLYaT6tyz2D09/pejC6XTfOp/UF53l0TacNobtHanj0 /dFOnLYU30Hoa7Vf0lcftiF07bkRnC41NgL6SbNfnMfhjEg5y6SyGn9WmaJKTVemRREx7yZF J8nCJWQwuZfaQ/grmUw2ijhwKC74jXSFIzbhf4xRZDtKcYxWS+zeF6lRZWex/nKVNiuKYNWp CvVedYiWydRmK9NCUlSZEaREIpU5jMkZ8oVBA1+tj8yxXxjk5YJRSRFwE0BRGDSZl3hFwF0g FrUB2FH6N8qJxwCeqppCOLEC4HrXdceKwNWS+yCBq/8MYMOsHePEAoD1XaW4c66X6H3YvWZH nOwtOgQ7K9ddjIoWebDdpnEyLnoZVlyyuPxC0T64cKua72TMUf9Gv4g5eYtjzsD1ixjn8YS9 52dc7CZ6BY6azSg30weaZwzP5m+DeS16VwQouuwGjVU2nAt6AI5NWFGOveCfd4x8jn2hrSyf zzXkAVhR/SvCiQIAx6fvYZwrFN6sO4s486OinfDHjt1ceTtsX/sWcDu/AB8ul/C4KxLCgnwx ZyHg7aExwDGEg7UVz85Dw0fXhrBysF23KZtuUx7dpjy6/ze+CLBGsJVVazPTWC2plm5+7mbg +hNB4W2gcv5RiAkgAmACUIAS3sJ2PzEjFqYyx0+wGlWSJlvBak1A5rjtCtR3S4rK8amUWUmk TBoaGkqFkeEykiR8hCsfLCeLRWlMFpvBsmpW818fInDzzUX2WKWfGWwdHjMKz0SJ7eMc37LV VnKspGstuKWnfyYgxtDTyx/3KUHnj/xW+DUy8VNQnLFgMm9t2/HXYsfiB/Lr9BEb6eLnWi1h E/27xrtPC7uD12Wh+pc8/gl6Pv3ecOfq0jvFTUGR8camroSAHb+rj0WXWf1ggPxN912IIDln f8LdZGO89mCZHexotKzERvUNkw8DX+1rkxJPb+qOBvojTxInDxqSin/wrLnQanvxlOd7Vz5t lCZ/NLt/43ZXw0ZKmiDCin5on/z88h9kYe9TuSXgsFBQcnTu+ymPc2/LPD+5H9g3a23ySf2l MnpcZlqZzk6x4omxpHk9pupk7BfwBEZgWjlDBqEaLfMvJF0TtZwEAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA02SfVDLcRzHfX9P+7UTv7bSV1FnrutSevD4PUJcx8/DHac/Eg6j3yW2mv1U cofJccxJHlprRbmNrVx1pfVwOseWwxGhDTskFBErlmv0h61x13+vz/vzfn3++tC4qI8IoTOz 9nPKLKlMQgmJJqskbPaAeIo0/tepAOSofUwi46NaHFW0e6hr2EmhHtt6dOaqZ3I1FFHo89un BKr/NoKhjoIBATp1ziBAxqJbFGr4YCeR+ncVjrRPbmFo4MRRgCyFW9APXQ+OTG4zQNoL/VRS IFsz1E2yzpfHBaxOdYZiL+vuE2yr7o2ALTtZSrL6tn6MbbfpSfa1vY1iu0/fw9gbhiNs/fcW jDVobBRb2FgN2J8NYRsmbxYmpnOyzFxOGbd0h3C3s7NCoChLPOAu7yRVwB6vBjQNmXlQ9TlV DYS0iLkJYM+n8wJfDmGjmfahGFqtvK/yDcBXRgOhBn60mEmD7X/cmJcDmXWw7fwo5i3hzDAJ r5jNhM/4CmDpUz3pbVFMBDxn6qa87M8shU6rVuBlwpMXlw2NXQ3yXP1Z+YX0dQLgg9KPY7kf EwPtDgfuZZyJhKOXn/3jYOj4WIH5OBweM5fhRUCkG6frxim6cYpunFIJiGowlVPw8gw5n6BI yOLyYnmpnM/JyojdlS1vAGOvMCuqBTRXD8ZaAEYDC4A0Lgn05z3PIfJPl+Yf5JTZ25U5Mo63 gFCakAT7d6ofbBcxGdL93F6OU3DK/1uM9gtRYS3v7NpkieZ5oX5PzYolX/Pn21hr19lJebU2 Q1w/qr0eU6JofZ+yQpgwYbFMf7d5eQ0Rb0o6lL3JBUtCnphKSHlyfOPCuU2xcwoad9zT5NYs q5zC8KvixEPuvE6lsdTeJXcdjE6P6N0U9Gle6FtNe+/oyrRtqS+IlOhK15bkO5ETCtIi9g1e zzEyH1Q3RmbWHXNUhaO92jldG3dOR6uRc1B2sTd/2tZhTd+0sCWLE6PIoEWHy025G0Ij9OuT Mu9ecn9vDiq+9tDS0VcuHpwt3jZC325bvSb82dBac2Jv8MQZqa1c5OuWBa2jdVT9j6rCDv3R mOzN99PmTp54QpI83eGSEPxuacIsXMlL/wJc2jSceQMAAA== X-CMS-MailID: 20210813064044epcas1p4f7c29f06e3cef0a2bfc68e2ee11235b8 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-Sendblock-Type: SVC_REQ_APPROVE CMS-TYPE: 101P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20210725172551epcas1p31dff839439ac37757cf061405b5ac65c References: <20210704090230.26489-1-jagan@amarulasolutions.com> <20210704090230.26489-7-jagan@amarulasolutions.com> Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Hi, 21. 7. 26. 오전 2:25에 Sam Ravnborg 이(가) 쓴 글: > On Sun, Jul 04, 2021 at 02:32:19PM +0530, Jagan Teki wrote: >> Exynos DSI driver is actually a Samsung MIPI DSIM bridge >> IP which is also used in i.MX8MM platforms. >> >> Right now the existing driver has some exynos drm specific >> code bases like te_irq, crtc and component_ops. >> >> In order to switch this driver into a common bridge driver >> We can see 2 options to handle the exynos specific code. >> >> A. Drop the component_ops, and rework other specifics. >> This may lead to more foundation work as it requires >> more changes in exynos drm drivers stack. >> >> B. Handle the exynos specifics via driver data, and make >> the common bridge work in different platforms and plan >> for option A in future. >> >> So, this patch is trying to add option B) changes to handle >> exynos specifics via driver_data. > > We really should find someone that has the time, energy, knowledge and > hardware that can include device_link support once anf for all for > bridges. > Then we would avoid hacks like this. > > I see no other options at the moment, but look forward for a better > solution. > > Sam > I'm not sure that it's correct to share this mipi dsi driver with I.MX8MM SoC even though it's a same IP because this MIPI DSI device isn't peripheral device but in SoC. It would mean that Exynos MIPI DSI device depends on SoC architecture, and Exynos and I.MX series are totally different SoC. So if we share the same driver for the MIPI DSI device then many things we didn't predict may happen in the future. I don't want to make Jagan's efforts in vain for the community but clarify whether this is correct way or not. If this is only the way we have to go then we could more focus on actual solution not such hack. Impossible work with Jagan alone I think. So let's get started with a question, - Is MIPI-DSI bridge device or Encoder device? I think that MIPI-DSI is a Encoder device managed by atomic KMS. If MIPI-DSI should be handled as bridge device then does now drm bridge framework provide everything to share one driver with one more SoC? I mean something that drm bridge has to consider for such driver support, which is shared with one more SoC. And Display mode - VIDEO and COMMAND mode - is generic type of MIPI DSI, and also componentised subsystem is a generic solution to resolve probing order issue not Exynos specific feature. These are driver specific ones not Exynos SoC I think. As SoC specific things should be considered, I think MIPI DSI Driver - interrupt handler and probing order things are really specific to device driver - should be separated but we could share the control part of the device. I was busy with other projects so didn't care of Linux DRM world so there may be my missing something. Thanks, Inki Dae > >> >> Signed-off-by: Jagan Teki >> --- >> drivers/gpu/drm/exynos/exynos_drm_dsi.c | 37 +++++++++++++++++++------ >> 1 file changed, 29 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c >> index 99a1b8c22313..53d878d4d2d7 100644 >> --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c >> +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c >> @@ -250,6 +250,7 @@ struct exynos_dsi_driver_data { >> unsigned int wait_for_reset; >> unsigned int num_bits_resol; >> const unsigned int *reg_values; >> + bool exynos_specific; >> }; >> >> struct exynos_dsi { >> @@ -459,6 +460,7 @@ static const struct exynos_dsi_driver_data exynos3_dsi_driver_data = { >> .wait_for_reset = 1, >> .num_bits_resol = 11, >> .reg_values = reg_values, >> + .exynos_specific = true, >> }; >> >> static const struct exynos_dsi_driver_data exynos4_dsi_driver_data = { >> @@ -471,6 +473,7 @@ static const struct exynos_dsi_driver_data exynos4_dsi_driver_data = { >> .wait_for_reset = 1, >> .num_bits_resol = 11, >> .reg_values = reg_values, >> + .exynos_specific = true, >> }; >> >> static const struct exynos_dsi_driver_data exynos5_dsi_driver_data = { >> @@ -481,6 +484,7 @@ static const struct exynos_dsi_driver_data exynos5_dsi_driver_data = { >> .wait_for_reset = 1, >> .num_bits_resol = 11, >> .reg_values = reg_values, >> + .exynos_specific = true, >> }; >> >> static const struct exynos_dsi_driver_data exynos5433_dsi_driver_data = { >> @@ -492,6 +496,7 @@ static const struct exynos_dsi_driver_data exynos5433_dsi_driver_data = { >> .wait_for_reset = 0, >> .num_bits_resol = 12, >> .reg_values = exynos5433_reg_values, >> + .exynos_specific = true, >> }; >> >> static const struct exynos_dsi_driver_data exynos5422_dsi_driver_data = { >> @@ -503,6 +508,7 @@ static const struct exynos_dsi_driver_data exynos5422_dsi_driver_data = { >> .wait_for_reset = 1, >> .num_bits_resol = 12, >> .reg_values = exynos5422_reg_values, >> + .exynos_specific = true, >> }; >> >> static const struct of_device_id exynos_dsi_of_match[] = { >> @@ -1484,7 +1490,8 @@ static int exynos_dsi_host_attach(struct mipi_dsi_host *host, >> * If attached panel device is for command mode one, dsi should register >> * TE interrupt handler. >> */ >> - if (!(device->mode_flags & MIPI_DSI_MODE_VIDEO)) { >> + if (dsi->driver_data->exynos_specific && >> + !(device->mode_flags & MIPI_DSI_MODE_VIDEO)) { >> int ret = exynos_dsi_register_te_irq(dsi, &device->dev); >> if (ret) >> return ret; >> @@ -1495,8 +1502,9 @@ static int exynos_dsi_host_attach(struct mipi_dsi_host *host, >> dsi->lanes = device->lanes; >> dsi->format = device->format; >> dsi->mode_flags = device->mode_flags; >> - exynos_drm_crtc_get_by_type(drm, EXYNOS_DISPLAY_TYPE_LCD)->i80_mode = >> - !(dsi->mode_flags & MIPI_DSI_MODE_VIDEO); >> + if (dsi->driver_data->exynos_specific) >> + exynos_drm_crtc_get_by_type(drm, EXYNOS_DISPLAY_TYPE_LCD)->i80_mode = >> + !(dsi->mode_flags & MIPI_DSI_MODE_VIDEO); >> >> mutex_unlock(&drm->mode_config.mutex); >> >> @@ -1515,7 +1523,8 @@ static int exynos_dsi_host_detach(struct mipi_dsi_host *host, >> if (drm->mode_config.poll_enabled) >> drm_kms_helper_hotplug_event(drm); >> >> - exynos_dsi_unregister_te_irq(dsi); >> + if (dsi->driver_data->exynos_specific) >> + exynos_dsi_unregister_te_irq(dsi); >> >> return 0; >> } >> @@ -1737,6 +1746,15 @@ static int exynos_dsi_probe(struct platform_device *pdev) >> if (ret) >> return ret; >> >> + if (!dsi->driver_data->exynos_specific) { >> + ret = mipi_dsi_host_register(&dsi->dsi_host); >> + if (ret) { >> + dev_err(dev, "failed to register mipi dsi host: %d\n", >> + ret); >> + return ret; >> + } >> + } >> + >> platform_set_drvdata(pdev, dsi); >> >> pm_runtime_enable(dev); >> @@ -1747,9 +1765,11 @@ static int exynos_dsi_probe(struct platform_device *pdev) >> >> drm_bridge_add(&dsi->bridge); >> >> - ret = component_add(dev, &exynos_dsi_component_ops); >> - if (ret) >> - goto err_disable_runtime; >> + if (dsi->driver_data->exynos_specific) { >> + ret = component_add(dev, &exynos_dsi_component_ops); >> + if (ret) >> + goto err_disable_runtime; >> + } >> >> return 0; >> >> @@ -1767,7 +1787,8 @@ static int exynos_dsi_remove(struct platform_device *pdev) >> >> pm_runtime_disable(&pdev->dev); >> >> - component_del(&pdev->dev, &exynos_dsi_component_ops); >> + if (dsi->driver_data->exynos_specific) >> + component_del(&pdev->dev, &exynos_dsi_component_ops); >> >> return 0; >> } >> -- >> 2.25.1 > 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=-16.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham 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 7439AC4338F for ; Fri, 13 Aug 2021 06:43:32 +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 3EE1E610CD for ; Fri, 13 Aug 2021 06:43:32 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 3EE1E610CD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org 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:MIME-Version: Date:Message-ID:From:Cc:To:Subject:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=7a73OZUM+l/U2j30ZXIZLAPbnrilLW+EGeAla1nobJY=; b=tWTjbzyL0Ek2ku PSwFDCu9DQE9i2DL7Oolh2D2Zcm7pwUWddIGvZNkFXD7V0dLyEeFKG3TCcVyG1GOJ2z/h2P3spZUK IbtaANSqGD/icOtaM8q+0WVqdy3cr9/QcPpezxIEyI5gCRyLJJQ/SQizn1ZBvcCx/D/FnhG0ZgStt rNWx08DRk5AB0t6wIHJfa8kKLuBNjg/KeCFK3YQ/tOqCDJ6vgavJmxPh7xUGn+0TUopgslq0ym9gK DFMKcvJntHqPl75GNHRABD3QcgWlJtuK/Ew59MnHEnDtwojZrxetGpHQFX/XQR1ndts9h7m/gkEYD MmuoJgaUM6L+Iruj52ig==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mEQsH-00BsMK-Ka; Fri, 13 Aug 2021 06:41:01 +0000 Received: from mailout2.samsung.com ([203.254.224.25]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mEQsB-00BsKn-FV for linux-arm-kernel@lists.infradead.org; Fri, 13 Aug 2021 06:40:59 +0000 Received: from epcas1p4.samsung.com (unknown [182.195.41.48]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20210813064050epoutp02e763720ea35b380ef0cbaceac170cff4~aynw3WN2m0378703787epoutp02U for ; Fri, 13 Aug 2021 06:40:50 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20210813064050epoutp02e763720ea35b380ef0cbaceac170cff4~aynw3WN2m0378703787epoutp02U DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1628836850; bh=GX0PO2UHB6tTTJjjXKR54Z+KLcMN1qE53qgK1OrgN60=; h=Subject:To:Cc:From:Date:In-Reply-To:References:From; b=J8wEaX0dBPDLhms2cd/7kSOWnYettEydvQLMrx/Gc8C0iVeCznEprPy+C7wmvYhfk iJCETxT62wKZWHqYkjxxunFJ7j/2Gj7TRAJai2lExZGnpCbMPdwDa1YZxq0hvbNx7u znQgFA9HqLPx3EF2bxTUGxEE7VL5VAnvLVOPRwpI= Received: from epsnrtp4.localdomain (unknown [182.195.42.165]) by epcas1p1.samsung.com (KnoxPortal) with ESMTP id 20210813064047epcas1p17a8367b4039e58d070f50b9b5fa0435e~aynur26k81882218822epcas1p1e; Fri, 13 Aug 2021 06:40:47 +0000 (GMT) Received: from epsmges1p2.samsung.com (unknown [182.195.40.156]) by epsnrtp4.localdomain (Postfix) with ESMTP id 4GmDTT3Pwqz4x9QH; Fri, 13 Aug 2021 06:40:45 +0000 (GMT) Received: from epcas1p2.samsung.com ( [182.195.41.46]) by epsmges1p2.samsung.com (Symantec Messaging Gateway) with SMTP id 29.5D.09551.DE316116; Fri, 13 Aug 2021 15:40:45 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas1p4.samsung.com (KnoxPortal) with ESMTPA id 20210813064044epcas1p4f7c29f06e3cef0a2bfc68e2ee11235b8~aynri7T0q0205602056epcas1p4Y; Fri, 13 Aug 2021 06:40:44 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20210813064044epsmtrp12719afc16604b5f1140a951b39c13782~aynrgns5S2484924849epsmtrp1i; Fri, 13 Aug 2021 06:40:44 +0000 (GMT) X-AuditID: b6c32a36-2b3ff7000000254f-1d-611613ed5110 Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 53.B2.08394.CE316116; Fri, 13 Aug 2021 15:40:44 +0900 (KST) Received: from [10.113.221.211] (unknown [10.113.221.211]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20210813064044epsmtip10c02018d10720510f320b6285c1addb7~aynrRs_hm2938429384epsmtip1h; Fri, 13 Aug 2021 06:40:44 +0000 (GMT) Subject: Re: [RFC PATCH 06/17] drm/exynos: dsi: Handle exynos specifics via driver_data To: Sam Ravnborg , Jagan Teki Cc: Joonyoung Shim , Seung-Woo Kim , Kyungmin Park , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Frieder Schrempf , Daniel Vetter , Marek Vasut , Krzysztof Kozlowski , Fabio Estevam , devicetree@vger.kernel.org, linux-samsung-soc@vger.kernel.org, dri-devel@lists.freedesktop.org, NXP Linux Team , linux-amarula , linux-arm-kernel@lists.infradead.org From: Inki Dae Message-ID: <79ef7f71-b167-2368-e0fd-d4ccaee596c2@samsung.com> Date: Fri, 13 Aug 2021 15:50:56 +0900 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-Brightmail-Tracker: H4sIAAAAAAAAA02TfUxTVxjGd+69vS0sHaWgnJEM8ZJhxIG9heKVgVtEt5sgGdvCyJQJd3BH GaVtWnDovnAo4Uu+3ARbt7oAQzCyiYUAMh2VKGTIRwbIGqFQGLELiCjgCoyt7XUZ//2e9zzv e85zTo4AFRfyfQXpyixWo2QUBO6Otd7aGRI877WVkRhLfShzUz+Pqu9rQilDt4OGlxdwamrk LepMnUMtNZfj1IOJIYy6Ov8XQt39ao5PFVbU8qn68hs41Tw9yqOKVhtQqnrgBkLN5Z8ElKn0 CPVYN4VSl+wtgKo+a8Nf96avLFp49MLYaT6tyz2D09/pejC6XTfOp/UF53l0TacNobtHanj0 /dFOnLYU30Hoa7Vf0lcftiF07bkRnC41NgL6SbNfnMfhjEg5y6SyGn9WmaJKTVemRREx7yZF J8nCJWQwuZfaQ/grmUw2ijhwKC74jXSFIzbhf4xRZDtKcYxWS+zeF6lRZWex/nKVNiuKYNWp CvVedYiWydRmK9NCUlSZEaREIpU5jMkZ8oVBA1+tj8yxXxjk5YJRSRFwE0BRGDSZl3hFwF0g FrUB2FH6N8qJxwCeqppCOLEC4HrXdceKwNWS+yCBq/8MYMOsHePEAoD1XaW4c66X6H3YvWZH nOwtOgQ7K9ddjIoWebDdpnEyLnoZVlyyuPxC0T64cKua72TMUf9Gv4g5eYtjzsD1ixjn8YS9 52dc7CZ6BY6azSg30weaZwzP5m+DeS16VwQouuwGjVU2nAt6AI5NWFGOveCfd4x8jn2hrSyf zzXkAVhR/SvCiQIAx6fvYZwrFN6sO4s486OinfDHjt1ceTtsX/sWcDu/AB8ul/C4KxLCgnwx ZyHg7aExwDGEg7UVz85Dw0fXhrBysF23KZtuUx7dpjy6/ze+CLBGsJVVazPTWC2plm5+7mbg +hNB4W2gcv5RiAkgAmACUIAS3sJ2PzEjFqYyx0+wGlWSJlvBak1A5rjtCtR3S4rK8amUWUmk TBoaGkqFkeEykiR8hCsfLCeLRWlMFpvBsmpW818fInDzzUX2WKWfGWwdHjMKz0SJ7eMc37LV VnKspGstuKWnfyYgxtDTyx/3KUHnj/xW+DUy8VNQnLFgMm9t2/HXYsfiB/Lr9BEb6eLnWi1h E/27xrtPC7uD12Wh+pc8/gl6Pv3ecOfq0jvFTUGR8camroSAHb+rj0WXWf1ggPxN912IIDln f8LdZGO89mCZHexotKzERvUNkw8DX+1rkxJPb+qOBvojTxInDxqSin/wrLnQanvxlOd7Vz5t lCZ/NLt/43ZXw0ZKmiDCin5on/z88h9kYe9TuSXgsFBQcnTu+ymPc2/LPD+5H9g3a23ySf2l MnpcZlqZzk6x4omxpHk9pupk7BfwBEZgWjlDBqEaLfMvJF0TtZwEAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA02SfVDLcRzHfX9P+7UTv7bSV1FnrutSevD4PUJcx8/DHac/Eg6j3yW2mv1U cofJccxJHlprRbmNrVx1pfVwOseWwxGhDTskFBErlmv0h61x13+vz/vzfn3++tC4qI8IoTOz 9nPKLKlMQgmJJqskbPaAeIo0/tepAOSofUwi46NaHFW0e6hr2EmhHtt6dOaqZ3I1FFHo89un BKr/NoKhjoIBATp1ziBAxqJbFGr4YCeR+ncVjrRPbmFo4MRRgCyFW9APXQ+OTG4zQNoL/VRS IFsz1E2yzpfHBaxOdYZiL+vuE2yr7o2ALTtZSrL6tn6MbbfpSfa1vY1iu0/fw9gbhiNs/fcW jDVobBRb2FgN2J8NYRsmbxYmpnOyzFxOGbd0h3C3s7NCoChLPOAu7yRVwB6vBjQNmXlQ9TlV DYS0iLkJYM+n8wJfDmGjmfahGFqtvK/yDcBXRgOhBn60mEmD7X/cmJcDmXWw7fwo5i3hzDAJ r5jNhM/4CmDpUz3pbVFMBDxn6qa87M8shU6rVuBlwpMXlw2NXQ3yXP1Z+YX0dQLgg9KPY7kf EwPtDgfuZZyJhKOXn/3jYOj4WIH5OBweM5fhRUCkG6frxim6cYpunFIJiGowlVPw8gw5n6BI yOLyYnmpnM/JyojdlS1vAGOvMCuqBTRXD8ZaAEYDC4A0Lgn05z3PIfJPl+Yf5JTZ25U5Mo63 gFCakAT7d6ofbBcxGdL93F6OU3DK/1uM9gtRYS3v7NpkieZ5oX5PzYolX/Pn21hr19lJebU2 Q1w/qr0eU6JofZ+yQpgwYbFMf7d5eQ0Rb0o6lL3JBUtCnphKSHlyfOPCuU2xcwoad9zT5NYs q5zC8KvixEPuvE6lsdTeJXcdjE6P6N0U9Gle6FtNe+/oyrRtqS+IlOhK15bkO5ETCtIi9g1e zzEyH1Q3RmbWHXNUhaO92jldG3dOR6uRc1B2sTd/2tZhTd+0sCWLE6PIoEWHy025G0Ij9OuT Mu9ecn9vDiq+9tDS0VcuHpwt3jZC325bvSb82dBac2Jv8MQZqa1c5OuWBa2jdVT9j6rCDv3R mOzN99PmTp54QpI83eGSEPxuacIsXMlL/wJc2jSceQMAAA== X-CMS-MailID: 20210813064044epcas1p4f7c29f06e3cef0a2bfc68e2ee11235b8 X-Msg-Generator: CA X-Sendblock-Type: SVC_REQ_APPROVE CMS-TYPE: 101P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20210725172551epcas1p31dff839439ac37757cf061405b5ac65c References: <20210704090230.26489-1-jagan@amarulasolutions.com> <20210704090230.26489-7-jagan@amarulasolutions.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210812_234055_981765_174B84E4 X-CRM114-Status: GOOD ( 44.93 ) 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="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGksCgoyMS4gNy4gMjYuIOyYpOyghCAyOjI17JeQIFNhbSBSYXZuYm9yZyDsnbQo6rCAKSDsk7Qg 6riAOgo+IE9uIFN1biwgSnVsIDA0LCAyMDIxIGF0IDAyOjMyOjE5UE0gKzA1MzAsIEphZ2FuIFRl a2kgd3JvdGU6Cj4+IEV4eW5vcyBEU0kgZHJpdmVyIGlzIGFjdHVhbGx5IGEgU2Ftc3VuZyBNSVBJ IERTSU0gYnJpZGdlCj4+IElQIHdoaWNoIGlzIGFsc28gdXNlZCBpbiBpLk1YOE1NIHBsYXRmb3Jt cy4KPj4KPj4gUmlnaHQgbm93IHRoZSBleGlzdGluZyBkcml2ZXIgaGFzIHNvbWUgZXh5bm9zIGRy bSBzcGVjaWZpYwo+PiBjb2RlIGJhc2VzIGxpa2UgdGVfaXJxLCBjcnRjIGFuZCBjb21wb25lbnRf b3BzLgo+Pgo+PiBJbiBvcmRlciB0byBzd2l0Y2ggdGhpcyBkcml2ZXIgaW50byBhIGNvbW1vbiBi cmlkZ2UgZHJpdmVyCj4+IFdlIGNhbiBzZWUgMiBvcHRpb25zIHRvIGhhbmRsZSB0aGUgZXh5bm9z IHNwZWNpZmljIGNvZGUuCj4+Cj4+IEEuIERyb3AgdGhlIGNvbXBvbmVudF9vcHMsIGFuZCByZXdv cmsgb3RoZXIgc3BlY2lmaWNzLgo+PiAgICBUaGlzIG1heSBsZWFkIHRvIG1vcmUgZm91bmRhdGlv biB3b3JrIGFzIGl0IHJlcXVpcmVzCj4+ICAgIG1vcmUgY2hhbmdlcyBpbiBleHlub3MgZHJtIGRy aXZlcnMgc3RhY2suCj4+Cj4+IEIuIEhhbmRsZSB0aGUgZXh5bm9zIHNwZWNpZmljcyB2aWEgZHJp dmVyIGRhdGEsIGFuZCBtYWtlCj4+ICAgIHRoZSBjb21tb24gYnJpZGdlIHdvcmsgaW4gZGlmZmVy ZW50IHBsYXRmb3JtcyBhbmQgcGxhbgo+PiAgICBmb3Igb3B0aW9uIEEgaW4gZnV0dXJlLgo+Pgo+ PiBTbywgdGhpcyBwYXRjaCBpcyB0cnlpbmcgdG8gYWRkIG9wdGlvbiBCKSBjaGFuZ2VzIHRvIGhh bmRsZQo+PiBleHlub3Mgc3BlY2lmaWNzIHZpYSBkcml2ZXJfZGF0YS4KPiAKPiBXZSByZWFsbHkg c2hvdWxkIGZpbmQgc29tZW9uZSB0aGF0IGhhcyB0aGUgdGltZSwgZW5lcmd5LCBrbm93bGVkZ2Ug YW5kCj4gaGFyZHdhcmUgdGhhdCBjYW4gaW5jbHVkZSBkZXZpY2VfbGluayBzdXBwb3J0IG9uY2Ug YW5mIGZvciBhbGwgZm9yCj4gYnJpZGdlcy4KPiBUaGVuIHdlIHdvdWxkIGF2b2lkIGhhY2tzIGxp a2UgdGhpcy4KPiAKPiBJIHNlZSBubyBvdGhlciBvcHRpb25zIGF0IHRoZSBtb21lbnQsIGJ1dCBs b29rIGZvcndhcmQgZm9yIGEgYmV0dGVyCj4gc29sdXRpb24uCj4gCj4gCVNhbQo+IAoKSSdtIG5v dCBzdXJlIHRoYXQgaXQncyBjb3JyZWN0IHRvIHNoYXJlIHRoaXMgbWlwaSBkc2kgZHJpdmVyIHdp dGggSS5NWDhNTSBTb0MgZXZlbiB0aG91Z2ggaXQncyBhIHNhbWUgSVAgYmVjYXVzZSB0aGlzIE1J UEkgRFNJIGRldmljZSBpc24ndCBwZXJpcGhlcmFsIGRldmljZSBidXQgaW4gU29DLgpJdCB3b3Vs ZCBtZWFuIHRoYXQgRXh5bm9zIE1JUEkgRFNJIGRldmljZSBkZXBlbmRzIG9uIFNvQyBhcmNoaXRl Y3R1cmUsIGFuZCBFeHlub3MgYW5kIEkuTVggc2VyaWVzIGFyZSB0b3RhbGx5IGRpZmZlcmVudCBT b0MuIFNvIGlmIHdlIHNoYXJlIHRoZSBzYW1lIGRyaXZlciBmb3IgdGhlIE1JUEkgRFNJIGRldmlj ZSB0aGVuIG1hbnkgdGhpbmdzIHdlIGRpZG4ndCBwcmVkaWN0IG1heSBoYXBwZW4gaW4gdGhlIGZ1 dHVyZS4gSSBkb24ndCB3YW50IHRvIG1ha2UgSmFnYW4ncyBlZmZvcnRzIGluIHZhaW4gZm9yIHRo ZSBjb21tdW5pdHkgYnV0IGNsYXJpZnkgd2hldGhlciB0aGlzIGlzIGNvcnJlY3Qgd2F5IG9yIG5v dC4gSWYgdGhpcyBpcyBvbmx5IHRoZSB3YXkgd2UgaGF2ZSB0byBnbyB0aGVuIHdlIGNvdWxkIG1v cmUgZm9jdXMgb24gYWN0dWFsIHNvbHV0aW9uIG5vdCBzdWNoIGhhY2suIEltcG9zc2libGUgd29y ayB3aXRoIEphZ2FuIGFsb25lIEkgdGhpbmsuCgpTbyBsZXQncyBnZXQgc3RhcnRlZCB3aXRoIGEg cXVlc3Rpb24sCi0gSXMgTUlQSS1EU0kgYnJpZGdlIGRldmljZSBvciBFbmNvZGVyIGRldmljZT8g SSB0aGluayB0aGF0IE1JUEktRFNJIGlzIGEgRW5jb2RlciBkZXZpY2UgbWFuYWdlZCBieSBhdG9t aWMgS01TLiBJZiBNSVBJLURTSSBzaG91bGQgYmUgaGFuZGxlZCBhcyBicmlkZ2UgZGV2aWNlIHRo ZW4gZG9lcyBub3cgZHJtIGJyaWRnZSBmcmFtZXdvcmsgcHJvdmlkZSBldmVyeXRoaW5nIHRvIHNo YXJlIG9uZSBkcml2ZXIgd2l0aCBvbmUgbW9yZSBTb0M/IEkgbWVhbiBzb21ldGhpbmcgdGhhdCBk cm0gYnJpZGdlIGhhcyB0byBjb25zaWRlciBmb3Igc3VjaCBkcml2ZXIgc3VwcG9ydCwgd2hpY2gg aXMgc2hhcmVkIHdpdGggb25lIG1vcmUgU29DLiAgCgoKQW5kIERpc3BsYXkgbW9kZSAtIFZJREVP IGFuZCBDT01NQU5EIG1vZGUgLSBpcyBnZW5lcmljIHR5cGUgb2YgTUlQSSBEU0ksIGFuZCBhbHNv IGNvbXBvbmVudGlzZWQgc3Vic3lzdGVtIGlzIGEgZ2VuZXJpYyBzb2x1dGlvbiB0byByZXNvbHZl IHByb2Jpbmcgb3JkZXIgaXNzdWUgbm90IEV4eW5vcyBzcGVjaWZpYyBmZWF0dXJlLiBUaGVzZSBh cmUgZHJpdmVyIHNwZWNpZmljIG9uZXMgbm90IEV4eW5vcyBTb0MgSSB0aGluay4gQXMgU29DIHNw ZWNpZmljIHRoaW5ncyBzaG91bGQgYmUgY29uc2lkZXJlZCwgSSB0aGluayBNSVBJIERTSSBEcml2 ZXIgLSBpbnRlcnJ1cHQgaGFuZGxlciBhbmQgcHJvYmluZyBvcmRlciB0aGluZ3MgYXJlIHJlYWxs eSBzcGVjaWZpYyB0byBkZXZpY2UgZHJpdmVyIC0gc2hvdWxkIGJlIHNlcGFyYXRlZCBidXQgd2Ug Y291bGQgc2hhcmUgdGhlIGNvbnRyb2wgcGFydCBvZiB0aGUgZGV2aWNlLgoKSSB3YXMgYnVzeSB3 aXRoIG90aGVyIHByb2plY3RzIHNvIGRpZG4ndCBjYXJlIG9mIExpbnV4IERSTSB3b3JsZCBzbyB0 aGVyZSBtYXkgYmUgbXkgbWlzc2luZyBzb21ldGhpbmcuCgpUaGFua3MsCklua2kgRGFlCgo+IAo+ Pgo+PiBTaWduZWQtb2ZmLWJ5OiBKYWdhbiBUZWtpIDxqYWdhbkBhbWFydWxhc29sdXRpb25zLmNv bT4KPj4gLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHNpLmMgfCAz NyArKysrKysrKysrKysrKysrKysrLS0tLS0tCj4+ICAxIGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0 aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9leHlub3MvZXh5bm9zX2RybV9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9z X2RybV9kc2kuYwo+PiBpbmRleCA5OWExYjhjMjIzMTMuLjUzZDg3OGQ0ZDJkNyAxMDA2NDQKPj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2RzaS5jCj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kc2kuYwo+PiBAQCAtMjUwLDYgKzI1MCw3 IEBAIHN0cnVjdCBleHlub3NfZHNpX2RyaXZlcl9kYXRhIHsKPj4gIAl1bnNpZ25lZCBpbnQgd2Fp dF9mb3JfcmVzZXQ7Cj4+ICAJdW5zaWduZWQgaW50IG51bV9iaXRzX3Jlc29sOwo+PiAgCWNvbnN0 IHVuc2lnbmVkIGludCAqcmVnX3ZhbHVlczsKPj4gKwlib29sIGV4eW5vc19zcGVjaWZpYzsKPj4g IH07Cj4+ICAKPj4gIHN0cnVjdCBleHlub3NfZHNpIHsKPj4gQEAgLTQ1OSw2ICs0NjAsNyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGV4eW5vc19kc2lfZHJpdmVyX2RhdGEgZXh5bm9zM19kc2lfZHJp dmVyX2RhdGEgPSB7Cj4+ICAJLndhaXRfZm9yX3Jlc2V0ID0gMSwKPj4gIAkubnVtX2JpdHNfcmVz b2wgPSAxMSwKPj4gIAkucmVnX3ZhbHVlcyA9IHJlZ192YWx1ZXMsCj4+ICsJLmV4eW5vc19zcGVj aWZpYyA9IHRydWUsCj4+ICB9Owo+PiAgCj4+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGV4eW5vc19k c2lfZHJpdmVyX2RhdGEgZXh5bm9zNF9kc2lfZHJpdmVyX2RhdGEgPSB7Cj4+IEBAIC00NzEsNiAr NDczLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBleHlub3NfZHNpX2RyaXZlcl9kYXRhIGV4eW5v czRfZHNpX2RyaXZlcl9kYXRhID0gewo+PiAgCS53YWl0X2Zvcl9yZXNldCA9IDEsCj4+ICAJLm51 bV9iaXRzX3Jlc29sID0gMTEsCj4+ICAJLnJlZ192YWx1ZXMgPSByZWdfdmFsdWVzLAo+PiArCS5l eHlub3Nfc3BlY2lmaWMgPSB0cnVlLAo+PiAgfTsKPj4gIAo+PiAgc3RhdGljIGNvbnN0IHN0cnVj dCBleHlub3NfZHNpX2RyaXZlcl9kYXRhIGV4eW5vczVfZHNpX2RyaXZlcl9kYXRhID0gewo+PiBA QCAtNDgxLDYgKzQ4NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXh5bm9zX2RzaV9kcml2ZXJf ZGF0YSBleHlub3M1X2RzaV9kcml2ZXJfZGF0YSA9IHsKPj4gIAkud2FpdF9mb3JfcmVzZXQgPSAx LAo+PiAgCS5udW1fYml0c19yZXNvbCA9IDExLAo+PiAgCS5yZWdfdmFsdWVzID0gcmVnX3ZhbHVl cywKPj4gKwkuZXh5bm9zX3NwZWNpZmljID0gdHJ1ZSwKPj4gIH07Cj4+ICAKPj4gIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZXh5bm9zX2RzaV9kcml2ZXJfZGF0YSBleHlub3M1NDMzX2RzaV9kcml2ZXJf ZGF0YSA9IHsKPj4gQEAgLTQ5Miw2ICs0OTYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGV4eW5v c19kc2lfZHJpdmVyX2RhdGEgZXh5bm9zNTQzM19kc2lfZHJpdmVyX2RhdGEgPSB7Cj4+ICAJLndh aXRfZm9yX3Jlc2V0ID0gMCwKPj4gIAkubnVtX2JpdHNfcmVzb2wgPSAxMiwKPj4gIAkucmVnX3Zh bHVlcyA9IGV4eW5vczU0MzNfcmVnX3ZhbHVlcywKPj4gKwkuZXh5bm9zX3NwZWNpZmljID0gdHJ1 ZSwKPj4gIH07Cj4+ICAKPj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXh5bm9zX2RzaV9kcml2ZXJf ZGF0YSBleHlub3M1NDIyX2RzaV9kcml2ZXJfZGF0YSA9IHsKPj4gQEAgLTUwMyw2ICs1MDgsNyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGV4eW5vc19kc2lfZHJpdmVyX2RhdGEgZXh5bm9zNTQyMl9k c2lfZHJpdmVyX2RhdGEgPSB7Cj4+ICAJLndhaXRfZm9yX3Jlc2V0ID0gMSwKPj4gIAkubnVtX2Jp dHNfcmVzb2wgPSAxMiwKPj4gIAkucmVnX3ZhbHVlcyA9IGV4eW5vczU0MjJfcmVnX3ZhbHVlcywK Pj4gKwkuZXh5bm9zX3NwZWNpZmljID0gdHJ1ZSwKPj4gIH07Cj4+ICAKPj4gIHN0YXRpYyBjb25z dCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGV4eW5vc19kc2lfb2ZfbWF0Y2hbXSA9IHsKPj4gQEAgLTE0 ODQsNyArMTQ5MCw4IEBAIHN0YXRpYyBpbnQgZXh5bm9zX2RzaV9ob3N0X2F0dGFjaChzdHJ1Y3Qg bWlwaV9kc2lfaG9zdCAqaG9zdCwKPj4gIAkgKiBJZiBhdHRhY2hlZCBwYW5lbCBkZXZpY2UgaXMg Zm9yIGNvbW1hbmQgbW9kZSBvbmUsIGRzaSBzaG91bGQgcmVnaXN0ZXIKPj4gIAkgKiBURSBpbnRl cnJ1cHQgaGFuZGxlci4KPj4gIAkgKi8KPj4gLQlpZiAoIShkZXZpY2UtPm1vZGVfZmxhZ3MgJiBN SVBJX0RTSV9NT0RFX1ZJREVPKSkgewo+PiArCWlmIChkc2ktPmRyaXZlcl9kYXRhLT5leHlub3Nf c3BlY2lmaWMgJiYKPj4gKwkgICAgIShkZXZpY2UtPm1vZGVfZmxhZ3MgJiBNSVBJX0RTSV9NT0RF X1ZJREVPKSkgewo+PiAgCQlpbnQgcmV0ID0gZXh5bm9zX2RzaV9yZWdpc3Rlcl90ZV9pcnEoZHNp LCAmZGV2aWNlLT5kZXYpOwo+PiAgCQlpZiAocmV0KQo+PiAgCQkJcmV0dXJuIHJldDsKPj4gQEAg LTE0OTUsOCArMTUwMiw5IEBAIHN0YXRpYyBpbnQgZXh5bm9zX2RzaV9ob3N0X2F0dGFjaChzdHJ1 Y3QgbWlwaV9kc2lfaG9zdCAqaG9zdCwKPj4gIAlkc2ktPmxhbmVzID0gZGV2aWNlLT5sYW5lczsK Pj4gIAlkc2ktPmZvcm1hdCA9IGRldmljZS0+Zm9ybWF0Owo+PiAgCWRzaS0+bW9kZV9mbGFncyA9 IGRldmljZS0+bW9kZV9mbGFnczsKPj4gLQlleHlub3NfZHJtX2NydGNfZ2V0X2J5X3R5cGUoZHJt LCBFWFlOT1NfRElTUExBWV9UWVBFX0xDRCktPmk4MF9tb2RlID0KPj4gLQkJCSEoZHNpLT5tb2Rl X2ZsYWdzICYgTUlQSV9EU0lfTU9ERV9WSURFTyk7Cj4+ICsJaWYgKGRzaS0+ZHJpdmVyX2RhdGEt PmV4eW5vc19zcGVjaWZpYykKPj4gKwkJZXh5bm9zX2RybV9jcnRjX2dldF9ieV90eXBlKGRybSwg RVhZTk9TX0RJU1BMQVlfVFlQRV9MQ0QpLT5pODBfbW9kZSA9Cj4+ICsJCQkJCSAgICAhKGRzaS0+ bW9kZV9mbGFncyAmIE1JUElfRFNJX01PREVfVklERU8pOwo+PiAgCj4+ICAJbXV0ZXhfdW5sb2Nr KCZkcm0tPm1vZGVfY29uZmlnLm11dGV4KTsKPj4gIAo+PiBAQCAtMTUxNSw3ICsxNTIzLDggQEAg c3RhdGljIGludCBleHlub3NfZHNpX2hvc3RfZGV0YWNoKHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpo b3N0LAo+PiAgCWlmIChkcm0tPm1vZGVfY29uZmlnLnBvbGxfZW5hYmxlZCkKPj4gIAkJZHJtX2tt c19oZWxwZXJfaG90cGx1Z19ldmVudChkcm0pOwo+PiAgCj4+IC0JZXh5bm9zX2RzaV91bnJlZ2lz dGVyX3RlX2lycShkc2kpOwo+PiArCWlmIChkc2ktPmRyaXZlcl9kYXRhLT5leHlub3Nfc3BlY2lm aWMpCj4+ICsJCWV4eW5vc19kc2lfdW5yZWdpc3Rlcl90ZV9pcnEoZHNpKTsKPj4gIAo+PiAgCXJl dHVybiAwOwo+PiAgfQo+PiBAQCAtMTczNyw2ICsxNzQ2LDE1IEBAIHN0YXRpYyBpbnQgZXh5bm9z X2RzaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+PiAgCWlmIChyZXQpCj4+ ICAJCXJldHVybiByZXQ7Cj4+ICAKPj4gKwlpZiAoIWRzaS0+ZHJpdmVyX2RhdGEtPmV4eW5vc19z cGVjaWZpYykgewo+PiArCQlyZXQgPSBtaXBpX2RzaV9ob3N0X3JlZ2lzdGVyKCZkc2ktPmRzaV9o b3N0KTsKPj4gKwkJaWYgKHJldCkgewo+PiArCQkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gcmVn aXN0ZXIgbWlwaSBkc2kgaG9zdDogJWRcbiIsCj4+ICsJCQkJcmV0KTsKPj4gKwkJCXJldHVybiBy ZXQ7Cj4+ICsJCX0KPj4gKwl9Cj4+ICsKPj4gIAlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBk c2kpOwo+PiAgCj4+ICAJcG1fcnVudGltZV9lbmFibGUoZGV2KTsKPj4gQEAgLTE3NDcsOSArMTc2 NSwxMSBAQCBzdGF0aWMgaW50IGV4eW5vc19kc2lfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKPj4gIAo+PiAgCWRybV9icmlkZ2VfYWRkKCZkc2ktPmJyaWRnZSk7Cj4+ICAKPj4g LQlyZXQgPSBjb21wb25lbnRfYWRkKGRldiwgJmV4eW5vc19kc2lfY29tcG9uZW50X29wcyk7Cj4+ IC0JaWYgKHJldCkKPj4gLQkJZ290byBlcnJfZGlzYWJsZV9ydW50aW1lOwo+PiArCWlmIChkc2kt PmRyaXZlcl9kYXRhLT5leHlub3Nfc3BlY2lmaWMpIHsKPj4gKwkJcmV0ID0gY29tcG9uZW50X2Fk ZChkZXYsICZleHlub3NfZHNpX2NvbXBvbmVudF9vcHMpOwo+PiArCQlpZiAocmV0KQo+PiArCQkJ Z290byBlcnJfZGlzYWJsZV9ydW50aW1lOwo+PiArCX0KPj4gIAo+PiAgCXJldHVybiAwOwo+PiAg Cj4+IEBAIC0xNzY3LDcgKzE3ODcsOCBAQCBzdGF0aWMgaW50IGV4eW5vc19kc2lfcmVtb3ZlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4+ICAKPj4gIAlwbV9ydW50aW1lX2Rpc2FibGUo JnBkZXYtPmRldik7Cj4+ICAKPj4gLQljb21wb25lbnRfZGVsKCZwZGV2LT5kZXYsICZleHlub3Nf ZHNpX2NvbXBvbmVudF9vcHMpOwo+PiArCWlmIChkc2ktPmRyaXZlcl9kYXRhLT5leHlub3Nfc3Bl Y2lmaWMpCj4+ICsJCWNvbXBvbmVudF9kZWwoJnBkZXYtPmRldiwgJmV4eW5vc19kc2lfY29tcG9u ZW50X29wcyk7Cj4+ICAKPj4gIAlyZXR1cm4gMDsKPj4gIH0KPj4gLS0gCj4+IDIuMjUuMQo+IAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJt LWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtl cm5lbAo=