From patchwork Fri Jan 20 07:38:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrzej Hajda X-Patchwork-Id: 9527673 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 3884B60434 for ; Fri, 20 Jan 2017 07:40:43 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2974B28452 for ; Fri, 20 Jan 2017 07:40:43 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1E23B28620; Fri, 20 Jan 2017 07:40:43 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id C83C128452 for ; Fri, 20 Jan 2017 07:40:42 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 19DD46EB2A; Fri, 20 Jan 2017 07:39:38 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout3.w1.samsung.com (mailout3.w1.samsung.com [210.118.77.13]) by gabe.freedesktop.org (Postfix) with ESMTPS id 06EF56EB40 for ; Fri, 20 Jan 2017 07:39:04 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout3.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OK200H7AIL1LW50@mailout3.w1.samsung.com> for dri-devel@lists.freedesktop.org; Fri, 20 Jan 2017 07:39:01 +0000 (GMT) Received: from eusmges3.samsung.com (unknown [203.254.199.242]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20170120073900eucas1p200963976244fdb3621965161f6ffb88e~bas9cz7Bg1833818338eucas1p2B; Fri, 20 Jan 2017 07:39:00 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges3.samsung.com (EUCPMTA) with SMTP id 71.E2.09557.49EB1885; Fri, 20 Jan 2017 07:39:00 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20170120073900eucas1p15da0726bf6e9bcdf0d9a7bbfea670918~bas8rnViy0080600806eucas1p1G; Fri, 20 Jan 2017 07:39:00 +0000 (GMT) X-AuditID: cbfec7f2-f790f6d000002555-4f-5881be948664 Received: from eusync1.samsung.com ( [203.254.199.211]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id F8.08.06687.FCEB1885; Fri, 20 Jan 2017 07:39:59 +0000 (GMT) Received: from AMDC2768.DIGITAL.local ([106.120.43.17]) by eusync1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0OK200LE1IKT7D70@eusync1.samsung.com>; Fri, 20 Jan 2017 07:39:00 +0000 (GMT) From: Andrzej Hajda To: Archit Taneja , dri-devel@lists.freedesktop.org Subject: [PATCH 17/24] drm/bridge/sii8620: split EDID read and write code Date: Fri, 20 Jan 2017 08:38:43 +0100 Message-id: <1484897930-1275-18-git-send-email-a.hajda@samsung.com> X-Mailer: git-send-email 2.7.4 In-reply-to: <1484897930-1275-1-git-send-email-a.hajda@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrLIsWRmVeSWpSXmKPExsWy7djPc7pT9jVGGDx5qGtxa905Voumjres FhtnrGe1uPL1PZvFpPsTWCzWHrnL7sDmcbmvl8njfvdxJo++LasYA5ijuGxSUnMyy1KL9O0S uDIOrn3NXjBdqOLvrTtMDYx/+boYOTkkBEwklj2ewwRhi0lcuLeerYuRi0NIYCmjxIP795kh nM+MEhevz2aF6bj6agYTRGIZo8Ssy1MZIZz/jBJfL80Fq2IT0JT4u/kmG4gtIuAtMWd1HyOI zSywnlHi2qk4EFtYwFNi987DYPUsAqoSC15fBLN5BZwlZsydzQixTU7i5rlOZhCbEyh+/sYX sM0SAvfZJO71fmPpYuQAcmQlNh1ghqh3kXi+9hXUP8ISr45vYYewZSQ6Ow5C9XYzSnzqP8EO 4UxhlPj3YQZUt7XE4eMQVzAL8ElM2jadGWIBr0RHmxBEiYfEvIW72CBsR4kPezazQ3w/jVHi 1JbzLBMYZRYwMqxiFEktLc5NTy021itOzC0uzUvXS87P3cQIjNTT/45/2sH49YTVIUYBDkYl Ht4dJxoihFgTy4orcw8xSnAwK4nw9qxvjBDiTUmsrEotyo8vKs1JLT7EKM3BoiTOu2fBlXAh gfTEktTs1NSC1CKYLBMHp1QDo9niuNRNujanuQ4/NI9k/n/8X47MxeS2ANZn2Sp9V3S4tjt1 nLRosyk8U7Syh0nrhPunLx4GEbL3Z/2acWxTil2cGr+KindByPEtSetqegwy7S2jQ803sjw4 un0Tc1nk3cO+/tNSGg9GpjSd4JOYra3s9r0uvNGvOCM29ZybT/maOTk8cSeUWIozEg21mIuK EwEsQmIy0AIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrNLMWRmVeSWpSXmKPExsVy+t/xy7rn9zVGGMxdx2dxa905Voumjres FhtnrGe1uPL1PZvFpPsTWCzWHrnL7sDmcbmvl8njfvdxJo++LasYA5ij3GwyUhNTUosUUvOS 81My89JtlUJD3HQtlBTyEnNTbZUidH1DgpQUyhJzSoE8IwM04OAc4B6spG+X4JZxcO1r9oLp QhV/b91hamD8y9fFyMkhIWAicfXVDCYIW0ziwr31bF2MXBxCAksYJfY2nmGHcBqZJHperWUB qWIT0JT4u/kmG4gtIuAtMWd1HyNIEbPAekaJqY//soMkhAU8JXbvPMwKYrMIqEoseH0RzOYV cJaYMXc2I8Q6OYmb5zqZQWxOoPj5G1+AzuAA2uYkcW2W7ARG3gWMDKsYRVJLi3PTc4sN9YoT c4tL89L1kvNzNzECA3bbsZ+bdzBe2hh8iFGAg1GJhzfhWEOEEGtiWXFl7iFGCQ5mJRHenvWN EUK8KYmVValF+fFFpTmpxYcYTYFumsgsJZqcD4ymvJJ4QxNDc0tDI2MLC3MjIyVx3pIPV8KF BNITS1KzU1MLUotg+pg4OKUaGPt2nzi0wf3LzJWHWh4a88ZapMfq1M3kN0leZ5JcnrryUEN+ MZe3x7R/qYdfZm5yUH6o5x0573Sa5oENH6Wazfdd+O/G022ncb2Nzfqzy+SHX7Wr/Zp7NMSD XM3Mr89K6XXqufXn8g6mgpV1X8QeTMo8tuW193Fm3eqTTEFqr0R/uucVNc27qcRSnJFoqMVc VJwIALYu0pxuAgAA X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170120073900eucas1p15da0726bf6e9bcdf0d9a7bbfea670918 X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?UTF-8?B?QW5kcnplaiBIYWpkYRtTUlBPTC1LZXJuZWwgKFRQKRvsgrw=?= =?UTF-8?B?7ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?UTF-8?B?QW5kcnplaiBIYWpkYRtTUlBPTC1LZXJuZWwgKFRQKRtTYW1z?= =?UTF-8?B?dW5nIEVsZWN0cm9uaWNzG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170120073900eucas1p15da0726bf6e9bcdf0d9a7bbfea670918 X-RootMTR: 20170120073900eucas1p15da0726bf6e9bcdf0d9a7bbfea670918 References: <1484897930-1275-1-git-send-email-a.hajda@samsung.com> Cc: Marek Szyprowski , Bartlomiej Zolnierkiewicz X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP MHL3 requires that after reading EDID from the sink source should ask peer for features. To make both protocols happy the patch splits the code accordingly. Signed-off-by: Andrzej Hajda --- drivers/gpu/drm/bridge/sil-sii8620.c | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/bridge/sil-sii8620.c b/drivers/gpu/drm/bridge/sil-sii8620.c index 6ef1a4d..d0e6dc3 100644 --- a/drivers/gpu/drm/bridge/sil-sii8620.c +++ b/drivers/gpu/drm/bridge/sil-sii8620.c @@ -482,6 +482,13 @@ static void sii8620_sink_detected(struct sii8620 *ctx, int ret) dev_info(dev, "detected sink(type: %s): %s\n", sink_str[ctx->sink_type], sink_name); +} + +static void sii8620_edid_read(struct sii8620 *ctx, int ret) +{ + if (ret < 0) + return; + sii8620_set_upstream_edid(ctx); sii8620_enable_hpd(ctx); } @@ -787,12 +794,12 @@ static void sii8620_fetch_edid(struct sii8620 *ctx) edid = new_edid; } } - - if (fetched + FETCH_SIZE == edid_len) - sii8620_write(ctx, REG_INTR3, int3); } - sii8620_write(ctx, REG_LM_DDC, lm_ddc); + sii8620_write_seq(ctx, + REG_INTR3_MASK, BIT_DDC_CMD_DONE, + REG_LM_DDC, lm_ddc + ); end: kfree(ctx->edid); @@ -1706,6 +1713,21 @@ static void sii8620_irq_block(struct sii8620 *ctx) sii8620_write(ctx, REG_EMSCINTR, stat); } +static void sii8620_irq_ddc(struct sii8620 *ctx) +{ + u8 stat = sii8620_readb(ctx, REG_INTR3); + + if (stat & BIT_DDC_CMD_DONE) { + sii8620_write(ctx, REG_INTR3_MASK, 0); + if (sii8620_is_mhl3(ctx)) + sii8620_mt_set_int(ctx, MHL_INT_REG(RCHANGE), + MHL_INT_RC_FEAT_REQ); + else + sii8620_edid_read(ctx, 0); + } + sii8620_write(ctx, REG_INTR3, stat); +} + /* endian agnostic, non-volatile version of test_bit */ static bool sii8620_test_bit(unsigned int nr, const u8 *addr) { @@ -1726,6 +1748,7 @@ static irqreturn_t sii8620_irq_thread(int irq, void *data) { BIT_FAST_INTR_STAT_MERR, sii8620_irq_merr }, { BIT_FAST_INTR_STAT_BLOCK, sii8620_irq_block }, { BIT_FAST_INTR_STAT_EDID, sii8620_irq_edid }, + { BIT_FAST_INTR_STAT_DDC, sii8620_irq_ddc }, { BIT_FAST_INTR_STAT_SCDT, sii8620_irq_scdt }, { BIT_FAST_INTR_STAT_INFR, sii8620_irq_infr }, };