Received: by 2002:a05:6a10:9afc:0:0:0:0 with SMTP id t28csp2398846pxm; Fri, 25 Feb 2022 00:53:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJwYDu0tokVqs8gBgRa+Xt9u+ctkcTRaDBuGsEVj8SFPw5Rikxmtxcl4cTeYoM0a6hbO9VlS X-Received: by 2002:a63:1f5a:0:b0:375:ec6f:667e with SMTP id q26-20020a631f5a000000b00375ec6f667emr3533938pgm.462.1645779199975; Fri, 25 Feb 2022 00:53:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1645779199; cv=none; d=google.com; s=arc-20160816; b=pc/kZCAIsil0VorBzlG9A/q6RBfnayYMY0m9N2ygCLJ6WpwbDXlTCJ56JXdMrfPEP5 UDMPlGL2+WsEPEsVowhqYLx5/AtwCZdug7TLF5kh9BQcj+L2Mlehz/QYdLQL7iBx6MWs 2voN5Xsvgwi7hyx8q0+2ox4zMocCilyHmJ7VbMzTgBbnJcq3yRzOvvXcYbopA8SmmZO1 XLMGZkNM/7ly7CaC38H8oRu+tUpbfqslgMpNHDA2/VlMsCgFJiGSC/OBBkv33xm79YBK rYBzWFFYW8JqiN9NlikvsG2VZr1NjLf4RHwo+ZB7lIO9f+MO6rvKdLuebnoislZtJpzu MXTw== 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; bh=Wch5RaboqMuToTcMaL0He1eWFlQTixp/w1zzjXgkh0g=; b=dHJlCA8vdW8S0gk815F7LgdDV72/ACxpckQPvIRXvvmcfnTnieNsBDSXKbB90Pt/KF moF/ArgBAyBDNPed856e+rBlpjmSYBXgpSTmmw6IjYqXNGJtjxz4720DMFXC9nCIyg0s +xz/CIjqRaXZmtj32ocUDTQ6nsOItwZcKo/CoTwWRCvHJLXUx5WMVEKcevM3MKp8reaR g5NVquL9SJwzk5n6yL07nTojzOB2e3ughNZnWyLAOh1h+GD1pkV6LBXGhrCtJJHGBNNj BX/Rm9tO+ZQovkBbmYrQayDLeHBWkjpIOrt2dgulPGkGW/GE7JBdWYifZabBngfupcuM uKtw== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g1-20020a63fa41000000b00372bb027d49si1332448pgk.373.2022.02.25.00.53.05; Fri, 25 Feb 2022 00:53:19 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238184AbiBYHkc (ORCPT + 99 others); Fri, 25 Feb 2022 02:40:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39262 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232659AbiBYHka (ORCPT ); Fri, 25 Feb 2022 02:40:30 -0500 Received: from mail-sh.amlogic.com (mail-sh.amlogic.com [58.32.228.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BB75E177764; Thu, 24 Feb 2022 23:39:58 -0800 (PST) Received: from droid06.amlogic.com (10.18.11.248) by mail-sh.amlogic.com (10.18.11.5) with Microsoft SMTP Server id 15.1.2176.14; Fri, 25 Feb 2022 15:39:55 +0800 From: Yu Tu To: , , , CC: Greg Kroah-Hartman , Jiri Slaby , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Yu Tu Subject: [PATCH V7 1/6] tty: serial: meson: Move request the register region to probe Date: Fri, 25 Feb 2022 15:39:17 +0800 Message-ID: <20220225073922.3947-2-yu.tu@amlogic.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220225073922.3947-1-yu.tu@amlogic.com> References: <20220225073922.3947-1-yu.tu@amlogic.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.18.11.248] X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,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 This simplifies resetting the UART controller during probe and will make it easier to integrate the common clock code which will require the registers at probe time as well. Signed-off-by: Yu Tu Reviewed-by: Jiri Slaby --- drivers/tty/serial/meson_uart.c | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c index 45e00d928253..6b80e41b4cc1 100644 --- a/drivers/tty/serial/meson_uart.c +++ b/drivers/tty/serial/meson_uart.c @@ -395,24 +395,11 @@ static int meson_uart_verify_port(struct uart_port *port, static void meson_uart_release_port(struct uart_port *port) { - devm_iounmap(port->dev, port->membase); - port->membase = NULL; - devm_release_mem_region(port->dev, port->mapbase, port->mapsize); + /* nothing to do */ } static int meson_uart_request_port(struct uart_port *port) { - if (!devm_request_mem_region(port->dev, port->mapbase, port->mapsize, - dev_name(port->dev))) { - dev_err(port->dev, "Memory region busy\n"); - return -EBUSY; - } - - port->membase = devm_ioremap(port->dev, port->mapbase, - port->mapsize); - if (!port->membase) - return -ENOMEM; - return 0; } @@ -733,6 +720,18 @@ static int meson_uart_probe(struct platform_device *pdev) if (!port) return -ENOMEM; + if (!devm_request_mem_region(&pdev->dev, res_mem->start, + resource_size(res_mem), + dev_name(&pdev->dev))) { + dev_err(&pdev->dev, "Memory region busy\n"); + return -EBUSY; + } + + port->membase = devm_ioremap(&pdev->dev, res_mem->start, + resource_size(res_mem)); + if (IS_ERR(port->membase)) + return PTR_ERR(port->membase); + ret = meson_uart_probe_clocks(pdev, port); if (ret) return ret; @@ -754,10 +753,7 @@ static int meson_uart_probe(struct platform_device *pdev) platform_set_drvdata(pdev, port); /* reset port before registering (and possibly registering console) */ - if (meson_uart_request_port(port) >= 0) { - meson_uart_reset(port); - meson_uart_release_port(port); - } + meson_uart_reset(port); ret = uart_add_one_port(&meson_uart_driver, port); if (ret) -- 2.33.1