From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 000F0A0544; Fri, 23 Sep 2022 11:23:22 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E695E40156; Fri, 23 Sep 2022 11:23:22 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id B80DA40156 for ; Fri, 23 Sep 2022 11:23:20 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1663925000; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=HXoDxinyiIO0DQlukb6Tg3wyyL1M1omRxFOnwfjvAhg=; b=bAKu0U7hJxnOCsBWli0Ugk3XlmOciy8936JijFd8ImQnKYxI22KBZEsSqwLXitBo175C/P GRott20rhXo4LyyaSGT8JrKf5Tn16qLnJmV0788DDqAFGU8RY+njGpR8NHPuZnPcGuwCvD P6jJgjKrNckkVSMor9WggOezQzj9gp4= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-294-0K4i4KoXMxmlYToCnRZrdQ-1; Fri, 23 Sep 2022 05:23:14 -0400 X-MC-Unique: 0K4i4KoXMxmlYToCnRZrdQ-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 917223815D34; Fri, 23 Sep 2022 09:23:13 +0000 (UTC) Received: from [10.39.208.26] (unknown [10.39.208.26]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 63AB22166B32; Fri, 23 Sep 2022 09:23:11 +0000 (UTC) Message-ID: Date: Fri, 23 Sep 2022 11:23:10 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.1 Subject: Re: [PATCH v4 12/14] baseband/acc: add device status and vf2pf comms To: Nic Chautru , dev@dpdk.org, thomas@monjalon.net Cc: trix@redhat.com, mdr@ashroe.eu, bruce.richardson@intel.com, hemant.agrawal@nxp.com, david.marchand@redhat.com, stephen@networkplumber.org, hernan.vargas@intel.com References: <1663806460-45162-1-git-send-email-nicolas.chautru@intel.com> <1663806460-45162-13-git-send-email-nicolas.chautru@intel.com> From: Maxime Coquelin In-Reply-To: <1663806460-45162-13-git-send-email-nicolas.chautru@intel.com> X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On 9/22/22 02:27, Nic Chautru wrote: > Add support to expose the device status seen from the > host through v2pf mailbox communication. > > Signed-off-by: Nic Chautru > --- > drivers/baseband/acc/rte_acc200_pmd.c | 61 +++++++++++++++++++++++++---------- > 1 file changed, 44 insertions(+), 17 deletions(-) > > diff --git a/drivers/baseband/acc/rte_acc200_pmd.c b/drivers/baseband/acc/rte_acc200_pmd.c > index b8b621a..3c2931b 100644 > --- a/drivers/baseband/acc/rte_acc200_pmd.c > +++ b/drivers/baseband/acc/rte_acc200_pmd.c > @@ -201,23 +201,47 @@ > rte_bbdev_log_debug( > "%s Config LLR SIGN IN/OUT %s %s QG %u %u %u %u %u AQ %u %u %u %u %u Len %u %u %u %u %u\n", > (d->pf_device) ? "PF" : "VF", > - (acc_conf->input_pos_llr_1_bit) ? "POS" : "NEG", > - (acc_conf->output_pos_llr_1_bit) ? "POS" : "NEG", > - acc_conf->q_ul_4g.num_qgroups, > - acc_conf->q_dl_4g.num_qgroups, > - acc_conf->q_ul_5g.num_qgroups, > - acc_conf->q_dl_5g.num_qgroups, > - acc_conf->q_fft.num_qgroups, > - acc_conf->q_ul_4g.num_aqs_per_groups, > - acc_conf->q_dl_4g.num_aqs_per_groups, > - acc_conf->q_ul_5g.num_aqs_per_groups, > - acc_conf->q_dl_5g.num_aqs_per_groups, > - acc_conf->q_fft.num_aqs_per_groups, > - acc_conf->q_ul_4g.aq_depth_log2, > - acc_conf->q_dl_4g.aq_depth_log2, > - acc_conf->q_ul_5g.aq_depth_log2, > - acc_conf->q_dl_5g.aq_depth_log2, > - acc_conf->q_fft.aq_depth_log2); > + (acc200_conf->input_pos_llr_1_bit) ? "POS" : "NEG", > + (acc200_conf->output_pos_llr_1_bit) ? "POS" : "NEG", > + acc200_conf->q_ul_4g.num_qgroups, > + acc200_conf->q_dl_4g.num_qgroups, > + acc200_conf->q_ul_5g.num_qgroups, > + acc200_conf->q_dl_5g.num_qgroups, > + acc200_conf->q_fft.num_qgroups, > + acc200_conf->q_ul_4g.num_aqs_per_groups, > + acc200_conf->q_dl_4g.num_aqs_per_groups, > + acc200_conf->q_ul_5g.num_aqs_per_groups, > + acc200_conf->q_dl_5g.num_aqs_per_groups, > + acc200_conf->q_fft.num_aqs_per_groups, > + acc200_conf->q_ul_4g.aq_depth_log2, > + acc200_conf->q_dl_4g.aq_depth_log2, > + acc200_conf->q_ul_5g.aq_depth_log2, > + acc200_conf->q_dl_5g.aq_depth_log2, > + acc200_conf->q_fft.aq_depth_log2); > +} > + > +static inline void > +acc200_vf2pf(struct acc_device *d, unsigned int payload) > +{ > + acc_reg_write(d, HWVfHiVfToPfDbellVf, payload); > +} > + > +/* Request device status information */ > +static inline uint32_t > +acc200_device_status(struct rte_bbdev *dev) > +{ > + struct acc_device *d = dev->data->dev_private; > + uint32_t reg, time_out = 0; > + if (d->pf_device) > + return RTE_BBDEV_DEV_NOT_SUPPORTED; > + acc200_vf2pf(d, ACC_VF2PF_STATUS_REQUEST); > + reg = acc_reg_read(d, HWVfHiPfToVfDbellVf); > + while ((time_out < ACC200_STATUS_TO) && (reg == RTE_BBDEV_DEV_NOSTATUS)) { > + usleep(ACC200_STATUS_WAIT); /*< Wait or VF->PF->VF Comms */ > + reg = acc_reg_read(d, HWVfHiPfToVfDbellVf); > + time_out++; > + } > + return reg; Please add new lines for clarity. > } > > /* Checks PF Info Ring to find the interrupt cause and handles it accordingly */ > @@ -537,6 +561,7 @@ > > /* Mark as configured properly */ > d->configured = true; > + acc200_vf2pf(d, ACC_VF2PF_USING_VF); > > rte_bbdev_log_debug( > "ACC200 (%s) configured sw_rings = %p, sw_rings_iova = %#" > @@ -1047,6 +1072,8 @@ > > /* Read and save the populated config from ACC200 registers */ > fetch_acc200_config(dev); > + /* Check the status of device */ > + dev_info->device_status = acc200_device_status(dev); > > /* Exposed number of queues */ > dev_info->num_queues[RTE_BBDEV_OP_NONE] = 0; With cosmetics fixed: Reviewed-by: Maxime Coquelin Thanks, Maxime