Alex Forencich
b2f853cae7
Warn if the application BAR didn't get enumerated
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-11-12 19:15:40 -08:00
Alex Forencich
c2d6942233
modules/mqnic: Call devlink_register earlier
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-09-14 15:24:25 -07:00
Alex Forencich
1e2bcbbb2b
modules/mqnic: Add devlink kernel version ifdefs
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-09-13 18:27:57 -07:00
Alex Forencich
54d0165f68
modules/mqnic: Register ports with devlink
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-09-13 16:40:27 -07:00
Alex Forencich
a9800099e3
modules/mqnic: Add initial devlink support
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-09-12 11:17:24 -07:00
Alex Forencich
2d975c1e83
modules/mqnic: Store build date as a string
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-09-12 11:16:10 -07:00
Alex Forencich
448fa8eb4c
Use SPDX
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-06-26 11:44:57 -07:00
Alex Forencich
902df50c96
modules/mqnic: Add RCB to debug info
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-06-12 23:52:52 -07:00
Alex Forencich
f553be3b65
modules/mqnic: Assert reset during probe of platform device, if connected
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-06-01 23:17:54 -07:00
Alex Forencich
1c7ae0ee73
modules/mqnic: Return pointers directly and use ERR_PTR during object creation
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-04-30 21:57:32 -07:00
Alex Forencich
66f5b9fcc1
Clean up naming in testbenches, driver, and utils
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-04-30 21:48:34 -07:00
Alex Forencich
979b7b6030
modules/mqnic: Add statistics counter read support to mqnic kernel module
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2022-11-23 17:49:38 -08:00
Alex Forencich
051dca3601
modules/mqnic: Add clock info support to mqnic kernel module
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2022-11-23 17:49:14 -08:00
Joachim Foerster
0d2e794b74
modules/mqnic: Add link status monitoring
...
This solution is based on the assumption that, if there are multiple
(mqnic-)ports per (mqnic-)interface, the single netdev, which is currently
associated with one (mqnic-)interface, is assumed to be up, when all ports' TX
and RX status bits are asserted. As soon as one of these bits is deasserted for
any of the involved ports the netdev is assumed to be down.
Module parameter "link_status_poll" specifies the polling interval in
milliseconds. Setting it to 0, disables any form of monitoring. By default we
check once per second, which is a totally arbitrary choice - no special
reasoning.
Signed-off-by: Joachim Foerster <joachim.foerster@missinglinkelectronics.com>
2022-05-23 13:59:46 -07:00
Joachim Foerster
2697ec93e9
modules/mqnic: Minor, fix warning, when CONFIG_AUXILIARY_BUS is not available
...
Signed-off-by: Joachim Foerster <joachim.foerster@missinglinkelectronics.com>
2022-05-23 13:59:46 -07:00
Alex Forencich
c2fea3a616
Add port register blocks with support for PHY link status reporting
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2022-05-04 09:03:37 -07:00
Alex Forencich
e4de3c2fb5
modules/mqnic: Consistent naming of driver functions and structs
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2022-04-24 23:01:15 -07:00
Alex Forencich
1b3caa1f0f
Fix reg block enumeration to properly handle NULL register blocks
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2022-04-22 23:27:15 -07:00
Alex Forencich
65a986cc89
modules/mqnic: Add support for extension kernel modules using the auxiliary bus
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2022-04-21 13:18:00 -07:00
Alex Forencich
7f8bbe30de
Add application ID
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2022-04-21 13:15:45 -07:00
Alex Forencich
69201fbf82
modules/mqnic: Clean up error handling in common probe; do not fail probe if interface creation fails so userspace tools will still be usable via driver
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2022-04-16 23:30:39 -07:00
Joachim Foerster
26c70bbb8a
modules/mqnic/: Add platform driver support
...
Signed-off-by: Joachim Foerster <joachim.foerster@missinglinkelectronics.com>
2022-04-07 17:14:25 +02:00
Alex Forencich
623b758598
Print PCIe bridge information during driver load
2022-03-15 17:55:29 -07: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
Alex Forencich
11f31c896c
Split interface from net_device
2021-12-12 17:28:43 -08:00
Alex Forencich
413238f81c
Refactor interrupt handling
2021-12-12 13:34:33 -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
ddeb8bad94
Use atomic notifier chain for interrupt handling
2021-12-10 21:05:31 -08:00
Alex Forencich
32a82929c6
Normalize create/destroy methods
2021-12-10 21:02:57 -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
27c9241a69
Update header comment, add SPDX license identifiers
2021-10-21 14:55:48 -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
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
2442ff65c5
Support application and RAM bars
2021-09-09 17:50:44 -07:00
Alex Forencich
d0976f193b
Use correct type
2021-09-09 17:49:11 -07:00
Alex Forencich
5f7b0292fc
Print more PCIe information
2021-08-30 01:27:25 -07:00
Alex Forencich
9c8e8430ab
Include misc device name in debug output
2021-03-30 15:05:54 -07:00