mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 16:41:58 +00:00
i2c: Remove i2c_algorithm.algo_control()
This removes: - An effectively unused hook: i2c_algorithm.algo_control. - The i2c_control() call, used only by i2c-dev to call that unused hook or set two barely supported adapter params. (That param setting moves into i2c-dev.c ... still iffy due to lack of locking, but no other changes.) As shown by diffstat, this is a net code shrink. It also reduces the complexity of the I2C adapter and /dev interfaces. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
This commit is contained in:
parent
cdeec3cc79
commit
53be795934
@ -931,28 +931,6 @@ int i2c_master_recv(struct i2c_client *client, char *buf ,int count)
|
||||
}
|
||||
EXPORT_SYMBOL(i2c_master_recv);
|
||||
|
||||
int i2c_control(struct i2c_client *client,
|
||||
unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
int ret = 0;
|
||||
struct i2c_adapter *adap = client->adapter;
|
||||
|
||||
dev_dbg(&client->adapter->dev, "i2c ioctl, cmd: 0x%x, arg: %#lx\n", cmd, arg);
|
||||
switch (cmd) {
|
||||
case I2C_RETRIES:
|
||||
adap->retries = arg;
|
||||
break;
|
||||
case I2C_TIMEOUT:
|
||||
adap->timeout = arg;
|
||||
break;
|
||||
default:
|
||||
if (adap->algo->algo_control!=NULL)
|
||||
ret = adap->algo->algo_control(adap,cmd,arg);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(i2c_control);
|
||||
|
||||
/* ----------------------------------------------------
|
||||
* the i2c address scanning function
|
||||
* Will not work for 10-bit addresses!
|
||||
|
@ -354,9 +354,19 @@ static int i2cdev_ioctl(struct inode *inode, struct file *file,
|
||||
return -EFAULT;
|
||||
}
|
||||
return res;
|
||||
|
||||
case I2C_RETRIES:
|
||||
client->adapter->retries = arg;
|
||||
break;
|
||||
case I2C_TIMEOUT:
|
||||
client->adapter->timeout = arg;
|
||||
break;
|
||||
default:
|
||||
return i2c_control(client,cmd,arg);
|
||||
/* NOTE: returning a fault code here could cause trouble
|
||||
* in buggy userspace code. Some old kernel bugs returned
|
||||
* zero in this case, and userspace code might accidentally
|
||||
* have depended on that bug.
|
||||
*/
|
||||
return -ENOTTY;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -290,9 +290,6 @@ struct i2c_algorithm {
|
||||
unsigned short flags, char read_write,
|
||||
u8 command, int size, union i2c_smbus_data * data);
|
||||
|
||||
/* --- ioctl like call to set div. parameters. */
|
||||
int (*algo_control)(struct i2c_adapter *, unsigned int, unsigned long);
|
||||
|
||||
/* To determine what the adapter supports */
|
||||
u32 (*functionality) (struct i2c_adapter *);
|
||||
};
|
||||
@ -416,10 +413,6 @@ extern int i2c_probe(struct i2c_adapter *adapter,
|
||||
struct i2c_client_address_data *address_data,
|
||||
int (*found_proc) (struct i2c_adapter *, int, int));
|
||||
|
||||
/* An ioctl like call to set div. parameters of the adapter.
|
||||
*/
|
||||
extern int i2c_control(struct i2c_client *,unsigned int, unsigned long);
|
||||
|
||||
extern struct i2c_adapter* i2c_get_adapter(int id);
|
||||
extern void i2c_put_adapter(struct i2c_adapter *adap);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user