From patchwork Fri Jan 20 07:38:39 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrzej Hajda X-Patchwork-Id: 9527653 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 3A46A60434 for ; Fri, 20 Jan 2017 07:39:58 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2B3DF2860A for ; Fri, 20 Jan 2017 07:39:58 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1FCF52863A; Fri, 20 Jan 2017 07:39:58 +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 A853D2860A for ; Fri, 20 Jan 2017 07:39:57 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 77AD06EB3A; Fri, 20 Jan 2017 07:39:05 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by gabe.freedesktop.org (Postfix) with ESMTPS id 70DCF6EB32 for ; Fri, 20 Jan 2017 07:39:03 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OK200G6YIL04G50@mailout2.w1.samsung.com> for dri-devel@lists.freedesktop.org; Fri, 20 Jan 2017 07:39:00 +0000 (GMT) Received: from eusmges4.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20170120073859eucas1p18e2ec5a6d47db4ad80f62421a0cdf65f~bas8dQDtQ0436104361eucas1p1t; Fri, 20 Jan 2017 07:38:59 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges4.samsung.com (EUCPMTA) with SMTP id F8.F8.28517.39EB1885; Fri, 20 Jan 2017 07:38:59 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20170120073859eucas1p2c241656291e20876c3e36133ab8f145e~bas7qNMuT3263432634eucas1p2b; Fri, 20 Jan 2017 07:38:59 +0000 (GMT) X-AuditID: cbfec7f4-f79716d000006f65-eb-5881be93e494 Received: from eusync1.samsung.com ( [203.254.199.211]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id A7.47.10233.E8EB1885; Fri, 20 Jan 2017 07:38:54 +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:38:58 +0000 (GMT) From: Andrzej Hajda To: Archit Taneja , dri-devel@lists.freedesktop.org Subject: [PATCH 13/24] drm/bridge/sii8620: abstract out sink detection code Date: Fri, 20 Jan 2017 08:38:39 +0100 Message-id: <1484897930-1275-14-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+NgFtrLIsWRmVeSWpSXmKPExsWy7djP87qT9zVGGCzfpGhxa905Voumjres FhtnrGe1uPL1PZvFpPsTWCzWHrnL7sDmcbmvl8njfvdxJo++LasYA5ijuGxSUnMyy1KL9O0S uDJann9lKvgkWnHpzxOmBsZtQl2MnBwSAiYS95+cZYKwxSQu3FvP1sXIxSEksJRRYmNXHxOE 85lR4vepeWwwHS9/f2KESCxjlNg+6xg7hPOfUeLZuqesIFVsApoSfzffBOsQEfCWmLO6jxHE ZhZYzyhx7VQciC0MFP9zcQ8ziM0ioCrR8+4AWC+vgLPE59d/mCG2yUncPNcJZnMCxc/f+AJ2 koTAfTaJWe3vgYZyADmyEpsOQNW7SBx81MoIYQtLvDq+hR3ClpG4PLmbBaK3m1HiU/8Jdghn CqPEvw8zoLqtJQ4fv8gKcSmfxKRt05khFvBKdLRBA8xDom/XZWhQOEr8nLqOFeL7aYwSV5/f Z53AKLOAkWEVo0hqaXFuemqxiV5xYm5xaV66XnJ+7iZGYKSe/nf8yw7GxcesDjEKcDAq8fAm HGuIEGJNLCuuzD3EKMHBrCTC27O+MUKINyWxsiq1KD++qDQntfgQozQHi5I4754FV8KFBNIT S1KzU1MLUotgskwcnFINjA6Xt76Uu7JrgjzLu7ajfh4ZLrXGe361L17yfYP6soQn+w01swSq NcXavr569Kvv7t7ELWdn1RvO1Y9kfsFQPVWHi4WDR8vL/oTAqVMdiVvC2rfsWPVH6Hbz6hLj b/wbZSdfkF/r++TNJCHNR61/OJ2nVfcVz9gWsUVnwfuX3jElK2947rDze6/EUpyRaKjFXFSc CAAwMDx80AIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrNLMWRmVeSWpSXmKPExsVy+t/xy7p9+xojDCa8F7O4te4cq0VTx1tW i40z1rNaXPn6ns1i0v0JLBZrj9xld2DzuNzXy+Rxv/s4k0ffllWMAcxRbjYZqYkpqUUKqXnJ +SmZeem2SqEhbroWSgp5ibmptkoRur4hQUoKZYk5pUCekQEacHAOcA9W0rdLcMtoef6VqeCT aMWlP0+YGhi3CXUxcnJICJhIvPz9iRHCFpO4cG89WxcjF4eQwBJGiX8rvrNDOI1MEhc2vmUH qWIT0JT4u/kmG4gtIuAtMWd1HyNIEbPAekaJqY//ghUJAyX+XNzDDGKzCKhK9Lw7wApi8wo4 S3x+/YcZYp2cxM1znWA2J1D8/I0vTF2MHEDbnCSuzZKdwMi7gJFhFaNIamlxbnpusZFecWJu cWleul5yfu4mRmDAbjv2c8sOxq53wYcYBTgYlXh4d5xoiBBiTSwrrsw9xCjBwawkwtuzvjFC iDclsbIqtSg/vqg0J7X4EKMp0E0TmaVEk/OB0ZRXEm9oYmhuaWhkbGFhbmSkJM479cOVcCGB 9MSS1OzU1ILUIpg+Jg5OqQbGxU+3Pi5kc+3g1g6bdKXg0j6/e+aLTO2cTaPmzV756Aqb/iXt 6gCWhSETmZjXTrEIyjqrNcsstlNWfL+pREREkx/L/2fMTswWjAfu3xd7NrnY7d2txvM7F3f+ mP2t9mbRIsYLM58WvGlvjQ65oK5wP6LyiqOeikDsPKbpS190tu7vPPz7xicpJZbijERDLeai 4kQAZQlKj24CAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170120073859eucas1p2c241656291e20876c3e36133ab8f145e X-Msg-Generator: CA X-Sender-IP: 182.198.249.180 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: 20170120073859eucas1p2c241656291e20876c3e36133ab8f145e X-RootMTR: 20170120073859eucas1p2c241656291e20876c3e36133ab8f145e 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 MHL1 and MHL3 have different initialization paths. To make both protocols happy sink detection is put into continuation after link mode enablement. Signed-off-by: Andrzej Hajda --- drivers/gpu/drm/bridge/sil-sii8620.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/bridge/sil-sii8620.c b/drivers/gpu/drm/bridge/sil-sii8620.c index 7d28690..5b879ff 100644 --- a/drivers/gpu/drm/bridge/sil-sii8620.c +++ b/drivers/gpu/drm/bridge/sil-sii8620.c @@ -402,7 +402,7 @@ static void sii8620_update_array(u8 *dst, u8 *src, int count) } } -static void sii8620_mr_devcap(struct sii8620 *ctx) +static void sii8620_sink_detected(struct sii8620 *ctx, int ret) { static const char * const sink_str[] = { [SINK_NONE] = "NONE", @@ -410,23 +410,10 @@ static void sii8620_mr_devcap(struct sii8620 *ctx) [SINK_DVI] = "DVI" }; - u8 dcap[MHL_DCAP_SIZE]; char sink_name[20]; struct device *dev = ctx->dev; - sii8620_read_buf(ctx, REG_EDID_FIFO_RD_DATA, dcap, MHL_DCAP_SIZE); - if (ctx->error < 0) - return; - - dev_info(dev, "dcap: %*ph\n", MHL_DCAP_SIZE, dcap); - dev_info(dev, "detected dongle MHL %d.%d, ChipID %02x%02x:%02x%02x\n", - dcap[MHL_DCAP_MHL_VERSION] / 16, - dcap[MHL_DCAP_MHL_VERSION] % 16, dcap[MHL_DCAP_ADOPTER_ID_H], - dcap[MHL_DCAP_ADOPTER_ID_L], dcap[MHL_DCAP_DEVICE_ID_H], - dcap[MHL_DCAP_DEVICE_ID_L]); - sii8620_update_array(ctx->devcap, dcap, MHL_DCAP_SIZE); - - if (!(dcap[MHL_DCAP_CAT] & MHL_DCAP_CAT_SINK)) + if (ret < 0) return; sii8620_fetch_edid(ctx); @@ -449,6 +436,22 @@ static void sii8620_mr_devcap(struct sii8620 *ctx) sii8620_enable_hpd(ctx); } +static void sii8620_mr_devcap(struct sii8620 *ctx) +{ + u8 dcap[MHL_DCAP_SIZE]; + struct device *dev = ctx->dev; + + sii8620_read_buf(ctx, REG_EDID_FIFO_RD_DATA, dcap, MHL_DCAP_SIZE); + if (ctx->error < 0) + return; + + dev_info(dev, "detected dongle MHL %d.%d, ChipID %02x%02x:%02x%02x\n", + dcap[MHL_DCAP_MHL_VERSION] / 16, dcap[MHL_DCAP_MHL_VERSION] % 16, + dcap[MHL_DCAP_ADOPTER_ID_H], dcap[MHL_DCAP_ADOPTER_ID_L], + dcap[MHL_DCAP_DEVICE_ID_H], dcap[MHL_DCAP_DEVICE_ID_L]); + sii8620_update_array(ctx->devcap, dcap, MHL_DCAP_SIZE); +} + static void sii8620_mr_xdevcap(struct sii8620 *ctx) { sii8620_read_buf(ctx, REG_EDID_FIFO_RD_DATA, ctx->xdevcap, @@ -1409,6 +1412,7 @@ static void sii8620_status_changed_path(struct sii8620 *ctx) | MHL_DST_LM_PATH_ENABLED); if (!sii8620_is_mhl3(ctx)) sii8620_mt_read_devcap(ctx, false); + sii8620_mt_set_cont(ctx, sii8620_sink_detected); } else { sii8620_mt_write_stat(ctx, MHL_DST_REG(LINK_MODE), MHL_DST_LM_CLK_MODE_NORMAL);