| 1923 | } |
| 1924 | |
| 1925 | static int |
| 1926 | cpfl_start_cfgqs(struct cpfl_adapter_ext *adapter) |
| 1927 | { |
| 1928 | int i, ret; |
| 1929 | |
| 1930 | ret = cpfl_config_ctlq_tx(adapter); |
| 1931 | if (ret) { |
| 1932 | PMD_DRV_LOG(ERR, "Fail to configure Tx config queue."); |
| 1933 | return ret; |
| 1934 | } |
| 1935 | |
| 1936 | ret = cpfl_config_ctlq_rx(adapter); |
| 1937 | if (ret) { |
| 1938 | PMD_DRV_LOG(ERR, "Fail to configure Rx config queue."); |
| 1939 | return ret; |
| 1940 | } |
| 1941 | |
| 1942 | for (i = 0; i < CPFL_TX_CFGQ_NUM; i++) { |
| 1943 | ret = idpf_vc_queue_switch(&adapter->ctrl_vport.base, i, false, true); |
| 1944 | if (ret) { |
| 1945 | PMD_DRV_LOG(ERR, "Fail to enable Tx config queue."); |
| 1946 | return ret; |
| 1947 | } |
| 1948 | } |
| 1949 | |
| 1950 | for (i = 0; i < CPFL_RX_CFGQ_NUM; i++) { |
| 1951 | ret = idpf_vc_queue_switch(&adapter->ctrl_vport.base, i, true, true); |
| 1952 | if (ret) { |
| 1953 | PMD_DRV_LOG(ERR, "Fail to enable Rx config queue."); |
| 1954 | return ret; |
| 1955 | } |
| 1956 | } |
| 1957 | |
| 1958 | return 0; |
| 1959 | } |
| 1960 | |
| 1961 | static void |
| 1962 | cpfl_remove_cfgqs(struct cpfl_adapter_ext *adapter) |
no test coverage detected