Crap, I just realized that I was putting out an ERROR severity log
message when reporting that I was going to enable mastering. This patch
superscedes and usese ivtv debug level.
Bryan Mayland wrote:
patch
Index: driver/ivtv-driver.c
===================================================================
--- driver/ivtv-driver.c (revision 337)
+++ driver/ivtv-driver.c (working copy)
@@ -829,11 +829,15 @@
/* Check for bus mastering */
pci_read_config_word(dev, PCI_COMMAND, &cmd);
if (!(cmd & PCI_COMMAND_MASTER)) {
- IVTV_KERN_ERR("Bus Mastering is not enabled\n");
- return -ENXIO;
- } else {
- IVTV_DEBUG(IVTV_DEBUG_INFO, "Bus Mastering Enabled.");
- }
+ IVTV_DEBUG(IVTV_DEBUG_INFO, "Attempting to enable Bus
Mastering\n");
+ pci_set_master(dev);
+ pci_read_config_word(dev, PCI_COMMAND, &cmd);
+ if (!(cmd & PCI_COMMAND_MASTER)) {
+ IVTV_KERN_ERR("Bus Mastering is not enabled\n");
+ return -ENXIO;
+ }
+ }
+ IVTV_DEBUG(IVTV_DEBUG_INFO, "Bus Mastering Enabled.");
pci_read_config_byte(dev, PCI_CLASS_REVISION, &itv->card_rev);
pci_read_config_byte(dev, PCI_LATENCY_TIMER, &pci_latency);
@@ -1304,6 +1308,8 @@
IVTV_DEBUG(IVTV_DEBUG_INFO, " Releasing mem.\n");
release_mem_region(pci_resource_start(itv->dev, 0), IVTV_IOREMAP_SIZE);
+ pci_disable_device(itv->dev);
+
IVTV_KERN_INFO("Removed %s, card #%d\n", itv->card->name, itv->num);
}