From patchwork Mon Dec 16 13:58:32 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Enric Balletbo i Serra X-Patchwork-Id: 11294225 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 933DE14B7 for ; Mon, 16 Dec 2019 13:59:06 +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 60A06206A5 for ; Mon, 16 Dec 2019 13:59:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="YI+065TI" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 60A06206A5 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=collabora.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+patchwork-linux-mediatek=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=lqZ3Odd2G2PhMBCY06bNrI2HnN5OmYaXuR5kqxKhgM8=; b=YI+065TI4RuWW0 ErFArlIupXdHKUKp3PprohyjxUQFs/Qol5eLZQ1oOBkggy8OcVleYZ5oz0LxDhW3uxKaeF0DUDZEl iJ1OeY3sjodZNHrod/traXqUNGE51bETgPvyeV4FKhYVzVg+m52OHl5SrLX/S0nCJQvn+Pg5hvf5z aTJJ5x5JPnKsYRwR7JWmSjUhDXJ6F2zss63b4Z/N9oVODegcGRMjLU0q32YOQYyNt99gmyBb90JI6 0k4dSPDSnSgTf++i4J7WbtynL8iPdAqFnjZzcb7ZPo0uEPSzUwpTDnC9qxu4djHTuQJH52kIRWEWp io60lY0y465t8BObg9lg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1igqtr-0005dq-6A; Mon, 16 Dec 2019 13:59:03 +0000 Received: from bhuna.collabora.co.uk ([2a00:1098:0:82:1000:25:2eeb:e3e3]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1igqtd-0005SG-2I; Mon, 16 Dec 2019 13:58:50 +0000 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: eballetbo) with ESMTPSA id AC99B291972 From: Enric Balletbo i Serra To: linux-kernel@vger.kernel.org Subject: [PATCH v21 0/2] drm/bridge: PS8640 MIPI-to-eDP bridge Date: Mon, 16 Dec 2019 14:58:32 +0100 Message-Id: <20191216135834.27775-1-enric.balletbo@collabora.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191216_055849_369622_DFA22976 X-CRM114-Status: GOOD ( 13.79 ) X-Spam-Score: -0.0 (/) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record 0.0 UNPARSEABLE_RELAY Informational: message has unparseable relay lines X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , devicetree@vger.kernel.org, Jernej Skrabec , drinkcat@chromium.org, Jitao Shi , Daniel Vetter , Jonas Karlman , David Airlie , Neil Armstrong , dri-devel@lists.freedesktop.org, Andrzej Hajda , Ulrich Hecht , Rob Herring , linux-mediatek@lists.infradead.org, Laurent Pinchart , Philipp Zabel , hsinyi@chromium.org, matthias.bgg@gmail.com, Collabora Kernel ML , linux-arm-kernel@lists.infradead.org Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+patchwork-linux-mediatek=patchwork.kernel.org@lists.infradead.org Hi all, This driver seems to continue failing to reach upstream. The latest version send by Ulrich [1] one month ago, seems to fix all the issues that prevented the driver to get merged, but, recent changes ended with this driver not building in current mainline. This new version is like a RESEND with these build errors fixed, and also a couple of few changes more to use device managed resources when available. This bridge is required to have the embedded display working on an Acer Chromebook R13 ("Elm"). Hopefully we are a bit more close to have this driver merged. If more changes are required, please let me know and I will work on it. Note: Along these around 20 revisions of this driver I was unable to reconstruct the full changelog history, so I'm skipping this. Sorry about that, I promise I'll maintain the changelog for future revisions. Thanks, Enric [1] https://patchwork.kernel.org/cover/11176929/ Changes in v21: - Use devm_i2c_new_dummy_device and fix build issue using deprecated i2c_new_dummy - Fix build issue due missing drm_bridge.h - Do not remove in ps8640_remove device managed resources Changes in v19: - fixed return value of ps8640_probe() when no panel is found Changes in v18: - followed DRM API changes - use DEVICE_ATTR_RO() - remove firmware update code - add SPDX identifier Changes in v17: - remove some unused head files. - add macros for ps8640 pages. - remove ddc_i2c client - add mipi_dsi_device_register_full - remove the manufacturer from the name and i2c_device_id Changes in v16: - Disable ps8640 DSI MCS Function. - Rename gpios name more clearly. - Tune the ps8640 power on sequence. Changes in v15: - Drop drm_connector_(un)register calls from parade ps8640. The main DRM driver mtk_drm_drv now calls drm_connector_register_all() after drm_dev_register() in the mtk_drm_bind() function. That function should iterate over all connectors and call drm_connector_register() for each of them. So, remove drm_connector_(un)register calls from parade ps8640. Changes in v14: - update copyright info. - change bridge_to_ps8640 and connector_to_ps8640 to inline function. - fix some coding style. - use sizeof as array counter. - use drm_get_edid when read edid. - add mutex when firmware updating. Changes in v13: - add const on data, ps8640_write_bytes(struct i2c_client *client, const u8 *data, u16 data_len) - fix PAGE2_SW_REST tyro. - move the buf[3] init to entrance of the function. Changes in v12: - fix hw_chip_id build warning Changes in v11: - Remove depends on I2C, add DRM depends - Reuse ps8640_write_bytes() in ps8640_write_byte() - Use timer check for polling like the routines in - Fix no drm_connector_unregister/drm_connector_cleanup when ps8640_bridge_attach fail - Check the ps8640 hardware id in ps8640_validate_firmware - Remove fw_version check - Move ps8640_validate_firmware before ps8640_enter_bl - Add ddc_i2c unregister when probe fail and ps8640_remove Jitao Shi (2): Documentation: bridge: Add documentation for ps8640 DT properties drm/bridge: Add I2C based driver for ps8640 bridge .../bindings/display/bridge/ps8640.txt | 44 ++ drivers/gpu/drm/bridge/Kconfig | 11 + drivers/gpu/drm/bridge/Makefile | 1 + drivers/gpu/drm/bridge/parade-ps8640.c | 655 ++++++++++++++++++ 4 files changed, 711 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/bridge/ps8640.txt create mode 100644 drivers/gpu/drm/bridge/parade-ps8640.c