From e372b78cc5d9d10bd74d046ca006bc709379879e Mon Sep 17 00:00:00 2001 From: "Mark D. Studebaker" Date: Thu, 3 Jul 2003 01:30:13 +0000 Subject: [PATCH] don't use pci_module_init() for video i2c drivers so we don't conflict with video drivers git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@1833 7894878c-1315-0410-8ee3-d5d059ff63e0 --- kernel/busses/i2c-i810.c | 25 ++++++++++++++++++++----- kernel/busses/i2c-savage4.c | 25 ++++++++++++++++++++----- kernel/busses/i2c-via.c | 18 ++++++++++++++++++ kernel/busses/i2c-viapro.c | 18 ++++++++++++++++++ kernel/busses/i2c-voodoo3.c | 19 +++++++++++++++++++ 5 files changed, 95 insertions(+), 10 deletions(-) diff --git a/kernel/busses/i2c-i810.c b/kernel/busses/i2c-i810.c index 9d57b280..4940a69b 100644 --- a/kernel/busses/i2c-i810.c +++ b/kernel/busses/i2c-i810.c @@ -273,28 +273,43 @@ static void __devexit i810_remove(struct pci_dev *dev) } +/* Don't register driver to avoid driver conflicts */ +/* static struct pci_driver i810_driver = { .name = "i810 smbus", .id_table = i810_ids, .probe = i810_probe, .remove = __devexit_p(i810_remove), }; +*/ static int __init i2c_i810_init(void) { - printk("i2c-i810.o version %s (%s)\n", LM_VERSION, LM_DATE); - return pci_module_init(&i810_driver); -} + struct pci_dev *dev; + const struct pci_device_id *id; + printk("i2c-i810.o version %s (%s)\n", LM_VERSION, LM_DATE); +/* + return pci_module_init(&i810_driver); +*/ + pci_for_each_dev(dev) { + id = pci_match_device(i810_ids, dev); + if(id) + if(i810_probe(dev, id) >= 0) + return 0; + } + return -ENODEV; +} static void __exit i2c_i810_exit(void) { +/* pci_unregister_driver(&i810_driver); +*/ + i810_remove(NULL); iounmap(mem); } - - MODULE_AUTHOR ("Frodo Looijaard , Philip Edelbrock , Ralph Metzler , and Mark D. Studebaker "); MODULE_DESCRIPTION("I810/I815 I2C/DDC driver"); diff --git a/kernel/busses/i2c-savage4.c b/kernel/busses/i2c-savage4.c index c940db34..12c94fb0 100644 --- a/kernel/busses/i2c-savage4.c +++ b/kernel/busses/i2c-savage4.c @@ -195,28 +195,43 @@ static void __devexit savage4_remove(struct pci_dev *dev) } +/* Don't register driver to avoid driver conflicts */ +/* static struct pci_driver savage4_driver = { .name = "savage4 smbus", .id_table = savage4_ids, .probe = savage4_probe, .remove = __devexit_p(savage4_remove), }; +*/ static int __init i2c_savage4_init(void) { - printk("i2c-savage4.o version %s (%s)\n", LM_VERSION, LM_DATE); - return pci_module_init(&savage4_driver); -} + struct pci_dev *dev; + const struct pci_device_id *id; + printk("i2c-savage4.o version %s (%s)\n", LM_VERSION, LM_DATE); +/* + return pci_module_init(&savage4_driver); +*/ + pci_for_each_dev(dev) { + id = pci_match_device(savage4_ids, dev); + if(id) + if(savage4_probe(dev, id) >= 0) + return 0; + } + return -ENODEV; +} static void __exit i2c_savage4_exit(void) { +/* pci_unregister_driver(&savage4_driver); +*/ + savage4_remove(NULL); iounmap(mem); } - - MODULE_AUTHOR ("Frodo Looijaard , Philip Edelbrock , Ralph Metzler , and Mark D. Studebaker "); MODULE_DESCRIPTION("Savage4 I2C/SMBus driver"); diff --git a/kernel/busses/i2c-via.c b/kernel/busses/i2c-via.c index c507822a..e8e74726 100644 --- a/kernel/busses/i2c-via.c +++ b/kernel/busses/i2c-via.c @@ -159,23 +159,41 @@ static void __devexit vt586b_remove(struct pci_dev *dev) } +/* Don't register driver to avoid driver conflicts */ +/* static struct pci_driver vt586b_driver = { .name = "vt586b smbus", .id_table = vt586b_ids, .probe = vt586b_probe, .remove = __devexit_p(vt586b_remove), }; +*/ static int __init i2c_vt586b_init(void) { + struct pci_dev *dev; + const struct pci_device_id *id; + printk("i2c-via.o version %s (%s)\n", LM_VERSION, LM_DATE); +/* return pci_module_init(&vt586b_driver); +*/ + pci_for_each_dev(dev) { + id = pci_match_device(vt586b_ids, dev); + if(id) + if(vt586b_probe(dev, id) >= 0) + return 0; + } + return -ENODEV; } static void __exit i2c_vt586b_exit(void) { +/* pci_unregister_driver(&vt586b_driver); +*/ + vt586b_remove(NULL); } diff --git a/kernel/busses/i2c-viapro.c b/kernel/busses/i2c-viapro.c index 5c4cafb1..21f2c3ab 100644 --- a/kernel/busses/i2c-viapro.c +++ b/kernel/busses/i2c-viapro.c @@ -459,23 +459,41 @@ static struct pci_device_id vt596_ids[] __devinitdata = { { 0, } }; +/* Don't register driver to avoid driver conflicts */ +/* static struct pci_driver vt596_driver = { .name = "vt596 smbus", .id_table = vt596_ids, .probe = vt596_probe, .remove = __devexit_p(vt596_remove), }; +*/ static int __init i2c_vt596_init(void) { + struct pci_dev *dev; + const struct pci_device_id *id; + printk("i2c-viapro.o version %s (%s)\n", LM_VERSION, LM_DATE); +/* return pci_module_init(&vt596_driver); +*/ + pci_for_each_dev(dev) { + id = pci_match_device(vt596_ids, dev); + if(id) + if(vt596_probe(dev, id) >= 0) + return 0; + } + return -ENODEV; } static void __exit i2c_vt596_exit(void) { +/* pci_unregister_driver(&vt596_driver); +*/ + vt596_remove(NULL); } MODULE_AUTHOR( diff --git a/kernel/busses/i2c-voodoo3.c b/kernel/busses/i2c-voodoo3.c index a994fd96..2c36b0aa 100644 --- a/kernel/busses/i2c-voodoo3.c +++ b/kernel/busses/i2c-voodoo3.c @@ -225,6 +225,7 @@ static int __devinit voodoo3_probe(struct pci_dev *dev, const struct pci_device_ { int retval; + printk("voodoo3: in probe\n"); config_v3(dev); retval = i2c_bit_add_bus(&voodoo3_i2c_adapter); if(retval) @@ -242,23 +243,41 @@ static void __devexit voodoo3_remove(struct pci_dev *dev) } +/* Don't register driver to avoid driver conflicts */ +/* static struct pci_driver voodoo3_driver = { .name = "voodoo3 smbus", .id_table = voodoo3_ids, .probe = voodoo3_probe, .remove = __devexit_p(voodoo3_remove), }; +*/ static int __init i2c_voodoo3_init(void) { + struct pci_dev *dev; + const struct pci_device_id *id; + printk("i2c-voodoo3.o version %s (%s)\n", LM_VERSION, LM_DATE); +/* return pci_module_init(&voodoo3_driver); +*/ + pci_for_each_dev(dev) { + id = pci_match_device(voodoo3_ids, dev); + if(id) + if(voodoo3_probe(dev, id) >= 0) + return 0; + } + return -ENODEV; } static void __exit i2c_voodoo3_exit(void) { +/* pci_unregister_driver(&voodoo3_driver); +*/ + voodoo3_remove(NULL); iounmap(mem); }