Many, many things. Most notably: * Check CDROM insert-remove error of Matt Mueller * Create wait-queues for bus locking instead of pure semaphores, to make it more interactive * Check for block read/writes in smbus-on-i2c emulation code * Merge man-pages * Fans give overflow if small values are written to them. * At least the bit-lp and bit-velle modules do no detection on loading; ask Simon whether this is possible to add. * kmalloc with GFP_KERNEL can cause a context switch! Check whether this is safe everywhere it is used. * Support 10-bit addresses. At this moment, they are supported nowhere, except in Simon Vogl's i2c modules. * Change the i2c modules to keep the namespace clean (EXPORT_SYMBOL does not work for us; many static declarations need to be added; better ask Simon Vogl first) * Make it SMP-safe: there are no spinlocks yet. They are needed at many places, probably (everywhere where global vars are accessed). This must be done for the i2c modules, too. * Better general locking, or at least a once-over to check no race-conditions remain. * Make lm78.c detect 'double hits', (same chip connected to both SMBus and ISA). * Better chip detection; insmod-time paramters to set addresses (difficult, because of all i2c busses!). * At least one case report that unused port addresses do not return 0xff * Registrate which i2c addresses are used (a la ISA) for each adapter. * Rename i2c-proc.c to i2c-user.c, and extend it with /dev entries; or, create a better i2c-dev.c, that understands SMBus commands. * Write all other drivers * How to make drivers detect thing *not*; for example, if a Winbond is present, the LM75 driver should not try to access its simulated LM75 chips. * Write a userland detection program for busses (clients are less important; but perhaps needed too). * Some library routines are pretty inefficient right now * Write SIS5591/95/98 adapter support Thomas Dickel owns one. * Write Acer Labs Aladdin V southbridge (M1543C) support Mark Studebaker is working on it.