i2c: Delete the i2c-isa pseudo bus driver
authorJean Delvare <khali@linux-fr.org>
Sun, 8 Jul 2007 12:26:37 +0000 (14:26 +0200)
committerMark M. Hoffman <mhoffman@lightlink.com>
Thu, 19 Jul 2007 18:25:20 +0000 (14:25 -0400)
There are no users of i2c-isa left, so we can finally get rid of it.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
23 files changed:
Documentation/feature-removal-schedule.txt
arch/arm/configs/badge4_defconfig
arch/arm/configs/clps7500_defconfig
arch/arm/configs/footbridge_defconfig
arch/arm/configs/neponset_defconfig
arch/arm/configs/picotux200_defconfig
arch/arm/configs/rpc_defconfig
arch/arm/configs/s3c2410_defconfig
arch/m32r/m32104ut/defconfig.m32104ut
arch/ppc/configs/ev64260_defconfig
arch/ppc/configs/mpc8540_ads_defconfig
arch/ppc/configs/mpc8548_cds_defconfig
arch/ppc/configs/mpc8555_cds_defconfig
arch/ppc/configs/mpc8560_ads_defconfig
arch/ppc/configs/radstone_ppc7d_defconfig
arch/ppc/configs/stx_gp3_defconfig
arch/ppc/configs/sycamore_defconfig
drivers/i2c/busses/Kconfig
drivers/i2c/busses/Makefile
drivers/i2c/busses/i2c-isa.c [deleted file]
drivers/i2c/i2c-core.c
include/linux/i2c-isa.h [deleted file]
include/linux/i2c.h

index 7d3f205b0ba50fddc8da631ba9fad29063239256..df1d6200122742dfb1315963064d34b53ce99e0e 100644 (file)
@@ -181,15 +181,6 @@ Who:       Kay Sievers <kay.sievers@suse.de>
 
 ---------------------------
 
-What:  i2c-isa
-When:  December 2006
-Why:   i2c-isa is a non-sense and doesn't fit in the device driver
-       model. Drivers relying on it are better implemented as platform
-       drivers.
-Who:   Jean Delvare <khali@linux-fr.org>
-
----------------------------
-
 What:  i2c_adapter.list
 When:  July 2007
 Why:   Superfluous, this list duplicates the one maintained by the driver
index 821865f7560515bc2d5b0a91f0410bcb71351234..b2bbf217c7073f1f701bf286fc8df976b00e674a 100644 (file)
@@ -708,7 +708,6 @@ CONFIG_I2C_ALGOPCF=m
 # I2C Hardware Bus support
 #
 CONFIG_I2C_ELEKTOR=m
-# CONFIG_I2C_ISA is not set
 # CONFIG_I2C_PARPORT is not set
 # CONFIG_I2C_PARPORT_LIGHT is not set
 # CONFIG_I2C_STUB is not set
index af9ae5389131b06df21d41b2fb62b1f1c5fbd725..49e9f9d8b3d1f7d689bae672f802c808dcbd0f69 100644 (file)
@@ -536,7 +536,6 @@ CONFIG_I2C_ALGOBIT=y
 # I2C Hardware Bus support
 #
 # CONFIG_I2C_ELEKTOR is not set
-# CONFIG_I2C_ISA is not set
 # CONFIG_I2C_PARPORT is not set
 # CONFIG_I2C_PARPORT_LIGHT is not set
 # CONFIG_I2C_PCA_ISA is not set
index 2a612d23120b0d01d2e3a13d40779287f2b76600..299dc22294a01c16cf52808e5e71cc6222918f1c 100644 (file)
@@ -748,7 +748,6 @@ CONFIG_I2C=m
 # CONFIG_I2C_ELEKTOR is not set
 # CONFIG_I2C_I801 is not set
 # CONFIG_I2C_I810 is not set
-# CONFIG_I2C_ISA is not set
 # CONFIG_I2C_NFORCE2 is not set
 # CONFIG_I2C_PARPORT is not set
 # CONFIG_I2C_PARPORT_LIGHT is not set
index e86794a10fc060c831e3c50080d3c36781b70b6c..92ccdc6492f720a83ae1f5d24a5c90283dc685cf 100644 (file)
@@ -698,7 +698,6 @@ CONFIG_I2C_ALGOBIT=y
 # I2C Hardware Bus support
 #
 # CONFIG_I2C_ELEKTOR is not set
-# CONFIG_I2C_ISA is not set
 # CONFIG_I2C_PARPORT_LIGHT is not set
 # CONFIG_I2C_STUB is not set
 # CONFIG_I2C_PCA_ISA is not set
index 339c48953a6221fa9d6188e84660fd0b0bafb3df..3c0c4f192dc1110dc2aa04ae2927343b6662d7fc 100644 (file)
@@ -735,7 +735,6 @@ CONFIG_I2C_CHARDEV=m
 # I2C Hardware Bus support
 #
 CONFIG_I2C_AT91=m
-CONFIG_I2C_ISA=m
 # CONFIG_I2C_OCORES is not set
 # CONFIG_I2C_PARPORT_LIGHT is not set
 # CONFIG_I2C_STUB is not set
index bc091264d354e0d80144410a5010e9b9f74f3caa..8452dc8c7cc3c39a970664dc7e37afcd15628f40 100644 (file)
@@ -558,7 +558,6 @@ CONFIG_I2C_ALGOBIT=y
 #
 # I2C Hardware Bus support
 #
-# CONFIG_I2C_ISA is not set
 # CONFIG_I2C_PARPORT is not set
 # CONFIG_I2C_PARPORT_LIGHT is not set
 # CONFIG_I2C_STUB is not set
index a850da377a295065ea4e15c9d06dcb7cb7377fcf..1d5150e4d6b3e97cd568e33e21bc1229e45407ad 100644 (file)
@@ -826,7 +826,6 @@ CONFIG_I2C_ALGOBIT=m
 # I2C Hardware Bus support
 #
 # CONFIG_I2C_ELEKTOR is not set
-CONFIG_I2C_ISA=m
 # CONFIG_I2C_OCORES is not set
 # CONFIG_I2C_PARPORT is not set
 # CONFIG_I2C_PARPORT_LIGHT is not set
index 7b68fe8d921e2b8328f4d9cd58842090a9d11292..1f88f493a9e267003d1d3170219a67cf6ba7fe3d 100644 (file)
@@ -699,7 +699,6 @@ CONFIG_I2C_ALGOPCF=m
 # I2C Hardware Bus support
 #
 CONFIG_I2C_ELEKTOR=m
-CONFIG_I2C_ISA=m
 # CONFIG_I2C_OCORES is not set
 # CONFIG_I2C_PARPORT is not set
 # CONFIG_I2C_PARPORT_LIGHT is not set
index 84cc142a67bb633dd41bfce92075c484977ba568..587e9a3b9491fc87daea82248228be7931456b58 100644 (file)
@@ -531,7 +531,6 @@ CONFIG_I2C_CHARDEV=m
 # CONFIG_I2C_AMD8111 is not set
 # CONFIG_I2C_I801 is not set
 # CONFIG_I2C_I810 is not set
-# CONFIG_I2C_ISA is not set
 # CONFIG_I2C_NFORCE2 is not set
 # CONFIG_I2C_PARPORT_LIGHT is not set
 # CONFIG_I2C_PIIX4 is not set
index c5c86025e26177da6adb7552cdfcdf5f6a65a58e..bf676ebd99ab8ed35211407db1a147d2ed6621a3 100644 (file)
@@ -452,7 +452,6 @@ CONFIG_I2C_CHARDEV=y
 # CONFIG_I2C_AMD8111 is not set
 # CONFIG_I2C_I801 is not set
 # CONFIG_I2C_I810 is not set
-# CONFIG_I2C_ISA is not set
 CONFIG_I2C_MPC=y
 # CONFIG_I2C_NFORCE2 is not set
 # CONFIG_I2C_PARPORT_LIGHT is not set
index abe034f24b835c3dd85ada454e76444ec6cd754a..f36fc5db540b89759d8a71669f5fffad62ccfa30 100644 (file)
@@ -413,7 +413,6 @@ CONFIG_I2C_CHARDEV=y
 #
 # I2C Hardware Bus support
 #
-# CONFIG_I2C_ISA is not set
 CONFIG_I2C_MPC=y
 # CONFIG_I2C_PARPORT_LIGHT is not set
 # CONFIG_I2C_PCA_ISA is not set
index 15abebf46b96f8344c634831099794f4e429305e..4f1e320acfbe524327b6704c2302d105fb9fa2d5 100644 (file)
@@ -518,7 +518,6 @@ CONFIG_I2C_CHARDEV=y
 # CONFIG_I2C_I801 is not set
 # CONFIG_I2C_I810 is not set
 # CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_ISA is not set
 CONFIG_I2C_MPC=y
 # CONFIG_I2C_NFORCE2 is not set
 # CONFIG_I2C_PARPORT_LIGHT is not set
index f834fb541ad50e4e8871a5a097c92c1ff6172da9..f12d48fcbba770edefac536d9043393d9af856e6 100644 (file)
@@ -489,7 +489,6 @@ CONFIG_I2C_CHARDEV=y
 # CONFIG_I2C_I801 is not set
 # CONFIG_I2C_I810 is not set
 # CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_ISA is not set
 CONFIG_I2C_MPC=y
 # CONFIG_I2C_NFORCE2 is not set
 # CONFIG_I2C_PARPORT_LIGHT is not set
index ca4d1fd0ca05d1fff890b52100820f512be3cf31..9f64532f2a816250f0c4bd05860615c3d82e685d 100644 (file)
@@ -710,7 +710,6 @@ CONFIG_I2C_CHARDEV=y
 # CONFIG_I2C_I801 is not set
 # CONFIG_I2C_I810 is not set
 # CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_ISA is not set
 # CONFIG_I2C_MPC is not set
 # CONFIG_I2C_NFORCE2 is not set
 # CONFIG_I2C_PARPORT_LIGHT is not set
index 3fedc43e44ad110f3060ffe2e0b4a9e966489dd7..70d6f842aa9bbf2ee97e83c7c9c6f7a44522d15c 100644 (file)
@@ -661,7 +661,6 @@ CONFIG_I2C_ALGOBIT=m
 # CONFIG_I2C_I801 is not set
 # CONFIG_I2C_I810 is not set
 # CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_ISA is not set
 # CONFIG_I2C_MPC is not set
 # CONFIG_I2C_NFORCE2 is not set
 # CONFIG_I2C_PARPORT is not set
index 758114cfea5cac5e2942a2e81770ba7cae28bdd8..6996cca18f3e095d720ece424ad8eec9745fbc7e 100644 (file)
@@ -461,7 +461,6 @@ CONFIG_I2C_CHARDEV=y
 # CONFIG_I2C_I801 is not set
 # CONFIG_I2C_I810 is not set
 # CONFIG_I2C_IBM_IIC is not set
-# CONFIG_I2C_ISA is not set
 # CONFIG_I2C_NFORCE2 is not set
 # CONFIG_I2C_PARPORT_LIGHT is not set
 # CONFIG_I2C_PIIX4 is not set
index 838dc1c19d61b4ba0fe7908a9ac851d1c5189a59..c63bfa68e144fc408af6499f49e4f92f99219d22 100644 (file)
@@ -236,9 +236,6 @@ config I2C_IOP3XX
          This driver can also be built as a module.  If so, the module
          will be called i2c-iop3xx.
 
-config I2C_ISA
-       tristate
-
 config I2C_IXP4XX
        tristate "IXP4xx GPIO-Based I2C Interface (DEPRECATED)"
        depends on ARCH_IXP4XX
index 14d1432f698bf9b24ffd6b70917361dd93403238..b6a8037f1febfe5fa66cdc4d1ed963ddbc1412d9 100644 (file)
@@ -18,7 +18,6 @@ obj-$(CONFIG_I2C_I801)                += i2c-i801.o
 obj-$(CONFIG_I2C_I810)         += i2c-i810.o
 obj-$(CONFIG_I2C_IBM_IIC)      += i2c-ibm_iic.o
 obj-$(CONFIG_I2C_IOP3XX)       += i2c-iop3xx.o
-obj-$(CONFIG_I2C_ISA)          += i2c-isa.o
 obj-$(CONFIG_I2C_IXP2000)      += i2c-ixp2000.o
 obj-$(CONFIG_I2C_IXP4XX)       += i2c-ixp4xx.o
 obj-$(CONFIG_I2C_POWERMAC)     += i2c-powermac.o
diff --git a/drivers/i2c/busses/i2c-isa.c b/drivers/i2c/busses/i2c-isa.c
deleted file mode 100644 (file)
index b0e1370..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
-    i2c-isa.c - an i2c-core-like thing for ISA hardware monitoring chips
-    Copyright (C) 2005  Jean Delvare <khali@linux-fr.org>
-
-    Based on the i2c-isa pseudo-adapter from the lm_sensors project
-    Copyright (c) 1998, 1999  Frodo Looijaard <frodol@dds.nl> 
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-/* This implements an i2c-core-like thing for ISA hardware monitoring
-   chips. Such chips are linked to the i2c subsystem for historical
-   reasons (because the early ISA hardware monitoring chips such as the
-   LM78 had both an I2C and an ISA interface). They used to be
-   registered with the main i2c-core, but as a first step in the
-   direction of a clean separation between I2C and ISA chip drivers,
-   we now have this separate core for ISA ones. It is significantly
-   more simple than the real one, of course, because we don't have to
-   handle multiple busses: there is only one (fake) ISA adapter.
-   It is worth noting that we still rely on i2c-core for some things
-   at the moment - but hopefully this won't last. */
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/i2c.h>
-#include <linux/i2c-isa.h>
-#include <linux/platform_device.h>
-#include <linux/completion.h>
-
-/* Exported by i2c-core for i2c-isa only */
-extern void i2c_adapter_dev_release(struct device *dev);
-extern struct class i2c_adapter_class;
-
-static u32 isa_func(struct i2c_adapter *adapter);
-
-/* This is the actual algorithm we define */
-static const struct i2c_algorithm isa_algorithm = {
-       .functionality  = isa_func,
-};
-
-/* There can only be one... */
-static struct i2c_adapter isa_adapter = {
-       .owner          = THIS_MODULE,
-       .id             = I2C_HW_ISA,
-       .class          = I2C_CLASS_HWMON,
-       .algo           = &isa_algorithm,
-       .name           = "ISA main adapter",
-};
-
-/* We can't do a thing... */
-static u32 isa_func(struct i2c_adapter *adapter)
-{
-       return 0;
-}
-
-
-/* We implement an interface which resembles i2c_{add,del}_driver,
-   but for i2c-isa drivers. We don't have to remember and handle lists
-   of drivers and adapters so this is much more simple, of course. */
-
-int i2c_isa_add_driver(struct i2c_driver *driver)
-{
-       int res;
-
-       /* Add the driver to the list of i2c drivers in the driver core */
-       driver->driver.bus = &i2c_bus_type;
-       res = driver_register(&driver->driver);
-       if (res)
-               return res;
-       dev_dbg(&isa_adapter.dev, "Driver %s registered\n", driver->driver.name);
-
-       /* Now look for clients */
-       res = driver->attach_adapter(&isa_adapter);
-       if (res) {
-               dev_dbg(&isa_adapter.dev,
-                       "Driver %s failed to attach adapter, unregistering\n",
-                       driver->driver.name);
-               driver_unregister(&driver->driver);
-       }
-       return res;
-}
-
-int i2c_isa_del_driver(struct i2c_driver *driver)
-{
-       struct list_head *item, *_n;
-       struct i2c_client *client;
-       int res;
-
-       /* Detach all clients belonging to this one driver */
-       list_for_each_safe(item, _n, &isa_adapter.clients) {
-               client = list_entry(item, struct i2c_client, list);
-               if (client->driver != driver)
-                       continue;
-               dev_dbg(&isa_adapter.dev, "Detaching client %s at 0x%x\n",
-                       client->name, client->addr);
-               if ((res = driver->detach_client(client))) {
-                       dev_err(&isa_adapter.dev, "Failed, driver "
-                               "%s not unregistered!\n",
-                               driver->driver.name);
-                       return res;
-               }
-       }
-
-       /* Get the driver off the core list */
-       driver_unregister(&driver->driver);
-       dev_dbg(&isa_adapter.dev, "Driver %s unregistered\n", driver->driver.name);
-
-       return 0;
-}
-
-
-static int __init i2c_isa_init(void)
-{
-       int err;
-
-       mutex_init(&isa_adapter.clist_lock);
-       INIT_LIST_HEAD(&isa_adapter.clients);
-
-       isa_adapter.nr = ANY_I2C_ISA_BUS;
-       isa_adapter.dev.parent = &platform_bus;
-       sprintf(isa_adapter.dev.bus_id, "i2c-%d", isa_adapter.nr);
-       isa_adapter.dev.release = &i2c_adapter_dev_release;
-       isa_adapter.dev.class = &i2c_adapter_class;
-       err = device_register(&isa_adapter.dev);
-       if (err) {
-               printk(KERN_ERR "i2c-isa: Failed to register device\n");
-               goto exit;
-       }
-
-       dev_dbg(&isa_adapter.dev, "%s registered\n", isa_adapter.name);
-
-       return 0;
-
-exit:
-       return err;
-}
-
-static void __exit i2c_isa_exit(void)
-{
-#ifdef DEBUG
-       struct list_head  *item, *_n;
-       struct i2c_client *client = NULL;
-#endif
-
-       /* There should be no more active client */
-#ifdef DEBUG
-       dev_dbg(&isa_adapter.dev, "Looking for clients\n");
-       list_for_each_safe(item, _n, &isa_adapter.clients) {
-               client = list_entry(item, struct i2c_client, list);
-               dev_err(&isa_adapter.dev, "Driver %s still has an active "
-                       "ISA client at 0x%x\n", client->driver->driver.name,
-                       client->addr);
-       }
-       if (client != NULL)
-               return;
-#endif
-
-       /* Clean up the sysfs representation */
-       dev_dbg(&isa_adapter.dev, "Unregistering from sysfs\n");
-       init_completion(&isa_adapter.dev_released);
-       device_unregister(&isa_adapter.dev);
-
-       /* Wait for sysfs to drop all references */
-       dev_dbg(&isa_adapter.dev, "Waiting for sysfs completion\n");
-       wait_for_completion(&isa_adapter.dev_released);
-
-       dev_dbg(&isa_adapter.dev, "%s unregistered\n", isa_adapter.name);
-}
-
-EXPORT_SYMBOL(i2c_isa_add_driver);
-EXPORT_SYMBOL(i2c_isa_del_driver);
-
-MODULE_AUTHOR("Jean Delvare <khali@linux-fr.org>");
-MODULE_DESCRIPTION("ISA bus access through i2c");
-MODULE_LICENSE("GPL");
-
-module_init(i2c_isa_init);
-module_exit(i2c_isa_exit);
index 435925eba437df0e3cf9cdc9896c3ca6fc97abe4..931f34592be921bf86ddea7d2dd7fe55744ae3fe 100644 (file)
@@ -286,7 +286,6 @@ void i2c_adapter_dev_release(struct device *dev)
        struct i2c_adapter *adap = to_i2c_adapter(dev);
        complete(&adap->dev_released);
 }
-EXPORT_SYMBOL_GPL(i2c_adapter_dev_release);    /* exported to i2c-isa */
 
 static ssize_t
 show_adapter_name(struct device *dev, struct device_attribute *attr, char *buf)
@@ -305,7 +304,6 @@ struct class i2c_adapter_class = {
        .name                   = "i2c-adapter",
        .dev_attrs              = i2c_adapter_attrs,
 };
-EXPORT_SYMBOL_GPL(i2c_adapter_class);          /* exported to i2c-isa */
 
 static void i2c_scan_static_board_info(struct i2c_adapter *adapter)
 {
diff --git a/include/linux/i2c-isa.h b/include/linux/i2c-isa.h
deleted file mode 100644 (file)
index 67e3598..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * i2c-isa.h - definitions for the i2c-isa pseudo-i2c-adapter interface
- *
- * Copyright (C) 2005 Jean Delvare <khali@linux-fr.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef _LINUX_I2C_ISA_H
-#define _LINUX_I2C_ISA_H
-
-#include <linux/i2c.h>
-
-extern int i2c_isa_add_driver(struct i2c_driver *driver);
-extern int i2c_isa_del_driver(struct i2c_driver *driver);
-
-/* Detect whether we are on the isa bus. This is only useful to hybrid
-   (i2c+isa) drivers. */
-#define i2c_is_isa_adapter(adapptr) \
-        ((adapptr)->id == I2C_HW_ISA)
-#define i2c_is_isa_client(clientptr) \
-        i2c_is_isa_adapter((clientptr)->adapter)
-
-#endif /* _LINUX_I2C_ISA_H */
index cae7d618030cbc0e0580a8cb5b9663dd29d2c793..47f40376a3c7a0e7b04e1418e64f2cf8e33fe4a7 100644 (file)
@@ -362,7 +362,6 @@ struct i2c_client_address_data {
 
 /* The numbers to use to set I2C bus address */
 #define ANY_I2C_BUS            0xffff
-#define ANY_I2C_ISA_BUS                9191
 
 
 /* ----- functions exported by i2c.o */