Commit fc5f46ff authored by Jean Delvare's avatar Jean Delvare Committed by Greg Kroah-Hartman

[PATCH] I2C: remove bus scan logic from i2c chip drivers

This patch drops bus scan from i2c-algo-ite and i2c-ibm_iic. It also
removes the incomplete and broken SLO_IO stuff from i2c-algo-ite.
parent e1b9575f
...@@ -60,27 +60,13 @@ ...@@ -60,27 +60,13 @@
/* debug the protocol by showing transferred bits */ /* debug the protocol by showing transferred bits */
#define DEF_TIMEOUT 16 #define DEF_TIMEOUT 16
/* debugging - slow down transfer to have a look at the data .. */
/* I use this with two leds&resistors, each one connected to sda,scl */
/* respectively. This makes sure that the algorithm works. Some chips */
/* might not like this, as they have an internal timeout of some mils */
/*
#define SLO_IO jif=jiffies;while(jiffies<=jif+i2c_table[minor].veryslow)\
cond_resched();
*/
/* ----- global variables --------------------------------------------- */ /* ----- global variables --------------------------------------------- */
#ifdef SLO_IO
int jif;
#endif
/* module parameters: /* module parameters:
*/ */
static int i2c_debug=1; static int i2c_debug=1;
static int iic_test=0; /* see if the line-setting functions work */ static int iic_test=0; /* see if the line-setting functions work */
static int iic_scan=0; /* have a look at what's hanging 'round */
/* --- setting states on the bus with the right timing: --------------- */ /* --- setting states on the bus with the right timing: --------------- */
...@@ -757,8 +743,6 @@ static struct i2c_algorithm iic_algo = { ...@@ -757,8 +743,6 @@ static struct i2c_algorithm iic_algo = {
*/ */
int i2c_iic_add_bus(struct i2c_adapter *adap) int i2c_iic_add_bus(struct i2c_adapter *adap)
{ {
int i;
short status;
struct i2c_algo_iic_data *iic_adap = adap->algo_data; struct i2c_algo_iic_data *iic_adap = adap->algo_data;
if (iic_test) { if (iic_test) {
...@@ -782,24 +766,6 @@ int i2c_iic_add_bus(struct i2c_adapter *adap) ...@@ -782,24 +766,6 @@ int i2c_iic_add_bus(struct i2c_adapter *adap)
i2c_add_adapter(adap); i2c_add_adapter(adap);
iic_init(iic_adap); iic_init(iic_adap);
/* scan bus */
/* By default scanning the bus is turned off. */
if (iic_scan) {
printk(KERN_INFO " i2c-algo-ite: scanning bus %s.\n",
adap->name);
for (i = 0x00; i < 0xff; i+=2) {
iic_outw(iic_adap, ITE_I2CSAR, i);
iic_start(iic_adap);
if ( (wait_for_pin(iic_adap, &status) == 0) &&
((status & ITE_I2CHSR_DNE) == 0) ) {
printk(KERN_INFO "\n(%02x)\n",i>>1);
} else {
printk(KERN_INFO ".");
iic_reset(iic_adap);
}
udelay(iic_adap->udelay);
}
}
return 0; return 0;
} }
...@@ -839,11 +805,9 @@ MODULE_DESCRIPTION("ITE iic algorithm"); ...@@ -839,11 +805,9 @@ MODULE_DESCRIPTION("ITE iic algorithm");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_PARM(iic_test, "i"); MODULE_PARM(iic_test, "i");
MODULE_PARM(iic_scan, "i");
MODULE_PARM(i2c_debug,"i"); MODULE_PARM(i2c_debug,"i");
MODULE_PARM_DESC(iic_test, "Test if the I2C bus is available"); MODULE_PARM_DESC(iic_test, "Test if the I2C bus is available");
MODULE_PARM_DESC(iic_scan, "Scan for active chips on the bus");
MODULE_PARM_DESC(i2c_debug, MODULE_PARM_DESC(i2c_debug,
"debug level - 0 off; 1 normal; 2,3 more verbose; 9 iic-protocol"); "debug level - 0 off; 1 normal; 2,3 more verbose; 9 iic-protocol");
......
...@@ -48,10 +48,6 @@ ...@@ -48,10 +48,6 @@
MODULE_DESCRIPTION("IBM IIC driver v" DRIVER_VERSION); MODULE_DESCRIPTION("IBM IIC driver v" DRIVER_VERSION);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
static int iic_scan = 0;
MODULE_PARM(iic_scan, "i");
MODULE_PARM_DESC(iic_scan, "Scan for active chips on the bus");
static int iic_force_poll = 0; static int iic_force_poll = 0;
MODULE_PARM(iic_force_poll, "i"); MODULE_PARM(iic_force_poll, "i");
MODULE_PARM_DESC(iic_force_poll, "Force polling mode"); MODULE_PARM_DESC(iic_force_poll, "Force polling mode");
...@@ -517,32 +513,6 @@ static struct i2c_algorithm iic_algo = { ...@@ -517,32 +513,6 @@ static struct i2c_algorithm iic_algo = {
.functionality = iic_func .functionality = iic_func
}; };
/*
* Scan bus for valid 7-bit addresses (ie things that ACK on 1 byte read)
* We only scan range [0x08 - 0x77], all other addresses are reserved anyway
*/
static void __devinit iic_scan_bus(struct ibm_iic_private* dev)
{
int found = 0;
char dummy;
struct i2c_msg msg = {
.buf = &dummy,
.len = sizeof(dummy),
.flags = I2C_M_RD
};
printk(KERN_INFO "ibm-iic%d: scanning bus...\n" KERN_INFO, dev->idx);
for (msg.addr = 8; msg.addr < 0x78; ++msg.addr)
if (iic_xfer(&dev->adap, &msg, 1) == 1){
++found;
printk(" 0x%02x", msg.addr);
}
printk("%sibm-iic%d: %d device(s) detected\n",
found ? "\n" KERN_INFO : "", dev->idx, found);
}
/* /*
* Calculates IICx_CLCKDIV value for a specific OPB clock frequency * Calculates IICx_CLCKDIV value for a specific OPB clock frequency
*/ */
...@@ -649,10 +619,6 @@ static int __devinit iic_probe(struct ocp_device *ocp){ ...@@ -649,10 +619,6 @@ static int __devinit iic_probe(struct ocp_device *ocp){
printk(KERN_INFO "ibm-iic%d: using %s mode\n", dev->idx, printk(KERN_INFO "ibm-iic%d: using %s mode\n", dev->idx,
dev->fast_mode ? "fast (400 kHz)" : "standard (100 kHz)"); dev->fast_mode ? "fast (400 kHz)" : "standard (100 kHz)");
/* Scan bus if requested by user */
if (iic_scan)
iic_scan_bus(dev);
return 0; return 0;
fail: fail:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment