diff -Nru a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c --- a/drivers/i2c/i2c-core.c Tue May 6 16:37:55 2003 +++ b/drivers/i2c/i2c-core.c Tue May 6 16:37:55 2003 @@ -76,6 +76,7 @@ int i2c_add_adapter(struct i2c_adapter *adap) { int res = 0, i, j; + int addr; down(&core_lists); for (i = 0; i < I2C_ADAP_MAX; i++) @@ -102,6 +103,13 @@ sprintf(adap->dev.bus_id, "i2c-%d", i); adap->dev.driver = &i2c_generic_driver; device_register(&adap->dev); + + /* Scan the bus to find all valid addresses */ + for (addr = 0x00; addr <= 0x7f; addr++) { + if (i2c_smbus_xfer (adap, addr, 0, 0, 0, I2C_SMBUS_QUICK, NULL) >= 0) { + printk ("GREG: address at %02x\n", addr); + } + } /* inform drivers of new adapters */ for (j=0;j