From patchwork Thu Dec 22 19:14:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Umang Jain X-Patchwork-Id: 35918 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp122430wrn; Thu, 22 Dec 2022 11:19:06 -0800 (PST) X-Google-Smtp-Source: AMrXdXumuSF6hFDQib/vKGst/n63wA4OYSJD8zjOJy4cOuO4e8vsoQnALU+j3quJRxG7PV8BZ49u X-Received: by 2002:a05:6a00:1485:b0:57f:ef11:acf6 with SMTP id v5-20020a056a00148500b0057fef11acf6mr8818001pfu.8.1671736745719; Thu, 22 Dec 2022 11:19:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671736745; cv=none; d=google.com; s=arc-20160816; b=NnypiyA0b6VegcVO1AkI+bsKFgmbekQwA6w3bg+Z5q7RnlgHm+QdFvjn751y8PjUzX zv6KjaxhaImBkgq/X2LG997v3NxJ4BkVCUpSMATEon/AXmPmZKRgjCXVfBP+kP2VXJE2 sAT7YiV3shNGXtwuyJnlcm53zAk0WYoyJtXeg7fdMxsOTMdZq5rm5v/u07balQmwgx8z QMyask/gJPIVX5mPpUGSKJg2dcOHeNwfPebUbpz+8x00y8YSadyWpzWmue15/M/OpLLk XAuqSeIS3RL+4DcaTKmy20PZ4KzoApHbCSXmxsXhJWBwVgGnjpAxidp9NrM/pIegSrBI l0zA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=J1BMjnKy4Q6KCjFZkjtwU12CkXSJqASWFE5MZyj0Jdk=; b=vHiACF1bUug+uR7TGTgdZVkNt3WbA5Z2eibKTiAo6soZeOVWd1CkwuQvFMSOUG6Lom 4I/uveClC6FskdyTCkoSHKpTH/lt3ZXxtjNwdcLKIO1T/gjyHOFbitMD69E8apa2Dg8K TULnDzlf5aQNX1Sjo1OUl7WF7kPyo05zyymqwJOuRLj6lV84CV0/fCu7sQa5mRzyFJjz LH/uRSsnKY1FGN9FCLPxu/4pRvym3/ERI3fmKjkRaLXqO3fAe669em755Q/Zi9E1Yuuy fcKT35w5vHKpCMFHS3btQOybsq1KstcFX5phw7yinr2goZ+Fe+2LLi+YmfweLERYVHGX 7ldQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=ngtNY6j8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j67-20020a625546000000b00577c17000e1si1300695pfb.280.2022.12.22.11.18.52; Thu, 22 Dec 2022 11:19:05 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=ngtNY6j8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235300AbiLVTPY (ORCPT + 99 others); Thu, 22 Dec 2022 14:15:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45934 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230206AbiLVTPV (ORCPT ); Thu, 22 Dec 2022 14:15:21 -0500 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 346FC27DE4; Thu, 22 Dec 2022 11:15:20 -0800 (PST) Received: from umang.jainideasonboard.com (unknown [IPv6:2401:4900:1f3f:d076:4da6:b729:f032:ed0a]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 42193890; Thu, 22 Dec 2022 20:15:12 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1671736518; bh=6uYCqoGzATUwi33s8qwvH2BR201HZIZgkpsRD/uga5I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ngtNY6j8Irf0q8DYlJnrYOOiK2jqTxM+kAzkuHj3rAgfw3ZJABT0ddX64ZpV3JJ1P NM9rWtLFodm8PIs2zQIisV8Iswy9mhy0JyIS0qXs3yVy1vdnZ5zXj2speGm+fyQJju VmkFWDDPv1gYfAVBZ0PMD60gGTEPetazrd/wcVY0= From: Umang Jain To: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org Cc: Greg Kroah-Hartman , Adrien Thierry , Stefan Wahren , Florian Fainelli , Dan Carpenter , Nicolas Saenz Julienne , Phil Elwell , Dave Stevenson , Kieran Bingham , Laurent Pinchart , Umang Jain Subject: [PATCH v2 1/4] staging: vc04_services: Stop leaking platform device on error path Date: Fri, 23 Dec 2022 00:44:57 +0530 Message-Id: <20221222191500.515795-2-umang.jain@ideasonboard.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221222191500.515795-1-umang.jain@ideasonboard.com> References: <20221222191500.515795-1-umang.jain@ideasonboard.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752943029703732411?= X-GMAIL-MSGID: =?utf-8?q?1752943029703732411?= vchiq driver registers the child platform devices in vchiq_register_child(). However, in the registration error code path, currently the driver is leaking platform devices by not destroying the return platform device. Plug this leak using platform_device_put() as mentioned in the documentation for platform_device_register(). Signed-off-by: Umang Jain --- drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c index dc33490ba7fb..fc7ea7ba97b2 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c @@ -1779,6 +1779,7 @@ vchiq_register_child(struct platform_device *pdev, const char *name) child = platform_device_register_full(&pdevinfo); if (IS_ERR(child)) { dev_warn(&pdev->dev, "%s not registered\n", name); + platform_device_put(child); child = NULL; } From patchwork Thu Dec 22 19:14:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Umang Jain X-Patchwork-Id: 35919 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp122475wrn; Thu, 22 Dec 2022 11:19:11 -0800 (PST) X-Google-Smtp-Source: AMrXdXtQaBrpnCIVK9pk9ndceiUf1oNW0+d4KYIkyjbs9Ex+Vy/DvAxDDxK2/VOPfgSnvd1oJq5u X-Received: by 2002:a17:902:ccc1:b0:189:5ff5:eb92 with SMTP id z1-20020a170902ccc100b001895ff5eb92mr8590454ple.39.1671736750817; Thu, 22 Dec 2022 11:19:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671736750; cv=none; d=google.com; s=arc-20160816; b=v+zwwxqrnAz3x6i6IgkwIuNkG+FODDEzd7IS6W9XHNdmQ2BIHLrNTl0rmzqBNBcMKM elyE9HpxegO9wh/agwV/2PoPeJ1aBwC2bEXD/ETqHhEDbr8nRkmxqapCmvO8rpay1k2A Mxe0RUaQs9pLR+5bu7hkl829YgPSodc+Z5xzEi46WEGVj7gVD/08T/6HlgJOSh0BHrzq 699cL0lWzQ4nD6TDgTrHmQHvNYMwKmYDntO2l0ssXXcx8h138NmBamwCMiPJEmPLPrSP PCgsQisawlwwG+v3AhXz467fIj8DIDgz+HaUK7XKjGwyqxFwhwMJxTpjZYpypmjnzqY/ 9w/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=MCpIvJwRHl2v4L/ZOyFtefuYv3gwHd6nRi/XXGQgJ4g=; b=EosLOB5PWoyGNr2+cfhvNZUzVhnXmwcYmG9CywIB+8jV4GCxguhhZuvHogbNp+FYpR zDVyuDcdQ7Fd1XDlko9Qdm66xhcSj81f1oqaMgyBUjiJqoqaT+3RT53N9S7ARwn2gCW+ Yi/n5nMAkhUbrWB4p5GEwiPPl3oCdIs3RFtrQY6bDc+I62zXpsOI+GsZujOYXE0I+5WF FZxtC9pLVR8f4KjDR5m8crhKQWnPzpLxk9zFuNB6ysVSuw5XycFgGZ2Ov+Kb5R4hndMV 5r7UmIEei8aWBJbcxeHHnAayoWUsuZsRjdlGa8JTIlivS5UgWeXpezU+IbtpQ4YAYnt9 Zjrg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=e4std9e1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l7-20020a170903120700b001747ed48ee8si1375424plh.150.2022.12.22.11.18.58; Thu, 22 Dec 2022 11:19:10 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=e4std9e1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235329AbiLVTPd (ORCPT + 99 others); Thu, 22 Dec 2022 14:15:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45966 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235394AbiLVTP0 (ORCPT ); Thu, 22 Dec 2022 14:15:26 -0500 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ECAA228E31; Thu, 22 Dec 2022 11:15:25 -0800 (PST) Received: from umang.jainideasonboard.com (unknown [IPv6:2401:4900:1f3f:d076:4da6:b729:f032:ed0a]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 49B6E89F; Thu, 22 Dec 2022 20:15:19 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1671736524; bh=ZVkLGUNPuXKW9TCCk2CvFJa796G8cO0C9Y1XT9ye/iw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=e4std9e1LWG4Z+fh4/ZeD7HFUx10A7JSRR2HuymdcZYROvVfrwjbticYFHytoJJnp vNfowK277ndSn0PNfBxt3BOKF4jjGA0NIPpvfXar9wSqXQpowknm4mdOB1HwIqU7n/ 8Bn5vQv1ia7ly4RIZLI2fiu0hwoHCIO/Q+CsRF3w= From: Umang Jain To: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org Cc: Greg Kroah-Hartman , Adrien Thierry , Stefan Wahren , Florian Fainelli , Dan Carpenter , Nicolas Saenz Julienne , Phil Elwell , Dave Stevenson , Kieran Bingham , Laurent Pinchart , Umang Jain Subject: [PATCH v2 2/4] staging: vchiq: Do not assign default dma_mask explicitly Date: Fri, 23 Dec 2022 00:44:58 +0530 Message-Id: <20221222191500.515795-3-umang.jain@ideasonboard.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221222191500.515795-1-umang.jain@ideasonboard.com> References: <20221222191500.515795-1-umang.jain@ideasonboard.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752943035414389879?= X-GMAIL-MSGID: =?utf-8?q?1752943035414389879?= The vchiq driver assigns DMA_BIT_MASK(32) to the child platform devices it registers. By default, platform_device_register_* helpers assign DMA_BIT_MASK(32) dma_mask to the platform devices it registers. It is unnecessary to define it explicitly in struct platform_device_info hence, drop this explicit dma_mask assignment. This will help simplying the vchiq_register_child() going forwards. No functional changes intended in this patch. Signed-off-by: Umang Jain --- drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c index fc7ea7ba97b2..3c4766375daa 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c @@ -1774,7 +1774,6 @@ vchiq_register_child(struct platform_device *pdev, const char *name) pdevinfo.parent = &pdev->dev; pdevinfo.name = name; pdevinfo.id = PLATFORM_DEVID_NONE; - pdevinfo.dma_mask = DMA_BIT_MASK(32); child = platform_device_register_full(&pdevinfo); if (IS_ERR(child)) { From patchwork Thu Dec 22 19:14:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Umang Jain X-Patchwork-Id: 35920 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp122810wrn; Thu, 22 Dec 2022 11:20:07 -0800 (PST) X-Google-Smtp-Source: AMrXdXu+uJHWk0UaHfGflAlQHzeSQO67+szAifirWVpUNSPHzZyv5UkhVPzLJGcmQ5WlDrt4/o/c X-Received: by 2002:a62:ed08:0:b0:577:272f:fdb with SMTP id u8-20020a62ed08000000b00577272f0fdbmr5913434pfh.29.1671736806799; Thu, 22 Dec 2022 11:20:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671736806; cv=none; d=google.com; s=arc-20160816; b=FJ5ySTMZ2CQeiuPoOrUjTxKwBSg0rIFBi+5Ou/kapbROOo3FbZhb4hjntvdl6VawYa bvWSWeBLAux+pKwQMY0U21EGUKiP6unIH8NXXs5BWi2c5gVyZrERlybRC/x/FFzUpdTZ tslTq5jWreIM/4T3UCo1MiBmuo6JrIaQcKJPyuCaxfsJfP88cq5EMe0M2sftxPgaeCPm 8ZEPZzu3IMbjSPtjYK8OHbpRbT1CsYhIkzcETrWGjLN95CeSa+ISAif/uVXMoxDXvfhJ eCQj0Pb7r/ltdq22WUiwwXxJnKOaoiG/dgk2sN9SU81ozflytk2OEg/PajNOr2Z7gBeD 2QQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=/g6c/kkciUBQItbF+Vmmebv62h5qUeG2Zc3SKsvElFM=; b=mWgvsxNGkQy5DfqQRkvlA99amXbgsYfLWMmT9m5t9OLEXtPbNlEneiMlQ4EBQrCA0r VnAnW6iUCPuGB0v0T5yzbCzy3E98AORLw+1IbhllsptE1hOIFOvxoLfETk2R9v0l88gv 55VzgyiX2yaE9yvjEJ5fOQ9cHlJcjeA+G3NE5XUBkspjjqEelMfD+yQ488qsFl5LG8kq MAdAK4gHYzQ6glbDHzmj7//yubIj+qA547YmWuabwmeFQ+//slh8mAKLZ9bwJxlXqb+t mCx9qIMRDdQkMERq+Ij4ggKUPa2Zv6D13GAoyv3BuqxZyaHhDaS1w5tX+6I16yuhNPGD FSPQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=Tl8lcCTt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t1-20020a056a0021c100b00536ee478380si1586075pfj.7.2022.12.22.11.19.53; Thu, 22 Dec 2022 11:20:06 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=Tl8lcCTt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235531AbiLVTPh (ORCPT + 99 others); Thu, 22 Dec 2022 14:15:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46048 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235454AbiLVTPd (ORCPT ); Thu, 22 Dec 2022 14:15:33 -0500 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0FDB328E38; Thu, 22 Dec 2022 11:15:31 -0800 (PST) Received: from umang.jainideasonboard.com (unknown [IPv6:2401:4900:1f3f:d076:4da6:b729:f032:ed0a]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 56073471; Thu, 22 Dec 2022 20:15:25 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1671736530; bh=bqvMP11pqYGYAC5IZOywqjG3I9GF/0iY9Gg7h2H8QBs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Tl8lcCTtBojKEuNJ8j+cnCa7NsqslZ/z3PEjsWPTzSUny88AVie/m6bS1/CJfboa4 yhk8NKmdqAN/+nuzHtsQhOui3SeFIdyhWigmoReRGlfp5e52gmnIvExLyXf5cvh27u m+01+akz6BoJrrgkRVYJEjxXAwz10DXh4qkfN1qU= From: Umang Jain To: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org Cc: Greg Kroah-Hartman , Adrien Thierry , Stefan Wahren , Florian Fainelli , Dan Carpenter , Nicolas Saenz Julienne , Phil Elwell , Dave Stevenson , Kieran Bingham , Laurent Pinchart , Umang Jain Subject: [PATCH v2 3/4] staging: vchiq: Simplify platform devices registration Date: Fri, 23 Dec 2022 00:44:59 +0530 Message-Id: <20221222191500.515795-4-umang.jain@ideasonboard.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221222191500.515795-1-umang.jain@ideasonboard.com> References: <20221222191500.515795-1-umang.jain@ideasonboard.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752943093774972950?= X-GMAIL-MSGID: =?utf-8?q?1752943093774972950?= The child platform devices registered by the vchiq driver currently populates a struct platform_device_info with a name and parent device and uses platform_device_register_full() to its registration. It can be simplified by using platform_device_register_data() directly (which encapsulates populating the platform_device_info struct and a platform_device_register_full() call in itself). Signed-off-by: Umang Jain --- .../vc04_services/interface/vchiq_arm/vchiq_arm.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c index 3c4766375daa..ba34e4d603d4 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c @@ -1766,16 +1766,10 @@ MODULE_DEVICE_TABLE(of, vchiq_of_match); static struct platform_device * vchiq_register_child(struct platform_device *pdev, const char *name) { - struct platform_device_info pdevinfo; struct platform_device *child; - memset(&pdevinfo, 0, sizeof(pdevinfo)); - - pdevinfo.parent = &pdev->dev; - pdevinfo.name = name; - pdevinfo.id = PLATFORM_DEVID_NONE; - - child = platform_device_register_full(&pdevinfo); + child = platform_device_register_data(&pdev->dev, name, PLATFORM_DEVID_NONE, + NULL, 0); if (IS_ERR(child)) { dev_warn(&pdev->dev, "%s not registered\n", name); platform_device_put(child); From patchwork Thu Dec 22 19:15:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Umang Jain X-Patchwork-Id: 35921 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp123172wrn; Thu, 22 Dec 2022 11:21:05 -0800 (PST) X-Google-Smtp-Source: AMrXdXvgbAFhWsCpd30jIFrdLGTGTcn718gxw94luyvBpJZEUbKU8QskDmotoQ2kBOMS4obqhYFM X-Received: by 2002:a17:906:7188:b0:7c0:f117:6990 with SMTP id h8-20020a170906718800b007c0f1176990mr5606438ejk.41.1671736865354; Thu, 22 Dec 2022 11:21:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671736865; cv=none; d=google.com; s=arc-20160816; b=MBN5LSSgeql1MjumcbRyZAKhWg17yivWcFBe7IUdcy6KJeL88/FoR9TPgk+Yd/ppHJ O5zldwjvUz2TdWzdQqZLsUc2nCna1FfHmYsDQmhjGhS1e6534GIX7GFM6uaJRWa+U6hf 0BudpX+7OqPvAp4ZZwaNuzRCHfuu+kgb6jAIwkzuJaTV4RzfJzgu+DdHRnqR+bPDTOr0 YDGkHNtRKo+B9/Z8oEG6rcGpnQ4QBvL4o6fk77kmEH/jfKa04u31EfsVHXIxEf588vf5 n1KWPg4l3PcOxqzRw0sTlNtovTOfFRPiS0snRoA82opA8GvWSv8CXbV1Gi/8Bpp6da+T EciA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=UrpqrxfGmpOWSElyc/xQdyqiaP6kQ9+I/K4GMuGoS2U=; b=BrNpklo19nTCOlTV9gdU9cZXI7iIZGTNIJItlomhHv86M0eFxTYOmGKe0Z138Qw+Pk yt1xuHPIuy9aRN/inhHJjwhjhkHOPtTA0BERsGFOkJ6EfWhgXoXVrv+B8QE3maBlxmtd r666hZx9oEAwd0ugd8Rdn2/eh7TexGKBPRZkKgSmDWv+ozPL5QT95jtYv02onL3cxUh+ 6oJ1JAfLa6s7ZDReMdQljnQt0qCXThwmuQjJKFm5JYHsVCMiy4MbQWHhOj4Vz/i7hQkO fYKSbXx1OEgVKJIfUutpphEx7irFvT73HmC32rWg3m9xAwfVfgj5eSR9whZhDFeUgT+q r5iA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=aITi7TmA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id cs17-20020a170906dc9100b00812e75e5257si1198415ejc.293.2022.12.22.11.20.41; Thu, 22 Dec 2022 11:21:05 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=aITi7TmA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235507AbiLVTPu (ORCPT + 99 others); Thu, 22 Dec 2022 14:15:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46094 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235397AbiLVTPn (ORCPT ); Thu, 22 Dec 2022 14:15:43 -0500 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7E2EC28E3F; Thu, 22 Dec 2022 11:15:38 -0800 (PST) Received: from umang.jainideasonboard.com (unknown [IPv6:2401:4900:1f3f:d076:4da6:b729:f032:ed0a]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 5558AD1D; Thu, 22 Dec 2022 20:15:31 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1671736536; bh=UfLBAATkzD9U4stHiW/1mzjiTeAr0HmtQX04bnFhvF8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aITi7TmA0EOroVzsJ9FqxJ9gy86SyUVUC++vZHXksel5bCRccVmDOWyJ1AKMjRP6l eWO0vHChMq/M/Zu1NQDBBqlHF54SlBUCc0nG7AFaTKZPdlgPte+Kr2UxaiYctcWfkh Dv/0GvVDWBScvp380GaZb/IE9nRaPY5XoK7Dch6s= From: Umang Jain To: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org Cc: Greg Kroah-Hartman , Adrien Thierry , Stefan Wahren , Florian Fainelli , Dan Carpenter , Nicolas Saenz Julienne , Phil Elwell , Dave Stevenson , Kieran Bingham , Laurent Pinchart , Umang Jain Subject: [PATCH v2 4/4] staging: vchiq: Rework child platform device (un)register Date: Fri, 23 Dec 2022 00:45:00 +0530 Message-Id: <20221222191500.515795-5-umang.jain@ideasonboard.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221222191500.515795-1-umang.jain@ideasonboard.com> References: <20221222191500.515795-1-umang.jain@ideasonboard.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752943086651139892?= X-GMAIL-MSGID: =?utf-8?q?1752943155361000412?= This patch reworks how the child platform devices are (un)registered by the vchiq driver. It drops the global references to the child platform devices thereby reducing the scope of platform device access to probe() function only. It does so, by maintaining an array of platform device names and registering each of them through vchiq_register_child(). In addition to that, any new child platform device can be (un)regsitered easily by just appending to the child platform devices' array. For platform device unregisterion, device_for_each_child() helper is used to call vchiq_unregister_child() on each of the child platform device of vchiq driver. This is part of an effort to address TODO item "Get rid of all non essential global structures and create a proper per device structure" Signed-off-by: Umang Jain --- .../interface/vchiq_arm/vchiq_arm.c | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c index ba34e4d603d4..d04dbea833ac 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c @@ -65,9 +65,6 @@ int vchiq_susp_log_level = VCHIQ_LOG_ERROR; DEFINE_SPINLOCK(msg_queue_spinlock); struct vchiq_state g_state; -static struct platform_device *bcm2835_camera; -static struct platform_device *bcm2835_audio; - struct vchiq_drvdata { const unsigned int cache_line_size; struct rpi_firmware *fw; @@ -1763,7 +1760,7 @@ static const struct of_device_id vchiq_of_match[] = { }; MODULE_DEVICE_TABLE(of, vchiq_of_match); -static struct platform_device * +static void vchiq_register_child(struct platform_device *pdev, const char *name) { struct platform_device *child; @@ -1773,10 +1770,18 @@ vchiq_register_child(struct platform_device *pdev, const char *name) if (IS_ERR(child)) { dev_warn(&pdev->dev, "%s not registered\n", name); platform_device_put(child); - child = NULL; } +} - return child; +static int +vchiq_unregister_child(struct device *dev, void *data) +{ + struct platform_device *pdev; + + pdev = to_platform_device(dev); + platform_device_unregister(pdev); + + return 0; } static int vchiq_probe(struct platform_device *pdev) @@ -1784,6 +1789,10 @@ static int vchiq_probe(struct platform_device *pdev) struct device_node *fw_node; const struct of_device_id *of_id; struct vchiq_drvdata *drvdata; + const char *const vchiq_devices[] = { + "bcm2835_audio", + "bcm2835-camera", + }; int err; of_id = of_match_node(vchiq_of_match, pdev->dev.of_node); @@ -1826,8 +1835,8 @@ static int vchiq_probe(struct platform_device *pdev) goto error_exit; } - bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera"); - bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio"); + for (unsigned int i = 0; i < ARRAY_SIZE(vchiq_devices); i++) + vchiq_register_child(pdev, vchiq_devices[i]); return 0; @@ -1839,8 +1848,7 @@ static int vchiq_probe(struct platform_device *pdev) static int vchiq_remove(struct platform_device *pdev) { - platform_device_unregister(bcm2835_audio); - platform_device_unregister(bcm2835_camera); + device_for_each_child(&pdev->dev, NULL, vchiq_unregister_child); vchiq_debugfs_deinit(); vchiq_deregister_chrdev();