From patchwork Wed Aug 16 17:19:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sricharan Ramabadhran X-Patchwork-Id: 9904461 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id A077A600CA for ; Wed, 16 Aug 2017 17:51:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8FEF22892D for ; Wed, 16 Aug 2017 17:51:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 84F7728A44; Wed, 16 Aug 2017 17:51:38 +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.6 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_LOW autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.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 126A828A42 for ; Wed, 16 Aug 2017 17:51:37 +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=NFqqb9LiaOprO8zWZUBZy/2o0t8daZ3Hc0QJgSjluOc=; b=kjvfUMHQLw7n5Ma9YLMBTyEVx9 qnQR5YOEIiJiZr8VnixMkKjeS5I7FvuM+KnWloU/4g2EE+oEyrvEL7jUpFsp/IZYqzErsJBQGWtqT YnqWnKALpbkFufjWMOAKLcuKvQ4e/FHbTMuCr8Lx1njNh03y2+nNKg1h7tJCqyQx8F7juZp4y+ngg H8Xfm/VdwaqUyIvRJvdozyL8DjW5DDmmdPoa2j+ejomTzl6SoRjx5Cw1/FDTJDiWAvCpKrlfuXByE UCehUp6vOvZKYUa2RnZkrnnIoPO/VFPBpsIGsFI35YPtU9/OvVjO1gD5EjTepdFKkpJwZ1gVUPr4X AyHJde4w==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1di2Td-0005lZ-4b; Wed, 16 Aug 2017 17:51:33 +0000 Received: from merlin.infradead.org ([2001:8b0:10b:1231::1]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1di2SQ-0003ys-Ai for linux-arm-kernel@bombadil.infradead.org; Wed, 16 Aug 2017 17:50:18 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=merlin.20170209; h=References:In-Reply-To:Message-Id:Date: Subject:Cc:To:From:Sender:Reply-To:MIME-Version:Content-Type: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=XyDasbkC2Gq/pUbDr58QIb8CvaGA0bMDG7tmp6AWxLs=; b=xltzyz1pJDwPTmomg8PzKzC6u QT+CwniY1xUI9nW+49q7kkJjQH4oDedP97VgZdIdZi/RbHniDMP7JvLYmtOKBlSiAogeAGhi2ASV7 STX07XHSPQDn2CFTX7rbH+jbLzEFFXgQCMyqfI6/k66wBrdt+0sz5TejvDY5fSM9ddVjeRDASdHcp bAJNM73KO4BNg2Ad5WLVDgelFOFI3RmjGhrOpSaOVKS/22FTs4d2ktdgNWsV1qmsTeisQmovtFHu2 /IivutSM0reknYFQTSzo+RPfTgVMMiVIdUupjKS1AqOG/a+O3qLvA6t4Pw80i+zSTbPWOpUlHfzu0 6IgrBu1+g==; Received: from smtp.codeaurora.org ([198.145.29.96]) by merlin.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1di1zn-0005bG-B2 for linux-arm-kernel@lists.infradead.org; Wed, 16 Aug 2017 17:20:44 +0000 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 480F0607EA; Wed, 16 Aug 2017 17:20:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1502904022; bh=uzDVgMAAVx1pzt/Ts/aV0DPye8IcKTnGdyjnJIIDQuU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=W14RLzXSLNZoSuMrb9c9ogvvwoRPkbUAk/shvpxlweJOvreXjttWXZJi4zfs8AHtd S9fwbeC5IX3sZeV4iW8tlGSYKrzZsMZFgC4iMMVy9MeWFfRlKz9nnwP+f079akf0Sk V+o1jLQscQ6vsiUXf/motS8j816dHxy5D17lf/Fk= Received: from srichara-linux.qualcomm.com (blr-c-bdr-fw-01_globalnat_allzones-outside.qualcomm.com [103.229.19.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: sricharan@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 221E460729; Wed, 16 Aug 2017 17:20:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1502904010; bh=uzDVgMAAVx1pzt/Ts/aV0DPye8IcKTnGdyjnJIIDQuU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gpdL3MDnceHSz24rsxz5XxIZts37wV23aFVlPxkQUARLPQ60plvIZye6PWDtsPu7r NzsfWdhHWpxw/y5KN6a1+xx2wyxTTPq5I8bBfwV14OYAOrL0mqJVCNLh/NAxCVlWFz MVN+48uPlfEf3W/wDKrjUN9DiDDvrS3ck0Fcwcss= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 221E460729 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=sricharan@codeaurora.org From: Sricharan R To: ohad@wizery.com, bjorn.andersson@linaro.org, linux-remoteproc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH 14/18] rpmsg: glink: Add announce_create ops and preallocate intents Date: Wed, 16 Aug 2017 22:49:07 +0530 Message-Id: <1502903951-5403-15-git-send-email-sricharan@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1502903951-5403-1-git-send-email-sricharan@codeaurora.org> References: <1502903951-5403-1-git-send-email-sricharan@codeaurora.org> 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: sricharan@codeaurora.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 Preallocate local intent buffers and pass the intent ids to the remote. This way there are some default intents available for the remote to start sending data without having to wait by sending intent requests. Do this by adding the rpmsg announce_create ops, which gets called right after the rpmsg device gets probed. Signed-off-by: Sricharan R Signed-off-by: Bjorn Andersson --- drivers/rpmsg/qcom_glink_native.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_native.c index b8db74a..c111046 100644 --- a/drivers/rpmsg/qcom_glink_native.c +++ b/drivers/rpmsg/qcom_glink_native.c @@ -995,6 +995,25 @@ static struct rpmsg_endpoint *qcom_glink_create_ept(struct rpmsg_device *rpdev, return ept; } +static int qcom_glink_announce_create(struct rpmsg_device *rpdev) +{ + struct glink_channel *channel = to_glink_channel(rpdev->ept); + struct glink_core_rx_intent *intent; + struct qcom_glink *glink = channel->glink; + int num_intents = glink->intentless ? 0 : 5; + + /* Channel is now open, advertise base set of intents */ + while (num_intents--) { + intent = qcom_glink_alloc_intent(glink, channel, SZ_1K, true); + if (!intent) + break; + + qcom_glink_advertise_intent(glink, channel, intent); + } + + return 0; +} + static void qcom_glink_destroy_ept(struct rpmsg_endpoint *ept) { struct glink_channel *channel = to_glink_channel(ept); @@ -1070,6 +1089,7 @@ static struct device_node *qcom_glink_match_channel(struct device_node *node, static const struct rpmsg_device_ops glink_device_ops = { .create_ept = qcom_glink_create_ept, + .announce_create = qcom_glink_announce_create, }; static const struct rpmsg_endpoint_ops glink_endpoint_ops = {