net: tn40xx: add pci driver for Tehuti Networks TN40xx chips
This just adds the scaffolding for an ethernet driver for Tehuti Networks TN40xx chips. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com> Reviewed-by: Jakub Kicinski <kuba@kernel.org> Link: https://patch.msgid.link/20240623235507.108147-3-fujita.tomonori@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
eee5528890
commit
ab61adc600
@ -22148,7 +22148,13 @@ TEHUTI ETHERNET DRIVER
|
||||
M: Andy Gospodarek <andy@greyhouse.net>
|
||||
L: netdev@vger.kernel.org
|
||||
S: Supported
|
||||
F: drivers/net/ethernet/tehuti/*
|
||||
F: drivers/net/ethernet/tehuti/tehuti.*
|
||||
|
||||
TEHUTI TN40XX ETHERNET DRIVER
|
||||
M: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
||||
L: netdev@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/net/ethernet/tehuti/tn40*
|
||||
|
||||
TELECOM CLOCK DRIVER FOR MCPL0010
|
||||
M: Mark Gross <markgross@kernel.org>
|
||||
|
@ -23,4 +23,16 @@ config TEHUTI
|
||||
help
|
||||
Tehuti Networks 10G Ethernet NIC
|
||||
|
||||
config TEHUTI_TN40
|
||||
tristate "Tehuti Networks TN40xx 10G Ethernet adapters"
|
||||
depends on PCI
|
||||
help
|
||||
This driver supports 10G Ethernet adapters using Tehuti Networks
|
||||
TN40xx chips. Currently, adapters with Applied Micro Circuits
|
||||
Corporation QT2025 are supported; Tehuti Networks TN9310,
|
||||
DLink DXE-810S, ASUS XG-C100F, and Edimax EN-9320.
|
||||
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called tn40xx.
|
||||
|
||||
endif # NET_VENDOR_TEHUTI
|
||||
|
@ -4,3 +4,6 @@
|
||||
#
|
||||
|
||||
obj-$(CONFIG_TEHUTI) += tehuti.o
|
||||
|
||||
tn40xx-y := tn40.o
|
||||
obj-$(CONFIG_TEHUTI_TN40) += tn40xx.o
|
||||
|
54
drivers/net/ethernet/tehuti/tn40.c
Normal file
54
drivers/net/ethernet/tehuti/tn40.c
Normal file
@ -0,0 +1,54 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/* Copyright (c) Tehuti Networks Ltd. */
|
||||
|
||||
#include <linux/pci.h>
|
||||
|
||||
#include "tn40.h"
|
||||
|
||||
static int tn40_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = pci_enable_device(pdev);
|
||||
if (ret)
|
||||
return ret;
|
||||
ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev, "failed to set DMA mask.\n");
|
||||
goto err_disable_device;
|
||||
}
|
||||
return 0;
|
||||
err_disable_device:
|
||||
pci_disable_device(pdev);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void tn40_remove(struct pci_dev *pdev)
|
||||
{
|
||||
pci_disable_device(pdev);
|
||||
}
|
||||
|
||||
static const struct pci_device_id tn40_id_table[] = {
|
||||
{ PCI_DEVICE_SUB(PCI_VENDOR_ID_TEHUTI, 0x4022,
|
||||
PCI_VENDOR_ID_TEHUTI, 0x3015) },
|
||||
{ PCI_DEVICE_SUB(PCI_VENDOR_ID_TEHUTI, 0x4022,
|
||||
PCI_VENDOR_ID_DLINK, 0x4d00) },
|
||||
{ PCI_DEVICE_SUB(PCI_VENDOR_ID_TEHUTI, 0x4022,
|
||||
PCI_VENDOR_ID_ASUSTEK, 0x8709) },
|
||||
{ PCI_DEVICE_SUB(PCI_VENDOR_ID_TEHUTI, 0x4022,
|
||||
PCI_VENDOR_ID_EDIMAX, 0x8103) },
|
||||
{ }
|
||||
};
|
||||
|
||||
static struct pci_driver tn40_driver = {
|
||||
.name = TN40_DRV_NAME,
|
||||
.id_table = tn40_id_table,
|
||||
.probe = tn40_probe,
|
||||
.remove = tn40_remove,
|
||||
};
|
||||
|
||||
module_pci_driver(tn40_driver);
|
||||
|
||||
MODULE_DEVICE_TABLE(pci, tn40_id_table);
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_DESCRIPTION("Tehuti Network TN40xx Driver");
|
9
drivers/net/ethernet/tehuti/tn40.h
Normal file
9
drivers/net/ethernet/tehuti/tn40.h
Normal file
@ -0,0 +1,9 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/* Copyright (c) Tehuti Networks Ltd. */
|
||||
|
||||
#ifndef _TN40_H_
|
||||
#define _TN40_H_
|
||||
|
||||
#define TN40_DRV_NAME "tn40xx"
|
||||
|
||||
#endif /* _TN40XX_H */
|
Loading…
x
Reference in New Issue
Block a user