Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b39ad0cf authored by Mark M. Hoffman's avatar Mark M. Hoffman Committed by Greg Kroah-Hartman
Browse files

[PATCH] i2c: Handle i2c_add_adapter failure in i2c algorithm drivers



Content-Disposition: inline; filename=i2c-algo-error-handling-fix.patch

It is possible for i2c_add_adapter() to fail.  Several I2C algorithm
drivers ignore that fact.  This (compile-tested only) patch fixes them.

Signed-off-by: default avatarMark M. Hoffman <mhoffman@lightlink.com>
Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 5d925fec
Loading
Loading
Loading
Loading
+1 −2
Original line number Original line Diff line number Diff line
@@ -544,8 +544,7 @@ int i2c_bit_add_bus(struct i2c_adapter *adap)
	adap->timeout = 100;	/* default values, should	*/
	adap->timeout = 100;	/* default values, should	*/
	adap->retries = 3;	/* be replaced by defines	*/
	adap->retries = 3;	/* be replaced by defines	*/


	i2c_add_adapter(adap);
	return i2c_add_adapter(adap);
	return 0;
}
}




+1 −3
Original line number Original line Diff line number Diff line
@@ -742,10 +742,8 @@ int i2c_iic_add_bus(struct i2c_adapter *adap)
	adap->retries = 3;		/* be replaced by defines	*/
	adap->retries = 3;		/* be replaced by defines	*/
	adap->flags = 0;
	adap->flags = 0;


	i2c_add_adapter(adap);
	iic_init(iic_adap);
	iic_init(iic_adap);

	return i2c_add_adapter(adap);
	return 0;
}
}




+3 −3
Original line number Original line Diff line number Diff line
@@ -374,10 +374,10 @@ int i2c_pca_add_bus(struct i2c_adapter *adap)
	adap->timeout = 100;		/* default values, should	*/
	adap->timeout = 100;		/* default values, should	*/
	adap->retries = 3;		/* be replaced by defines	*/
	adap->retries = 3;		/* be replaced by defines	*/


	rval = pca_init(pca_adap);
	if ((rval = pca_init(pca_adap)))
		return rval;


	if (!rval)
	rval = i2c_add_adapter(adap);
		i2c_add_adapter(adap);


	return rval;
	return rval;
}
}
+5 −3
Original line number Original line Diff line number Diff line
@@ -479,9 +479,11 @@ int i2c_pcf_add_bus(struct i2c_adapter *adap)
	adap->timeout = 100;		/* default values, should	*/
	adap->timeout = 100;		/* default values, should	*/
	adap->retries = 3;		/* be replaced by defines	*/
	adap->retries = 3;		/* be replaced by defines	*/


	rval = pcf_init_8584(pcf_adap);
	if ((rval = pcf_init_8584(pcf_adap)))
	if (!rval)
		return rval;
		i2c_add_adapter(adap);

	rval = i2c_add_adapter(adap);

	return rval;
	return rval;
}
}


+1 −3
Original line number Original line Diff line number Diff line
@@ -173,9 +173,7 @@ int i2c_sibyte_add_bus(struct i2c_adapter *i2c_adap, int speed)
		printk("\n");
		printk("\n");
	}
	}


	i2c_add_adapter(i2c_adap);
	return i2c_add_adapter(i2c_adap);

	return 0;
}
}