From patchwork Sat Apr 22 20:50:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Reichel X-Patchwork-Id: 86624 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp1887450vqo; Sat, 22 Apr 2023 13:51:49 -0700 (PDT) X-Google-Smtp-Source: AKy350ZZ/IMM7jUwRcGeHPd8CytIiBtG01QxUVCxlb6k0ZJorcqDfEeTkzE6aD1x76xkBEXFl9bP X-Received: by 2002:a05:6a20:3d87:b0:f2:e399:b114 with SMTP id s7-20020a056a203d8700b000f2e399b114mr5218863pzi.1.1682196709258; Sat, 22 Apr 2023 13:51:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682196709; cv=none; d=google.com; s=arc-20160816; b=FS8gYkNF9oI7/uVJmDmIAA4zAoPGmgL8WRjAr8Ko/tD+nu6Ldv9NwuSbeU+MVwLaf2 NM49lVTbxXDFmnOz2XUX+QCJLRRxaweSdnvCQRyrBv6RL4rfKF+iH0N8+gwS7uDamlNI AMuvm99XHbWbRCo4RHR0fZ6y6cVYo7CYlVqMpiDTYf7f7/CSGKm4AYq2V7awS14MMoRP u29hI5AmZQbvU8sWqhTd+271niU/EOZ5XxO50HISIjyFwU0RJ4rs06keM8WNC55LWpSE zeZOwlW0CAeo2fF62LBoqo0KbeiozcAvgXxsg/iRWYsm+kF3eV6N2NBmIiflzvZecnPt T7ww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Ae6oNv/2eVQG7kwFjm+t51QFmhjoEHaaYwTTgBKTdlw=; b=jqCV5v+ApfeI1VI5fCw2ngjvTL7bulgxQdgxqBrdsAGQC/5ba5hP9mI1vkq+hxJzmU e6WeYD0S96wJaq7F6qvrFegT5cNmNS94xtM1Otaq7GtwIi/PZRx6fkru/xrc8R9AL2F2 Jedy4yMCSdMGJs3+SLl0JMTQ+N7q6ZdhKOYVpxZEg0y9o9depb1y/uzpJRy4c/CKya/4 bBd482hDELYqAmsqSIvZ+EmpgPHapaZZ72dPGzQ3VFEpuNeJR0JsP9XXY7ISogdGeKqu 5lBwLqBodHgfF41YKp+cFFEfgzReJFRgwUTh9chNX+0zDAaDb1cpmA/4v1DBST0CZh/L PLdg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=gU10iYtY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n190-20020a6327c7000000b0051324096be5si7417768pgn.47.2023.04.22.13.51.34; Sat, 22 Apr 2023 13:51:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=gU10iYtY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230091AbjDVUu5 (ORCPT + 99 others); Sat, 22 Apr 2023 16:50:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46176 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229869AbjDVUud (ORCPT ); Sat, 22 Apr 2023 16:50:33 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7C3AB26AF; Sat, 22 Apr 2023 13:50:31 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 0A88661376; Sat, 22 Apr 2023 20:50:31 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3BEE8C4339B; Sat, 22 Apr 2023 20:50:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1682196630; bh=ZrSzAKT5X1qtuWqGc1AQT6QLsxNN39iNlyDA0bBrxEk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gU10iYtYgERZESv2GA4e8IkehEsjbKGvjwA7nPTjXIWpBy0icLsltwMxw3RLpSZtV lTc17MwNTDNb/Og093KxQZTqVlkUcP4sUcIOyhizVY5DjDsnUaimR7KXrW74/rRlVO f4O8uFbPrTfAoYSuVpYisxlAhuyObtcdYIhpaHI3DsGJEFVrNXvpNNcHpI++IWC9wU OO76J2VS5vfppQnqsSb1HlJK9BktaoB0d+//LuTRF9MQtS+8mr1EX0BvVdomvUte/g NeZbB8pKovmFx8cnv/sZeeSalbdOvlSK0pIFBbipY9qIfVt15xdyjSppAChLyJqajT JHDOqITJVhnwg== Received: by mercury (Postfix, from userid 1000) id 197051066CCA; Sat, 22 Apr 2023 22:50:25 +0200 (CEST) From: Sebastian Reichel To: Sebastian Reichel Cc: Gerald Loacker , Michael Riesch , Thierry Reding , Sam Ravnborg , David Airlie , Daniel Vetter , Rob Herring , Krzysztof Kozlowski , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org Subject: [PATCH v2 08/13] drm/panel: sitronix-st7789v: avoid hardcoding mode info Date: Sat, 22 Apr 2023 22:50:07 +0200 Message-Id: <20230422205012.2464933-9-sre@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230422205012.2464933-1-sre@kernel.org> References: <20230422205012.2464933-1-sre@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763911096549999462?= X-GMAIL-MSGID: =?utf-8?q?1763911096549999462?= Avoid hard-coding the default_mode and supply it from match data. One additional layer of abstraction has been introduced, which will be needed for specifying other panel information (e.g. bus flags) in the next steps. Signed-off-by: Sebastian Reichel Reviewed-by: Michael Riesch --- .../gpu/drm/panel/panel-sitronix-st7789v.c | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c index a6d6155ef45c..29c2a91f8299 100644 --- a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c +++ b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c @@ -108,8 +108,13 @@ return val; \ } while (0) +struct st7789_panel_info { + const struct drm_display_mode *mode; +}; + struct st7789v { struct drm_panel panel; + const struct st7789_panel_info *info; struct spi_device *spi; struct gpio_desc *reset; struct regulator *power; @@ -160,16 +165,21 @@ static const struct drm_display_mode default_mode = { .vtotal = 320 + 8 + 4 + 4, }; +struct st7789_panel_info default_panel = { + .mode = &default_mode, +}; + static int st7789v_get_modes(struct drm_panel *panel, struct drm_connector *connector) { + struct st7789v *ctx = panel_to_st7789v(panel); struct drm_display_mode *mode; - mode = drm_mode_duplicate(connector->dev, &default_mode); + mode = drm_mode_duplicate(connector->dev, ctx->info->mode); if (!mode) { - dev_err(panel->dev, "failed to add mode %ux%ux@%u\n", - default_mode.hdisplay, default_mode.vdisplay, - drm_mode_vrefresh(&default_mode)); + dev_err(panel->dev, "failed to add mode %ux%u@%u\n", + ctx->info->mode->hdisplay, ctx->info->mode->vdisplay, + drm_mode_vrefresh(ctx->info->mode)); return -ENOMEM; } @@ -359,6 +369,8 @@ static int st7789v_probe(struct spi_device *spi) spi_set_drvdata(spi, ctx); ctx->spi = spi; + ctx->info = device_get_match_data(&spi->dev); + drm_panel_init(&ctx->panel, dev, &st7789v_drm_funcs, DRM_MODE_CONNECTOR_DPI); @@ -389,13 +401,13 @@ static void st7789v_remove(struct spi_device *spi) } static const struct spi_device_id st7789v_spi_id[] = { - { "st7789v" }, + { "st7789v", (unsigned long) &default_panel }, { } }; MODULE_DEVICE_TABLE(spi, st7789v_spi_id); static const struct of_device_id st7789v_of_match[] = { - { .compatible = "sitronix,st7789v" }, + { .compatible = "sitronix,st7789v", .data = &default_panel }, { } }; MODULE_DEVICE_TABLE(of, st7789v_of_match);