Skip to content

Commit 3f8f2e9

Browse files
committed
Merge branch 'eth-fbnic-support-basic-rss-config-and-setting-channel-count'
Jakub Kicinski says: ==================== eth: fbnic: support basic RSS config and setting channel count Add support for basic RSS config (indirection table, key get and set), and changing the number of channels. # ./ksft-net-drv/run_kselftest.sh -t drivers/net/hw:rss_ctx.py TAP version 13 1..1 # timeout set to 0 # selftests: drivers/net/hw: rss_ctx.py # KTAP version 1 # 1..15 # ok 1 rss_ctx.test_rss_key_indir # ok 2 rss_ctx.test_rss_queue_reconfigure # ok 3 rss_ctx.test_rss_resize # ok 4 rss_ctx.test_hitless_key_update .. the rest of the tests are for additional contexts so they get skipped.. The slicing of the patches (and bugs) are mine, but I'm keeping Alex as the author on the patches where he wrote 100% of the code. ==================== Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
2 parents f6f1795 + 52dc722 commit 3f8f2e9

File tree

9 files changed

+695
-196
lines changed

9 files changed

+695
-196
lines changed

drivers/net/ethernet/meta/fbnic/fbnic.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@
1616
#include "fbnic_mac.h"
1717
#include "fbnic_rpc.h"
1818

19+
struct fbnic_napi_vector;
20+
21+
#define FBNIC_MAX_NAPI_VECTORS 128u
22+
1923
struct fbnic_dev {
2024
struct device *dev;
2125
struct net_device *netdev;
@@ -29,6 +33,11 @@ struct fbnic_dev {
2933
unsigned int pcs_msix_vector;
3034
unsigned short num_irqs;
3135

36+
struct {
37+
u8 users;
38+
char name[IFNAMSIZ + 9];
39+
} napi_irq[FBNIC_MAX_NAPI_VECTORS];
40+
3241
struct delayed_work service_task;
3342

3443
struct fbnic_fw_mbx mbx[FBNIC_IPC_MBX_INDICES];
@@ -148,6 +157,12 @@ void fbnic_hwmon_unregister(struct fbnic_dev *fbd);
148157
int fbnic_pcs_irq_enable(struct fbnic_dev *fbd);
149158
void fbnic_pcs_irq_disable(struct fbnic_dev *fbd);
150159

160+
void fbnic_napi_name_irqs(struct fbnic_dev *fbd);
161+
int fbnic_napi_request_irq(struct fbnic_dev *fbd,
162+
struct fbnic_napi_vector *nv);
163+
void fbnic_napi_free_irq(struct fbnic_dev *fbd,
164+
struct fbnic_napi_vector *nv);
165+
void fbnic_synchronize_irq(struct fbnic_dev *fbd, int nr);
151166
int fbnic_request_irq(struct fbnic_dev *dev, int nr, irq_handler_t handler,
152167
unsigned long flags, const char *name, void *data);
153168
void fbnic_free_irq(struct fbnic_dev *dev, int nr, void *data);

0 commit comments

Comments
 (0)