Date: Sat, 24 Mar 2012 00:30:17 +0000 (UTC) From: Marius Strobl <marius@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r233403 - head/sys/dev/mpt Message-ID: <201203240030.q2O0UHxK001353@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: marius Date: Sat Mar 24 00:30:17 2012 New Revision: 233403 URL: http://svn.freebsd.org/changeset/base/233403 Log: - Use the PCI ID macros from mpi_cnfg.h rather than duplicating them here. Note that this driver additionally probes some device IDs for the most part not know to other MPT drivers, if at all. So rename the macros not present in mpi_cnfg.h to match the naming scheme in the latter and but suffix them with a _FB in order to not cause conflicts. - Like mpt_set_config_regs(), comment out mpt_read_config_regs() as the content of the registers read isn't actually used and both functions aren't exactly up to date regarding the possible layouts of the BARs (these function might be helpful for debugging though, so don't remove them completely). - Use DEVMETHOD_END. - Use NULL rather than 0 for pointers. - Remove an unusual check for the softc being NULL. - Remove redundant zeroing of the softc. - Remove an overly banal and actually partly incorrect as well as partly outdated comment regarding the allocation of the memory resource. MFC after: 3 days Modified: head/sys/dev/mpt/mpt.h head/sys/dev/mpt/mpt_pci.c Modified: head/sys/dev/mpt/mpt.h ============================================================================== --- head/sys/dev/mpt/mpt.h Fri Mar 23 23:07:02 2012 (r233402) +++ head/sys/dev/mpt/mpt.h Sat Mar 24 00:30:17 2012 (r233403) @@ -716,7 +716,9 @@ struct mpt_softc { int pci_msi_count; struct resource * pci_irq; /* Interrupt map for chip */ void * ih; /* Interrupt handle */ +#if 0 struct mpt_pci_cfg pci_cfg; /* saved PCI conf registers */ +#endif /* * DMA Mapping Stuff Modified: head/sys/dev/mpt/mpt_pci.c ============================================================================== --- head/sys/dev/mpt/mpt_pci.c Fri Mar 23 23:07:02 2012 (r233402) +++ head/sys/dev/mpt/mpt_pci.c Sat Mar 24 00:30:17 2012 (r233403) @@ -105,6 +105,8 @@ __FBSDID("$FreeBSD$"); #include <dev/mpt/mpt_cam.h> #include <dev/mpt/mpt_raid.h> +#include <dev/mpt/mpilib/mpi_cnfg.h> + #if __FreeBSD_version < 700000 #define pci_msix_count(x) 0 #define pci_msi_count(x) 0 @@ -113,104 +115,36 @@ __FBSDID("$FreeBSD$"); #define pci_release_msi(x) do { ; } while (0) #endif -#ifndef PCI_VENDOR_LSI -#define PCI_VENDOR_LSI 0x1000 -#endif - -#ifndef PCI_PRODUCT_LSI_FC909 -#define PCI_PRODUCT_LSI_FC909 0x0620 -#endif - -#ifndef PCI_PRODUCT_LSI_FC909A -#define PCI_PRODUCT_LSI_FC909A 0x0621 -#endif - -#ifndef PCI_PRODUCT_LSI_FC919 -#define PCI_PRODUCT_LSI_FC919 0x0624 -#endif - -#ifndef PCI_PRODUCT_LSI_FC919_LAN -#define PCI_PRODUCT_LSI_FC919_LAN 0x0625 -#endif - -#ifndef PCI_PRODUCT_LSI_FC929 -#define PCI_PRODUCT_LSI_FC929 0x0622 -#endif - -#ifndef PCI_PRODUCT_LSI_FC929_LAN -#define PCI_PRODUCT_LSI_FC929_LAN 0x0623 -#endif - -#ifndef PCI_PRODUCT_LSI_FC929X -#define PCI_PRODUCT_LSI_FC929X 0x0626 -#endif - -#ifndef PCI_PRODUCT_LSI_FC929X_LAN -#define PCI_PRODUCT_LSI_FC929X_LAN 0x0627 -#endif - -#ifndef PCI_PRODUCT_LSI_FC919X -#define PCI_PRODUCT_LSI_FC919X 0x0628 -#endif - -#ifndef PCI_PRODUCT_LSI_FC919X_LAN -#define PCI_PRODUCT_LSI_FC919X_LAN 0x0629 -#endif - -#ifndef PCI_PRODUCT_LSI_FC7X04X -#define PCI_PRODUCT_LSI_FC7X04X 0x0640 -#endif - -#ifndef PCI_PRODUCT_LSI_FC646 -#define PCI_PRODUCT_LSI_FC646 0x0646 -#endif - -#ifndef PCI_PRODUCT_LSI_1030 -#define PCI_PRODUCT_LSI_1030 0x0030 -#endif - -#ifndef PCI_PRODUCT_LSI_1030ZC -#define PCI_PRODUCT_LSI_1030ZC 0x0031 -#endif - -#ifndef PCI_PRODUCT_LSI_SAS1064 -#define PCI_PRODUCT_LSI_SAS1064 0x0050 -#endif - -#ifndef PCI_PRODUCT_LSI_SAS1064A -#define PCI_PRODUCT_LSI_SAS1064A 0x005C -#endif - -#ifndef PCI_PRODUCT_LSI_SAS1064E -#define PCI_PRODUCT_LSI_SAS1064E 0x0056 -#endif +/* + * XXX it seems no other MPT driver knows about the following chips. + */ -#ifndef PCI_PRODUCT_LSI_SAS1066 -#define PCI_PRODUCT_LSI_SAS1066 0x005E +#ifndef MPI_MANUFACTPAGE_DEVICEID_FC909_FB +#define MPI_MANUFACTPAGE_DEVICEID_FC909_FB 0x0620 #endif -#ifndef PCI_PRODUCT_LSI_SAS1066E -#define PCI_PRODUCT_LSI_SAS1066E 0x005A +#ifndef MPI_MANUFACTPAGE_DEVICEID_FC919_LAN_FB +#define MPI_MANUFACTPAGE_DEVICEID_FC919_LAN_FB 0x0625 #endif -#ifndef PCI_PRODUCT_LSI_SAS1068 -#define PCI_PRODUCT_LSI_SAS1068 0x0054 +#ifndef MPI_MANUFACTPAGE_DEVICEID_FC929_LAN_FB +#define MPI_MANUFACTPAGE_DEVICEID_FC929_LAN_FB 0x0623 #endif -#ifndef PCI_PRODUCT_LSI_SAS1068A -#define PCI_PRODUCT_LSI_SAS1068A 0x0055 +#ifndef MPI_MANUFACTPAGE_DEVICEID_FC929X_LAN_FB +#define MPI_MANUFACTPAGE_DEVICEID_FC929X_LAN_FB 0x0627 #endif -#ifndef PCI_PRODUCT_LSI_SAS1068E -#define PCI_PRODUCT_LSI_SAS1068E 0x0058 +#ifndef MPI_MANUFACTPAGE_DEVICEID_FC919X_LAN_FB +#define MPI_MANUFACTPAGE_DEVICEID_FC919X_LAN_FB 0x0629 #endif -#ifndef PCI_PRODUCT_LSI_SAS1078 -#define PCI_PRODUCT_LSI_SAS1078 0x0062 +#ifndef MPI_MANUFACTPAGE_DEVID_SAS1068A_FB +#define MPI_MANUFACTPAGE_DEVID_SAS1068A_FB 0x0055 #endif -#ifndef PCI_PRODUCT_LSI_SAS1078DE -#define PCI_PRODUCT_LSI_SAS1078DE 0x007C +#ifndef MPI_MANUFACTPAGE_DEVID_SAS1078DE_FB +#define MPI_MANUFACTPAGE_DEVID_SAS1078DE_FB 0x007C #endif #ifndef PCIM_CMD_SERRESPEN @@ -224,8 +158,8 @@ static int mpt_pci_detach(device_t); static int mpt_pci_shutdown(device_t); static int mpt_dma_mem_alloc(struct mpt_softc *mpt); static void mpt_dma_mem_free(struct mpt_softc *mpt); -static void mpt_read_config_regs(struct mpt_softc *mpt); #if 0 +static void mpt_read_config_regs(struct mpt_softc *mpt); static void mpt_set_config_regs(struct mpt_softc *mpt); #endif static void mpt_pci_intr(void *); @@ -236,77 +170,76 @@ static device_method_t mpt_methods[] = { DEVMETHOD(device_attach, mpt_pci_attach), DEVMETHOD(device_detach, mpt_pci_detach), DEVMETHOD(device_shutdown, mpt_pci_shutdown), - { 0, 0 } + DEVMETHOD_END }; static driver_t mpt_driver = { "mpt", mpt_methods, sizeof(struct mpt_softc) }; static devclass_t mpt_devclass; -DRIVER_MODULE(mpt, pci, mpt_driver, mpt_devclass, 0, 0); +DRIVER_MODULE(mpt, pci, mpt_driver, mpt_devclass, NULL, NULL); MODULE_DEPEND(mpt, pci, 1, 1, 1); MODULE_VERSION(mpt, 1); static int mpt_pci_probe(device_t dev) { - char *desc; + const char *desc; - if (pci_get_vendor(dev) != PCI_VENDOR_LSI) { + if (pci_get_vendor(dev) != MPI_MANUFACTPAGE_VENDORID_LSILOGIC) return (ENXIO); - } switch (pci_get_device(dev)) { - case PCI_PRODUCT_LSI_FC909: + case MPI_MANUFACTPAGE_DEVICEID_FC909_FB: desc = "LSILogic FC909 FC Adapter"; break; - case PCI_PRODUCT_LSI_FC909A: + case MPI_MANUFACTPAGE_DEVICEID_FC909: desc = "LSILogic FC909A FC Adapter"; break; - case PCI_PRODUCT_LSI_FC919: + case MPI_MANUFACTPAGE_DEVICEID_FC919: desc = "LSILogic FC919 FC Adapter"; break; - case PCI_PRODUCT_LSI_FC919_LAN: + case MPI_MANUFACTPAGE_DEVICEID_FC919_LAN_FB: desc = "LSILogic FC919 LAN Adapter"; break; - case PCI_PRODUCT_LSI_FC929: + case MPI_MANUFACTPAGE_DEVICEID_FC929: desc = "Dual LSILogic FC929 FC Adapter"; break; - case PCI_PRODUCT_LSI_FC929_LAN: + case MPI_MANUFACTPAGE_DEVICEID_FC929_LAN_FB: desc = "Dual LSILogic FC929 LAN Adapter"; break; - case PCI_PRODUCT_LSI_FC919X: + case MPI_MANUFACTPAGE_DEVICEID_FC919X: desc = "LSILogic FC919 FC PCI-X Adapter"; break; - case PCI_PRODUCT_LSI_FC919X_LAN: + case MPI_MANUFACTPAGE_DEVICEID_FC919X_LAN_FB: desc = "LSILogic FC919 LAN PCI-X Adapter"; break; - case PCI_PRODUCT_LSI_FC929X: + case MPI_MANUFACTPAGE_DEVICEID_FC929X: desc = "Dual LSILogic FC929X 2Gb/s FC PCI-X Adapter"; break; - case PCI_PRODUCT_LSI_FC929X_LAN: + case MPI_MANUFACTPAGE_DEVICEID_FC929X_LAN_FB: desc = "Dual LSILogic FC929X LAN PCI-X Adapter"; break; - case PCI_PRODUCT_LSI_FC646: + case MPI_MANUFACTPAGE_DEVICEID_FC949E: desc = "Dual LSILogic FC7X04X 4Gb/s FC PCI-Express Adapter"; break; - case PCI_PRODUCT_LSI_FC7X04X: + case MPI_MANUFACTPAGE_DEVICEID_FC949X: desc = "Dual LSILogic FC7X04X 4Gb/s FC PCI-X Adapter"; break; - case PCI_PRODUCT_LSI_1030: - case PCI_PRODUCT_LSI_1030ZC: + case MPI_MANUFACTPAGE_DEVID_53C1030: + case MPI_MANUFACTPAGE_DEVID_53C1030ZC: desc = "LSILogic 1030 Ultra4 Adapter"; break; - case PCI_PRODUCT_LSI_SAS1064: - case PCI_PRODUCT_LSI_SAS1064A: - case PCI_PRODUCT_LSI_SAS1064E: - case PCI_PRODUCT_LSI_SAS1066: - case PCI_PRODUCT_LSI_SAS1066E: - case PCI_PRODUCT_LSI_SAS1068: - case PCI_PRODUCT_LSI_SAS1068A: - case PCI_PRODUCT_LSI_SAS1068E: - case PCI_PRODUCT_LSI_SAS1078: - case PCI_PRODUCT_LSI_SAS1078DE: + case MPI_MANUFACTPAGE_DEVID_SAS1064: + case MPI_MANUFACTPAGE_DEVID_SAS1064A: + case MPI_MANUFACTPAGE_DEVID_SAS1064E: + case MPI_MANUFACTPAGE_DEVID_SAS1066: + case MPI_MANUFACTPAGE_DEVID_SAS1066E: + case MPI_MANUFACTPAGE_DEVID_SAS1068: + case MPI_MANUFACTPAGE_DEVID_SAS1068A_FB: + case MPI_MANUFACTPAGE_DEVID_SAS1068E: + case MPI_MANUFACTPAGE_DEVID_SAS1078: + case MPI_MANUFACTPAGE_DEVID_SAS1078DE_FB: desc = "LSILogic SAS/SATA Adapter"; break; default: @@ -459,40 +392,35 @@ mpt_pci_attach(device_t dev) uint32_t data, cmd; int mpt_io_bar, mpt_mem_bar; - /* Allocate the softc structure */ mpt = (struct mpt_softc*)device_get_softc(dev); - if (mpt == NULL) { - device_printf(dev, "cannot allocate softc\n"); - return (ENOMEM); - } - memset(mpt, 0, sizeof(struct mpt_softc)); + switch (pci_get_device(dev)) { - case PCI_PRODUCT_LSI_FC909: - case PCI_PRODUCT_LSI_FC909A: - case PCI_PRODUCT_LSI_FC919: - case PCI_PRODUCT_LSI_FC919_LAN: - case PCI_PRODUCT_LSI_FC929: - case PCI_PRODUCT_LSI_FC929_LAN: - case PCI_PRODUCT_LSI_FC929X: - case PCI_PRODUCT_LSI_FC929X_LAN: - case PCI_PRODUCT_LSI_FC919X: - case PCI_PRODUCT_LSI_FC919X_LAN: - case PCI_PRODUCT_LSI_FC646: - case PCI_PRODUCT_LSI_FC7X04X: + case MPI_MANUFACTPAGE_DEVICEID_FC909_FB: + case MPI_MANUFACTPAGE_DEVICEID_FC909: + case MPI_MANUFACTPAGE_DEVICEID_FC919: + case MPI_MANUFACTPAGE_DEVICEID_FC919_LAN_FB: + case MPI_MANUFACTPAGE_DEVICEID_FC929: + case MPI_MANUFACTPAGE_DEVICEID_FC929_LAN_FB: + case MPI_MANUFACTPAGE_DEVICEID_FC929X: + case MPI_MANUFACTPAGE_DEVICEID_FC929X_LAN_FB: + case MPI_MANUFACTPAGE_DEVICEID_FC919X: + case MPI_MANUFACTPAGE_DEVICEID_FC919X_LAN_FB: + case MPI_MANUFACTPAGE_DEVICEID_FC949E: + case MPI_MANUFACTPAGE_DEVICEID_FC949X: mpt->is_fc = 1; break; - case PCI_PRODUCT_LSI_SAS1078: - case PCI_PRODUCT_LSI_SAS1078DE: + case MPI_MANUFACTPAGE_DEVID_SAS1078: + case MPI_MANUFACTPAGE_DEVID_SAS1078DE_FB: mpt->is_1078 = 1; /* FALLTHROUGH */ - case PCI_PRODUCT_LSI_SAS1064: - case PCI_PRODUCT_LSI_SAS1064A: - case PCI_PRODUCT_LSI_SAS1064E: - case PCI_PRODUCT_LSI_SAS1066: - case PCI_PRODUCT_LSI_SAS1066E: - case PCI_PRODUCT_LSI_SAS1068: - case PCI_PRODUCT_LSI_SAS1068A: - case PCI_PRODUCT_LSI_SAS1068E: + case MPI_MANUFACTPAGE_DEVID_SAS1064: + case MPI_MANUFACTPAGE_DEVID_SAS1064A: + case MPI_MANUFACTPAGE_DEVID_SAS1064E: + case MPI_MANUFACTPAGE_DEVID_SAS1066: + case MPI_MANUFACTPAGE_DEVID_SAS1066E: + case MPI_MANUFACTPAGE_DEVID_SAS1068: + case MPI_MANUFACTPAGE_DEVID_SAS1068A_FB: + case MPI_MANUFACTPAGE_DEVID_SAS1068E: mpt->is_sas = 1; break; default: @@ -544,12 +472,12 @@ mpt_pci_attach(device_t dev) * If so, link with our partner (around yet) */ switch (pci_get_device(dev)) { - case PCI_PRODUCT_LSI_FC929: - case PCI_PRODUCT_LSI_FC929_LAN: - case PCI_PRODUCT_LSI_FC646: - case PCI_PRODUCT_LSI_FC7X04X: - case PCI_PRODUCT_LSI_1030: - case PCI_PRODUCT_LSI_1030ZC: + case MPI_MANUFACTPAGE_DEVICEID_FC929: + case MPI_MANUFACTPAGE_DEVICEID_FC929_LAN_FB: + case MPI_MANUFACTPAGE_DEVICEID_FC949E: + case MPI_MANUFACTPAGE_DEVICEID_FC949X: + case MPI_MANUFACTPAGE_DEVID_53C1030: + case MPI_MANUFACTPAGE_DEVID_53C1030ZC: mpt_link_peer(mpt); break; default: @@ -588,7 +516,6 @@ mpt_pci_attach(device_t dev) mpt->pci_pio_sh = rman_get_bushandle(mpt->pci_pio_reg); } - /* Allocate kernel virtual memory for the 9x9's Mem0 region */ mpt_mem_bar = PCIR_BAR(mpt_mem_bar); mpt->pci_reg = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &mpt_mem_bar, RF_ACTIVE); @@ -660,6 +587,7 @@ mpt_pci_attach(device_t dev) goto bad; } +#if 0 /* * Save the PCI config register values * @@ -671,6 +599,7 @@ mpt_pci_attach(device_t dev) */ mpt_read_config_regs(mpt); +#endif /* * Disable PIO until we need it @@ -888,6 +817,7 @@ mpt_dma_mem_free(struct mpt_softc *mpt) mpt->request_pool = NULL; } +#if 0 /* Reads modifiable (via PCI transactions) config registers */ static void mpt_read_config_regs(struct mpt_softc *mpt) @@ -906,7 +836,6 @@ mpt_read_config_regs(struct mpt_softc *m mpt->pci_cfg.PMCSR = pci_read_config(mpt->dev, 0x44, 4); } -#if 0 /* Sets modifiable config registers */ static void mpt_set_config_regs(struct mpt_softc *mpt)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201203240030.q2O0UHxK001353>