Received: by 2002:a05:7412:da14:b0:e2:908c:2ebd with SMTP id fe20csp446662rdb; Fri, 6 Oct 2023 08:07:36 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHbc1epsfgq/WGhD/c5fVXQ6byPVEsKAyj665gWSf0YHEyfPYO7tUBJoJ7nkz5Z01TL5bSQ X-Received: by 2002:a17:902:c946:b0:1c8:7bb8:321a with SMTP id i6-20020a170902c94600b001c87bb8321amr6725055pla.27.1696604856091; Fri, 06 Oct 2023 08:07:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696604856; cv=none; d=google.com; s=arc-20160816; b=H1tq5ik4VH6eHXGr2GW9SBFV2yMk5JNkBlsJ/y1NapqH7b7Z7ZDaGmEDt77Hfi5uO0 6xLHIdJOKEzjpK4qrNHd8wtWKlv0ksLL+rQS0GCtUzG5ua3MYvHCwACoY9XZGNIQq66/ Pd1xsP14g4DSsgTe5V1HSTZ0qplIK0X0xJLn6d4WKA9fbqyPEi6EVNZqiimjtofTD5DL FXYMMWYhN75U2seb7Xg1Bv341MLnyiZXTz6oiRQldoBZFioVjcWu20H2CSWSUmHnS/kR 5CZmxyDH3tf0KUm7L/20f7k/SzZ9NTMtSHHKgfa5BU/OBfi9X6L4E8WLD57AcYlVDcxU ih6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:content-transfer-encoding:mime-version :message-id:date:subject:from; bh=hKyLJFzVdEcw1/TW8fHJBtzepQXC4oNl2I6HHP9mPpg=; fh=wH9nxyUO+Gj9IJP7/Iz+xHyp2fkGcf6LG5mfY0IWEB4=; b=0Ekb/Sa+8Pi7bDizS2KTFbQXWSXnPtd7Ef2oHm4NtjXp4CThCFj76EUoXLzrEqJp5O VEs5eEXJdSKQ1rAvPNvvsIp/tIjWDls2ifLuT3DU0sjkXABRErRKbnGs3npPEbdAtg5E IT60vhzmhki2usUYePvYcvl+XQCGQUmPjCPs9v/O/L+KSRrRjxItoDXG1YNDSvepwAgc fORqwhiXmoRtmuqJQ/jr4vYv/Cu+1QKUqUblQMeHBmyQ7LEvXj+KAmgkDR3d8ccIcHNO INRgsOr3OrQ/gqAITeF8zgsnu3G/TbbE8hUzBywazXG5NrW11QQtW4wqIDC3ZiYYJmY0 Evng== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id i5-20020a633c45000000b00578a2466521si3755323pgn.676.2023.10.06.08.07.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Oct 2023 08:07:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id CB465806CC0B; Fri, 6 Oct 2023 08:07:34 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232762AbjJFPHZ (ORCPT + 99 others); Fri, 6 Oct 2023 11:07:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57062 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232714AbjJFPHL (ORCPT ); Fri, 6 Oct 2023 11:07:11 -0400 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [IPv6:2a0a:edc0:2:b01:1d::104]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B2F47E9 for ; Fri, 6 Oct 2023 08:07:08 -0700 (PDT) Received: from dude05.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::54]) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1qomPx-00051v-RY; Fri, 06 Oct 2023 17:07:05 +0200 From: Michael Tretter Subject: [PATCH v2 0/5] drm/bridge: samsung-dsim: fix various modes with ADV7535 bridge Date: Fri, 06 Oct 2023 17:07:02 +0200 Message-Id: <20230818-samsung-dsim-v2-0-846603df0e0a@pengutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAJYiIGUC/3WOOw6DMBBEr4Jcx4CNMSRV7hFR+LOBLbCRDYgIc fcYuhQp32ieZnYSISBE8sh2EmDFiN4l4LeMmEG5HijaxISXvCpb1tKoxri4ntqIIxW8ElIIoQ3 UJClaRaA6KGeGU1plXhezn9AUNow/6tmeArxxu8ZfXeIB4+zD5/qysjP9M7syWlJd3RsmrZa6U c8JXL/MwTvccgukO47jC+QlD4bbAAAA To: Inki Dae , Jagan Teki , Marek Szyprowski , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , David Airlie , Daniel Vetter Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, kernel@pengutronix.de, Michael Tretter , Marco Felsch , Adam Ford , Frieder Schrempf X-Mailer: b4 0.12.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:1101:1d::54 X-SA-Exim-Mail-From: m.tretter@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Fri, 06 Oct 2023 08:07:34 -0700 (PDT) I tested the i.MX8M Nano EVK with the NXP supplied MIPI-DSI adapter, which uses an ADV7535 MIPI-DSI to HDMI converter. I found that a few modes were working, but in many modes my monitor stayed dark. This series fixes the Samsung DSIM bridge driver to bring up a few more modes: The driver read the rate of the PLL ref clock only during probe. However, if the clock is re-parented to the VIDEO_PLL, changes to the pixel clock have an effect on the PLL ref clock. Therefore, the driver must read and potentially update the PLL ref clock on every modeset. I also found that the rounding mode of the porches and active area has an effect on the working modes. If the driver rounds up instead of rounding down and be calculates them in Hz instead of kHz, more modes start to work. The following table shows the modes that were working in my test without this patch set and the modes that are working now: | Mode | Before | Now | | 1920x1080-60.00 | X | X | | 1920x1080-59.94 | | X | | 1920x1080-50.00 | | X | | 1920x1080-30.00 | | X | | 1920x1080-29.97 | | X | | 1920x1080-25.00 | | X | | 1920x1080-24.00 | | | | 1920x1080-23.98 | | | | 1680x1050-59.88 | | X | | 1280x1024-75.03 | X | X | | 1280x1024-60.02 | X | X | | 1200x960-59.99 | | X | | 1152x864-75.00 | X | X | | 1280x720-60.00 | | | | 1280x720-59.94 | | | | 1280x720-50.00 | | X | | 1024x768-75.03 | | X | | 1024x768-60.00 | | X | | 800x600-75.00 | X | X | | 800x600-60.32 | X | X | | 720x576-50.00 | X | X | | 720x480-60.00 | | | | 720x480-59.94 | X | | | 640x480-75.00 | X | X | | 640x480-60.00 | | X | | 640x480-59.94 | | X | | 720x400-70.08 | | | Interestingly, the 720x480-59.94 mode stopped working. However, I am able to bring up the 720x480 modes by manually hacking the active area (hsa) to 40 and carefully adjusting the clocks, but something still seems to be off. Unfortunately, a few more modes are still not working at all. The NXP downstream kernel has some quirks to handle some of the modes especially wrt. to the porches, but I cannot figure out, what the driver should actually do in these cases. Maybe there is still an error in the calculation of the porches and someone at NXP can chime in. Michael Signed-off-by: Michael Tretter --- Changes in v2: - Specify limits for the PLL input clock in samsung_dsim_driver_data - Rephrase/clarify commit messages - Link to v1: https://lore.kernel.org/r/20230818-samsung-dsim-v1-0-b39716db6b7a@pengutronix.de --- Marco Felsch (1): drm/bridge: samsung-dsim: add more mipi-dsi device debug information Michael Tretter (4): drm/bridge: samsung-dsim: reread ref clock before configuring PLL drm/bridge: samsung-dsim: update PLL reference clock drm/bridge: samsung-dsim: adjust porches by rounding up drm/bridge: samsung-dsim: calculate porches in Hz drivers/gpu/drm/bridge/samsung-dsim.c | 54 +++++++++++++++++++++++++++-------- include/drm/bridge/samsung-dsim.h | 3 ++ 2 files changed, 45 insertions(+), 12 deletions(-) --- base-commit: b78b18fb8ee19f7a05f20c3abc865b3bfe182884 change-id: 20230818-samsung-dsim-42346444bce5 Best regards, -- Michael Tretter