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 117C9C433EF for ; Wed, 24 Nov 2021 10:27:11 +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 D1F8F17AB; Wed, 24 Nov 2021 11:26:18 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz D1F8F17AB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1637749628; bh=J/fxyXU6XorbEB8q7buh5vRjgvB/7wImXjmxGvJlWLQ=; h=Date:From:To:Subject:References:In-Reply-To:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=hGdRzVHQX6Qky8/IxmP6Pjw7SZXWFrB0tQUe7xiI7iKCI79G5QJ3IDzvcq0leQM5Q LEMqoxCeRUiJtYZiZBppL/bC7nej6klvkX56FcN5Be3xnmcYjrUGN5/RALy3d8HbmU Kr+s4o74mFROLhY9TJRpuG5NM1SMJ/I1g8taCNL4= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 07B3FF804E6; Wed, 24 Nov 2021 11:25:51 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 04CC3F804E6; Wed, 24 Nov 2021 11:25:45 +0100 (CET) Received: from mail-pj1-x1036.google.com (mail-pj1-x1036.google.com [IPv6:2607:f8b0:4864:20::1036]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id D2451F80245 for ; Wed, 24 Nov 2021 11:25:37 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz D2451F80245 Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="VowkGQmd" Received: by mail-pj1-x1036.google.com with SMTP id j5-20020a17090a318500b001a6c749e697so3976214pjb.1 for ; Wed, 24 Nov 2021 02:25:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=tHyc4vww6f6Wxw3/eQBdIL1Je73VlgA7JKdBmqCGaqQ=; b=VowkGQmdCxCl/a39pPTkWIbniAxWrdCHUsnAMenLISOVDapuFtot+ZCoAIEwY+DpO+ NK/tnsSLBHrGigPWuscFnVh6tQZkOSgNYqvpsT2EZJt1Hx+iyTkg1YSBJeYFbRkfl36C uj+uL9HLk//ZN790gI6f6zcYkjVdMvHVXFu0s4He+PE6Ogh7ZfFHYQSm9034+1hd6Sr6 PSH+E3CeS3mz4J6EuPObfwTOUcvU2hlHBO8XsElgtmA9kmOwDcO65PS+yaho+l2S4mD5 qECsdYfGUEdUV3ZAZtssW5/2fp0oS2ynsO+UWRvZENTt8l7F/AB3S/y7naJqLsmq15ep QQZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=tHyc4vww6f6Wxw3/eQBdIL1Je73VlgA7JKdBmqCGaqQ=; b=RqnStXURMOo/o/jQJFIPFxzfqFnWU8YW6FT/kvwKAZ+SZ18242ZQnQXnQ0b1P82e+Y rxujVniiT+54z1EAEzsAK2BEvQpPSCbbT3uKfCQ5tH4IXt2xK+0VtIhxR8teGu1qPqBA t3aOCNEyMM6OLNx58v0fUCBUEbG/l40xwqdxwz6cJqui6tkSbVo80Yhv2aDSJGgyH0J6 anFilOPyGjvrRVKl7KrWX5U+o61gADTqh1hc8xEQi1tWvdchIo+Hm2zQUvCIOP68ih9W ZEKcBBgcQpbv8xrrl5S81K5A4LJhz5Oi5Mv+CgoU1x0aPG3sqyOJpHFXHCNMqmCNmSaf J4Nw== X-Gm-Message-State: AOAM530FDUVC8FUxFgWzxElKaAkbF8EUgdl9fO0jIf+P7sUH5zhx/dkf AlaOQJKiAmOLUBuQpJxWTjC+xQ== X-Google-Smtp-Source: ABdhPJwLWZxBb9qwghOW25FeDDOjCEelQjT4dSKut4RYsVrgGIzla0FvveTn3livbxhFig7UgwmMkg== X-Received: by 2002:a17:903:2449:b0:142:b3c:f9c6 with SMTP id l9-20020a170903244900b001420b3cf9c6mr16910209pls.77.1637749534624; Wed, 24 Nov 2021 02:25:34 -0800 (PST) Received: from google.com ([2401:fa00:1:10:104b:13b9:d53:e2aa]) by smtp.gmail.com with ESMTPSA id q9sm11522330pfj.114.2021.11.24.02.25.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Nov 2021 02:25:34 -0800 (PST) Date: Wed, 24 Nov 2021 18:25:30 +0800 From: Tzung-Bi Shih To: "allen-kh.cheng" Subject: Re: [PATCH v3 3/3] firmware: mediatek: add adsp ipc protocol interface Message-ID: References: <20211124084514.28002-1-allen-kh.cheng@mediatek.com> <20211124084514.28002-4-allen-kh.cheng@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20211124084514.28002-4-allen-kh.cheng@mediatek.com> Cc: devicetree@vger.kernel.org, Linux-ALSA , Kai Vehmanen , cujomalainey@google.com, linux-kernel@vger.kernel.org, Mark Brown , Jassi Brar , Pierre-Louis Bossart , Liam Girdwood , Project_Global_Chrome_Upstream_Group@mediatek.com, Rob Herring , linux-mediatek@lists.infradead.org, Ranjani Sridharan , Matthias Brugger , Takashi Iwai , Daniel Baluta , linux-arm-kernel@lists.infradead.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 Wed, Nov 24, 2021 at 04:45:14PM +0800, allen-kh.cheng wrote: > drivers/firmware/Kconfig | 1 + > drivers/firmware/Makefile | 1 + > drivers/firmware/mediatek/Kconfig | 10 ++ > drivers/firmware/mediatek/Makefile | 2 + > drivers/firmware/mediatek/mtk-adsp-ipc.c | 130 ++++++++++++++++++ > .../linux/firmware/mediatek/mtk-adsp-ipc.h | 72 ++++++++++ > 6 files changed, 216 insertions(+) > create mode 100644 drivers/firmware/mediatek/Kconfig > create mode 100644 drivers/firmware/mediatek/Makefile > create mode 100644 drivers/firmware/mediatek/mtk-adsp-ipc.c > create mode 100644 include/linux/firmware/mediatek/mtk-adsp-ipc.h The patch should move before the 2nd patch in the series as the 2nd patch uses mtk-adsp-ipc.h. > diff --git a/drivers/firmware/mediatek/mtk-adsp-ipc.c b/drivers/firmware/mediatek/mtk-adsp-ipc.c [...] > +int adsp_ipc_send(struct mtk_adsp_ipc *ipc, unsigned int idx, uint32_t op) > +{ > + struct mtk_adsp_chan *dsp_chan = &ipc->chans[idx]; > + struct adsp_mbox_ch_info *ch_info = dsp_chan->ch->con_priv; > + int ret; > + > + if (idx >= MTK_ADSP_MBOX_NUM) > + return -EINVAL; If idx >= MTK_ADSP_MBOX_NUM, the invalid memory access has occurred at beginning of the function. > +static int mtk_adsp_ipc_probe(struct platform_device *pdev) > +{ [...] > + device_set_of_node_from_dev(&pdev->dev, pdev->dev.parent); Why does it need to call device_set_of_node_from_dev()? > + for (i = 0; i < MTK_ADSP_MBOX_NUM; i++) { > + chan_name = kasprintf(GFP_KERNEL, "mbox%d", i); > + if (!chan_name) > + return -ENOMEM; > + > + dsp_chan = &dsp_ipc->chans[i]; > + cl = &dsp_chan->cl; > + cl->dev = dev->parent; > + cl->tx_block = false; > + cl->knows_txdone = false; > + cl->tx_prepare = NULL; > + cl->rx_callback = adsp_ipc_recv; > + > + dsp_chan->ipc = dsp_ipc; > + dsp_chan->idx = i; > + dsp_chan->ch = mbox_request_channel_byname(cl, chan_name); > + if (IS_ERR(dsp_chan->ch)) { > + ret = PTR_ERR(dsp_chan->ch); > + if (ret != -EPROBE_DEFER) > + dev_err(dev, "Failed to request mbox chan %d ret %d\n", > + i, ret); If ret == -EPROBE_DEFER, wouldn't it need to return -EPROBE_DEFER? It doesn't retry later if -EPROBE_DEFER. 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 4878EC433F5 for ; Wed, 24 Nov 2021 10:25:56 +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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=sY+9E70jDgK5Eeedh6PoJjZVIc/1WLFEinSIy3ZaR8E=; b=AUmzwCNdybx0wD lP14Y/olIbsL6ItbFsPtKVnK7mhtI251yqxX8ARBXE6TY60XQz8j3PRm44VlYN5vPCPMfM5pqbIou 8kwplTv42Bi1CeoCaeKRhxaD6oAfB727Koi1ZthC5tJcwtCz/JVWBSZI3ndFS7IG8yN5KeM3gDiyv 0VB2xlTCqmCF8XQjkV2RgtesW64ElINplIXesXR7XfTRJ6xxCnYmg5A0UHPZS77eEZasUFjmarW6R SZrSq6M/3xLiWZq6g5bu6VyopBf83OOmhz4Mn4PsR3UpUIFDbv2awZGslL8l4oH8epZWE1TJpB+Z0 HWIAKVI72oC+MdeJhpNA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mppTJ-004TuK-Fe; Wed, 24 Nov 2021 10:25:49 +0000 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mppT5-004TrR-Vi for linux-mediatek@lists.infradead.org; Wed, 24 Nov 2021 10:25:37 +0000 Received: by mail-pl1-x62c.google.com with SMTP id b11so1442133pld.12 for ; Wed, 24 Nov 2021 02:25:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=tHyc4vww6f6Wxw3/eQBdIL1Je73VlgA7JKdBmqCGaqQ=; b=VowkGQmdCxCl/a39pPTkWIbniAxWrdCHUsnAMenLISOVDapuFtot+ZCoAIEwY+DpO+ NK/tnsSLBHrGigPWuscFnVh6tQZkOSgNYqvpsT2EZJt1Hx+iyTkg1YSBJeYFbRkfl36C uj+uL9HLk//ZN790gI6f6zcYkjVdMvHVXFu0s4He+PE6Ogh7ZfFHYQSm9034+1hd6Sr6 PSH+E3CeS3mz4J6EuPObfwTOUcvU2hlHBO8XsElgtmA9kmOwDcO65PS+yaho+l2S4mD5 qECsdYfGUEdUV3ZAZtssW5/2fp0oS2ynsO+UWRvZENTt8l7F/AB3S/y7naJqLsmq15ep QQZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=tHyc4vww6f6Wxw3/eQBdIL1Je73VlgA7JKdBmqCGaqQ=; b=Rfk+jEjne2QRX2J1Scvg+GxfSLSaJQcEWoLIEdmP4BBAoSWTSjzvy0+GbT4ptBM8vh /4m6dmPVd+4qkm1tsNQUmjmrH5F2cMDbHPySducK5zxJvI8MoW/27wQXyYxKJkEdeHdS Oc73p30OxVxiZ4VB5ZBO9DBVBv4YGxjLqrUoZn9ihLaiD65lP9+Kiz+6aURB1N5awKaC 1PFHWu806W+CpToWbnbRgNLYIk8DwxjWmvXn04X0LSnDyogeCZVHl2o9pJwGTIbszMZ0 gdhtcT3x4+ZGx2kLBxhFdUbSEHdgVaP/QxQDYBC7ZvXKd+Zp0nd09AUwtTN5SHFS5oRk OTZw== X-Gm-Message-State: AOAM5337dHdNbqM5TUGEMBmLF/nIiHGh43s4HdnGoRuqHDmUJkmRsSVb +eOQf/Oe0ZZ9HWrxEFGlQtDs8A== X-Google-Smtp-Source: ABdhPJwLWZxBb9qwghOW25FeDDOjCEelQjT4dSKut4RYsVrgGIzla0FvveTn3livbxhFig7UgwmMkg== X-Received: by 2002:a17:903:2449:b0:142:b3c:f9c6 with SMTP id l9-20020a170903244900b001420b3cf9c6mr16910209pls.77.1637749534624; Wed, 24 Nov 2021 02:25:34 -0800 (PST) Received: from google.com ([2401:fa00:1:10:104b:13b9:d53:e2aa]) by smtp.gmail.com with ESMTPSA id q9sm11522330pfj.114.2021.11.24.02.25.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Nov 2021 02:25:34 -0800 (PST) Date: Wed, 24 Nov 2021 18:25:30 +0800 From: Tzung-Bi Shih To: "allen-kh.cheng" Cc: Jassi Brar , Rob Herring , Matthias Brugger , Linux-ALSA , cujomalainey@google.com, Pierre-Louis Bossart , Liam Girdwood , Ranjani Sridharan , Kai Vehmanen , Daniel Baluta , Mark Brown , Jaroslav Kysela , Takashi Iwai , Project_Global_Chrome_Upstream_Group@mediatek.com, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, sound-open-firmware@alsa-project.org Subject: Re: [PATCH v3 3/3] firmware: mediatek: add adsp ipc protocol interface Message-ID: References: <20211124084514.28002-1-allen-kh.cheng@mediatek.com> <20211124084514.28002-4-allen-kh.cheng@mediatek.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20211124084514.28002-4-allen-kh.cheng@mediatek.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211124_022536_035925_30566CC5 X-CRM114-Status: GOOD ( 19.54 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org On Wed, Nov 24, 2021 at 04:45:14PM +0800, allen-kh.cheng wrote: > drivers/firmware/Kconfig | 1 + > drivers/firmware/Makefile | 1 + > drivers/firmware/mediatek/Kconfig | 10 ++ > drivers/firmware/mediatek/Makefile | 2 + > drivers/firmware/mediatek/mtk-adsp-ipc.c | 130 ++++++++++++++++++ > .../linux/firmware/mediatek/mtk-adsp-ipc.h | 72 ++++++++++ > 6 files changed, 216 insertions(+) > create mode 100644 drivers/firmware/mediatek/Kconfig > create mode 100644 drivers/firmware/mediatek/Makefile > create mode 100644 drivers/firmware/mediatek/mtk-adsp-ipc.c > create mode 100644 include/linux/firmware/mediatek/mtk-adsp-ipc.h The patch should move before the 2nd patch in the series as the 2nd patch uses mtk-adsp-ipc.h. > diff --git a/drivers/firmware/mediatek/mtk-adsp-ipc.c b/drivers/firmware/mediatek/mtk-adsp-ipc.c [...] > +int adsp_ipc_send(struct mtk_adsp_ipc *ipc, unsigned int idx, uint32_t op) > +{ > + struct mtk_adsp_chan *dsp_chan = &ipc->chans[idx]; > + struct adsp_mbox_ch_info *ch_info = dsp_chan->ch->con_priv; > + int ret; > + > + if (idx >= MTK_ADSP_MBOX_NUM) > + return -EINVAL; If idx >= MTK_ADSP_MBOX_NUM, the invalid memory access has occurred at beginning of the function. > +static int mtk_adsp_ipc_probe(struct platform_device *pdev) > +{ [...] > + device_set_of_node_from_dev(&pdev->dev, pdev->dev.parent); Why does it need to call device_set_of_node_from_dev()? > + for (i = 0; i < MTK_ADSP_MBOX_NUM; i++) { > + chan_name = kasprintf(GFP_KERNEL, "mbox%d", i); > + if (!chan_name) > + return -ENOMEM; > + > + dsp_chan = &dsp_ipc->chans[i]; > + cl = &dsp_chan->cl; > + cl->dev = dev->parent; > + cl->tx_block = false; > + cl->knows_txdone = false; > + cl->tx_prepare = NULL; > + cl->rx_callback = adsp_ipc_recv; > + > + dsp_chan->ipc = dsp_ipc; > + dsp_chan->idx = i; > + dsp_chan->ch = mbox_request_channel_byname(cl, chan_name); > + if (IS_ERR(dsp_chan->ch)) { > + ret = PTR_ERR(dsp_chan->ch); > + if (ret != -EPROBE_DEFER) > + dev_err(dev, "Failed to request mbox chan %d ret %d\n", > + i, ret); If ret == -EPROBE_DEFER, wouldn't it need to return -EPROBE_DEFER? It doesn't retry later if -EPROBE_DEFER. _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek 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 7BA38C433EF for ; Wed, 24 Nov 2021 10:27:08 +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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=VHvW3bfhInNvz6q68cxyLx6IkQLzUxCm+XWC428dMiE=; b=3+J5Pt8Asjf++I J/ZH315weLKnd32WSVRJA99YOo56dVb24cjhE78OgqU5SpAWP693EIQTr3UMxwsUn74OUVnAD6YDl BUbgf8wViUjzMRjYZmFN5KDGnrdvdnX8mT3b5zNzVoDIKggjNv+mwaestAtqMh7/DgiRsJmXZoJ6r LqysmjWRfko+k4GfLu9yOYGrkjB4H6GbOQoz72Gi1QzFftXzZ61rach1zP96x6xiri4YCX1LfSRTG re9lpqv8u3wIIkQ9CK9rQKDyOmWwZkCkIu/8REZ41YxOIcRbwnkNiWwRp3IX4HMwaCagsQuTDFf/P 5phmV8qFN55F9uuZBqlg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mppT9-004Tsc-TR; Wed, 24 Nov 2021 10:25:40 +0000 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mppT5-004TrO-UW for linux-arm-kernel@lists.infradead.org; Wed, 24 Nov 2021 10:25:37 +0000 Received: by mail-pj1-x1034.google.com with SMTP id j5-20020a17090a318500b001a6c749e697so3976205pjb.1 for ; Wed, 24 Nov 2021 02:25:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=tHyc4vww6f6Wxw3/eQBdIL1Je73VlgA7JKdBmqCGaqQ=; b=VowkGQmdCxCl/a39pPTkWIbniAxWrdCHUsnAMenLISOVDapuFtot+ZCoAIEwY+DpO+ NK/tnsSLBHrGigPWuscFnVh6tQZkOSgNYqvpsT2EZJt1Hx+iyTkg1YSBJeYFbRkfl36C uj+uL9HLk//ZN790gI6f6zcYkjVdMvHVXFu0s4He+PE6Ogh7ZfFHYQSm9034+1hd6Sr6 PSH+E3CeS3mz4J6EuPObfwTOUcvU2hlHBO8XsElgtmA9kmOwDcO65PS+yaho+l2S4mD5 qECsdYfGUEdUV3ZAZtssW5/2fp0oS2ynsO+UWRvZENTt8l7F/AB3S/y7naJqLsmq15ep QQZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=tHyc4vww6f6Wxw3/eQBdIL1Je73VlgA7JKdBmqCGaqQ=; b=xQNoUO1B9YgPD5iDEPIlr78qnstEyarvli9Bj74ggNZgwDcCjO7jLBDg2oBqEkqs4k H1KeQdZpI+ex6CyXULzgAQhpJhECCI3I472KuHHliMjtAxrN5f1FDZHoMDCauKjhGxDb mNzH0qfgVvL5PbUA+eM0fjuCkUWlpS1ej54eLQ8KhCtAz3gdaQppRtO3T3OXcNhROW4N NVZKKXcwvSwZuGGbwZicezWTPvFCyUWa5NGibX1VvEI9hi46ZPNlr2gf2DMd5YOPtiLy /m5DBLyeOItLK05TxZ8V4JEQXBrFfpUFtHdRJ8fHmnDVyAY6ySjIQAD3+gSuoc5DA1ko EmzA== X-Gm-Message-State: AOAM532nzdxkqO0aAUhVvwveRXJXyMly5X0xrfDopr8OOIoF/yOUybJO 62NO6/+lFcf0ZY2F4jBpfbuWvg== X-Google-Smtp-Source: ABdhPJwLWZxBb9qwghOW25FeDDOjCEelQjT4dSKut4RYsVrgGIzla0FvveTn3livbxhFig7UgwmMkg== X-Received: by 2002:a17:903:2449:b0:142:b3c:f9c6 with SMTP id l9-20020a170903244900b001420b3cf9c6mr16910209pls.77.1637749534624; Wed, 24 Nov 2021 02:25:34 -0800 (PST) Received: from google.com ([2401:fa00:1:10:104b:13b9:d53:e2aa]) by smtp.gmail.com with ESMTPSA id q9sm11522330pfj.114.2021.11.24.02.25.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Nov 2021 02:25:34 -0800 (PST) Date: Wed, 24 Nov 2021 18:25:30 +0800 From: Tzung-Bi Shih To: "allen-kh.cheng" Cc: Jassi Brar , Rob Herring , Matthias Brugger , Linux-ALSA , cujomalainey@google.com, Pierre-Louis Bossart , Liam Girdwood , Ranjani Sridharan , Kai Vehmanen , Daniel Baluta , Mark Brown , Jaroslav Kysela , Takashi Iwai , Project_Global_Chrome_Upstream_Group@mediatek.com, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, sound-open-firmware@alsa-project.org Subject: Re: [PATCH v3 3/3] firmware: mediatek: add adsp ipc protocol interface Message-ID: References: <20211124084514.28002-1-allen-kh.cheng@mediatek.com> <20211124084514.28002-4-allen-kh.cheng@mediatek.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20211124084514.28002-4-allen-kh.cheng@mediatek.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211124_022536_016334_BCCF10FB X-CRM114-Status: GOOD ( 20.86 ) 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-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Wed, Nov 24, 2021 at 04:45:14PM +0800, allen-kh.cheng wrote: > drivers/firmware/Kconfig | 1 + > drivers/firmware/Makefile | 1 + > drivers/firmware/mediatek/Kconfig | 10 ++ > drivers/firmware/mediatek/Makefile | 2 + > drivers/firmware/mediatek/mtk-adsp-ipc.c | 130 ++++++++++++++++++ > .../linux/firmware/mediatek/mtk-adsp-ipc.h | 72 ++++++++++ > 6 files changed, 216 insertions(+) > create mode 100644 drivers/firmware/mediatek/Kconfig > create mode 100644 drivers/firmware/mediatek/Makefile > create mode 100644 drivers/firmware/mediatek/mtk-adsp-ipc.c > create mode 100644 include/linux/firmware/mediatek/mtk-adsp-ipc.h The patch should move before the 2nd patch in the series as the 2nd patch uses mtk-adsp-ipc.h. > diff --git a/drivers/firmware/mediatek/mtk-adsp-ipc.c b/drivers/firmware/mediatek/mtk-adsp-ipc.c [...] > +int adsp_ipc_send(struct mtk_adsp_ipc *ipc, unsigned int idx, uint32_t op) > +{ > + struct mtk_adsp_chan *dsp_chan = &ipc->chans[idx]; > + struct adsp_mbox_ch_info *ch_info = dsp_chan->ch->con_priv; > + int ret; > + > + if (idx >= MTK_ADSP_MBOX_NUM) > + return -EINVAL; If idx >= MTK_ADSP_MBOX_NUM, the invalid memory access has occurred at beginning of the function. > +static int mtk_adsp_ipc_probe(struct platform_device *pdev) > +{ [...] > + device_set_of_node_from_dev(&pdev->dev, pdev->dev.parent); Why does it need to call device_set_of_node_from_dev()? > + for (i = 0; i < MTK_ADSP_MBOX_NUM; i++) { > + chan_name = kasprintf(GFP_KERNEL, "mbox%d", i); > + if (!chan_name) > + return -ENOMEM; > + > + dsp_chan = &dsp_ipc->chans[i]; > + cl = &dsp_chan->cl; > + cl->dev = dev->parent; > + cl->tx_block = false; > + cl->knows_txdone = false; > + cl->tx_prepare = NULL; > + cl->rx_callback = adsp_ipc_recv; > + > + dsp_chan->ipc = dsp_ipc; > + dsp_chan->idx = i; > + dsp_chan->ch = mbox_request_channel_byname(cl, chan_name); > + if (IS_ERR(dsp_chan->ch)) { > + ret = PTR_ERR(dsp_chan->ch); > + if (ret != -EPROBE_DEFER) > + dev_err(dev, "Failed to request mbox chan %d ret %d\n", > + i, ret); If ret == -EPROBE_DEFER, wouldn't it need to return -EPROBE_DEFER? It doesn't retry later if -EPROBE_DEFER. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 23DB6C433F5 for ; Wed, 24 Nov 2021 10:25:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240794AbhKXK2r (ORCPT ); Wed, 24 Nov 2021 05:28:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50846 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241270AbhKXK2o (ORCPT ); Wed, 24 Nov 2021 05:28:44 -0500 Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com [IPv6:2607:f8b0:4864:20::62d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 496A7C061746 for ; Wed, 24 Nov 2021 02:25:35 -0800 (PST) Received: by mail-pl1-x62d.google.com with SMTP id o14so1473702plg.5 for ; Wed, 24 Nov 2021 02:25:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=tHyc4vww6f6Wxw3/eQBdIL1Je73VlgA7JKdBmqCGaqQ=; b=VowkGQmdCxCl/a39pPTkWIbniAxWrdCHUsnAMenLISOVDapuFtot+ZCoAIEwY+DpO+ NK/tnsSLBHrGigPWuscFnVh6tQZkOSgNYqvpsT2EZJt1Hx+iyTkg1YSBJeYFbRkfl36C uj+uL9HLk//ZN790gI6f6zcYkjVdMvHVXFu0s4He+PE6Ogh7ZfFHYQSm9034+1hd6Sr6 PSH+E3CeS3mz4J6EuPObfwTOUcvU2hlHBO8XsElgtmA9kmOwDcO65PS+yaho+l2S4mD5 qECsdYfGUEdUV3ZAZtssW5/2fp0oS2ynsO+UWRvZENTt8l7F/AB3S/y7naJqLsmq15ep QQZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=tHyc4vww6f6Wxw3/eQBdIL1Je73VlgA7JKdBmqCGaqQ=; b=jXZpZjNhLUrtwAicAdeeGNXaVYFTUWCicczPsC8L3Dt5ID0Y45BEmraFN2NAKItH1e PUFchyzjuJGRhCuX3VXlMFplcmkVazrh+uyAbKJvES6MsHL5QQuBe9ZbVDnZ+42a2lE4 kB0sCrT5RlolC35Ih7UTGvbV3ubjGPd+XtjYQ6Yww0xXO+IMnZ2oZEWM8mJR27sgo4tJ sCOerHbsRpn6AP9NDVGqO4pkOCie+mRk0z6c34Xe0MCY+L/5h67Bb3psI9APsHZAaSeW gkA8viVpErodKJns4H9fef7sGCXWQLN9W619d9dzBygEJiNLSll/fkye5rxtbmSVf/QT faIg== X-Gm-Message-State: AOAM531jTMSd4dKMqish5me1Rw8nv3IKRNE3ak00QFPrrRyqryT82R19 iJW9b3Ix4fFegS9eBjIPPNNreA== X-Google-Smtp-Source: ABdhPJwLWZxBb9qwghOW25FeDDOjCEelQjT4dSKut4RYsVrgGIzla0FvveTn3livbxhFig7UgwmMkg== X-Received: by 2002:a17:903:2449:b0:142:b3c:f9c6 with SMTP id l9-20020a170903244900b001420b3cf9c6mr16910209pls.77.1637749534624; Wed, 24 Nov 2021 02:25:34 -0800 (PST) Received: from google.com ([2401:fa00:1:10:104b:13b9:d53:e2aa]) by smtp.gmail.com with ESMTPSA id q9sm11522330pfj.114.2021.11.24.02.25.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Nov 2021 02:25:34 -0800 (PST) Date: Wed, 24 Nov 2021 18:25:30 +0800 From: Tzung-Bi Shih To: "allen-kh.cheng" Cc: Jassi Brar , Rob Herring , Matthias Brugger , Linux-ALSA , cujomalainey@google.com, Pierre-Louis Bossart , Liam Girdwood , Ranjani Sridharan , Kai Vehmanen , Daniel Baluta , Mark Brown , Jaroslav Kysela , Takashi Iwai , Project_Global_Chrome_Upstream_Group@mediatek.com, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, sound-open-firmware@alsa-project.org Subject: Re: [PATCH v3 3/3] firmware: mediatek: add adsp ipc protocol interface Message-ID: References: <20211124084514.28002-1-allen-kh.cheng@mediatek.com> <20211124084514.28002-4-allen-kh.cheng@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20211124084514.28002-4-allen-kh.cheng@mediatek.com> Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org On Wed, Nov 24, 2021 at 04:45:14PM +0800, allen-kh.cheng wrote: > drivers/firmware/Kconfig | 1 + > drivers/firmware/Makefile | 1 + > drivers/firmware/mediatek/Kconfig | 10 ++ > drivers/firmware/mediatek/Makefile | 2 + > drivers/firmware/mediatek/mtk-adsp-ipc.c | 130 ++++++++++++++++++ > .../linux/firmware/mediatek/mtk-adsp-ipc.h | 72 ++++++++++ > 6 files changed, 216 insertions(+) > create mode 100644 drivers/firmware/mediatek/Kconfig > create mode 100644 drivers/firmware/mediatek/Makefile > create mode 100644 drivers/firmware/mediatek/mtk-adsp-ipc.c > create mode 100644 include/linux/firmware/mediatek/mtk-adsp-ipc.h The patch should move before the 2nd patch in the series as the 2nd patch uses mtk-adsp-ipc.h. > diff --git a/drivers/firmware/mediatek/mtk-adsp-ipc.c b/drivers/firmware/mediatek/mtk-adsp-ipc.c [...] > +int adsp_ipc_send(struct mtk_adsp_ipc *ipc, unsigned int idx, uint32_t op) > +{ > + struct mtk_adsp_chan *dsp_chan = &ipc->chans[idx]; > + struct adsp_mbox_ch_info *ch_info = dsp_chan->ch->con_priv; > + int ret; > + > + if (idx >= MTK_ADSP_MBOX_NUM) > + return -EINVAL; If idx >= MTK_ADSP_MBOX_NUM, the invalid memory access has occurred at beginning of the function. > +static int mtk_adsp_ipc_probe(struct platform_device *pdev) > +{ [...] > + device_set_of_node_from_dev(&pdev->dev, pdev->dev.parent); Why does it need to call device_set_of_node_from_dev()? > + for (i = 0; i < MTK_ADSP_MBOX_NUM; i++) { > + chan_name = kasprintf(GFP_KERNEL, "mbox%d", i); > + if (!chan_name) > + return -ENOMEM; > + > + dsp_chan = &dsp_ipc->chans[i]; > + cl = &dsp_chan->cl; > + cl->dev = dev->parent; > + cl->tx_block = false; > + cl->knows_txdone = false; > + cl->tx_prepare = NULL; > + cl->rx_callback = adsp_ipc_recv; > + > + dsp_chan->ipc = dsp_ipc; > + dsp_chan->idx = i; > + dsp_chan->ch = mbox_request_channel_byname(cl, chan_name); > + if (IS_ERR(dsp_chan->ch)) { > + ret = PTR_ERR(dsp_chan->ch); > + if (ret != -EPROBE_DEFER) > + dev_err(dev, "Failed to request mbox chan %d ret %d\n", > + i, ret); If ret == -EPROBE_DEFER, wouldn't it need to return -EPROBE_DEFER? It doesn't retry later if -EPROBE_DEFER.