提交 0314b020 编写于 作者: J Jean Delvare

ds2482: Discard obsolete detect method

There is no point in implementing a detect callback for the DS2482, as
this device can't be detected. It was there solely to handle "force"
module parameters to instantiate devices, but now we have a better sysfs
interface that can do the same.

So we can get rid of the ugly module parameters and the detect callback.
This shrinks the binary module size by 21%.
Signed-off-by: NJean Delvare <khali@linux-fr.org>
Acked-by: NBen Gardner <gardner.ben@gmail.com>
上级 b835d7fb
......@@ -24,8 +24,8 @@ General Remarks
Valid addresses are 0x18, 0x19, 0x1a, and 0x1b.
However, the device cannot be detected without writing to the i2c bus, so no
detection is done.
You should force the device address.
detection is done. You should instantiate the device explicitly.
$ modprobe ds2482 force=0,0x18
$ modprobe ds2482
$ echo ds2482 0x18 > /sys/bus/i2c/devices/i2c-0/new_device
......@@ -23,19 +23,6 @@
#include "../w1.h"
#include "../w1_int.h"
/**
* Address is selected using 2 pins, resulting in 4 possible addresses.
* 0x18, 0x19, 0x1a, 0x1b
* However, the chip cannot be detected without doing an i2c write,
* so use the force module parameter.
*/
static const unsigned short normal_i2c[] = { I2C_CLIENT_END };
/**
* Insmod parameters
*/
I2C_CLIENT_INSMOD_1(ds2482);
/**
* The DS2482 registers - there are 3 registers that are addressed by a read
* pointer. The read pointer is set by the last command executed.
......@@ -96,8 +83,6 @@ static const u8 ds2482_chan_rd[8] =
static int ds2482_probe(struct i2c_client *client,
const struct i2c_device_id *id);
static int ds2482_detect(struct i2c_client *client, int kind,
struct i2c_board_info *info);
static int ds2482_remove(struct i2c_client *client);
......@@ -117,8 +102,6 @@ static struct i2c_driver ds2482_driver = {
.probe = ds2482_probe,
.remove = ds2482_remove,
.id_table = ds2482_id,
.detect = ds2482_detect,
.address_data = &addr_data,
};
/*
......@@ -425,19 +408,6 @@ static u8 ds2482_w1_reset_bus(void *data)
}
static int ds2482_detect(struct i2c_client *client, int kind,
struct i2c_board_info *info)
{
if (!i2c_check_functionality(client->adapter,
I2C_FUNC_SMBUS_WRITE_BYTE_DATA |
I2C_FUNC_SMBUS_BYTE))
return -ENODEV;
strlcpy(info->type, "ds2482", I2C_NAME_SIZE);
return 0;
}
static int ds2482_probe(struct i2c_client *client,
const struct i2c_device_id *id)
{
......@@ -446,6 +416,11 @@ static int ds2482_probe(struct i2c_client *client,
int temp1;
int idx;
if (!i2c_check_functionality(client->adapter,
I2C_FUNC_SMBUS_WRITE_BYTE_DATA |
I2C_FUNC_SMBUS_BYTE))
return -ENODEV;
if (!(data = kzalloc(sizeof(struct ds2482_data), GFP_KERNEL))) {
err = -ENOMEM;
goto exit;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册