Add&nbsp;crypto&nbsp;queue&nbsp;pair&nbsp;configuration&nbsp;operations&nbsp;for&nbsp;zsda&nbsp;device.<br />
<br />Signed-off-by:&nbsp;Hanxiao&nbsp;Li&nbsp;&lt;li.hanxiao@zte.com.cn&gt;
<br />---<br />&nbsp;drivers/crypto/zsda/zsda_crypto_pmd.c&nbsp;|&nbsp;80&nbsp;++++++++++++++++++++++++++-<br />&nbsp;1&nbsp;file&nbsp;changed,&nbsp;77&nbsp;insertions(+),&nbsp;3&nbsp;deletions(-)<br />
<br />diff&nbsp;--git&nbsp;a/drivers/crypto/zsda/zsda_crypto_pmd.c&nbsp;b/drivers/crypto/zsda/zsda_crypto_pmd.c<br />index&nbsp;8b44ebe61f..001ea56520&nbsp;100644<br />---&nbsp;a/drivers/crypto/zsda/zsda_crypto_pmd.c<br />+++&nbsp;b/drivers/crypto/zsda/zsda_crypto_pmd.c<br />@@&nbsp;-35,9&nbsp;+35,20&nbsp;@@&nbsp;zsda_dev_stop(struct&nbsp;rte_cryptodev&nbsp;*dev)<br />&nbsp;}<br />&nbsp;
<br />&nbsp;static&nbsp;int<br />-zsda_dev_close(struct&nbsp;rte_cryptodev&nbsp;*dev&nbsp;__rte_unused)<br />+zsda_qp_release(struct&nbsp;rte_cryptodev&nbsp;*dev,&nbsp;uint16_t&nbsp;queue_pair_id)<br />+{<br />+&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;zsda_queue_pair_release(<br />+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(struct&nbsp;zsda_qp&nbsp;**)&amp;(dev-&gt;data-&gt;queue_pairs[queue_pair_id]));<br />+}<br />+<br />+static&nbsp;int<br />+zsda_dev_close(struct&nbsp;rte_cryptodev&nbsp;*dev)<br />&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;ret&nbsp;=&nbsp;ZSDA_SUCCESS;<br />+&nbsp;&nbsp;&nbsp;&nbsp;uint16_t&nbsp;i;<br />+<br />+&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;dev-&gt;data-&gt;nb_queue_pairs;&nbsp;i++)<br />+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;|=&nbsp;zsda_qp_release(dev,&nbsp;i);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;ret;<br />&nbsp;}<br />&nbsp;
<br />@@&nbsp;-98,6&nbsp;+109,69&nbsp;@@&nbsp;zsda_crypto_stats_reset(struct&nbsp;rte_cryptodev&nbsp;*dev)<br />&nbsp;}<br />&nbsp;
<br />&nbsp;
<br />+static&nbsp;int<br />+zsda_qp_setup(struct&nbsp;rte_cryptodev&nbsp;*dev,&nbsp;uint16_t&nbsp;qp_id,<br />+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;struct&nbsp;rte_cryptodev_qp_conf&nbsp;*qp_conf,<br />+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;socket_id)<br />+{<br />+&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;ret&nbsp;=&nbsp;ZSDA_SUCCESS;<br />+&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;zsda_qp&nbsp;*qp_new;<br />+&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;zsda_qp&nbsp;**qp_addr&nbsp;=<br />+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(struct&nbsp;zsda_qp&nbsp;**)&amp;(dev-&gt;data-&gt;queue_pairs[qp_id]);<br />+&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;zsda_crypto_dev_private&nbsp;*crypto_dev_priv&nbsp;=&nbsp;dev-&gt;data-&gt;dev_private;<br />+&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;zsda_pci_device&nbsp;*zsda_pci_dev&nbsp;=&nbsp;crypto_dev_priv-&gt;zsda_pci_dev;<br />+&nbsp;&nbsp;&nbsp;&nbsp;uint32_t&nbsp;nb_des&nbsp;=&nbsp;qp_conf-&gt;nb_descriptors;<br />+&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;task_queue_info&nbsp;task_q_info;<br />+<br />+&nbsp;&nbsp;&nbsp;&nbsp;nb_des&nbsp;=&nbsp;(nb_des&nbsp;==&nbsp;NB_DES)&nbsp;?&nbsp;nb_des&nbsp;:&nbsp;NB_DES;<br />+<br />+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(*qp_addr&nbsp;!=&nbsp;NULL)&nbsp;{<br />+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;=&nbsp;zsda_qp_release(dev,&nbsp;qp_id);<br />+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(ret)<br />+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;ret;<br />+&nbsp;&nbsp;&nbsp;&nbsp;}<br />+<br />+&nbsp;&nbsp;&nbsp;&nbsp;qp_new&nbsp;=&nbsp;rte_zmalloc_socket(&quot;zsda&nbsp;PMD&nbsp;qp&nbsp;metadata&quot;,&nbsp;sizeof(*qp_new),<br />+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTE_CACHE_LINE_SIZE,&nbsp;socket_id);<br />+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(qp_new&nbsp;==&nbsp;NULL)&nbsp;{<br />+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ZSDA_LOG(ERR,&nbsp;&quot;Failed&nbsp;to&nbsp;alloc&nbsp;mem&nbsp;for&nbsp;qp&nbsp;struct&quot;);<br />+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-ENOMEM;<br />+&nbsp;&nbsp;&nbsp;&nbsp;}<br />+<br />+&nbsp;&nbsp;&nbsp;&nbsp;task_q_info.nb_des&nbsp;=&nbsp;nb_des;<br />+&nbsp;&nbsp;&nbsp;&nbsp;task_q_info.socket_id&nbsp;=&nbsp;socket_id;<br />+&nbsp;&nbsp;&nbsp;&nbsp;task_q_info.qp_id&nbsp;=&nbsp;qp_id;<br />+&nbsp;&nbsp;&nbsp;&nbsp;task_q_info.rx_cb&nbsp;=&nbsp;NULL;<br />+<br />+&nbsp;&nbsp;&nbsp;&nbsp;task_q_info.type&nbsp;=&nbsp;ZSDA_SERVICE_CRYPTO_ENCRY;<br />+&nbsp;&nbsp;&nbsp;&nbsp;task_q_info.service_str&nbsp;=&nbsp;&quot;encry&quot;;<br />+&nbsp;&nbsp;&nbsp;&nbsp;task_q_info.tx_cb&nbsp;=&nbsp;NULL;<br />+&nbsp;&nbsp;&nbsp;&nbsp;task_q_info.match&nbsp;=&nbsp;NULL;<br />+&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;=&nbsp;zsda_task_queue_setup(zsda_pci_dev,&nbsp;qp_new,&nbsp;&amp;task_q_info);<br />+<br />+&nbsp;&nbsp;&nbsp;&nbsp;task_q_info.type&nbsp;=&nbsp;ZSDA_SERVICE_CRYPTO_DECRY;<br />+&nbsp;&nbsp;&nbsp;&nbsp;task_q_info.service_str&nbsp;=&nbsp;&quot;decry&quot;;<br />+&nbsp;&nbsp;&nbsp;&nbsp;task_q_info.tx_cb&nbsp;=&nbsp;NULL;<br />+&nbsp;&nbsp;&nbsp;&nbsp;task_q_info.match&nbsp;=&nbsp;NULL;<br />+&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;|=&nbsp;zsda_task_queue_setup(zsda_pci_dev,&nbsp;qp_new,&nbsp;&amp;task_q_info);<br />+<br />+&nbsp;&nbsp;&nbsp;&nbsp;task_q_info.type&nbsp;=&nbsp;ZSDA_SERVICE_HASH_ENCODE;<br />+&nbsp;&nbsp;&nbsp;&nbsp;task_q_info.service_str&nbsp;=&nbsp;&quot;hash&quot;;<br />+&nbsp;&nbsp;&nbsp;&nbsp;task_q_info.tx_cb&nbsp;=&nbsp;NULL;<br />+&nbsp;&nbsp;&nbsp;&nbsp;task_q_info.match&nbsp;=&nbsp;NULL;<br />+&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;|=&nbsp;zsda_task_queue_setup(zsda_pci_dev,&nbsp;qp_new,&nbsp;&amp;task_q_info);<br />+<br />+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(ret)&nbsp;{<br />+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ZSDA_LOG(ERR,&nbsp;&quot;zsda_task_queue_setup&nbsp;crypto&nbsp;is&nbsp;failed!&quot;);<br />+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rte_free(qp_new);<br />+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;ret;<br />+&nbsp;&nbsp;&nbsp;&nbsp;}<br />+<br />+&nbsp;&nbsp;&nbsp;&nbsp;*qp_addr&nbsp;=&nbsp;qp_new;<br />+<br />+&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;ret;<br />+}<br />+<br />&nbsp;static&nbsp;struct&nbsp;rte_cryptodev_ops&nbsp;crypto_zsda_ops&nbsp;=&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.dev_configure&nbsp;=&nbsp;zsda_dev_config,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.dev_start&nbsp;=&nbsp;zsda_dev_start,<br />@@&nbsp;-107,8&nbsp;+181,8&nbsp;@@&nbsp;static&nbsp;struct&nbsp;rte_cryptodev_ops&nbsp;crypto_zsda_ops&nbsp;=&nbsp;{<br />&nbsp;
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.stats_get&nbsp;=&nbsp;zsda_crypto_stats_get,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.stats_reset&nbsp;=&nbsp;zsda_crypto_stats_reset,<br />-&nbsp;&nbsp;&nbsp;&nbsp;.queue_pair_setup&nbsp;=&nbsp;NULL,<br />-&nbsp;&nbsp;&nbsp;&nbsp;.queue_pair_release&nbsp;=&nbsp;NULL,<br />+&nbsp;&nbsp;&nbsp;&nbsp;.queue_pair_setup&nbsp;=&nbsp;zsda_qp_setup,<br />+&nbsp;&nbsp;&nbsp;&nbsp;.queue_pair_release&nbsp;=&nbsp;zsda_qp_release,<br />&nbsp;
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.sym_session_get_size&nbsp;=&nbsp;NULL,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.sym_session_configure&nbsp;=&nbsp;NULL,<br />--&nbsp;
<br />2.27.0<br />