From patchwork Thu Oct 25 15:29:33 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Wahren X-Patchwork-Id: 10656075 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7FB1714DE for ; Thu, 25 Oct 2018 15:37:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6D6C12BD1A for ; Thu, 25 Oct 2018 15:37:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 61C762BD6B; Thu, 25 Oct 2018 15:37:44 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id D68322BD1A for ; Thu, 25 Oct 2018 15:37:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=lHBSzlhaN05wZrbTPN7o3ohOWwwUjDnTv0xIFQVkm3Q=; b=oQZ6xk76fq3DmF6HnCeh5h2eEu hlD3GR4UtaF0fFaU+NsQVIJe3CiWGbhZcrXJoP/QGd9jHonC6E1YRSt6fPzcOtwMM2FF6qSMntb6C WTUlwfj3eh2/8PKDL40D4vdQ39N7Wi01m6vt1hCwrGQuL/u6gQPAysFISAW23CYS1wN2FbiQpQOSY cEtreOYw2E4NqrGUVNFlx5JH26zvuaXZ6yZoh3+zqTnoefJhFbmBb2AWRxx7gKyF+VRmesHDI2qfU PuFpVyTVKbTr+LXzcTU0lcaSLNiVY4oe7G4kSSz1sPokN4+ARReQb2/JE4mkUVgkrpHYXlC6yACpj B7VPl9FQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFhha-0004eC-RY; Thu, 25 Oct 2018 15:37:38 +0000 Received: from mout.kundenserver.de ([212.227.126.131]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gFhag-0000T2-5b; Thu, 25 Oct 2018 15:30:50 +0000 Received: from localhost.localdomain ([37.4.249.153]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MS43X-1g9Hh449gx-00TT1D; Thu, 25 Oct 2018 17:30:10 +0200 Received: from localhost.localdomain ([37.4.249.153]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MS43X-1g9Hh449gx-00TT1D; Thu, 25 Oct 2018 17:30:10 +0200 From: Stefan Wahren To: Eric Anholt , gregkh@linuxfoundation.org, Dave Stevenson Subject: [PATCH RFX 09/11] staging: bcm2835-audio: Drop DT dependency Date: Thu, 25 Oct 2018 17:29:33 +0200 Message-Id: <1540481375-15952-10-git-send-email-stefan.wahren@i2se.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1540481375-15952-1-git-send-email-stefan.wahren@i2se.com> References: <1540481375-15952-1-git-send-email-stefan.wahren@i2se.com> X-Provags-ID: V03:K1:YsEVD03T8+51mvwe3093vHIL0A5idBFtaPS5ZzPz1WAWqKvQoOe At4qoCwMd3tHwdOMLKWoIte3mupPIOoY7nKM6uPdPSJFxQZJ5axmtdSd1YACaL4MyhOumVk VDN+524AWLN6FTGx9tOAE0ZZ483Rt8nN6k8E4v1g3r5rvedzsUErIdXS0C4f776rC/B6mWX ExnAas95A8/csSoHr5F3g== X-UI-Out-Filterresults: notjunk:1;V01:K0:5w+5bzc7iBQ=:7ubv64idFE+gcm1xSzP4jr YFkCXwzaQIO26VYxPNtfMj0/LyjNj+ZdwSUFkSQ05aRfvhfBRyonEx0zRrJIiIsR9+iWn9Q4j ORHFnZ4j+g6BFkHfAWIyli265hC3rdT/d2320btcqT4x/N32Vp1+4r1zfKSWMzGUrS3YZqXed 8q1t922IVq8946wFT+pJtWFdoK2p2XqqG/CVsxZGcFQNGRNv0H47BPFwuikBAQxD8FkYGw26a Wp6U2av1yTP+VAW+YoHZ/diO8Rjp3W+basdnRijo6ruku8qtg8P1G5jlz4qSzfPGf/cLwKGS/ 2X/As2lmmv/gZg6xsvN50h+RxgJbVG6tpo2oDTAUgIV/GVVDKEb+28pmuVAP5BuJC9yiZb2v2 24TcGWO8gx9WzAuxTcKDcpQjOQUCK0WX6qSLAiObHmLmR4TwFALMIIt8f1hcaUFOKn3wc+EoQ TSCB0fZDfPjtjuLq/b4IwEApLtjvqMO/7AokWY4lLoEq9+1t0PqNhi9LwHSP/hhnG0NYoZWcJ V2Mq8bCnLh70ct/KEUwpJ7nU4/vT6pZN1T7pYgJonQ/YvZhLX0kOZDUV2zkWSxZqp0NtZJH7Q Js2cyDXTG08zBukbOEkdeD/QlDGUV6AK0P4iPoO7omfgzPRzJXuz40OuatHo/M4BL64jb8snF R+KJN03QH4N5mMx5pkF3v4gGbYbz4lyUZNQ8utc/G3js1YTUrkkhPlINCDP5v0/AaWQg= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181025_083030_540870_3C868BAB X-CRM114-Status: GOOD ( 15.53 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devel@driverdev.osuosl.org, Stefan Wahren , linux-arm-kernel@lists.infradead.org, tiwai@suse.de, mikebrady@eircom.net, pbrobinson@gmail.com, nsaenzjulienne@suse.de, linux-rpi-kernel@lists.infradead.org MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Just like the bcm2835-video make this a platform driver which is probed by vchiq. In order to change the number of channels use a module parameter instead, but use the maximum as default. Signed-off-by: Stefan Wahren --- .../staging/vc04_services/bcm2835-audio/bcm2835.c | 41 ++++++++++------------ 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c index 87a27fd..5c5b600 100644 --- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c +++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c @@ -4,15 +4,17 @@ #include #include +#include +#include #include #include -#include #include "bcm2835.h" static bool enable_hdmi; static bool enable_headphones; static bool enable_compat_alsa = true; +static int num_channels = MAX_SUBSTREAMS; module_param(enable_hdmi, bool, 0444); MODULE_PARM_DESC(enable_hdmi, "Enables HDMI virtual audio device"); @@ -21,6 +23,8 @@ MODULE_PARM_DESC(enable_headphones, "Enables Headphones virtual audio device"); module_param(enable_compat_alsa, bool, 0444); MODULE_PARM_DESC(enable_compat_alsa, "Enables ALSA compatibility virtual audio device"); +module_param(num_channels, int, 0644); +MODULE_PARM_DESC(num_channels, "Number of audio channels (default: 8)"); static void bcm2835_devm_free_vchi_ctx(struct device *dev, void *res) { @@ -293,31 +297,30 @@ static int snd_add_child_devices(struct device *device, u32 numchans) return 0; } -static int snd_bcm2835_alsa_probe_dt(struct platform_device *pdev) +static int snd_bcm2835_alsa_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; - u32 numchans; int err; - err = of_property_read_u32(dev->of_node, "brcm,pwm-channels", - &numchans); - if (err) { - dev_err(dev, "Failed to get DT property 'brcm,pwm-channels'"); - return err; + if (num_channels <= 0 || num_channels > MAX_SUBSTREAMS) { + num_channels = MAX_SUBSTREAMS; + dev_warn(dev, "Illegal num_channels value, will use %u\n", + num_channels); } - if (numchans == 0 || numchans > MAX_SUBSTREAMS) { - numchans = MAX_SUBSTREAMS; - dev_warn(dev, - "Illegal 'brcm,pwm-channels' value, will use %u\n", - numchans); + dev->coherent_dma_mask = DMA_BIT_MASK(32); + dev->dma_mask = &dev->coherent_dma_mask; + err = of_dma_configure(dev, NULL, true); + if (err) { + dev_err(dev, "Unable to setup DMA: %d\n", err); + return err; } err = bcm2835_devm_add_vchi_ctx(dev); if (err) return err; - err = snd_add_child_devices(dev, numchans); + err = snd_add_child_devices(dev, num_channels); if (err) return err; @@ -339,21 +342,14 @@ static int snd_bcm2835_alsa_resume(struct platform_device *pdev) #endif -static const struct of_device_id snd_bcm2835_of_match_table[] = { - { .compatible = "brcm,bcm2835-audio",}, - {}, -}; -MODULE_DEVICE_TABLE(of, snd_bcm2835_of_match_table); - static struct platform_driver bcm2835_alsa0_driver = { - .probe = snd_bcm2835_alsa_probe_dt, + .probe = snd_bcm2835_alsa_probe, #ifdef CONFIG_PM .suspend = snd_bcm2835_alsa_suspend, .resume = snd_bcm2835_alsa_resume, #endif .driver = { .name = "bcm2835_audio", - .of_match_table = snd_bcm2835_of_match_table, }, }; module_platform_driver(bcm2835_alsa0_driver); @@ -361,3 +357,4 @@ module_platform_driver(bcm2835_alsa0_driver); MODULE_AUTHOR("Dom Cobley"); MODULE_DESCRIPTION("Alsa driver for BCM2835 chip"); MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:bcm2835_audio");