[PATCH 37/38] staging: comedi: mite: remove list of devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



All the drivers that use the "mite" module now allocate a `struct
mite_struct` dynamically instead of searching the `mite_devices` list
populated during initialization of the "mite" module.

Remove the list of devices and the function that prints available NI
devices on the list (`mite_list_devices()`).  The list node and `used`
members in `struct mite_struct` are now redundant, so remove them.

Signed-off-by: Ian Abbott <abbotti@xxxxxxxxx>
---
 drivers/staging/comedi/drivers/mite.c | 56 -----------------------------------
 drivers/staging/comedi/drivers/mite.h |  7 -----
 2 files changed, 63 deletions(-)

diff --git a/drivers/staging/comedi/drivers/mite.c b/drivers/staging/comedi/drivers/mite.c
index 7355455..873c2b7 100644
--- a/drivers/staging/comedi/drivers/mite.c
+++ b/drivers/staging/comedi/drivers/mite.c
@@ -61,9 +61,6 @@
 #define PCI_DAQ_SIZE		4096
 #define PCI_DAQ_SIZE_660X       8192
 
-struct mite_struct *mite_devices;
-EXPORT_SYMBOL(mite_devices);
-
 #define TOP_OF_PAGE(x) ((x)|(~(PAGE_MASK)))
 
 struct mite_struct *mite_alloc(struct pci_dev *pcidev)
@@ -85,26 +82,6 @@ struct mite_struct *mite_alloc(struct pci_dev *pcidev)
 }
 EXPORT_SYMBOL(mite_alloc);
 
-static void mite_init(void)
-{
-	struct pci_dev *pcidev = NULL;
-	struct mite_struct *mite;
-
-	for_each_pci_dev(pcidev) {
-		if (pcidev->vendor == PCI_VENDOR_ID_NI) {
-			mite = mite_alloc(pcidev);
-			if (!mite) {
-				pr_err("allocation failed\n");
-				pci_dev_put(pcidev);
-				return;
-			}
-			pci_dev_get(pcidev);
-			mite->next = mite_devices;
-			mite_devices = mite;
-		}
-	}
-}
-
 static void dump_chip_signature(u32 csigr_bits)
 {
 	pr_info("version = %i, type = %i, mite mode = %i, interface mode = %i\n",
@@ -205,8 +182,6 @@ int mite_setup2(struct mite_struct *mite, unsigned use_iodwbsr_1)
 	}
 	mite->fifo_size = mite_fifo_size(mite, 0);
 	dev_info(&mite->pcidev->dev, "fifo size is %i.\n", mite->fifo_size);
-	mite->used = 1;
-
 	return 0;
 }
 EXPORT_SYMBOL(mite_setup2);
@@ -217,17 +192,6 @@ int mite_setup(struct mite_struct *mite)
 }
 EXPORT_SYMBOL(mite_setup);
 
-static void mite_cleanup(void)
-{
-	struct mite_struct *mite, *next;
-
-	for (mite = mite_devices; mite; mite = next) {
-		pci_dev_put(mite->pcidev);
-		next = mite->next;
-		mite_free(mite);
-	}
-}
-
 void mite_unsetup(struct mite_struct *mite)
 {
 	/* unsigned long offset, start, length; */
@@ -247,25 +211,9 @@ void mite_unsetup(struct mite_struct *mite)
 		comedi_pci_disable(mite->pcidev);
 		mite->mite_phys_addr = 0;
 	}
-
-	mite->used = 0;
 }
 EXPORT_SYMBOL(mite_unsetup);
 
-void mite_list_devices(void)
-{
-	struct mite_struct *mite, *next;
-
-	pr_info("Available NI device IDs:\n");
-	if (mite_devices)
-		for (mite = mite_devices; mite; mite = next) {
-			next = mite->next;
-			pr_info("0x%04x%s\n", mite_device_id(mite),
-				mite->used ? " (used)" : "");
-		}
-}
-EXPORT_SYMBOL(mite_list_devices);
-
 struct mite_dma_descriptor_ring *mite_alloc_ring(struct mite_struct *mite)
 {
 	struct mite_dma_descriptor_ring *ring =
@@ -852,15 +800,11 @@ EXPORT_SYMBOL(mite_dump_regs);
 #ifdef MODULE
 int __init init_module(void)
 {
-	mite_init();
-	mite_list_devices();
-
 	return 0;
 }
 
 void __exit cleanup_module(void)
 {
-	mite_cleanup();
 }
 #endif
 
diff --git a/drivers/staging/comedi/drivers/mite.h b/drivers/staging/comedi/drivers/mite.h
index 912bae1..255b8ba 100644
--- a/drivers/staging/comedi/drivers/mite.h
+++ b/drivers/staging/comedi/drivers/mite.h
@@ -62,15 +62,11 @@ struct mite_channel {
 };
 
 struct mite_struct {
-	struct mite_struct *next;
-	int used;
-
 	struct pci_dev *pcidev;
 	resource_size_t mite_phys_addr;
 	void __iomem *mite_io_addr;
 	resource_size_t daq_phys_addr;
 	void __iomem *daq_io_addr;
-
 	struct mite_channel channels[MAX_MITE_DMA_CHANNELS];
 	short channel_allocated[MAX_MITE_DMA_CHANNELS];
 	int num_channels;
@@ -78,8 +74,6 @@ struct mite_struct {
 	spinlock_t lock;
 };
 
-extern struct mite_struct *mite_devices;
-
 struct mite_struct *mite_alloc(struct pci_dev *pcidev);
 
 static inline void mite_free(struct mite_struct *mite)
@@ -100,7 +94,6 @@ static inline unsigned int mite_device_id(struct mite_struct *mite)
 int mite_setup(struct mite_struct *mite);
 int mite_setup2(struct mite_struct *mite, unsigned use_iodwbsr_1);
 void mite_unsetup(struct mite_struct *mite);
-void mite_list_devices(void);
 struct mite_dma_descriptor_ring *mite_alloc_ring(struct mite_struct *mite);
 void mite_free_ring(struct mite_dma_descriptor_ring *ring);
 struct mite_channel *mite_request_channel_in_range(struct mite_struct *mite,
-- 
1.7.12

_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel


[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux