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 X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A0DAFC169C4 for ; Tue, 29 Jan 2019 10:59:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 79E652084C for ; Tue, 29 Jan 2019 10:59:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728564AbfA2K7a (ORCPT ); Tue, 29 Jan 2019 05:59:30 -0500 Received: from mailgw02.mediatek.com ([210.61.82.184]:4291 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726298AbfA2K7a (ORCPT ); Tue, 29 Jan 2019 05:59:30 -0500 X-UUID: 80b6836dc11f49b199860e1d8ba82947-20190129 X-UUID: 80b6836dc11f49b199860e1d8ba82947-20190129 Received: from mtkmrs01.mediatek.inc [(172.21.131.159)] by mailgw02.mediatek.com (envelope-from ) (mhqrelay.mediatek.com ESMTP with TLS) with ESMTP id 1194113965; Tue, 29 Jan 2019 18:59:24 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs03n1.mediatek.inc (172.21.101.181) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 29 Jan 2019 18:59:23 +0800 Received: from [172.21.77.4] (172.21.77.4) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Tue, 29 Jan 2019 18:59:23 +0800 Message-ID: <1548759563.11055.10.camel@mtksdaap41> Subject: Re: [PATCH 07/10] soc: mediatek: add cmdq_dev_get_event function From: CK Hu To: Bibby Hsieh CC: Jassi Brar , Matthias Brugger , Rob Herring , Daniel Kurtz , Sascha Hauer , , , , , , Sascha Hauer , "Philipp Zabel" , Nicolas Boichat , "YT Shen" , Daoyuan Huang , Jiaguang Zhang , Dennis-YC Hsieh , Houlong Wei , , , Frederic Chen Date: Tue, 29 Jan 2019 18:59:23 +0800 In-Reply-To: <1548747128-60136-8-git-send-email-bibby.hsieh@mediatek.com> References: <1548747128-60136-1-git-send-email-bibby.hsieh@mediatek.com> <1548747128-60136-8-git-send-email-bibby.hsieh@mediatek.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-MTK: N Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Bibby: On Tue, 2019-01-29 at 15:32 +0800, Bibby Hsieh wrote: > When client ask gce to clear or wait for event, > client need to pass event number to the API. > We suggest client store the event information in device node, > so we provide an API for client parse the event property. > > Signed-off-by: Bibby Hsieh > --- > drivers/soc/mediatek/mtk-cmdq-helper.c | 29 +++++++++++++++++++++++++++++ > include/linux/soc/mediatek/mtk-cmdq.h | 1 + > 2 files changed, 30 insertions(+) > > diff --git a/drivers/soc/mediatek/mtk-cmdq-helper.c b/drivers/soc/mediatek/mtk-cmdq-helper.c > index 6ad997f..16c0393 100644 > --- a/drivers/soc/mediatek/mtk-cmdq-helper.c > +++ b/drivers/soc/mediatek/mtk-cmdq-helper.c > @@ -56,6 +56,35 @@ struct cmdq_base *cmdq_register_device(struct device *dev) > } > EXPORT_SYMBOL(cmdq_register_device); > > +s32 cmdq_dev_get_event(struct device *dev, const char *name) > +{ > + s32 index = 0; > + struct of_phandle_args spec; > + s32 result; > + > + if (!dev) > + return -EINVAL; > + > + index = of_property_match_string(dev->of_node, "gce-event-names", name); Where is the binding? > + if (index < 0) { > + dev_err(dev, "no gce-event-names property or no such event:%s", > + name); > + return index; > + } > + > + if (of_parse_phandle_with_args(dev->of_node, "gce-events", > + "#gce-event-cells", index, &spec)) { Ditto. Regards, CK > + dev_err(dev, "can't parse gce-events property"); > + return -ENODEV; > + } > + > + result = spec.args[0]; > + of_node_put(spec.np); > + > + return result; > +} > +EXPORT_SYMBOL(cmdq_dev_get_event); > + > static void cmdq_client_timeout(struct timer_list *t) > { > struct cmdq_client *client = from_timer(client, t, timer); > diff --git a/include/linux/soc/mediatek/mtk-cmdq.h b/include/linux/soc/mediatek/mtk-cmdq.h > index a1f5eb6..e5b0a98 100644 > --- a/include/linux/soc/mediatek/mtk-cmdq.h > +++ b/include/linux/soc/mediatek/mtk-cmdq.h > @@ -139,5 +139,6 @@ int cmdq_pkt_flush_async(struct cmdq_pkt *pkt, cmdq_async_flush_cb cb, > > u8 cmdq_subsys_base_to_id(struct cmdq_base *clt_base, u32 base); > struct cmdq_base *cmdq_register_device(struct device *dev); > +s32 cmdq_dev_get_event(struct device *dev, const char *name); > > #endif /* __MTK_CMDQ_H__ */