Index: lm-sensors/trunk/prog/dump/i2cset.c
===================================================================
--- lm-sensors/trunk/prog/dump/i2cset.c	(revision 4256)
+++ lm-sensors/trunk/prog/dump/i2cset.c	(revision 4432)
@@ -34,5 +34,5 @@
 void help(void)
 {
-	fprintf(stderr, "Syntax: i2cset [-y] I2CBUS CHIP-ADDRESS DATA-ADDRESS "
+	fprintf(stderr, "Syntax: i2cset [-f] [-y] I2CBUS CHIP-ADDRESS DATA-ADDRESS "
 	        "VALUE [MODE] [MASK]\n"
 	        "        i2cset -V\n"
@@ -54,5 +54,5 @@
 	int pec = 0;
 	int flags = 0;
-	int yes = 0, version = 0;
+	int force = 0, yes = 0, version = 0;
 
 	/* handle (optional) flags first */
@@ -60,4 +60,5 @@
 		switch (argv[1+flags][1]) {
 		case 'V': version = 1; break;
+		case 'f': force = 1; break;
 		case 'y': yes = 1; break;
 		default:
@@ -161,11 +162,6 @@
 	}
 
-	/* use FORCE so that we can write registers even when
-	   a driver is also running */
-	if (ioctl(file, I2C_SLAVE_FORCE, address) < 0) {
-		fprintf(stderr, "Error: Could not set address to %d: %s\n",
-		        address, strerror(errno));
+	if (set_slave_addr(file, address, force) < 0)
 		exit(1);
-	}
 
 	if (!yes) {
