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 alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (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 900B0C433EF for ; Fri, 14 Jan 2022 03:17:32 +0000 (UTC) Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 190541FA9; Fri, 14 Jan 2022 04:16:40 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 190541FA9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1642130250; bh=pxiTwDB0j8aAmnBn/0lPe3/AsV6WScBgghVGFgNW8lk=; h=Subject:From:To:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=d1uxMIbluqKeLy+ehyt6vP6sjfMtU38Pqx3xKBjw4NpHmZ0suRkVuL3F2uE4VJzlf dN+1Ku1TTfR3XxkadUX1Y9dtwb0Epp9b5v8y+GFvCYG+/gzhTrMggC8aSiBFZ9DuCj B18Ay3yXOqqt5Cp32Cauygl65K8WegmXFX+bbKhM= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 5CF20F8027C; Fri, 14 Jan 2022 04:16:38 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id E0348F8030F; Fri, 14 Jan 2022 04:16:36 +0100 (CET) Received: from mailgw01.mediatek.com (unknown [60.244.123.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 2B81FF800CE; Fri, 14 Jan 2022 04:16:30 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 2B81FF800CE X-UUID: b7b619940c684c45b1d1379930c436c8-20220114 X-UUID: b7b619940c684c45b1d1379930c436c8-20220114 Received: from mtkmbs10n2.mediatek.inc [(172.21.101.183)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1255384183; Fri, 14 Jan 2022 11:16:23 +0800 Received: from mtkcas10.mediatek.inc (172.21.101.39) by mtkmbs07n2.mediatek.inc (172.21.101.141) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 14 Jan 2022 11:16:21 +0800 Received: from mtksdccf07 (172.21.84.99) by mtkcas10.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 14 Jan 2022 11:16:21 +0800 Message-ID: Subject: Re: [PATCH v13 2/2] mailbox: mediatek: add support for adsp mailbox controller From: allen-kh.cheng To: Pierre-Louis Bossart , Jassi Brar , Rob Herring , "Matthias Brugger" Date: Fri, 14 Jan 2022 11:16:21 +0800 In-Reply-To: References: <20220113082103.27911-1-allen-kh.cheng@mediatek.com> <20220113082103.27911-3-allen-kh.cheng@mediatek.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-MTK: N Cc: devicetree@vger.kernel.org, Linux-ALSA , Kai Vehmanen , cujomalainey@google.com, Kevin Hilman , Takashi Iwai , Liam Girdwood , Ranjani Sridharan , Project_Global_Chrome_Upstream_Group@mediatek.com, tzungbi@google.com, Mark Brown , linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Daniel Baluta , linux-kernel@vger.kernel.org, sound-open-firmware@alsa-project.org X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" On Thu, 2022-01-13 at 12:47 -0600, Pierre-Louis Bossart wrote: > > +static int mtk_adsp_mbox_probe(struct platform_device *pdev) > > +{ > > + struct device *dev = &pdev->dev; > > + struct mtk_adsp_mbox_priv *priv; > > + const struct mtk_adsp_mbox_cfg *cfg; > > + struct mbox_controller *mbox; > > + int ret, irq; > > + > > + priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); > > + if (!priv) > > + return -ENOMEM; > > + > > + mbox = &priv->mbox; > > + mbox->dev = dev; > > + mbox->ops = &mtk_adsp_mbox_chan_ops; > > + mbox->txdone_irq = false; > > + mbox->txdone_poll = true; > > + mbox->of_xlate = mtk_adsp_mbox_xlate; > > + mbox->num_chans = 1; > > + mbox->chans = devm_kzalloc(dev, sizeof(*mbox->chans), > > GFP_KERNEL); > > + if (!mbox->chans) > > + return -ENOMEM; > > + > > + priv->va_mboxreg = devm_platform_ioremap_resource(pdev, 0); > > + if (IS_ERR(priv->va_mboxreg)) > > + return PTR_ERR(priv->va_mboxreg); > > + > > + priv->cfg = of_device_get_match_data(dev); > > question: is any error handling needed here? some drivers do, others > don't, but that function can return NULL. > Hi Pierre, Thanks for your question. I prefer my previous version which check NULL from of_device_get_match_data. I will revert this part in the next version. Thanks. > > + > > + irq = platform_get_irq(pdev, 0); > > + if (irq < 0) > > + return irq; > > + > > + ret = devm_request_threaded_irq(dev, irq, mtk_adsp_mbox_irq, > > + mtk_adsp_mbox_isr, > > IRQF_TRIGGER_NONE, > > + dev_name(dev), mbox->chans); > > + if (ret < 0) > > + return ret; > > + > > + platform_set_drvdata(pdev, priv); > > + > > + return devm_mbox_controller_register(dev, &priv->mbox); > > +} > >