File Index
Files and directories
Sign in
FILE

fnic_pci_subsys_devid.c

File preview with syntax highlighting.

linux-6.19.14/drivers/scsi/fnic/fnic_pci_subsys_devid.c C
  1// SPDX-License-Identifier: GPL-2.0-only
  2/*
  3 * Copyright 2008 Cisco Systems, Inc.  All rights reserved.
  4 * Copyright 2007 Nuova Systems, Inc.  All rights reserved.
  5 */
  6
  7#include <linux/module.h>
  8#include <linux/mempool.h>
  9#include <linux/string.h>
 10#include <linux/slab.h>
 11#include <linux/errno.h>
 12#include <linux/init.h>
 13#include <linux/pci.h>
 14#include <linux/interrupt.h>
 15#include <linux/irq.h>
 16#include <linux/spinlock.h>
 17#include <linux/workqueue.h>
 18#include <linux/kthread.h>
 19#include <linux/if_ether.h>
 20#include "fnic.h"
 21
 22static struct fnic_pcie_device fnic_pcie_device_table[] = {
 23	{PCI_DEVICE_ID_CISCO_SERENO, "Sereno", PCI_SUBDEVICE_ID_CISCO_VASONA,
 24	 "VIC 1280"},
 25	{PCI_DEVICE_ID_CISCO_SERENO, "Sereno", PCI_SUBDEVICE_ID_CISCO_COTATI,
 26	 "VIC 1240"},
 27	{PCI_DEVICE_ID_CISCO_SERENO, "Sereno",
 28	 PCI_SUBDEVICE_ID_CISCO_LEXINGTON, "VIC 1225"},
 29	{PCI_DEVICE_ID_CISCO_SERENO, "Sereno", PCI_SUBDEVICE_ID_CISCO_ICEHOUSE,
 30	 "VIC 1285"},
 31	{PCI_DEVICE_ID_CISCO_SERENO, "Sereno",
 32	 PCI_SUBDEVICE_ID_CISCO_KIRKWOODLAKE, "VIC 1225T"},
 33	{PCI_DEVICE_ID_CISCO_SERENO, "Sereno",
 34	 PCI_SUBDEVICE_ID_CISCO_SUSANVILLE, "VIC 1227"},
 35	{PCI_DEVICE_ID_CISCO_SERENO, "Sereno", PCI_SUBDEVICE_ID_CISCO_TORRANCE,
 36	 "VIC 1227T"},
 37
 38	{PCI_DEVICE_ID_CISCO_CRUZ, "Cruz", PCI_SUBDEVICE_ID_CISCO_CALISTOGA,
 39	 "VIC 1340"},
 40	{PCI_DEVICE_ID_CISCO_CRUZ, "Cruz", PCI_SUBDEVICE_ID_CISCO_MOUNTAINVIEW,
 41	 "VIC 1380"},
 42	{PCI_DEVICE_ID_CISCO_CRUZ, "Cruz", PCI_SUBDEVICE_ID_CISCO_MOUNTTIAN,
 43	 "C3260-SIOC"},
 44	{PCI_DEVICE_ID_CISCO_CRUZ, "Cruz", PCI_SUBDEVICE_ID_CISCO_CLEARLAKE,
 45	 "VIC 1385"},
 46	{PCI_DEVICE_ID_CISCO_CRUZ, "Cruz", PCI_SUBDEVICE_ID_CISCO_MOUNTTIAN2,
 47	 "C3260-SIOC"},
 48	{PCI_DEVICE_ID_CISCO_CRUZ, "Cruz", PCI_SUBDEVICE_ID_CISCO_CLAREMONT,
 49	 "VIC 1387"},
 50
 51	{PCI_DEVICE_ID_CISCO_BODEGA, "Bodega", PCI_SUBDEVICE_ID_CISCO_BRADBURY,
 52	 "VIC 1457"},
 53	{PCI_DEVICE_ID_CISCO_BODEGA, "Bodega",
 54	 PCI_SUBDEVICE_ID_CISCO_BRENTWOOD, "VIC 1455"},
 55	{PCI_DEVICE_ID_CISCO_BODEGA, "Bodega",
 56	 PCI_SUBDEVICE_ID_CISCO_BURLINGAME, "VIC 1487"},
 57	{PCI_DEVICE_ID_CISCO_BODEGA, "Bodega", PCI_SUBDEVICE_ID_CISCO_BAYSIDE,
 58	 "VIC 1485"},
 59	{PCI_DEVICE_ID_CISCO_BODEGA, "Bodega",
 60	 PCI_SUBDEVICE_ID_CISCO_BAKERSFIELD, "VIC 1440"},
 61	{PCI_DEVICE_ID_CISCO_BODEGA, "Bodega",
 62	 PCI_SUBDEVICE_ID_CISCO_BOONVILLE, "VIC 1480"},
 63	{PCI_DEVICE_ID_CISCO_BODEGA, "Bodega", PCI_SUBDEVICE_ID_CISCO_BENICIA,
 64	 "VIC 1495"},
 65	{PCI_DEVICE_ID_CISCO_BODEGA, "Bodega", PCI_SUBDEVICE_ID_CISCO_BEAUMONT,
 66	 "VIC 1497"},
 67	{PCI_DEVICE_ID_CISCO_BODEGA, "Bodega", PCI_SUBDEVICE_ID_CISCO_BRISBANE,
 68	 "VIC 1467"},
 69	{PCI_DEVICE_ID_CISCO_BODEGA, "Bodega", PCI_SUBDEVICE_ID_CISCO_BENTON,
 70	 "VIC 1477"},
 71	{PCI_DEVICE_ID_CISCO_BODEGA, "Bodega",
 72	 PCI_SUBDEVICE_ID_CISCO_TWIN_RIVER, "VIC 14425"},
 73	{PCI_DEVICE_ID_CISCO_BODEGA, "Bodega",
 74	 PCI_SUBDEVICE_ID_CISCO_TWIN_PEAK, "VIC 14825"},
 75
 76	{PCI_DEVICE_ID_CISCO_BEVERLY, "Beverly", PCI_SUBDEVICE_ID_CISCO_BERN,
 77	 "VIC 15420"},
 78	{PCI_DEVICE_ID_CISCO_BEVERLY, "Beverly",
 79	 PCI_SUBDEVICE_ID_CISCO_STOCKHOLM, "VIC 15428"},
 80	{PCI_DEVICE_ID_CISCO_BEVERLY, "Beverly", PCI_SUBDEVICE_ID_CISCO_KRAKOW,
 81	 "VIC 15411"},
 82	{PCI_DEVICE_ID_CISCO_BEVERLY, "Beverly",
 83	 PCI_SUBDEVICE_ID_CISCO_LUCERNE, "VIC 15231"},
 84	{PCI_DEVICE_ID_CISCO_BEVERLY, "Beverly", PCI_SUBDEVICE_ID_CISCO_TURKU,
 85	 "VIC 15238"},
 86	{PCI_DEVICE_ID_CISCO_BEVERLY, "Beverly", PCI_SUBDEVICE_ID_CISCO_GENEVA,
 87	 "VIC 15422"},
 88	{PCI_DEVICE_ID_CISCO_BEVERLY, "Beverly",
 89	 PCI_SUBDEVICE_ID_CISCO_HELSINKI, "VIC 15235"},
 90	{PCI_DEVICE_ID_CISCO_BEVERLY, "Beverly",
 91	 PCI_SUBDEVICE_ID_CISCO_GOTHENBURG, "VIC 15425"},
 92	{PCI_DEVICE_ID_CISCO_BEVERLY, "Beverly",
 93	 PCI_SUBDEVICE_ID_CISCO_TURKU_PLUS, "VIC 15237"},
 94	{PCI_DEVICE_ID_CISCO_BEVERLY, "Beverly", PCI_SUBDEVICE_ID_CISCO_ZURICH,
 95	 "VIC 15230"},
 96	{PCI_DEVICE_ID_CISCO_BEVERLY, "Beverly", PCI_SUBDEVICE_ID_CISCO_RIGA,
 97	 "VIC 15427"},
 98
 99	{0,}
100};
101
102int fnic_get_desc_by_devid(struct pci_dev *pdev, char **desc,
103						   char **subsys_desc)
104{
105	unsigned short device = PCI_DEVICE_ID_CISCO_VIC_FC;
106	int max = ARRAY_SIZE(fnic_pcie_device_table);
107	struct fnic_pcie_device *t = fnic_pcie_device_table;
108	int index = 0;
109
110	if (pdev->device != device)
111		return 1;
112
113	while (t->device != 0) {
114		if (memcmp
115			((char *) &pdev->subsystem_device,
116			 (char *) &t->subsystem_device, sizeof(short)) == 0)
117			break;
118		t++;
119		index++;
120	}
121
122	if (index >= max - 1) {
123		*desc = NULL;
124		*subsys_desc = NULL;
125		return 1;
126	}
127
128	*desc = fnic_pcie_device_table[index].desc;
129	*subsys_desc = fnic_pcie_device_table[index].subsys_desc;
130	return 0;
131}
~/ Read-only file preview.