Alex Forencich
a4a26e7bc4
Fix register accesses
2022-01-05 19:38:56 -08:00
Alex Forencich
335a5e890b
Initial implementation of shared interface datapath
2021-12-31 14:33:31 -08:00
Alex Forencich
ce21774f06
Register space reorganization
2021-12-29 22:31:46 -08:00
Alex Forencich
2091ef8c42
Fix dev_port assignment
2021-12-29 14:29:55 -08:00
Alex Forencich
8b219d3cad
Fix I2C client forwarding to netdevs
2021-12-25 01:40:08 -08:00
Alex Forencich
fb258467e7
Unwrap short lines
2021-12-24 00:02:20 -08:00
Alex Forencich
a7cb23da62
Separate common probe/remove implementation from PCI-specific probe/remove
2021-12-24 00:02:08 -08:00
Alex Forencich
0b7cbe5b05
Peel off ID management code
2021-12-23 23:48:57 -08:00
Joachim Foerster
508b4cf39b
modules/mqnic/: Make number of allocated queue entries configurable via module parameters
...
This may be complemented or replaced by making use of the appropriate ethtool
API in the future, of course.
Signed-off-by: Joachim Foerster <joachim.foerster@missinglinkelectronics.com>
2021-12-15 23:29:02 -08:00
Joachim Foerster
f5f40297e3
modules/mqnic/: Fix, need to initialize per instance mutex before netdev registration
...
struct mqnic::state_lock is used in netdev callbacks, which go "live"
after a netdev has been registered (via mqnic_init_netdev()).
Signed-off-by: Joachim Foerster <joachim.foerster@missinglinkelectronics.com>
2021-12-15 23:29:02 -08:00
Joachim Foerster
60c2b6745d
modules/mqnic/: Fix and enhance Makefile
...
- Apply "Shared Makefile" style as found in [1]
- Especially but not only for cross compilation:
- Accept commonly used variable KDIR to specify kernel build directory
- Additionally accept KERNEL_SRC (instead of KDIR) as used by PetaLinux/Yocto
- Route all usual external module targets through to Kbuild
- Provide "install" target as shortcut for module installation
- Use $(MAKE) as recommended in [2]
[1] https://www.kernel.org/doc/html/latest/kbuild/modules.html , section 3.1
[2] https://www.gnu.org/software/make/manual/make.html#MAKE-Variable , section 5.7.1.
Signed-off-by: Joachim Foerster <joachim.foerster@missinglinkelectronics.com>
2021-12-15 23:29:02 -08:00
Joachim Foerster
6b1666e3b8
modules/mqnic/: Add ignore file
...
Signed-off-by: Joachim Foerster <joachim.foerster@missinglinkelectronics.com>
2021-12-15 23:29:02 -08:00
Alex Forencich
22a27a479c
Configure port RSS settings
2021-12-12 17:44:39 -08:00
Alex Forencich
11f31c896c
Split interface from net_device
2021-12-12 17:28:43 -08:00
Alex Forencich
2f70a871a7
Minor refactor
2021-12-12 14:21:13 -08:00
Alex Forencich
a53d3acd3f
Pass CQ ring instead of index
2021-12-12 14:20:56 -08:00
Alex Forencich
6117f85656
Ensure one-to-one mapping of queues to CQs
2021-12-12 14:20:05 -08:00
Alex Forencich
56706beefc
Pass EQ ring instead of index
2021-12-12 13:58:26 -08:00
Alex Forencich
0418fe33a6
Rename ring_index to index
2021-12-12 13:46:09 -08:00
Alex Forencich
413238f81c
Refactor interrupt handling
2021-12-12 13:34:33 -08:00
Alex Forencich
3c6f80b80c
Add dev references to CQ and EQ rings
2021-12-12 01:53:38 -08:00
Alex Forencich
bfc8e959bf
Split ring buffer allocation from ring creation
2021-12-12 01:52:24 -08:00
Alex Forencich
eeedc179fb
Unconditionally deactivate rings
2021-12-12 01:42:14 -08:00
Alex Forencich
292d805450
Rename mqnic_priv.ports to mqnic_priv.port
2021-12-12 01:38:45 -08:00
Alex Forencich
630d5a565d
Disambiguate rings
2021-12-12 01:37:55 -08:00
Alex Forencich
b340d2aed0
Use min_t for range enforcement
2021-12-11 01:37:59 -08:00
Alex Forencich
53dfd68338
Use MQNIC_MAX_IRQ define when allocating MSI IRQs
2021-12-11 01:27:44 -08:00
Alex Forencich
74bb15bf00
Use ring indicies during setup
2021-12-10 21:05:57 -08:00
Alex Forencich
ddeb8bad94
Use atomic notifier chain for interrupt handling
2021-12-10 21:05:31 -08:00
Alex Forencich
5e65a384e2
Track ring active state
2021-12-10 21:04:52 -08:00
Alex Forencich
c9de7d24d0
Normalize ring_index parameter
2021-12-10 21:03:46 -08:00
Alex Forencich
32a82929c6
Normalize create/destroy methods
2021-12-10 21:02:57 -08:00
Alex Forencich
ed36f169f9
Rename mqnic_priv.port to mqnic_priv.index
2021-12-10 21:01:51 -08:00
Alex Forencich
c739b05b69
Remove unnecessary priv parameters
2021-12-10 20:59:44 -08:00
Alex Forencich
d2663fd711
Print PCIe subsytem IDs
2021-11-02 14:40:32 -07:00
Alex Forencich
aef59c65ec
Use kernel types
2021-10-21 22:19:01 -07:00
Alex Forencich
4ade485344
bits.h is not available in userspace
2021-10-21 15:38:25 -07:00
Alex Forencich
27c9241a69
Update header comment, add SPDX license identifiers
2021-10-21 14:55:48 -07:00
Alex Forencich
df4c1c9db7
Use strscpy instead of strncpy
2021-10-21 14:45:22 -07:00
Alex Forencich
323791cff3
Use __func__ for function name in debug messages
2021-10-21 14:44:05 -07:00
Alex Forencich
79f778d85a
Remove out of memory messages; kernel should print stack trace when allocation fails
2021-10-21 14:01:29 -07:00
Alex Forencich
2adaf820b5
More kernel module coding style updates
2021-10-21 13:54:00 -07:00
Alex Forencich
5b49f09baa
Fix kernel module coding style
2021-10-08 18:31:53 -07:00
Alex Forencich
1bce5827c9
Rework ethtool get_ts_info implementation
2021-10-08 17:47:22 -07:00
Alex Forencich
4294e5ea1d
Use BIT macros
2021-10-08 16:55:56 -07:00
Alex Forencich
2fc87915e3
Update driver for i2c_board_info struct change in kernel 5.13
2021-10-05 22:20:16 -07:00
Alex Forencich
c249081dd2
Use DRIVER_NAME define
2021-10-01 23:45:06 -07:00
Alex Forencich
0965c77b8e
Remove MODULE_SUPPORTED_DEVICE, which was never implemented and was removed in kernel version 5.12
2021-10-01 17:31:15 -07:00
Alex Forencich
c8dd50b051
pcie_print_link_status was added in kernel version 4.17
2021-09-24 17:05:35 -07:00
Alex Forencich
875b664c13
Update offset
2021-09-13 12:54:35 -07:00