From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3EA2AE95A9A for ; Mon, 9 Oct 2023 04:21:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=yM7e37eC8OvN1glCGXnUqXAjxTzu/XtOg75cLNDvIs0=; b=FsyDtJV51m+fKz SUFe3K61pU3LTXl/N5VUt5WAWD977MmtFyrRDvWJ/+nx9hq+ER5Plh6eoYVeB4PT9ceM1OJsq+fkq 7jCLXAfvumMrIKuDllScsb9RzpPDQtXD+nfDMD87H+OdirSiTeDzQIZTSprCkWDoqBd1zswXyfUp5 vMqaeaRIwxwbIs/YI4JD6i3zY6jkZSkHke40TXXPrOdCzP7pFWb+d8KdXXUD3G6nHVGhZQpVl5qDT dLjZqQQ3MxkHeA6QfzF8eRwN0vdAK90EvqqiuM6yB7P7sE7BgW6Gaei/Q62n4Cudj1EUZfs5kazYl pyOXSRhojreHrmnrcqAg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qphlW-009kLM-37; Mon, 09 Oct 2023 04:21:10 +0000 Received: from perceval.ideasonboard.com ([213.167.242.64]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qphlS-009kJW-2t; Mon, 09 Oct 2023 04:21:09 +0000 Received: from [IPV6:2405:201:2033:3002:3848:5d20:59c9:c87c] (unknown [IPv6:2405:201:2033:3002:3848:5d20:59c9:c87c]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 0A0DA7E2; Mon, 9 Oct 2023 06:20:32 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1696825236; bh=URhdcf9Gev8qtsp31WCRgvQgEzVy8RKTsFfQJTfBblg=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=p9OxtqUNtk6NQli6LyOoFyESdOPTBihJcA/g6nYcyuf5AjldlzXNZoKAhtiI9gJ5O L5YwdGT+SX39SWzfOITTp7nmk/AOhMVNS4HWfzWvy4z6sc781f95RlCwoBGYkyKeAO z8wjeXKFPVT7qDNhXTm/gle5ij1kQa9CcDnxy7zE= Message-ID: Date: Mon, 9 Oct 2023 09:50:29 +0530 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: [PATCH v12 5/6] staging: bcm2835-camera: Register bcm2835-camera with vchiq_bus_type To: Greg Kroah-Hartman Cc: linux-staging@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-rpi-kernel@lists.infradead.org, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Stefan Wahren , Florian Fainelli , Adrien Thierry , Dan Carpenter , Dave Stevenson , Kieran Bingham , Laurent Pinchart References: <20230923143200.268063-1-umang.jain@ideasonboard.com> <20230923143200.268063-6-umang.jain@ideasonboard.com> <2023100542-gluten-rally-5a96@gregkh> Content-Language: en-US From: Umang Jain In-Reply-To: <2023100542-gluten-rally-5a96@gregkh> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231008_212107_106497_1CAA17A3 X-CRM114-Status: GOOD ( 20.39 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Greg, Sorry for late reply, as I was traveling and then was on vacation for rest of the week. On 10/5/23 1:34 PM, Greg Kroah-Hartman wrote: > On Sat, Sep 23, 2023 at 08:01:59PM +0530, Umang Jain wrote: >> Register the bcm2835-camera with the vchiq_bus_type instead of using >> platform driver/device. >> >> Since we moved away bcm2835-camera from platform driver/device, >> we have to set the DMA mask explicitly. Set the DMA mask at probe >> time. >> >> Also the VCHIQ firmware doesn't support device enumeration, hence >> one has to maintain a list of devices to be registered in the interface. >> >> Signed-off-by: Umang Jain >> --- >> .../bcm2835-camera/bcm2835-camera.c | 21 ++++++++++--------- >> .../interface/vchiq_arm/vchiq_arm.c | 11 +++++++--- >> 2 files changed, 19 insertions(+), 13 deletions(-) >> >> diff --git a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c >> index fcad5118f3e8..c873eace1437 100644 >> --- a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c >> +++ b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c >> @@ -11,6 +11,7 @@ >> * Luke Diamand @ Broadcom >> */ >> >> +#include >> #include >> #include >> #include >> @@ -24,8 +25,8 @@ >> #include >> #include >> #include >> -#include >> >> +#include "../interface/vchiq_arm/vchiq_bus.h" >> #include "../vchiq-mmal/mmal-common.h" >> #include "../vchiq-mmal/mmal-encodings.h" >> #include "../vchiq-mmal/mmal-vchiq.h" >> @@ -1841,7 +1842,7 @@ static struct v4l2_format default_v4l2_format = { >> .fmt.pix.sizeimage = 1024 * 768, >> }; >> >> -static int bcm2835_mmal_probe(struct platform_device *pdev) >> +static int bcm2835_mmal_probe(struct vchiq_device *device) >> { >> int ret; >> struct bcm2835_mmal_dev *dev; >> @@ -1852,9 +1853,9 @@ static int bcm2835_mmal_probe(struct platform_device *pdev) >> unsigned int resolutions[MAX_BCM2835_CAMERAS][2]; >> int i; >> >> - ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)); >> + ret = dma_set_mask_and_coherent(&device->dev, DMA_BIT_MASK(32)); >> if (ret) { >> - dev_err(&pdev->dev, "dma_set_mask_and_coherent failed: %d\n", ret); >> + dev_err(&device->dev, "dma_set_mask_and_coherent failed: %d\n", ret); >> return ret; >> } >> >> @@ -1902,7 +1903,7 @@ static int bcm2835_mmal_probe(struct platform_device *pdev) >> &camera_instance); >> ret = v4l2_device_register(NULL, &dev->v4l2_dev); >> if (ret) { >> - dev_err(&pdev->dev, "%s: could not register V4L2 device: %d\n", >> + dev_err(&device->dev, "%s: could not register V4L2 device: %d\n", >> __func__, ret); >> goto free_dev; >> } >> @@ -1982,7 +1983,7 @@ static int bcm2835_mmal_probe(struct platform_device *pdev) >> return ret; >> } >> >> -static void bcm2835_mmal_remove(struct platform_device *pdev) >> +static void bcm2835_mmal_remove(struct vchiq_device *device) >> { >> int camera; >> struct vchiq_mmal_instance *instance = gdev[0]->instance; >> @@ -1994,17 +1995,17 @@ static void bcm2835_mmal_remove(struct platform_device *pdev) >> vchiq_mmal_finalise(instance); >> } >> >> -static struct platform_driver bcm2835_camera_driver = { >> +static struct vchiq_driver bcm2835_camera_driver = { >> .probe = bcm2835_mmal_probe, >> - .remove_new = bcm2835_mmal_remove, >> + .remove = bcm2835_mmal_remove, >> .driver = { >> .name = "bcm2835-camera", >> }, >> }; >> >> -module_platform_driver(bcm2835_camera_driver) >> +module_vchiq_driver(bcm2835_camera_driver) >> >> MODULE_DESCRIPTION("Broadcom 2835 MMAL video capture"); >> MODULE_AUTHOR("Vincent Sanders"); >> MODULE_LICENSE("GPL"); >> -MODULE_ALIAS("platform:bcm2835-camera"); >> +MODULE_ALIAS("bcm2835-camera"); > Now that you are on your own bus, why do you need the MODULE_ALIAS() > line at all? Because it breaks the module auto-loading support... If you look at the vchiq_bus patch (3/6) in this series, there is vchiq_bus_uevent() which sends a event that includes the MODALIAS. > > thanks, > > greg k-h _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel