From patchwork Wed Jun 24 11:41:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrzej Hajda X-Patchwork-Id: 11622983 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 80168913 for ; Wed, 24 Jun 2020 11:41:52 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 5E9DE20707 for ; Wed, 24 Jun 2020 11:41:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="BmsA0fzn" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5E9DE20707 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 42BBF6EB0C; Wed, 24 Jun 2020 11:41:51 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by gabe.freedesktop.org (Postfix) with ESMTPS id C99866EB03 for ; Wed, 24 Jun 2020 11:41:37 +0000 (UTC) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200624114136euoutp0220cd6283cc3b2197af1e4a98850c51a7~beA5lMeZv1634616346euoutp02G for ; Wed, 24 Jun 2020 11:41:36 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200624114136euoutp0220cd6283cc3b2197af1e4a98850c51a7~beA5lMeZv1634616346euoutp02G DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1592998896; bh=HhEMsisY02ZOuY2/gjpIMi/WSmd5AdgRdcQapho3Kl8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BmsA0fznDtVTqN7hyIBo1SznJi5uPjqavYxDu/DcdIPMu99H72KddvRGVn68Pc4cX NJoyGwQaOv8T4/uVZZsXr1kZ1AQ7uRRKocaH8Erf9tWwKRMzS0ARLEC9GL4LYAaw14 7eewpaRDBsRRx+i4QD5TIO2g465ed9zMlFI6Plro= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200624114136eucas1p113aa4f8987e7c1092a5bfec32e859dfa~beA5MkD490804208042eucas1p1K; Wed, 24 Jun 2020 11:41:36 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id 21.1F.05997.FEB33FE5; Wed, 24 Jun 2020 12:41:35 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200624114135eucas1p26e2e4683d60cebdce7acd55177013992~beA4xUzId0286002860eucas1p2T; Wed, 24 Jun 2020 11:41:35 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200624114135eusmtrp122a25f28c380107d069f8d7c313f9d2f~beA4worMw0702007020eusmtrp1H; Wed, 24 Jun 2020 11:41:35 +0000 (GMT) X-AuditID: cbfec7f4-65dff7000000176d-04-5ef33befd65a Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 23.53.06017.FEB33FE5; Wed, 24 Jun 2020 12:41:35 +0100 (BST) Received: from AMDC3748.digital.local (unknown [106.120.51.74]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200624114134eusmtip296b918e1532d3a32de342cba443a9e63~beA4F74i82682326823eusmtip2-; Wed, 24 Jun 2020 11:41:34 +0000 (GMT) From: Andrzej Hajda To: Greg Kroah-Hartman Subject: [RESEND PATCH v5 1/5] driver core: add probe_err log helper Date: Wed, 24 Jun 2020 13:41:23 +0200 Message-Id: <20200624114127.3016-2-a.hajda@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200624114127.3016-1-a.hajda@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0VSeUiTYRjn3Xcqrb6W4ZtF4qg/ktJSqxcsKxH66CIKjLLMqR8qzYNtXlGo qHnlnWeJkmaieaRuqWHaDLVsHnm0RFmmHUYq5cyKzLZ9Wv/9+B3P7+HhoTGRhrCiA4IUnCxI IhWT5riq82fvrjnnec/dI0370GhNL4GmMzoAephfS6CciSkSLasyMTS0MEei2NJaEg0vTmPo +ZdhHCVlllGofnKEQIMtd0ikzmkFqPrZOIXUaR6oSJ+DHWbYwZEBjJ3TxlNs6/cSnG0uHKfY 24kFBFtfmUSy3RmvBGxb0QOK1aV0CdiGsig2rbESsO2p2Tg7X7/1tPCC+QFfThoQxsnsXbzM /QejG7CQDxsjfqhGiWjwZ30yMKMh4wSb8uMpIxYxFQAOz9glA3MD1gMYO7tI8sI8gLlK99XA wrKW5E33ASyO0Qr+JQZeVGNGF8nsgEsNb0xpC8YRpmsKKaMJY37hcDjhBmEUNjBusLBv0hTA me2wrLzawNO0kNkPS9878G3WsKqu3WQxYxDMihsAxjmQmaHgUEw5yZvc4CNNsYDHG+DnrkaK x1tgT/ZNnMdRUFcRh/HhRACVdc0YLzjDsd5fpLEYM2xd22LP00dgVb/eRENmLdTOmM6FGWCW Kg/jaSFMvCHi3TZQp1GuDLSE9/oXVjZjof5WBcXfJwXAJ7oeLANYF/4vKwGgElhyofJAP07u EMSF28klgfLQID87n+DAemB4sp4/Xfom0PLbWw0YGojXCOvefvUUEZIweWSgGkAaE1sIXTU9 niKhryTyKicLviwLlXJyNdhM42JLoePd6Usixk+i4K5wXAgnW1UFtJlVNLgeWzSlPWXhavsx PbmUPJqw0ybkjNJlk6xT6uCm+lmdX1uuqFknO+6U6xFledLnYka5tmCpe3ZScU0X15TXqtT0 tZ/z8K5oi3jZH+61SNid/ZS6lPqu8fwn/6ePuV1jnwXBezu+ca8PujVuS1a4zOXqI9LcE44l TUhLspxOHLKIDxbjcn/JHltMJpf8BXReWFxgAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrPIsWRmVeSWpSXmKPExsVy+t/xe7rvrT/HGZw4Lmdxa905VouXEw4z WmycsZ7VYurDJ2wW/7dNZLa48vU9m0Xz4vVsFle/v2S2OPnmKotF58Ql7BabHl9jtbi8aw6b xaGpexkt1h65y25xqC/aYu6XqcwOAh6Xr11k9nh/o5XdY++3BSweO2fdZfeY3TGT1WPTqk42 jxMTLjF57J+7ht3jfvdxJo/NS+o9+rasYvQ40DuZxePzJrkA3ig9m6L80pJUhYz84hJbpWhD CyM9Q0sLPSMTSz1DY/NYKyNTJX07m5TUnMyy1CJ9uwS9jMsNm5kLnolW/Nh2i7WB8Z9gFyMn h4SAicTX/zfYuhi5OIQEljJKTNq1iBkiIS6xe/5bKFtY4s+1LjYQW0jgE6NE84QkEJtNQFPi 7+abYHERAWOJ/rOz2EEGMQu0sUrMPf+EHSQhLOAiMev8Y7BBLAKqEkuWrWXtYuTg4BUwl1j8 1AhivrzE6g0HwEo4BSwkJrVcZITYZS5x6Ppi1gmMfAsYGVYxiqSWFuem5xYb6RUn5haX5qXr JefnbmIERta2Yz+37GDsehd8iFGAg1GJh3fDg49xQqyJZcWVuYcYJTiYlUR4nc6ejhPiTUms rEotyo8vKs1JLT7EaAp000RmKdHkfGDU55XEG5oamltYGpobmxubWSiJ83YIHIwREkhPLEnN Tk0tSC2C6WPi4JRqYJzhGvJJQW1FlefM7J4lH6u0s9aEXGYw6bvO6yAxf6Hbuuij87PM5+0z dzdhYZnhtsqvlNtProXpZO5G+wSXzIaPNnkvjFo8OhrPXli65/VBzcAs92nXZovrTWPewdsp 8Kb7iQRHXa9ZfJ9kZPGD+yF5xucO/ej4fLjgxfwqsQyNW2xejNdzlViKMxINtZiLihMBkdVG U8ICAAA= X-CMS-MailID: 20200624114135eucas1p26e2e4683d60cebdce7acd55177013992 X-Msg-Generator: CA X-RootMTR: 20200624114135eucas1p26e2e4683d60cebdce7acd55177013992 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200624114135eucas1p26e2e4683d60cebdce7acd55177013992 References: <20200624114127.3016-1-a.hajda@samsung.com> X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , "Rafael J. Wysocki" , Jonas Karlman , Bartlomiej Zolnierkiewicz , linux-kernel@vger.kernel.org, "open list:DRM DRIVERS" , Russell King - ARM Linux , Neil Armstrong , Andrzej Hajda , andy.shevchenko@gmail.com, Mark Brown , Laurent Pinchart , linux-arm-kernel@lists.infradead.org, Marek Szyprowski MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" During probe every time driver gets resource it should usually check for error printk some message if it is not -EPROBE_DEFER and return the error. This pattern is simple but requires adding few lines after any resource acquisition code, as a result it is often omited or implemented only partially. probe_err helps to replace such code sequences with simple call, so code: if (err != -EPROBE_DEFER) dev_err(dev, ...); return err; becomes: return probe_err(dev, err, ...); Signed-off-by: Andrzej Hajda Reviewed-by: Javier Martinez Canillas Reviewed-by: Mark Brown Reviewed-by: Andy Shevchenko --- drivers/base/core.c | 39 +++++++++++++++++++++++++++++++++++++++ include/linux/device.h | 3 +++ 2 files changed, 42 insertions(+) diff --git a/drivers/base/core.c b/drivers/base/core.c index 67d39a90b45c..ee9da66bff1b 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -3953,6 +3953,45 @@ define_dev_printk_level(_dev_info, KERN_INFO); #endif +/** + * probe_err - probe error check and log helper + * @dev: the pointer to the struct device + * @err: error value to test + * @fmt: printf-style format string + * @...: arguments as specified in the format string + * + * This helper implements common pattern present in probe functions for error + * checking: print message if the error is not -EPROBE_DEFER and propagate it. + * It replaces code sequence: + * if (err != -EPROBE_DEFER) + * dev_err(dev, ...); + * return err; + * with + * return probe_err(dev, err, ...); + * + * Returns @err. + * + */ +int probe_err(const struct device *dev, int err, const char *fmt, ...) +{ + struct va_format vaf; + va_list args; + + if (err == -EPROBE_DEFER) + return err; + + va_start(args, fmt); + vaf.fmt = fmt; + vaf.va = &args; + + dev_err(dev, "error %d: %pV", err, &vaf); + + va_end(args); + + return err; +} +EXPORT_SYMBOL_GPL(probe_err); + static inline bool fwnode_is_primary(struct fwnode_handle *fwnode) { return fwnode && !IS_ERR(fwnode->secondary); diff --git a/include/linux/device.h b/include/linux/device.h index 15460a5ac024..40a90d9bf799 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -964,6 +964,9 @@ void device_link_remove(void *consumer, struct device *supplier); void device_links_supplier_sync_state_pause(void); void device_links_supplier_sync_state_resume(void); +extern __printf(3, 4) +int probe_err(const struct device *dev, int err, const char *fmt, ...); + /* Create alias, so I can be autoloaded. */ #define MODULE_ALIAS_CHARDEV(major,minor) \ MODULE_ALIAS("char-major-" __stringify(major) "-" __stringify(minor)) From patchwork Wed Jun 24 11:41:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrzej Hajda X-Patchwork-Id: 11622973 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 769A613B1 for ; Wed, 24 Jun 2020 11:41:43 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 54BFE20706 for ; Wed, 24 Jun 2020 11:41:43 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="hZDcbxGV" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 54BFE20706 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A75336EB03; Wed, 24 Jun 2020 11:41:41 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by gabe.freedesktop.org (Postfix) with ESMTPS id 55AA46EAD8 for ; Wed, 24 Jun 2020 11:41:38 +0000 (UTC) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200624114137euoutp02614b6e5bf142fc0ac3c76641ac88000f~beA6J-Sam1634616346euoutp02H for ; Wed, 24 Jun 2020 11:41:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200624114137euoutp02614b6e5bf142fc0ac3c76641ac88000f~beA6J-Sam1634616346euoutp02H DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1592998897; bh=51rAgLVMknT7XcPL6Scm/eo5/G0AD6Pah8B2adU5o7Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hZDcbxGVRuUGEqdoFWFQ/sBsr6ulzwX9QYZeU1ns4X1uqT5ZJ75TGivDKyx/Z1QQ8 L715YwS0936PYWqCOz0kBRbYy9XlY3gHYeqFda02yEylRt3idzLCNTNkH65Kyu4cKQ lxPS7w8M/a3Ff/mwNqPjCWMglwsr/t6voRbxcqKs= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20200624114136eucas1p2be2df4866a49144fe5b9525735acdcf8~beA5wOL4i0284402844eucas1p2c; Wed, 24 Jun 2020 11:41:36 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id 42.1F.05997.0FB33FE5; Wed, 24 Jun 2020 12:41:36 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200624114136eucas1p1a3a31d95d86754201c7965f26ccd5de0~beA5awlgt2496024960eucas1p1L; Wed, 24 Jun 2020 11:41:36 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200624114136eusmtrp1e49b026849a70843ee186c566f27c1c9~beA5Z7fih0702007020eusmtrp1I; Wed, 24 Jun 2020 11:41:36 +0000 (GMT) X-AuditID: cbfec7f4-677ff7000000176d-05-5ef33bf015f5 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id E2.74.06314.0FB33FE5; Wed, 24 Jun 2020 12:41:36 +0100 (BST) Received: from AMDC3748.digital.local (unknown [106.120.51.74]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200624114135eusmtip25f90617942c98e56bb3b5c4801ad3554~beA4wr7t_2216922169eusmtip28; Wed, 24 Jun 2020 11:41:35 +0000 (GMT) From: Andrzej Hajda To: Greg Kroah-Hartman Subject: [RESEND PATCH v5 2/5] driver core: add deferring probe reason to devices_deferred property Date: Wed, 24 Jun 2020 13:41:24 +0200 Message-Id: <20200624114127.3016-3-a.hajda@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200624114127.3016-1-a.hajda@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0VSa0hTYRju27m6XByn4YeK4gmLArMb9IHdsToERRD9MTJnHrzNKZtaiuEy zcu8i5SapU5LTZ3NaTnoNqNpQ83UsvJaYSwTCy9dqMx5tP4973P53oeXj8akPYQLHaaI4ZUK mZwlxXjr0x893l98ZwK2NCaz6E1jN4Gsee0A3bmqI1DR+AcSLbTmY6h/bppEl7Q6Eg18s2Ko 8/MAjjLyqyikf/+SQH3GayQyFd0HqOHJMIVMOadQ2WwRto/h+l72Ytz0YCrF3Z8vx7m2kmGK K00vJjh9XQbJdeS9EHEPy+opblRjFnHNVUlcjqEOcI+yC3FuRu9+XOIv3hXMy8PieKXPnkBx aPG7bjx6lD1vqH1FqMGCWyawoyGzA3beTQaZQExLmRoAh1oshDDMAqj7chMXhhkA306oRSuR 1PpSUhBuAfisc4r8F0nT6iibi2Q2wt/Nr0kbdmK2w9yuEspmwpifOBxIu0zYBEeGhxUXa5ZM OOMFtZrxpbCE2Qn7UycpYZ0HvN30CLNhOwbBgpReIPBWChos6wXsB0f0g8v1HOEns2E56wYt hVm4gJPgaE0KZisBmXQAW5raMEHwhUPdPxdL0IvtNkKd0Ueg98MR4+MlGjJr4OCUg43GFmFB 6xVMoCUw/bJUcHvC0a6W5QedYfXzOVLAHBzWZFPCfTQAam9Pk3nAo+T/snIA6oAzH6uKDOFV 2xT8uc0qWaQqVhGy+WxUpB4sfjPLH/PsPWD8FWQCDA1Ye0nT2NcAKSGLU8VHmgCkMdZJcqDL EiCVBMviE3hl1BllrJxXmYArjbPOku2V1tNSJkQWw0fwfDSvXFFFtJ2LGnj0zQdpc+YcblTY m6d2V4sLqqoGTtpPFB7xTH6QGJeV9VEfLndf5RjKTk6tjTg05nrBo/+tprWdUx8NV8itja9q /dySq3/trfYXpdj9GZlQUgsdgeqGAsI7JvcEveH7uvXXNyQefOhlLN1Tm2kOb8uqTxiuZNOO efeujjp874FhgsVVobKtmzClSvYXz7QMqWIDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrPIsWRmVeSWpSXmKPExsVy+t/xe7ofrD/HGfy9w2Nxa905VouXEw4z WmycsZ7VYurDJ2wW/7dNZLa48vU9m0Xz4vVsFle/v2S2OPnmKotF58Ql7BabHl9jtbi8aw6b xaGpexkt1h65y25xqC/aYu6XqcwOAh6Xr11k9nh/o5XdY++3BSweO2fdZfeY3TGT1WPTqk42 jxMTLjF57J+7ht3jfvdxJo/NS+o9+rasYvQ40DuZxePzJrkA3ig9m6L80pJUhYz84hJbpWhD CyM9Q0sLPSMTSz1DY/NYKyNTJX07m5TUnMyy1CJ9uwS9jJmPzrEU3Feq2LLyOmsD43+ZLkZO DgkBE4nWNbPZQGwhgaWMEndmhUDExSV2z3/LDGELS/y51gVV84lR4tomTxCbTUBT4u/mm2Bx EQFjif6zs9i7GLk4mAXaWCXmnn/CDpIQFkiWuHziBBOIzSKgKrG4+yFYnFfAXOJK62t2iAXy Eqs3HABbxilgITGp5SIjxDJziUPXF7NOYORbwMiwilEktbQ4Nz232FCvODG3uDQvXS85P3cT IzCyth37uXkH46WNwYcYBTgYlXh4Nzz4GCfEmlhWXJl7iFGCg1lJhNfp7Ok4Id6UxMqq1KL8 +KLSnNTiQ4ymQEdNZJYSTc4HRn1eSbyhqaG5haWhubG5sZmFkjhvh8DBGCGB9MSS1OzU1ILU Ipg+Jg5OqQbGnhUVs3O8HkxN8LFekZsUv7g1/9yc+LD/y95Hdv89k+ovOd3nWwaTYa1vwo7F ffVWAacZbFbP+ZTH80aD3UZZ5ufjnI+r5qb/qfFPb0veW7fLKOJTk8g/70+zns6SOrJQOuvJ N7e7N1Vk8pOE92csfbmi4v/5PIGj7L1PEsxPPxDf9aZq/k8VJZbijERDLeai4kQADK/hIcIC AAA= X-CMS-MailID: 20200624114136eucas1p1a3a31d95d86754201c7965f26ccd5de0 X-Msg-Generator: CA X-RootMTR: 20200624114136eucas1p1a3a31d95d86754201c7965f26ccd5de0 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200624114136eucas1p1a3a31d95d86754201c7965f26ccd5de0 References: <20200624114127.3016-1-a.hajda@samsung.com> X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , "Rafael J. Wysocki" , Jonas Karlman , Bartlomiej Zolnierkiewicz , linux-kernel@vger.kernel.org, "open list:DRM DRIVERS" , Russell King - ARM Linux , Neil Armstrong , Andrzej Hajda , andy.shevchenko@gmail.com, Mark Brown , Laurent Pinchart , linux-arm-kernel@lists.infradead.org, Marek Szyprowski MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" /sys/kernel/debug/devices_deferred property contains list of deferred devices. This list does not contain reason why the driver deferred probe, the patch improves it. The natural place to set the reason is probe_err function introduced recently, ie. if probe_err will be called with -EPROBE_DEFER instead of printk the message will be attached to deferred device and printed when user read devices_deferred property. Signed-off-by: Andrzej Hajda Reviewed-by: Mark Brown Reviewed-by: Javier Martinez Canillas Reviewed-by: Andy Shevchenko --- drivers/base/base.h | 3 +++ drivers/base/core.c | 10 ++++++---- drivers/base/dd.c | 21 ++++++++++++++++++++- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/drivers/base/base.h b/drivers/base/base.h index 95c22c0f9036..93ef1c2f4c1f 100644 --- a/drivers/base/base.h +++ b/drivers/base/base.h @@ -93,6 +93,7 @@ struct device_private { struct klist_node knode_class; struct list_head deferred_probe; struct device_driver *async_driver; + char *deferred_probe_msg; struct device *device; u8 dead:1; }; @@ -134,6 +135,8 @@ extern void device_release_driver_internal(struct device *dev, extern void driver_detach(struct device_driver *drv); extern int driver_probe_device(struct device_driver *drv, struct device *dev); extern void driver_deferred_probe_del(struct device *dev); +extern void __deferred_probe_set_msg(const struct device *dev, + struct va_format *vaf); static inline int driver_match_device(struct device_driver *drv, struct device *dev) { diff --git a/drivers/base/core.c b/drivers/base/core.c index ee9da66bff1b..2a96954d5460 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -3962,6 +3962,8 @@ define_dev_printk_level(_dev_info, KERN_INFO); * * This helper implements common pattern present in probe functions for error * checking: print message if the error is not -EPROBE_DEFER and propagate it. + * In case of -EPROBE_DEFER it sets defer probe reason, which can be checked + * later by reading devices_deferred debugfs attribute. * It replaces code sequence: * if (err != -EPROBE_DEFER) * dev_err(dev, ...); @@ -3977,14 +3979,14 @@ int probe_err(const struct device *dev, int err, const char *fmt, ...) struct va_format vaf; va_list args; - if (err == -EPROBE_DEFER) - return err; - va_start(args, fmt); vaf.fmt = fmt; vaf.va = &args; - dev_err(dev, "error %d: %pV", err, &vaf); + if (err == -EPROBE_DEFER) + __deferred_probe_set_msg(dev, &vaf); + else + dev_err(dev, "error %d: %pV", err, &vaf); va_end(args); diff --git a/drivers/base/dd.c b/drivers/base/dd.c index 9a1d940342ac..f44d26454b6a 100644 --- a/drivers/base/dd.c +++ b/drivers/base/dd.c @@ -27,6 +27,7 @@ #include #include #include +#include #include "base.h" #include "power/power.h" @@ -136,6 +137,8 @@ void driver_deferred_probe_del(struct device *dev) if (!list_empty(&dev->p->deferred_probe)) { dev_dbg(dev, "Removed from deferred list\n"); list_del_init(&dev->p->deferred_probe); + kfree(dev->p->deferred_probe_msg); + dev->p->deferred_probe_msg = NULL; } mutex_unlock(&deferred_probe_mutex); } @@ -211,6 +214,21 @@ void device_unblock_probing(void) driver_deferred_probe_trigger(); } +/* + * __deferred_probe_set_msg() - Set defer probe reason message for device + */ +void __deferred_probe_set_msg(const struct device *dev, struct va_format *vaf) +{ + const char *drv = dev_driver_string(dev); + + mutex_lock(&deferred_probe_mutex); + + kfree(dev->p->deferred_probe_msg); + dev->p->deferred_probe_msg = kasprintf(GFP_KERNEL, "%s: %pV", drv, vaf); + + mutex_unlock(&deferred_probe_mutex); +} + /* * deferred_devs_show() - Show the devices in the deferred probe pending list. */ @@ -221,7 +239,8 @@ static int deferred_devs_show(struct seq_file *s, void *data) mutex_lock(&deferred_probe_mutex); list_for_each_entry(curr, &deferred_probe_pending_list, deferred_probe) - seq_printf(s, "%s\n", dev_name(curr->device)); + seq_printf(s, "%s\t%s", dev_name(curr->device), + curr->device->p->deferred_probe_msg ?: "\n"); mutex_unlock(&deferred_probe_mutex); From patchwork Wed Jun 24 11:41:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrzej Hajda X-Patchwork-Id: 11622979 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 8958513B1 for ; Wed, 24 Jun 2020 11:41:48 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 674ED20CC7 for ; Wed, 24 Jun 2020 11:41:48 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="XTlmQqsx" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 674ED20CC7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 25D046EB09; Wed, 24 Jun 2020 11:41:47 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5B6DC6EB03 for ; Wed, 24 Jun 2020 11:41:39 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200624114137euoutp012865eebe809a877e79718b8bd8b269ed~beA6wQ2xj2526025260euoutp01g for ; Wed, 24 Jun 2020 11:41:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200624114137euoutp012865eebe809a877e79718b8bd8b269ed~beA6wQ2xj2526025260euoutp01g DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1592998897; bh=528msPEeeKbk20X6ucIg/zFrY6Boo/jOU+18Jk7kUgA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XTlmQqsxqgPhToYxHb3ALKE8Fovmdx4CYIJg9ikt1tH7TgyqD/RbqvjBL1/kX2Gx4 XJD2ZgF6uAA89Um1ocvynSLdzY/kiPyCOFwzV2QuHKaRcBVL052yYbg/O7BlIpbEoR jBgV6fqykiyhcQNIs7h65DBdHeJfKh4NIe0FPs/M= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200624114137eucas1p1a534acdb8d435a6cf47b1f66a846424f~beA6bu2uB2487924879eucas1p1K; Wed, 24 Jun 2020 11:41:37 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id E0.1A.06456.1FB33FE5; Wed, 24 Jun 2020 12:41:37 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200624114136eucas1p1c84f81b1d78e2dbad7ac1b762f0a4b4f~beA6EzgEI2487924879eucas1p1J; Wed, 24 Jun 2020 11:41:36 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200624114136eusmtrp129f7028dd669bad7eb0477985e570453~beA6EEtO-0702007020eusmtrp1O; Wed, 24 Jun 2020 11:41:36 +0000 (GMT) X-AuditID: cbfec7f2-7efff70000001938-4d-5ef33bf1c91a Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 84.53.06017.0FB33FE5; Wed, 24 Jun 2020 12:41:36 +0100 (BST) Received: from AMDC3748.digital.local (unknown [106.120.51.74]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200624114136eusmtip219790ef495719a8f910be072e9f0316f~beA5amx7E2617226172eusmtip2l; Wed, 24 Jun 2020 11:41:36 +0000 (GMT) From: Andrzej Hajda To: Greg Kroah-Hartman Subject: [RESEND PATCH v5 3/5] drivers core: allow probe_err accept integer and pointer types Date: Wed, 24 Jun 2020 13:41:25 +0200 Message-Id: <20200624114127.3016-4-a.hajda@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200624114127.3016-1-a.hajda@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0VSaUhUURjlzls1J55jNjeLpLF+JJiJhpfUqJR4BIr/iqTRqXku5NY8l8pA wSX3XJDSMsRywcyZxgWNTJ1MrXHMJUMtmaQgLMNqHLdSc3wj/Tv3O+d85/BxaUxiIJzoqNgE ThWriJaRtnhb38pbt18+JvnRyQUGTTUNEWi26CVAT++qCVQ284VEG23FGHpnnidR+kM1icaX ZjH0em4cRznFjyik/fyeQGPP7pNIV9YJ0JPeaQrpCkNQ5UIZdpJhx96PYOz8RCbFdi5W4WxH xTTF3ssuJ1htQw7JDhSNitiuykaKNeb1i9jmR6lsYUsDYLsLSnHWpN0fLL5g66vkoqOSOJX7 iTDbyHp9Gojvcbr2c+ArlQb0jrnAhoaMF6wvGcRygS0tYeoBfDM6DoTHAoD51d+tjAnAasN3 attiWmmxquoA7C2YJC3ElqVXLbVgkjkM15qF+S7GE942VFAWA8as4nD8VhaRC2jagQmFy1mu Fg3OHIKapp6tADHjDfuMVaQQ5gwfa7oxC7ZhECzJGNkKhswsBfsa80SCKABWmJcJATvAb/0t 1qb7oL40HxdwKjTWZ2CCORvAVk0HJhA+8OPQKmkphG22Vj9zt0DInIIdPWcFuBNO/LC3iLFN WNJ2BxPGYpidJRF2HIBGQ6t1nxTWDJut7Vn46kuZSDhVHoALiytEEXCu+J9VBUADkHKJfEwE x3vEcslHeEUMnxgbceRyXIwWbH4y/Xr/73ZgHr2kAwwNZHZizadfcgmhSOKvx+gApDHZLvFp g14uESsV129wqrhQVWI0x+vAXhqXScWe1bMXJUyEIoG7wnHxnGqbFdE2Tmmg0T8qMrixtdTv Rbp8N+/SHXh5ubZn2Bie079j0NxcZ4rTzzw4E7yOdQat1f7Rpjg2KP2rb/rl9R4L9Tk/GoCf Ox92wCsDLlUGPXc5WB5y5m+GXciHqeCr7Xsy7wWlyG2iEwLLjwe6hSuTy6U7a4pAfLZzYof3 huYn6ds1F5rWYi/D+UiFhyum4hX/ABHMHEBgAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrIIsWRmVeSWpSXmKPExsVy+t/xe7ofrD/HGay8bG5xa905VouXEw4z WmycsZ7VYurDJ2wW/7dNZLa48vU9m0Xz4vVsFle/v2S2OPnmKotF58Ql7BabHl9jtbi8aw6b xaGpexkt1h65y25xqC/aYu6XqcwOAh6Xr11k9nh/o5XdY++3BSweO2fdZfeY3TGT1WPTqk42 jxMTLjF57J+7ht3jfvdxJo/NS+o9+rasYvQ40DuZxePzJrkA3ig9m6L80pJUhYz84hJbpWhD CyM9Q0sLPSMTSz1DY/NYKyNTJX07m5TUnMyy1CJ9uwS9jBWnGxgLDkpVfDjxnL2B8bRoFyMn h4SAicTnn1sYuxi5OIQEljJKHPn6hA0iIS6xe/5bZghbWOLPtS42iKJPjBK/NkAk2AQ0Jf5u vgnWICJgLNF/dhY7SBGzQBurxNzzT9hBEsICsRKXW84zgtgsAqoSG9YdBIvzCphLHLu/AGqb vMTqDQfAhnIKWEhMarkIVi8EVHPo+mLWCYx8CxgZVjGKpJYW56bnFhvpFSfmFpfmpesl5+du YgRG17ZjP7fsYOx6F3yIUYCDUYmHd8ODj3FCrIllxZW5hxglOJiVRHidzp6OE+JNSaysSi3K jy8qzUktPsRoCnTURGYp0eR8YOTnlcQbmhqaW1gamhubG5tZKInzdggcjBESSE8sSc1OTS1I LYLpY+LglGpgzHyWe33Sr6odrDr9/Lpa3bwmxtEJK04yNRb1xlw+cCctITmh7U6Hr8thySjd TaKNN8xnyP1zZO9JeNhfd9P80M42s31Lrj4r+q0d+iLy8SWRC4ky8n45veH5NzznVn+8zvh5 inUcc8fd3P/Cf52ktxx1XVTmbbpNsfb293V8bX8Dl1b5LvFXYinOSDTUYi4qTgQAUptpfMQC AAA= X-CMS-MailID: 20200624114136eucas1p1c84f81b1d78e2dbad7ac1b762f0a4b4f X-Msg-Generator: CA X-RootMTR: 20200624114136eucas1p1c84f81b1d78e2dbad7ac1b762f0a4b4f X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200624114136eucas1p1c84f81b1d78e2dbad7ac1b762f0a4b4f References: <20200624114127.3016-1-a.hajda@samsung.com> X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , "Rafael J. Wysocki" , Jonas Karlman , Bartlomiej Zolnierkiewicz , linux-kernel@vger.kernel.org, "open list:DRM DRIVERS" , Russell King - ARM Linux , Neil Armstrong , Andrzej Hajda , andy.shevchenko@gmail.com, Mark Brown , Laurent Pinchart , linux-arm-kernel@lists.infradead.org, Marek Szyprowski MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Many resource acquisition functions return error value encapsulated in pointer instead of integer value. To simplify coding we can use macro which will accept both types of error. With this patch user can use: probe_err(dev, ptr, ...) instead of: probe_err(dev, PTR_ERR(ptr), ...) Without loosing old functionality: probe_err(dev, err, ...) Signed-off-by: Andrzej Hajda --- drivers/base/core.c | 25 ++----------------------- include/linux/device.h | 25 ++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/drivers/base/core.c b/drivers/base/core.c index 2a96954d5460..df283c62d9c0 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -3953,28 +3953,7 @@ define_dev_printk_level(_dev_info, KERN_INFO); #endif -/** - * probe_err - probe error check and log helper - * @dev: the pointer to the struct device - * @err: error value to test - * @fmt: printf-style format string - * @...: arguments as specified in the format string - * - * This helper implements common pattern present in probe functions for error - * checking: print message if the error is not -EPROBE_DEFER and propagate it. - * In case of -EPROBE_DEFER it sets defer probe reason, which can be checked - * later by reading devices_deferred debugfs attribute. - * It replaces code sequence: - * if (err != -EPROBE_DEFER) - * dev_err(dev, ...); - * return err; - * with - * return probe_err(dev, err, ...); - * - * Returns @err. - * - */ -int probe_err(const struct device *dev, int err, const char *fmt, ...) +int __probe_err(const struct device *dev, int err, const char *fmt, ...) { struct va_format vaf; va_list args; @@ -3992,7 +3971,7 @@ int probe_err(const struct device *dev, int err, const char *fmt, ...) return err; } -EXPORT_SYMBOL_GPL(probe_err); +EXPORT_SYMBOL_GPL(__probe_err); static inline bool fwnode_is_primary(struct fwnode_handle *fwnode) { diff --git a/include/linux/device.h b/include/linux/device.h index 40a90d9bf799..22d3c3d4f461 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -965,7 +965,30 @@ void device_links_supplier_sync_state_pause(void); void device_links_supplier_sync_state_resume(void); extern __printf(3, 4) -int probe_err(const struct device *dev, int err, const char *fmt, ...); +int __probe_err(const struct device *dev, int err, const char *fmt, ...); + +/** + * probe_err - probe error check and log helper + * @dev: the pointer to the struct device + * @err: error value to test, can be integer or pointer type + * @fmt: printf-style format string + * @...: arguments as specified in the format string + * + * This helper implements common pattern present in probe functions for error + * checking: print message if the error is not -EPROBE_DEFER and propagate it. + * In case of -EPROBE_DEFER it sets defer probe reason, which can be checked + * later by reading devices_deferred debugfs attribute. + * It replaces code sequence: + * if (err != -EPROBE_DEFER) + * dev_err(dev, ...); + * return err; + * with + * return probe_err(dev, err, ...); + * + * Returns @err. + * + */ +#define probe_err(dev, err, args...) __probe_err(dev, (long)(err), args) /* Create alias, so I can be autoloaded. */ #define MODULE_ALIAS_CHARDEV(major,minor) \ From patchwork Wed Jun 24 11:41:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrzej Hajda X-Patchwork-Id: 11622977 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 A18B114B7 for ; Wed, 24 Jun 2020 11:41:45 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 7F2A820707 for ; Wed, 24 Jun 2020 11:41:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="Gz061wWw" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7F2A820707 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3E9006EB0A; Wed, 24 Jun 2020 11:41:42 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by gabe.freedesktop.org (Postfix) with ESMTPS id 916096EB07 for ; Wed, 24 Jun 2020 11:41:39 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200624114138euoutp02776c32c01ef40418520612ad69e4899e~beA7YDpqo1752317523euoutp02F for ; Wed, 24 Jun 2020 11:41:38 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200624114138euoutp02776c32c01ef40418520612ad69e4899e~beA7YDpqo1752317523euoutp02F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1592998898; bh=PLcfbVbE8i4C8d+Nje5jm1KODRXZ6RkpBF4pFp7dgN0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Gz061wWwnckgFshr7IHV/S56brednP/fCQN2DoCvt+lOLedpHvoWuBZeA3A9KsT3g YoA4EdOZ3Kab191G9YTSBCBfdMshslJW5od/RbI36r4UDd0Iz6ivjUmvsvNkR8UjIB sBtr/mLupNn0hGQfZWMj8+FCaH4cd42c3YYFkHGU= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20200624114137eucas1p23e078ad0759d9748c9282f41addeff25~beA7CGXw43078130781eucas1p2-; Wed, 24 Jun 2020 11:41:37 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 08.5A.06318.1FB33FE5; Wed, 24 Jun 2020 12:41:37 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200624114137eucas1p13599d33a0c4a9abf7708bf8c8e77264b~beA6t-j1g1213312133eucas1p1o; Wed, 24 Jun 2020 11:41:37 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200624114137eusmtrp10d73154fb2485ece760b250727d8f1fe~beA6tUGSX0702007020eusmtrp1Q; Wed, 24 Jun 2020 11:41:37 +0000 (GMT) X-AuditID: cbfec7f5-371ff700000018ae-3c-5ef33bf187fe Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 74.74.06314.1FB33FE5; Wed, 24 Jun 2020 12:41:37 +0100 (BST) Received: from AMDC3748.digital.local (unknown [106.120.51.74]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200624114136eusmtip2e30c14611d99889046fee0d88d874173~beA6ExH1q1775617756eusmtip2L; Wed, 24 Jun 2020 11:41:36 +0000 (GMT) From: Andrzej Hajda To: Greg Kroah-Hartman Subject: [RESEND PATCH v5 4/5] drm/bridge/sii8620: fix resource acquisition error handling Date: Wed, 24 Jun 2020 13:41:26 +0200 Message-Id: <20200624114127.3016-5-a.hajda@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200624114127.3016-1-a.hajda@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0WSWUxTQRiFM70r1eqlJWGCW6wxcQVMiY5KFI0mN5oYt/hQFa1ygyitpAXc HhCpCAhYqo2IYoiiVUSBsigIgmWppAFFBAEh1YhLq7KEUhFFbXtd3r6c/5zzz0yGxsRWIoCO UsVyapUiWkoK8Yqmb62Lh1eOhAfrbq9APfdaCWTX1QNUkl1EIMObfhL9qsjC0IvRQRIlXS8i UcdXO4aaP3fgKDUrn0Kmt50Eaq+6QiKzoQaguw19FDJn7kS5TgMWxrDtnW0YO9h1mmJrXHk4 W5nTR7GXUy4RrKkglWSf6J4L2NrcQoq1nbUI2NL8BDazrACwdRnncXbENHOzSC4MjeCio+I5 ddCqvcIDje12MubmlKOtn6qpk2BgUhrwoSETAhsHywgPi5lbACa6Qnh2AjiQGpYGhG4eAbDg ewn4G6juOYXzAyOAd7Va8l8iL93XwyQzH06Udnt1P0YGz7XkUJ4AxozjsONMsnedhNkFHfde eVtxZi6s7//hNtG0iFkGJ57K+WWz4J3iOszDPgyCem0b8PRAZpiC+RdbCI8fMuvg2KiE90ug w1JG8TwdWs+n4zwnQNstLcZnUwAsL67E+MFK2Ns6Tnp6MPehi6qCeHkNvJDdA/j6KbDri/da mBv1FRcxXhbBlGQx754NbS3lfwr94Y1noyTPLLx2P0XAP9VZAEuM9ykdmJXzf1keAAXAn4vT KCM5jUzFHQnUKJSaOFVk4P7DShNwfzHrT8voA/Doxz4zYGggnSwqfj0cLiYU8ZpjSjOANCb1 E61tsYaLRRGKY8c59eE96rhoTmMG02hc6i+SXbPvFjORiljuEMfFcOq/UwHtE3ASHFEOBCw3 GuW1WSNbYra3vc9+s1H2bsbVtvFP4Z22apXO2WwAsvpM1Yp9J/rSH0s+mPTbbB8zXjY+JIYc iS56tXzOKWeMpVewY3HhJkfHmHxq9/SN4q3JG/S1Q0mrhXOWLgqUZoZaytc3PXsslexpSsv4 vHBef4PLN+Fn6cFgv0Q/Ka45oFiyAFNrFL8BSXvZ814DAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrAIsWRmVeSWpSXmKPExsVy+t/xe7ofrT/HGdx4rmpxa905VouXEw4z WmycsZ7VYurDJ2wW/7dNZLa48vU9m0Xz4vVsFle/v2S2OPnmKotF58Ql7BabHl9jtbi8aw6b xaGpexkt1h65y25xqC/aYu6XqcwOAh6Xr11k9nh/o5XdY++3BSweO2fdZfeY3TGT1WPTqk42 jxMTLjF57J+7ht3jfvdxJo/NS+o9+rasYvQ40DuZxePzJrkA3ig9m6L80pJUhYz84hJbpWhD CyM9Q0sLPSMTSz1DY/NYKyNTJX07m5TUnMyy1CJ9uwS9jKOXX7IVLOOrOPd6D3sD4zvuLkZO DgkBE4k9t5pYuhi5OIQEljJK7Lp7mxUiIS6xe/5bZghbWOLPtS42iKJPjBLz2reCJdgENCX+ br7JBmKLCBhL9J+dxQ5SxCzQxiox9/wTdpCEsECUxPU5D8GmsgioShx+8gcozsHBK2Au8fd8 FMQCeYnVGw6AzeQUsJCY1HKREcQWAio5dH0x6wRGvgWMDKsYRVJLi3PTc4sN9YoTc4tL89L1 kvNzNzECY2vbsZ+bdzBe2hh8iFGAg1GJh3fDg49xQqyJZcWVuYcYJTiYlUR4nc6ejhPiTUms rEotyo8vKs1JLT7EaAp000RmKdHkfGDc55XEG5oamltYGpobmxubWSiJ83YIHIwREkhPLEnN Tk0tSC2C6WPi4JRqYEzZe8Q4eu8nrqd1WpEmE1N8z54Wa39usfpn6/nT6wW/V7K5dzj/NErb Knlu5ZRPh9q72suuf7Jzmz3D/7hy5eOdDScOXfHbVJjYt91ku3Hi9lsrp35OsWH/NK1LwfeN 23a7LzlMUbFRSVzHj0yS2zbviVSAeOf5KY45rTv3Sf/Z57zIsumZ0QElluKMREMt5qLiRAAc CbrgwwIAAA== X-CMS-MailID: 20200624114137eucas1p13599d33a0c4a9abf7708bf8c8e77264b X-Msg-Generator: CA X-RootMTR: 20200624114137eucas1p13599d33a0c4a9abf7708bf8c8e77264b X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200624114137eucas1p13599d33a0c4a9abf7708bf8c8e77264b References: <20200624114127.3016-1-a.hajda@samsung.com> X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , "Rafael J. Wysocki" , Jonas Karlman , Bartlomiej Zolnierkiewicz , linux-kernel@vger.kernel.org, "open list:DRM DRIVERS" , Russell King - ARM Linux , Neil Armstrong , Andrzej Hajda , andy.shevchenko@gmail.com, Mark Brown , Laurent Pinchart , linux-arm-kernel@lists.infradead.org, Marek Szyprowski MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" In case of error during resource acquisition driver should print error message only in case it is not deferred probe, using probe_err helper solves the issue. Moreover it records defer probe reason for debugging. Signed-off-by: Andrzej Hajda --- drivers/gpu/drm/bridge/sil-sii8620.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/bridge/sil-sii8620.c b/drivers/gpu/drm/bridge/sil-sii8620.c index 92acd336aa89..2f825b2d0098 100644 --- a/drivers/gpu/drm/bridge/sil-sii8620.c +++ b/drivers/gpu/drm/bridge/sil-sii8620.c @@ -2299,10 +2299,8 @@ static int sii8620_probe(struct i2c_client *client, INIT_LIST_HEAD(&ctx->mt_queue); ctx->clk_xtal = devm_clk_get(dev, "xtal"); - if (IS_ERR(ctx->clk_xtal)) { - dev_err(dev, "failed to get xtal clock from DT\n"); - return PTR_ERR(ctx->clk_xtal); - } + if (IS_ERR(ctx->clk_xtal)) + return probe_err(dev, ctx->clk_xtal, "failed to get xtal clock from DT\n"); if (!client->irq) { dev_err(dev, "no irq provided\n"); @@ -2313,16 +2311,12 @@ static int sii8620_probe(struct i2c_client *client, sii8620_irq_thread, IRQF_TRIGGER_HIGH | IRQF_ONESHOT, "sii8620", ctx); - if (ret < 0) { - dev_err(dev, "failed to install IRQ handler\n"); - return ret; - } + if (ret < 0) + return probe_err(dev, ret, "failed to install IRQ handler\n"); ctx->gpio_reset = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH); - if (IS_ERR(ctx->gpio_reset)) { - dev_err(dev, "failed to get reset gpio from DT\n"); - return PTR_ERR(ctx->gpio_reset); - } + if (IS_ERR(ctx->gpio_reset)) + return probe_err(dev, ctx->gpio_reset, "failed to get reset gpio from DT\n"); ctx->supplies[0].supply = "cvcc10"; ctx->supplies[1].supply = "iovcc18"; From patchwork Wed Jun 24 11:41:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrzej Hajda X-Patchwork-Id: 11622981 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 7BAF713B1 for ; Wed, 24 Jun 2020 11:41:50 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 59E8D20707 for ; Wed, 24 Jun 2020 11:41:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="H/NO/4fO" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 59E8D20707 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 38CFB6EB0B; Wed, 24 Jun 2020 11:41:47 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by gabe.freedesktop.org (Postfix) with ESMTPS id BCE4B6EB03 for ; Wed, 24 Jun 2020 11:41:40 +0000 (UTC) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200624114139euoutp01ce74c21ac89d3c4b13516c8cdfb2f21c~beA8cl7ZR2526325263euoutp01k for ; Wed, 24 Jun 2020 11:41:39 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200624114139euoutp01ce74c21ac89d3c4b13516c8cdfb2f21c~beA8cl7ZR2526325263euoutp01k DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1592998899; bh=X33emPDExizY8bpBUTV4hhXKJz6IkQyPKvGe23DV6IU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=H/NO/4fOSF/d6Uwz3KYzsBNHnBO9He3xTGXWmYe1nj6t+ZN+r5hoZ8oO5wNzg8seF n6rQpkENbYQVrIxCC3RG9DwSpZWWDoa81UzzRt63zRFJ2SUHNV0M1YA+LXEmQYX+hX Qk21DJoQnnCtSocqEcAErMIg5zsVuSV+yL/JszuU= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200624114139eucas1p17443dbd7bd4ab9da8e94ca361e9a7b57~beA8DzfVo0380603806eucas1p1c; Wed, 24 Jun 2020 11:41:39 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 99.5A.06318.2FB33FE5; Wed, 24 Jun 2020 12:41:38 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200624114138eucas1p262505da3ad1067720080d20209ff32de~beA7bnkeo0284802848eucas1p2a; Wed, 24 Jun 2020 11:41:38 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200624114138eusmtrp18a17f57b5a73296f6d6bac1c769c480a~beA7a6fvi0702007020eusmtrp1S; Wed, 24 Jun 2020 11:41:38 +0000 (GMT) X-AuditID: cbfec7f5-371ff700000018ae-40-5ef33bf2c735 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 06.53.06017.2FB33FE5; Wed, 24 Jun 2020 12:41:38 +0100 (BST) Received: from AMDC3748.digital.local (unknown [106.120.51.74]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200624114137eusmtip2331767d1009f8c93f97e804d1503ae21~beA6uKWf32681426814eusmtip2k; Wed, 24 Jun 2020 11:41:37 +0000 (GMT) From: Andrzej Hajda To: Greg Kroah-Hartman Subject: [RESEND PATCH v5 5/5] drm/bridge: lvds-codec: simplify error handling code Date: Wed, 24 Jun 2020 13:41:27 +0200 Message-Id: <20200624114127.3016-6-a.hajda@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200624114127.3016-1-a.hajda@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0WSaUhUURTHufPevPdmcOw5Cl4skyYKVNLElkuWWZi8D30QIggjbdKHijOO zLhkC0qay2g2ara45LiEYpo6LrnkwiSpyJh7JskUWai4YC6ppeX4tL79zv/8/+ccLpfCxAa+ DRUcGs4qQ6UyCSHE69+tvT/yw23R92hJ3Bk09qqXj6Y0bwGqflrJR1lfJgj0pz4dQ0PL8wSK K6ok0PDPKQx1zwzjKDm9mES6ryN8NNiUSyB9VgtAFR3jJNKnXUV5S1mYB80MjvRjzPzofZJp WdHiTGP2OMnkJD3jM7qyZILp0gzwmLa8cpIxpnTymJriGCattgww7Q8ycWZRt99b5CM8HcDK giNZpbP7dWFQdXsuHtYluNlceDsWaCg1EFCQPgbrBlswNRBSYroUwPLWRT5XLAE421bC44pF ANW6WP5uZPlxH2FiMV0CYGL7iX+J5pzvwNQgaHu4UfNx22RFu8KHhmzSZMLodRwOJyZsT7Kk L8O1lYptE04fgs+ni3ETi+iTMP/DHOC22cGXVe2YiQU0ghnx/cA0CNJTJFztnsQ4kyfUaFN4 HFvC6c5akuN9sCczFec4BhpL4zEunARgXVXjTtgNfupd37qC2jrPHlY2OXPyOTinNZImGdLm cHTWwiRjW5hR/wTjZBFMShBz7gPQaKjbGWgNX/QtE5yFgSuaC9z7pABY0t0FNMAu+/8uLQBl wJqNUMkDWZVrKBvlpJLKVRGhgU7+CrkObH2yns3O5QbQ+vuGHtAUkJiJqj4v+Ir50khVtFwP IIVJrETnDT2+YlGANPoWq1T4KSNkrEoP9lK4xFrkWjh1TUwHSsPZEJYNY5W7XR4lsIkFlnI7 Y4F5mvNZb4vqPvb1cHac+6jEUdif1PGry83TX5LsnF8hveJiNl3rYMTvua0aLimGCC8zj40c v9QixcZEh/qu7I7D5tqkT6/tnrH6gkcyW7pAcTx1ydPrTbFjWIW/rdq9oSgKhICJbws1h93L 4mwHLgoun0ozzIzlHpxrk+CqIKmLA6ZUSf8C5ER1kGADAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrAIsWRmVeSWpSXmKPExsVy+t/xe7qfrD/HGXT1iVrcWneO1eLlhMOM FhtnrGe1mPrwCZvF/20TmS2ufH3PZtG8eD2bxdXvL5ktTr65ymLROXEJu8Wmx9dYLS7vmsNm cWjqXkaLtUfuslsc6ou2mPtlKrODgMflaxeZPd7faGX32PttAYvHzll32T1md8xk9di0qpPN 48SES0we++euYfe4332cyWPzknqPvi2rGD0O9E5m8fi8SS6AN0rPpii/tCRVISO/uMRWKdrQ wkjP0NJCz8jEUs/Q2DzWyshUSd/OJiU1J7MstUjfLkEvY+OBOSwFJzgrdi+qbmCcwNHFyMkh IWAi8XXaBbYuRi4OIYGljBJf/81igUiIS+ye/5YZwhaW+HOtC6roE6PEmpsf2UASbAKaEn83 3wSzRQSMJfrPzmIHKWIWaGOVmHv+CTtIQlggWOLEu4lgRSwCqhLzXi0B28ArYC4x//o7RogN 8hKrNxwA28YpYCExqeUiWFwIqObQ9cWsExj5FjAyrGIUSS0tzk3PLTbSK07MLS7NS9dLzs/d xAiMrW3Hfm7Zwdj1LvgQowAHoxIP74YHH+OEWBPLiitzDzFKcDArifA6nT0dJ8SbklhZlVqU H19UmpNafIjRFOioicxSosn5wLjPK4k3NDU0t7A0NDc2NzazUBLn7RA4GCMkkJ5YkpqdmlqQ WgTTx8TBKdXAaOazOerERIb2reoCy7V8Mk9z7j64vTIod/40I4O1qVVPzqkb/Kh2DTlflSp3 /wNffOqkzyIPZ/2Vigj9KDNjYWjNfgatC8/fXVHfUlm98alIxrztrIbSJutUSq12S91VeMon MN93gXCv3DpHQ8ul2tP/zk6p2h2mfyVfevv6e3OM3/d4i/1WVmIpzkg01GIuKk4EAIHGSnLD AgAA X-CMS-MailID: 20200624114138eucas1p262505da3ad1067720080d20209ff32de X-Msg-Generator: CA X-RootMTR: 20200624114138eucas1p262505da3ad1067720080d20209ff32de X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200624114138eucas1p262505da3ad1067720080d20209ff32de References: <20200624114127.3016-1-a.hajda@samsung.com> X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , "Rafael J. Wysocki" , Jonas Karlman , Bartlomiej Zolnierkiewicz , linux-kernel@vger.kernel.org, "open list:DRM DRIVERS" , Russell King - ARM Linux , Neil Armstrong , Andrzej Hajda , andy.shevchenko@gmail.com, Mark Brown , Laurent Pinchart , linux-arm-kernel@lists.infradead.org, Marek Szyprowski MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Using probe_err code has following advantages: - shorter code, - recorded defer probe reason for debugging, - uniform error code logging. Signed-off-by: Andrzej Hajda --- drivers/gpu/drm/bridge/lvds-codec.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/bridge/lvds-codec.c b/drivers/gpu/drm/bridge/lvds-codec.c index 24fb1befdfa2..c76fa0239e39 100644 --- a/drivers/gpu/drm/bridge/lvds-codec.c +++ b/drivers/gpu/drm/bridge/lvds-codec.c @@ -71,13 +71,8 @@ static int lvds_codec_probe(struct platform_device *pdev) lvds_codec->connector_type = (uintptr_t)of_device_get_match_data(dev); lvds_codec->powerdown_gpio = devm_gpiod_get_optional(dev, "powerdown", GPIOD_OUT_HIGH); - if (IS_ERR(lvds_codec->powerdown_gpio)) { - int err = PTR_ERR(lvds_codec->powerdown_gpio); - - if (err != -EPROBE_DEFER) - dev_err(dev, "powerdown GPIO failure: %d\n", err); - return err; - } + if (IS_ERR(lvds_codec->powerdown_gpio)) + return probe_err(dev, lvds_codec->powerdown_gpio, "powerdown GPIO failure\n"); /* Locate the panel DT node. */ panel_node = of_graph_get_remote_node(dev->of_node, 1, 0);