From patchwork Sun Oct 6 05:39:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 1172334 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="oVl5LU49"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46mC9Y4JXhz9sPK for ; Sun, 6 Oct 2019 16:39:45 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726078AbfJFFjl (ORCPT ); Sun, 6 Oct 2019 01:39:41 -0400 Received: from mail-pl1-f195.google.com ([209.85.214.195]:40499 "EHLO mail-pl1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726202AbfJFFjk (ORCPT ); Sun, 6 Oct 2019 01:39:40 -0400 Received: by mail-pl1-f195.google.com with SMTP id d22so5173552pll.7 for ; Sat, 05 Oct 2019 22:39:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=CRFi4rfGVxo/22nPvuuu86rpUTMyTPBuv+pN3ClhaRA=; b=oVl5LU49d89LqIDZeOa9aYk0vwmjcd/sZs05Bv/MkQ2z7kCcMMD7wR3CrikSxuG07M PYdoWglIcyD6VOXZMp8QOhPv/4QDpAz5xbQj3UePlyw8f36K0Fam2vFDHI4xsO4W8TSY vPJtEd0iEnyBsY6knGqEPjZsqcoQPmyhHLY+IgfxkViA/RLe6JKUqMw5qaNmLBbQ21yj wJ0EIxr7ij2yQbw7K72WlF5s5RlsFLOYY+/PEFzh53N4v/Z9tOMVtJ+IfdMxZtyTw4z3 o9RWSsjlNK5AhvsN8rQY0MNeblgvq4atWji2anPe1F12TUuIpeIsa+uJX4VJjjXs05uJ WXkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=CRFi4rfGVxo/22nPvuuu86rpUTMyTPBuv+pN3ClhaRA=; b=eRZbwPrYvPshOn/fy7sCmZ/kOn6vNRPaA3IXGwuOgH9z8htua8j8E75t/Ztg8zLGFe wttz4mtsekZE1aQI/uDX3fHCUltIsWwA27X+bbCiyenvou0JQwi0x+QkYQXO2WwgeELT B07VAtw786168ezbEwkhPu1z2aX1gUWCkRfEDZj1zuLtNjOBG+GbUXQ55v5aF7zokZAC Uuqohaz2vp+mCD39LFvmzPmrruRZNCCBfdRL66K13jZWmlp5LbzvFRHoNItjyg63HTZi criPOCzSMDT5Muhau5N/2bjzb6HWPQ82RB8QX0gpmhsAGnDwX6B7qC1fZ9KD6dA/suFX uzew== X-Gm-Message-State: APjAAAWNqSpiTb/a5KSlKRNFHfaS7/sKsEZGc8og+yaHS36/5Ul8GsQT RkDVsWHAx9YYJcy0sRveqGUNUQ== X-Google-Smtp-Source: APXvYqySY6t5rz3QEK4U7cpA6VIPiaiWwSW6FZVB45BlCnEniS3t1SoUBNk7RCscBZ+4i6EgqgCKvQ== X-Received: by 2002:a17:902:bc46:: with SMTP id t6mr23561392plz.307.1570340378268; Sat, 05 Oct 2019 22:39:38 -0700 (PDT) Received: from debian-brgl.local (50-255-47-209-static.hfc.comcastbusiness.net. [50.255.47.209]) by smtp.gmail.com with ESMTPSA id q30sm10019320pja.18.2019.10.05.22.39.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Oct 2019 22:39:37 -0700 (PDT) From: Bartosz Golaszewski To: Jonathan Corbet , Greg Kroah-Hartman , "Rafael J . Wysocki" , Arnd Bergmann , Linus Walleij Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH v3 1/8] Documentation: devres: add missing entry for devm_platform_ioremap_resource() Date: Sun, 6 Oct 2019 07:39:09 +0200 Message-Id: <20191006053916.8849-2-brgl@bgdev.pl> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191006053916.8849-1-brgl@bgdev.pl> References: <20191006053916.8849-1-brgl@bgdev.pl> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org From: Bartosz Golaszewski devm_platform_ioremap_resource() should be documented in devres.rst. Add the missing entry. Signed-off-by: Bartosz Golaszewski --- Documentation/driver-api/driver-model/devres.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/driver-api/driver-model/devres.rst b/Documentation/driver-api/driver-model/devres.rst index a100bef54952..8e3087662daf 100644 --- a/Documentation/driver-api/driver-model/devres.rst +++ b/Documentation/driver-api/driver-model/devres.rst @@ -316,6 +316,7 @@ IOMAP devm_ioremap_nocache() devm_ioremap_wc() devm_ioremap_resource() : checks resource, requests memory region, ioremaps + devm_platform_ioremap_resource() : calls devm_ioremap_resource() for platform device devm_iounmap() pcim_iomap() pcim_iomap_regions() : do request_region() and iomap() on multiple BARs From patchwork Sun Oct 6 05:39:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 1172340 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="Xlf4SwJ/"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46mCB85b9Nz9sPK for ; Sun, 6 Oct 2019 16:40:16 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726225AbfJFFkP (ORCPT ); Sun, 6 Oct 2019 01:40:15 -0400 Received: from mail-pl1-f195.google.com ([209.85.214.195]:46238 "EHLO mail-pl1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726216AbfJFFjl (ORCPT ); Sun, 6 Oct 2019 01:39:41 -0400 Received: by mail-pl1-f195.google.com with SMTP id q24so5151612plr.13 for ; Sat, 05 Oct 2019 22:39:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Td3fuKxaZXUNRUL4lHP0H/YwhwCuhVUYKfFBUtY39ao=; b=Xlf4SwJ/UUpArrEBuv2q1lJ6fn6ngckU4dU6VQwgyIknmlyuLoTxir6vza5SnMdgya 6L3q9t4Y0CDGCnaDx+MkM+maYPVTN7HPJbEnVvbR9fhHKt1BlvRx7LiPyNiEkaw8rug4 Y63rUInxA96AfaYRE6S0bdkNTKBB8hl6T3DVsPbZK/8zPI4+ZSQ8swdRLTteCmBXinvH qg11ObRctXssuyhNu5+uu69TBXT5GC+PyUqG7zonqlwuRnKhFgCVst+U0Z8YV/lVltAc 6NLx5hoLgpeHjB4Q9ZdqLaCRuDSF9MTjX/m6ylu7cm20OsaHRyN2aCf/Q8IsO/0LTNt3 DayQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Td3fuKxaZXUNRUL4lHP0H/YwhwCuhVUYKfFBUtY39ao=; b=SzNA95a+yho8ddNNEYHox+ymM1nurr2RAkhHb8YJh4D6P4II7zJfiPbLb+dTGKqy0z uhc1wRrt60zfjGJQLPam4SIYwgsdajr01BXGvOKKFkcvcB+fioDfkCaCCrgZwRcKA+y1 iNqTBvPFEK+Or67d1FhAJGsA2s5P7fD4H+e69Alae86E0HR8G10IFv+OF0BjFTRZ0kQF KO4QFAK092hW1Pj9em9yixQHn5rtVpdqKjxtZdCeNXC59RkfNDTvIe79gvyN7F0ftIuJ VgFe565qpwtOdmDOJjDZDWY8w9ljrbVUBcE7S5JsGyes6i5WC+d4uleqIgHP5Ff7bzKP bU/A== X-Gm-Message-State: APjAAAUJB6AeqtHWjTE+aipYbwQqgOWV/kyVC2nS0Ktjw9sEqLKJgSXn XYnYi4MekoJKXDOEEW6OfynyPg== X-Google-Smtp-Source: APXvYqzRvjgidKEx2Zc/pDIDjgvUy2QRhxqUBolQw4ccAIVPxh1mAjK2Mj0uZ4jzUmj3UKAs11rnew== X-Received: by 2002:a17:902:7244:: with SMTP id c4mr7596599pll.178.1570340379584; Sat, 05 Oct 2019 22:39:39 -0700 (PDT) Received: from debian-brgl.local (50-255-47-209-static.hfc.comcastbusiness.net. [50.255.47.209]) by smtp.gmail.com with ESMTPSA id q30sm10019320pja.18.2019.10.05.22.39.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Oct 2019 22:39:39 -0700 (PDT) From: Bartosz Golaszewski To: Jonathan Corbet , Greg Kroah-Hartman , "Rafael J . Wysocki" , Arnd Bergmann , Linus Walleij Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH v3 2/8] lib: devres: prepare devm_ioremap_resource() for more variants Date: Sun, 6 Oct 2019 07:39:10 +0200 Message-Id: <20191006053916.8849-3-brgl@bgdev.pl> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191006053916.8849-1-brgl@bgdev.pl> References: <20191006053916.8849-1-brgl@bgdev.pl> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org From: Bartosz Golaszewski We want to add the write-combined variant of devm_ioremap_resource(). Let's first implement __devm_ioremap_resource() which takes an additional argument type. The types are the same as for __devm_ioremap(). The existing devm_ioremap_resource() now simply calls __devm_ioremap_resource() with regular DEVM_IOREMAP type. Signed-off-by: Bartosz Golaszewski --- lib/devres.c | 47 +++++++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/lib/devres.c b/lib/devres.c index 6a0e9bd6524a..a14c727128c1 100644 --- a/lib/devres.c +++ b/lib/devres.c @@ -114,25 +114,9 @@ void devm_iounmap(struct device *dev, void __iomem *addr) } EXPORT_SYMBOL(devm_iounmap); -/** - * devm_ioremap_resource() - check, request region, and ioremap resource - * @dev: generic device to handle the resource for - * @res: resource to be handled - * - * Checks that a resource is a valid memory region, requests the memory - * region and ioremaps it. All operations are managed and will be undone - * on driver detach. - * - * Returns a pointer to the remapped memory or an ERR_PTR() encoded error code - * on failure. Usage example: - * - * res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - * base = devm_ioremap_resource(&pdev->dev, res); - * if (IS_ERR(base)) - * return PTR_ERR(base); - */ -void __iomem *devm_ioremap_resource(struct device *dev, - const struct resource *res) +static void __iomem * +__devm_ioremap_resource(struct device *dev, const struct resource *res, + enum devm_ioremap_type type) { resource_size_t size; void __iomem *dest_ptr; @@ -151,7 +135,7 @@ void __iomem *devm_ioremap_resource(struct device *dev, return IOMEM_ERR_PTR(-EBUSY); } - dest_ptr = devm_ioremap(dev, res->start, size); + dest_ptr = __devm_ioremap(dev, res->start, size, type); if (!dest_ptr) { dev_err(dev, "ioremap failed for resource %pR\n", res); devm_release_mem_region(dev, res->start, size); @@ -160,6 +144,29 @@ void __iomem *devm_ioremap_resource(struct device *dev, return dest_ptr; } + +/** + * devm_ioremap_resource() - check, request region, and ioremap resource + * @dev: generic device to handle the resource for + * @res: resource to be handled + * + * Checks that a resource is a valid memory region, requests the memory + * region and ioremaps it. All operations are managed and will be undone + * on driver detach. + * + * Returns a pointer to the remapped memory or an ERR_PTR() encoded error code + * on failure. Usage example: + * + * res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + * base = devm_ioremap_resource(&pdev->dev, res); + * if (IS_ERR(base)) + * return PTR_ERR(base); + */ +void __iomem *devm_ioremap_resource(struct device *dev, + const struct resource *res) +{ + return __devm_ioremap_resource(dev, res, DEVM_IOREMAP); +} EXPORT_SYMBOL(devm_ioremap_resource); /* From patchwork Sun Oct 6 05:39:11 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 1172341 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="gK/qxRTV"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46mCB952m8z9sPh for ; Sun, 6 Oct 2019 16:40:17 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726217AbfJFFkQ (ORCPT ); Sun, 6 Oct 2019 01:40:16 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:46534 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726207AbfJFFjl (ORCPT ); Sun, 6 Oct 2019 01:39:41 -0400 Received: by mail-pg1-f195.google.com with SMTP id a3so6114807pgm.13 for ; Sat, 05 Oct 2019 22:39:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=EgzlAIhkpsVrchDajp8SP2c8jH/gUd2pLHbFdDZ/+4w=; b=gK/qxRTV8cT9fGDqLH7/3E/uJkniwGKqA6Z2ESMtMIrxYwBaq4TVHAClTb19gjH2h1 OFUsaU0X+0/RRFfqCFvK8Oqdl3zScVCT6/pY0C2F0jtEleRLje29sEIImT1EKp6EgSjK nNoVQUzekSglxxspf1y5CkULth8/JgkWxfGe3VVwXd1ARnHscehoI2hWzERVQ7Yufe5M gxHewhguH3lfRtIt+QiPRjYLH5pGoJU8oeH031S8o9jRdo7zsFVpmvPC3anVGA0fmxne GArC8Rbnk68JlbNsKwvXUpq9YToWzqmyAfKH3zdbZbEIix+RkJjX3ARfDxap0sDxrZ1M KPnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=EgzlAIhkpsVrchDajp8SP2c8jH/gUd2pLHbFdDZ/+4w=; b=keoR0bvNUmQd49l3ATFRn8gNyUPU/GxISO7iXCoUWu0MCEwsGqaQLh+ZEGtRr2Ob8y vrpPXMvAanOiqifn59RhHIxLofshdaQqspKeoBABcOU0NzcXCqGdhikUBWrBHUDHXSGP OozcBz7npEQfgBBC/Bp6Lz7Lf5NxQ98oF0mpgQZyXggJewNP19dpmeKWZAx8ioZtpZnS hZ73b9+Ltk0s1IyrdhVcED4AoFZLmn+gYRI0ZpqEr0gIWu42hdOdmmRCnAcDTO3UzizK KffiPhNCmTqfzeKacLpQt6AEEtAJZC8UQnRzehx2v5bfzLMdQxf2JCjrVZ2rhsFqVUML 4FAg== X-Gm-Message-State: APjAAAW7FXdaGc3m1RN5b2IXX0fIZd6b1P4WYvNKsLNmfMddWTEV9GbA 1iCcMk01bJ/2WF4A1UBGk3AYgw== X-Google-Smtp-Source: APXvYqwS2flP03ODMjWNm+9SJT+cfwwXQTQiQVUCv7+rG+Jn/skkvucUSS0Bd+0q4puJHr9Hggmu8w== X-Received: by 2002:a17:90a:a2b:: with SMTP id o40mr26574353pjo.107.1570340380653; Sat, 05 Oct 2019 22:39:40 -0700 (PDT) Received: from debian-brgl.local (50-255-47-209-static.hfc.comcastbusiness.net. [50.255.47.209]) by smtp.gmail.com with ESMTPSA id q30sm10019320pja.18.2019.10.05.22.39.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Oct 2019 22:39:40 -0700 (PDT) From: Bartosz Golaszewski To: Jonathan Corbet , Greg Kroah-Hartman , "Rafael J . Wysocki" , Arnd Bergmann , Linus Walleij Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH v3 3/8] lib: devres: provide devm_ioremap_resource_wc() Date: Sun, 6 Oct 2019 07:39:11 +0200 Message-Id: <20191006053916.8849-4-brgl@bgdev.pl> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191006053916.8849-1-brgl@bgdev.pl> References: <20191006053916.8849-1-brgl@bgdev.pl> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org From: Bartosz Golaszewski Provide a variant of devm_ioremap_resource() for write-combined ioremap. Signed-off-by: Bartosz Golaszewski --- Documentation/driver-api/driver-model/devres.rst | 1 + include/linux/device.h | 2 ++ lib/devres.c | 15 +++++++++++++++ 3 files changed, 18 insertions(+) diff --git a/Documentation/driver-api/driver-model/devres.rst b/Documentation/driver-api/driver-model/devres.rst index 8e3087662daf..e605bb9df6e1 100644 --- a/Documentation/driver-api/driver-model/devres.rst +++ b/Documentation/driver-api/driver-model/devres.rst @@ -316,6 +316,7 @@ IOMAP devm_ioremap_nocache() devm_ioremap_wc() devm_ioremap_resource() : checks resource, requests memory region, ioremaps + devm_ioremap_resource_wc() devm_platform_ioremap_resource() : calls devm_ioremap_resource() for platform device devm_iounmap() pcim_iomap() diff --git a/include/linux/device.h b/include/linux/device.h index 297239a08bb7..1f4aaf2d4b2a 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -946,6 +946,8 @@ extern void devm_free_pages(struct device *dev, unsigned long addr); void __iomem *devm_ioremap_resource(struct device *dev, const struct resource *res); +void __iomem *devm_ioremap_resource_wc(struct device *dev, + const struct resource *res); void __iomem *devm_of_iomap(struct device *dev, struct device_node *node, int index, diff --git a/lib/devres.c b/lib/devres.c index a14c727128c1..97fb44e5b4d6 100644 --- a/lib/devres.c +++ b/lib/devres.c @@ -169,6 +169,21 @@ void __iomem *devm_ioremap_resource(struct device *dev, } EXPORT_SYMBOL(devm_ioremap_resource); +/** + * devm_ioremap_resource_wc() - write-combined variant of + * devm_ioremap_resource() + * @dev: generic device to handle the resource for + * @res: resource to be handled + * + * Returns a pointer to the remapped memory or an ERR_PTR() encoded error code + * on failure. Usage example: + */ +void __iomem *devm_ioremap_resource_wc(struct device *dev, + const struct resource *res) +{ + return __devm_ioremap_resource(dev, res, DEVM_IOREMAP_WC); +} + /* * devm_of_iomap - Requests a resource and maps the memory mapped IO * for a given device_node managed by a given device From patchwork Sun Oct 6 05:39:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 1172339 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="jbQ1gKgw"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46mC9z1bWTz9sPZ for ; Sun, 6 Oct 2019 16:40:07 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726289AbfJFFkG (ORCPT ); Sun, 6 Oct 2019 01:40:06 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:33578 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726250AbfJFFjn (ORCPT ); Sun, 6 Oct 2019 01:39:43 -0400 Received: by mail-pg1-f195.google.com with SMTP id q1so6180122pgb.0 for ; Sat, 05 Oct 2019 22:39:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SRmxyW6c4jZvegWmtv0/j3K1hka1Pqi8q1i3mKVygkc=; b=jbQ1gKgw22F/1GI1mKx0szJ3PQBdnnyjYurbR0OfaON9d8MTsux6+RQzrdV1g1ngsA JxQuREcFPf2eVIEpysTTF69OVwqH1mq50Vz7gwzdfq+bgZGOcd8+gS4F5WyoIyJvO6E7 nKkaBZWwcjVT7ebCd/9BWR7StPHfTefzxnMcl8B7kjzBkEjH5Ec/6l2xGROlqN0HGWTG iMmse4HIXHGZV2KmcB8rA+1Oce936OiXmTLVa3qOlKMFqqjKJGOrd12jen+qDD4Xn+Op GZVUBILALe9BVAmzsKWlvynkH+MYB9J7nRPt8NWYjGRZJeysylY70S6JN6Imwty4ZZbf GdKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=SRmxyW6c4jZvegWmtv0/j3K1hka1Pqi8q1i3mKVygkc=; b=Rc5EAwnQC0PofzIXX51FkC8EwLjG8JSapAGeuwiOAToMKePRzfHrKIGcEq2tz85NaL H/BGtD2Rc1Mt9EseftUZzTCulpqlRfJKiwKHGAoqS1mZ90SLNIfJgGWdzl4jHo4NFZs9 a/ox1yVIN5okdsXcSoEQqKtJrt0opNRaSeyAgpPR1xp8vt20dcWehV2/UKOFQGrxWDI7 0raHs9ox4kA5UAHkGMt1HMnzlxYXE/dmq96U7a7xSvEvYgzz/QDYrB+g7oCIHg5OgrZG xvJn4PUZdHXlnYMdRAkiA6V52lpNLBhm45AgFXpPRk8tXEzOKx0DNilUvtJpWStj4Ytc IR3g== X-Gm-Message-State: APjAAAX1aKHX0NMFQqAYrXjFVzJvI5yA4eok+B6XL4c8B22K5wDfiEaB TRL9rh513NdNgBiOA7DbN6zm9A== X-Google-Smtp-Source: APXvYqzhQDilSgm6A6fsKvUxBl3qxPj9N51TnqxqUIqRoYByrw7u0vp1taAL7bRHykgFi81mFKB2Kg== X-Received: by 2002:a63:5652:: with SMTP id g18mr23396329pgm.283.1570340381619; Sat, 05 Oct 2019 22:39:41 -0700 (PDT) Received: from debian-brgl.local (50-255-47-209-static.hfc.comcastbusiness.net. [50.255.47.209]) by smtp.gmail.com with ESMTPSA id q30sm10019320pja.18.2019.10.05.22.39.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Oct 2019 22:39:41 -0700 (PDT) From: Bartosz Golaszewski To: Jonathan Corbet , Greg Kroah-Hartman , "Rafael J . Wysocki" , Arnd Bergmann , Linus Walleij Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH v3 4/8] drivers: platform: provide devm_platform_ioremap_resource_wc() Date: Sun, 6 Oct 2019 07:39:12 +0200 Message-Id: <20191006053916.8849-5-brgl@bgdev.pl> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191006053916.8849-1-brgl@bgdev.pl> References: <20191006053916.8849-1-brgl@bgdev.pl> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org From: Bartosz Golaszewski Provide a write-combined variant of devm_platform_ioremap_resource(). Signed-off-by: Bartosz Golaszewski --- .../driver-api/driver-model/devres.rst | 1 + drivers/base/platform.c | 19 ++++++++++++++++++- include/linux/platform_device.h | 3 +++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/Documentation/driver-api/driver-model/devres.rst b/Documentation/driver-api/driver-model/devres.rst index e605bb9df6e1..480b78ca3871 100644 --- a/Documentation/driver-api/driver-model/devres.rst +++ b/Documentation/driver-api/driver-model/devres.rst @@ -318,6 +318,7 @@ IOMAP devm_ioremap_resource() : checks resource, requests memory region, ioremaps devm_ioremap_resource_wc() devm_platform_ioremap_resource() : calls devm_ioremap_resource() for platform device + devm_platform_ioremap_resource_wc() devm_iounmap() pcim_iomap() pcim_iomap_regions() : do request_region() and iomap() on multiple BARs diff --git a/drivers/base/platform.c b/drivers/base/platform.c index b6c6c7d97d5b..d481b8a7d4fc 100644 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c @@ -60,6 +60,7 @@ struct resource *platform_get_resource(struct platform_device *dev, } EXPORT_SYMBOL_GPL(platform_get_resource); +#ifdef CONFIG_HAS_IOMEM /** * devm_platform_ioremap_resource - call devm_ioremap_resource() for a platform * device @@ -68,7 +69,6 @@ EXPORT_SYMBOL_GPL(platform_get_resource); * resource management * @index: resource index */ -#ifdef CONFIG_HAS_IOMEM void __iomem *devm_platform_ioremap_resource(struct platform_device *pdev, unsigned int index) { @@ -78,6 +78,23 @@ void __iomem *devm_platform_ioremap_resource(struct platform_device *pdev, return devm_ioremap_resource(&pdev->dev, res); } EXPORT_SYMBOL_GPL(devm_platform_ioremap_resource); + +/** + * devm_platform_ioremap_resource_wc - write-combined variant of + * devm_platform_ioremap_resource() + * + * @pdev: platform device to use both for memory resource lookup as well as + * resource management + * @index: resource index + */ +void __iomem *devm_platform_ioremap_resource_wc(struct platform_device *pdev, + unsigned int index) +{ + struct resource *res; + + res = platform_get_resource(pdev, IORESOURCE_MEM, index); + return devm_ioremap_resource_wc(&pdev->dev, res); +} #endif /* CONFIG_HAS_IOMEM */ static int __platform_get_irq(struct platform_device *dev, unsigned int num) diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h index 1b5cec067533..83930790c701 100644 --- a/include/linux/platform_device.h +++ b/include/linux/platform_device.h @@ -57,6 +57,9 @@ platform_find_device_by_driver(struct device *start, extern void __iomem * devm_platform_ioremap_resource(struct platform_device *pdev, unsigned int index); +extern void __iomem * +devm_platform_ioremap_resource_wc(struct platform_device *pdev, + unsigned int index); extern int platform_get_irq(struct platform_device *, unsigned int); extern int platform_get_irq_optional(struct platform_device *, unsigned int); extern int platform_irq_count(struct platform_device *); From patchwork Sun Oct 6 05:39:13 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 1172338 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="hyFNBkwR"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46mC9x4sRCz9sPZ for ; Sun, 6 Oct 2019 16:40:05 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726277AbfJFFj5 (ORCPT ); Sun, 6 Oct 2019 01:39:57 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:41890 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726262AbfJFFjo (ORCPT ); Sun, 6 Oct 2019 01:39:44 -0400 Received: by mail-pg1-f193.google.com with SMTP id t3so318716pga.8 for ; Sat, 05 Oct 2019 22:39:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=S1RoqAjzF3G4A46AecyEHP/0DwVF1CG1yV8jnN1Ft9k=; b=hyFNBkwR6pg4p2eP93SG+NV9NB6qex5OhttYUFQQ6YYwbqNCH7zkzB5piC0+tBTw48 F58jCN/ZpyGGindrO/Wc0hhpOxNWsEYHQAz9mj/oIXSdGHZbn4NQaqjSsmOs//W6DBQd f+uDQ9TgGa/BNGOArhl170R7Wi/pIINMsXlu773pSyTG3QprqAU8PFA70O8EVEWdD7fP hyHe+sLP/XXL+NRZkXXP+ck2ECaN0PxD8kWPDu5jMuWtIh+D7FcvJ4nvp9xmRQO1L65l H4k9qxbUB7dTVWG4yk1nRknlTy/l6eW5frqYnukesY4vFAv5UkT54+0LptcnfywUiaIu NxYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=S1RoqAjzF3G4A46AecyEHP/0DwVF1CG1yV8jnN1Ft9k=; b=XLIOvO59Nj9G1sYAkHPxr3sykrNtUmlVYAKGqDspAE96dOFCz32/CWONolUtZCkK41 3QeWuD6g/kvHxs5f44lLLZZWEyuJXBYQ+G/rcJKc1wK4GKoqEwZZqEjo/N1eHROeIZ2Z zAtkZrXt+jN7JPdMLi4PgN92dIjvFWp07Wqqmrt/0QgRWYGRITiwFSZ+EQwrE2KLo8or j7qx2sE9PS6U/NEySUvW+8VsDATeLSxcFR/pX7j6Bclq9e0WVPGgVapYv/fSnz08+QV9 bMqOpPrBru7SGzMRF0/QvwUxUpNxhPUQi2uqBSgkGthVWovKDjCM6J3A837gYGdvA7a9 k3Hg== X-Gm-Message-State: APjAAAW24iBJQd388Y0mlS9y0AR//luk2d9zL94u+A6wCaFtPu+cu0CX Eyl3szHLp4qoerNtH/dQVSWFQA== X-Google-Smtp-Source: APXvYqzHcMrU1J/wYWP4lNtuoIic5NFXBS/1cEIovdr3sk+TlnhzhcSpbI9EoYFtfyNFlucLPo5HTg== X-Received: by 2002:a62:583:: with SMTP id 125mr27004540pff.69.1570340382559; Sat, 05 Oct 2019 22:39:42 -0700 (PDT) Received: from debian-brgl.local (50-255-47-209-static.hfc.comcastbusiness.net. [50.255.47.209]) by smtp.gmail.com with ESMTPSA id q30sm10019320pja.18.2019.10.05.22.39.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Oct 2019 22:39:42 -0700 (PDT) From: Bartosz Golaszewski To: Jonathan Corbet , Greg Kroah-Hartman , "Rafael J . Wysocki" , Arnd Bergmann , Linus Walleij Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH v3 5/8] misc: sram: use devm_platform_ioremap_resource_wc() Date: Sun, 6 Oct 2019 07:39:13 +0200 Message-Id: <20191006053916.8849-6-brgl@bgdev.pl> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191006053916.8849-1-brgl@bgdev.pl> References: <20191006053916.8849-1-brgl@bgdev.pl> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org From: Bartosz Golaszewski Use the new devm_platform_ioremap_resource_wc() helper instead of devm_ioremap_wc() combinded with a call to platform_get_resource(). Also use devm_platform_ioremap_resource() where applicable. Signed-off-by: Bartosz Golaszewski --- drivers/misc/sram.c | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/drivers/misc/sram.c b/drivers/misc/sram.c index f30448bf3a63..6c1a23cb3e8c 100644 --- a/drivers/misc/sram.c +++ b/drivers/misc/sram.c @@ -340,8 +340,6 @@ static const struct of_device_id sram_dt_ids[] = { static int sram_probe(struct platform_device *pdev) { struct sram_dev *sram; - struct resource *res; - size_t size; int ret; int (*init_func)(void); @@ -351,25 +349,14 @@ static int sram_probe(struct platform_device *pdev) sram->dev = &pdev->dev; - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!res) { - dev_err(sram->dev, "found no memory resource\n"); - return -EINVAL; - } - - size = resource_size(res); - - if (!devm_request_mem_region(sram->dev, res->start, size, pdev->name)) { - dev_err(sram->dev, "could not request region for resource\n"); - return -EBUSY; - } - if (of_property_read_bool(pdev->dev.of_node, "no-memory-wc")) - sram->virt_base = devm_ioremap(sram->dev, res->start, size); + sram->virt_base = devm_platform_ioremap_resource(pdev, 0); else - sram->virt_base = devm_ioremap_wc(sram->dev, res->start, size); - if (!sram->virt_base) - return -ENOMEM; + sram->virt_base = devm_platform_ioremap_resource_wc(pdev, 0); + if (IS_ERR(sram->virt_base)) { + dev_err(&pdev->dev, "could not map SRAM registers\n"); + return PTR_ERR(sram->virt_base); + } sram->pool = devm_gen_pool_create(sram->dev, ilog2(SRAM_GRANULARITY), NUMA_NO_NODE, NULL); @@ -382,7 +369,8 @@ static int sram_probe(struct platform_device *pdev) else clk_prepare_enable(sram->clk); - ret = sram_reserve_regions(sram, res); + ret = sram_reserve_regions(sram, + platform_get_resource(pdev, IORESOURCE_MEM, 0)); if (ret) goto err_disable_clk; From patchwork Sun Oct 6 05:39:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 1172337 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="NpApFIed"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46mC9p36Czz9sPd for ; Sun, 6 Oct 2019 16:39:58 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726329AbfJFFj5 (ORCPT ); Sun, 6 Oct 2019 01:39:57 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:39923 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726271AbfJFFjp (ORCPT ); Sun, 6 Oct 2019 01:39:45 -0400 Received: by mail-pf1-f194.google.com with SMTP id v4so6421296pff.6 for ; Sat, 05 Oct 2019 22:39:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=EZctdb2EuU+FP6ZJizqHnH1ZQoblRYPFlqyAYuvzD20=; b=NpApFIedXdrlmbEUK/h9l3WT4rH2EnNIsQlDII8fDOMAVwLlVyCUZVXmBytWP0yuFv pXpcL9URhY+tunDb9OFu5jCs4TkBCf+w7so/Yvfc00vcT4+pLUo8LgKTN5p5Dd4EeweD XZsEUTkaYPgmR4DeCdlNsKRLlJ5DYkiz/TKIiqwOcLxWcNwd+2QNUgQqjs7sxovPNkkV kaui8X0nKnZPYLez5EGbmwDeijGAYIk3CwVVefwgJFwg4zMG4E0ZxwYfoGscazT7cF9Y 97hFM5UBRhLxQ59cgK2wOI26glsXofjt5QhzGyT8WqMrqQuKiBYVeF2C0fmXQWvEym0K LAhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=EZctdb2EuU+FP6ZJizqHnH1ZQoblRYPFlqyAYuvzD20=; b=OUtMDQ/OAYjvvepQNfWlgBPUf2F1dV7GeRHYOG5f0Hc3bv3NiDXjbosns860iWcBh0 W83YHPUYrmZ3qgCHhfb3/HNyk10rXsMMYmcO2mWnc6cS+OmSgjueCC+L0xgVvhIX3MvQ hNgUTYdrEIRclvisZCUQRT9R/F7mKbXa9wo/L/M7HX6htl+P9tH5Wxw8tCJDKqJA2hPW q9iU7Gv+83O4rV1wGOrwK0o3CZMBqs2/HoZDbN0teIFqR8IYBuGhPcUoLx+1gdClj3I0 +Md1OlsWxiBaBAS/3VQ8U/cYevcbU5iSZvr/NxY7FGCXVQBuPOOYDxwXq0k5BctWiLlk f1Ww== X-Gm-Message-State: APjAAAW1HJb8FZMKGgwpptSvTD1QZyBfDOUE/biG8hs+VodI4hvAl70n eAFk41tY3rQ4gVxYrqWSdHfZ+iT3v7aZsg== X-Google-Smtp-Source: APXvYqzS/NuH9G9b377gcdt8bKZ36+WUD+1e5Kp1+cmEBlnWIUitci4/fgTJ8hlQr7cc3bV+4iwF9w== X-Received: by 2002:a65:5a84:: with SMTP id c4mr23893162pgt.261.1570340383448; Sat, 05 Oct 2019 22:39:43 -0700 (PDT) Received: from debian-brgl.local (50-255-47-209-static.hfc.comcastbusiness.net. [50.255.47.209]) by smtp.gmail.com with ESMTPSA id q30sm10019320pja.18.2019.10.05.22.39.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Oct 2019 22:39:43 -0700 (PDT) From: Bartosz Golaszewski To: Jonathan Corbet , Greg Kroah-Hartman , "Rafael J . Wysocki" , Arnd Bergmann , Linus Walleij Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH v3 6/8] drivers: provide devm_platform_ioremap_resource_byname() Date: Sun, 6 Oct 2019 07:39:14 +0200 Message-Id: <20191006053916.8849-7-brgl@bgdev.pl> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191006053916.8849-1-brgl@bgdev.pl> References: <20191006053916.8849-1-brgl@bgdev.pl> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org From: Bartosz Golaszewski Provide a variant of devm_platform_ioremap_resource() that allows to lookup resources from platform devices by name rather than by index. Signed-off-by: Bartosz Golaszewski --- .../driver-api/driver-model/devres.rst | 1 + drivers/base/platform.c | 20 +++++++++++++++++++ include/linux/platform_device.h | 3 +++ 3 files changed, 24 insertions(+) diff --git a/Documentation/driver-api/driver-model/devres.rst b/Documentation/driver-api/driver-model/devres.rst index 480b78ca3871..4ab193319d8c 100644 --- a/Documentation/driver-api/driver-model/devres.rst +++ b/Documentation/driver-api/driver-model/devres.rst @@ -319,6 +319,7 @@ IOMAP devm_ioremap_resource_wc() devm_platform_ioremap_resource() : calls devm_ioremap_resource() for platform device devm_platform_ioremap_resource_wc() + devm_platform_ioremap_resource_byname() devm_iounmap() pcim_iomap() pcim_iomap_regions() : do request_region() and iomap() on multiple BARs diff --git a/drivers/base/platform.c b/drivers/base/platform.c index d481b8a7d4fc..265d34253865 100644 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c @@ -95,6 +95,26 @@ void __iomem *devm_platform_ioremap_resource_wc(struct platform_device *pdev, res = platform_get_resource(pdev, IORESOURCE_MEM, index); return devm_ioremap_resource_wc(&pdev->dev, res); } + +/** + * devm_platform_ioremap_resource_byname - call devm_ioremap_resource for + * a platform device, retrieve the + * resource by name + * + * @pdev: platform device to use both for memory resource lookup as well as + * resource management + * @name: name of the resource + */ +void __iomem * +devm_platform_ioremap_resource_byname(struct platform_device *pdev, + const char *name) +{ + struct resource *res; + + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, name); + return devm_ioremap_resource(&pdev->dev, res); +} +EXPORT_SYMBOL_GPL(devm_platform_ioremap_resource_byname); #endif /* CONFIG_HAS_IOMEM */ static int __platform_get_irq(struct platform_device *dev, unsigned int num) diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h index 83930790c701..fea5563f6fcf 100644 --- a/include/linux/platform_device.h +++ b/include/linux/platform_device.h @@ -60,6 +60,9 @@ devm_platform_ioremap_resource(struct platform_device *pdev, extern void __iomem * devm_platform_ioremap_resource_wc(struct platform_device *pdev, unsigned int index); +extern void __iomem * +devm_platform_ioremap_resource_byname(struct platform_device *pdev, + const char *name); extern int platform_get_irq(struct platform_device *, unsigned int); extern int platform_get_irq_optional(struct platform_device *, unsigned int); extern int platform_irq_count(struct platform_device *); From patchwork Sun Oct 6 05:39:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 1172336 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="hrHDoGWg"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46mC9n3FQLz9sPc for ; Sun, 6 Oct 2019 16:39:57 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726291AbfJFFju (ORCPT ); Sun, 6 Oct 2019 01:39:50 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:42824 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726284AbfJFFjq (ORCPT ); Sun, 6 Oct 2019 01:39:46 -0400 Received: by mail-pg1-f195.google.com with SMTP id z12so6139449pgp.9 for ; Sat, 05 Oct 2019 22:39:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JGpHJMNJmt0D2CtlAvF0BB0ayFvc7p4D4pLv8EbvGc0=; b=hrHDoGWgArLcjoy0hg4PkXWTSixMvbFbwkcCa91SIAZRFyGz1B9nRGPJWh7Yy7Ywkt e6JGXS3ykmBB5j1QyCEgvzPT77oLwZygN10YdkakXwi5qIw8CbuIVg0P3a2nS2uDk//r G18E/AHje4wYYlglCW7eN2fGPGHs5R1Bhm9FeNgF1LKq/J89/nwylmdNe6e08m2sEPPJ xU67f7DAAqMtaxiQssJRcLTQ21fI83dyecuUxXZD9VW/qE7B0iQM7+kZ4A1uGJUKxyLW Becd1uwkUIwNeh190VTOY7YdSa2bfjdB9WBlXpw9z66aR8H2fnZQnv0CPMgx31dpjJgM RyGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JGpHJMNJmt0D2CtlAvF0BB0ayFvc7p4D4pLv8EbvGc0=; b=HY6vfkGHI98rk+vb+kV3n9WLU3DYLBIOQSaAntSAY9iW4d302CbouODjo2huJ9HAM/ xZDE3AY/O0spGW9DzVg/qvjlwjqwwAyoHuV0OZCFRCviJqONvZUSiviv3BztVyy11meM DH2rvi8IRN/GIs7Pk9jD2xM+QG3kjTMN/08mBNz4A6DM5uWqxO/38TqzSRhVPRlZIvUk kfdtAyqJz4luwydLSXeDhIiGXd6gI77+3kiwAUU1j+nrjivA5qAxzzUjj2qYwQ0wwbXt tYpfmoOrEHf/0WiS3l4rwefhMxiN7eBVOC9wL+ICbfs4FXEqHqNMqI/E/MOqsHv4tGta O1Yg== X-Gm-Message-State: APjAAAUiI9SpyjGvEZZu2KoAz09eUxIxV/w9Zm7Epz6E5+9ZCjTLHAqt COooRGaFs0Wuo/1Eeyjhyetbmw== X-Google-Smtp-Source: APXvYqyZkMteRPmIT4lYcc/6t8ZvthXPr2H8kcWCAOiHeEc0hH0NUfT8n8WaSRKA29NDI6H98rKhmw== X-Received: by 2002:a17:90a:f487:: with SMTP id bx7mr25496934pjb.83.1570340384435; Sat, 05 Oct 2019 22:39:44 -0700 (PDT) Received: from debian-brgl.local (50-255-47-209-static.hfc.comcastbusiness.net. [50.255.47.209]) by smtp.gmail.com with ESMTPSA id q30sm10019320pja.18.2019.10.05.22.39.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Oct 2019 22:39:44 -0700 (PDT) From: Bartosz Golaszewski To: Jonathan Corbet , Greg Kroah-Hartman , "Rafael J . Wysocki" , Arnd Bergmann , Linus Walleij Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH v3 7/8] gpio: mvebu: use devm_platform_ioremap_resource_byname() Date: Sun, 6 Oct 2019 07:39:15 +0200 Message-Id: <20191006053916.8849-8-brgl@bgdev.pl> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191006053916.8849-1-brgl@bgdev.pl> References: <20191006053916.8849-1-brgl@bgdev.pl> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org From: Bartosz Golaszewski Use devm_platform_ioremap_resource_byname() instead of calling platform_get_resource_byname() and devm_ioremap_resource() separately. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mvebu.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c index 6c0687694341..2f0f50336b9a 100644 --- a/drivers/gpio/gpio-mvebu.c +++ b/drivers/gpio/gpio-mvebu.c @@ -773,23 +773,12 @@ static int mvebu_pwm_probe(struct platform_device *pdev, { struct device *dev = &pdev->dev; struct mvebu_pwm *mvpwm; - struct resource *res; u32 set; if (!of_device_is_compatible(mvchip->chip.of_node, "marvell,armada-370-gpio")) return 0; - /* - * There are only two sets of PWM configuration registers for - * all the GPIO lines on those SoCs which this driver reserves - * for the first two GPIO chips. So if the resource is missing - * we can't treat it as an error. - */ - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pwm"); - if (!res) - return 0; - if (IS_ERR(mvchip->clk)) return PTR_ERR(mvchip->clk); @@ -812,7 +801,13 @@ static int mvebu_pwm_probe(struct platform_device *pdev, mvchip->mvpwm = mvpwm; mvpwm->mvchip = mvchip; - mvpwm->membase = devm_ioremap_resource(dev, res); + /* + * There are only two sets of PWM configuration registers for + * all the GPIO lines on those SoCs which this driver reserves + * for the first two GPIO chips. So if the resource is missing + * we can't treat it as an error. + */ + mvpwm->membase = devm_platform_ioremap_resource_byname(pdev, "pwm"); if (IS_ERR(mvpwm->membase)) return PTR_ERR(mvpwm->membase); From patchwork Sun Oct 6 05:39:16 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 1172335 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="zlR7f3v6"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46mC9g1FsGz9sPK for ; Sun, 6 Oct 2019 16:39:51 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726303AbfJFFju (ORCPT ); Sun, 6 Oct 2019 01:39:50 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:36559 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726291AbfJFFjr (ORCPT ); Sun, 6 Oct 2019 01:39:47 -0400 Received: by mail-pg1-f195.google.com with SMTP id 23so6166981pgk.3 for ; Sat, 05 Oct 2019 22:39:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=o+2cCkacS0/wsdoq+AhwYBV7HAjDIr1+29FN1l6fATg=; b=zlR7f3v6X6VUHlmDnEU4rDms8pwdJwwfFhghIIGBJMCzHM+Mj8Y7hUSVAPN0Cb3JOg Gm1vfy2oFYliCkbSbasts3bHObYD0QK3/P+QRlH+MLIu6JUPoNPUJX3DII2meRrAWwGr YjFpHV0GPS32lYoKZOyL5VPwSibzj5KfsIxaHChxOFonp1xGLXserUJLx0Xkcf6/tvbT NMM/+taLAaPaayKF7G4IdbGr711z5zaq516AdwGkTIp4VT57hPZnoPGCcu7WBQv1ZFXG qzMnxm4i8bUffPu72P/i3mrXDqUB3N/0jNUtK8frmZxI4vCCOIhbpGhZSJCbx8+SKI3H Bwlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=o+2cCkacS0/wsdoq+AhwYBV7HAjDIr1+29FN1l6fATg=; b=BBG1JSdZ+aViXqiP/9BFib0RSFG61F1mlHh7jvdScFnr02UQohz8uz9xJP8BbyF0yy HL+DhJiFTNOYezuWXmb4HXwGTKKO/1EYUfSA7EDj0BHOnbNoUpTXXUbHufN5jXIfzwHj UkmoSO41Q0kyGbSAhLR8ZMyORF8bcpPbDhkP88l/t2bdAorVczwSRPKi05HplFDmWn/F M3Uc8wSVVP/jybbsdPOhE5vMaus9KwZ4zoYeAopAwX5T80TY1a8PUnwLz/BcEAs/MQTL 3x0DNUg7LvY7RZmOgqMpqsyViV0g4PW2KLpHkQDtno6Tbinn6Ng9nO/BJ57hvV1iW72n baGA== X-Gm-Message-State: APjAAAUxIqnRKpsr2SM2PDFAc74LsMWTuCtCy9I48KWpTpaZMcA/Q2rK YCobeI/LhYNwrRzUlQy2DSKNaeQN9dDkjA== X-Google-Smtp-Source: APXvYqxK3lP1b5O5P9pkwJr2DSVKlg5gfYiK+vKbxwea7k+/ZUAKfLagdWTvWlycO53oE5WA3dKsUQ== X-Received: by 2002:aa7:99da:: with SMTP id v26mr26356523pfi.258.1570340385338; Sat, 05 Oct 2019 22:39:45 -0700 (PDT) Received: from debian-brgl.local (50-255-47-209-static.hfc.comcastbusiness.net. [50.255.47.209]) by smtp.gmail.com with ESMTPSA id q30sm10019320pja.18.2019.10.05.22.39.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Oct 2019 22:39:45 -0700 (PDT) From: Bartosz Golaszewski To: Jonathan Corbet , Greg Kroah-Hartman , "Rafael J . Wysocki" , Arnd Bergmann , Linus Walleij Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH v3 8/8] gpio: tegra186: use devm_platform_ioremap_resource_byname() Date: Sun, 6 Oct 2019 07:39:16 +0200 Message-Id: <20191006053916.8849-9-brgl@bgdev.pl> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191006053916.8849-1-brgl@bgdev.pl> References: <20191006053916.8849-1-brgl@bgdev.pl> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org From: Bartosz Golaszewski Use the devm_platform_ioremap_resource_byname() helper instead of calling platform_get_resource_byname() and devm_ioremap_resource() separately. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-tegra186.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/gpio/gpio-tegra186.c b/drivers/gpio/gpio-tegra186.c index a9058fda187e..ef40fbe923cf 100644 --- a/drivers/gpio/gpio-tegra186.c +++ b/drivers/gpio/gpio-tegra186.c @@ -407,7 +407,6 @@ static int tegra186_gpio_probe(struct platform_device *pdev) unsigned int i, j, offset; struct gpio_irq_chip *irq; struct tegra_gpio *gpio; - struct resource *res; char **names; int err; @@ -417,8 +416,7 @@ static int tegra186_gpio_probe(struct platform_device *pdev) gpio->soc = of_device_get_match_data(&pdev->dev); - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "gpio"); - gpio->base = devm_ioremap_resource(&pdev->dev, res); + gpio->base = devm_platform_ioremap_resource_byname(pdev, "gpio"); if (IS_ERR(gpio->base)) return PTR_ERR(gpio->base);