Commit 0314b020 authored by Jean Delvare's avatar 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: default avatarJean Delvare <khali@linux-fr.org>
Acked-by: default avatarBen Gardner <gardner.ben@gmail.com>
parent b835d7fb
...@@ -24,8 +24,8 @@ General Remarks ...@@ -24,8 +24,8 @@ General Remarks
Valid addresses are 0x18, 0x19, 0x1a, and 0x1b. Valid addresses are 0x18, 0x19, 0x1a, and 0x1b.
However, the device cannot be detected without writing to the i2c bus, so no However, the device cannot be detected without writing to the i2c bus, so no
detection is done. detection is done. You should instantiate the device explicitly.
You should force the device address.
$ modprobe ds2482 force=0,0x18 $ modprobe ds2482
$ echo ds2482 0x18 > /sys/bus/i2c/devices/i2c-0/new_device
...@@ -23,19 +23,6 @@ ...@@ -23,19 +23,6 @@
#include "../w1.h" #include "../w1.h"
#include "../w1_int.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 * The DS2482 registers - there are 3 registers that are addressed by a read
* pointer. The read pointer is set by the last command executed. * pointer. The read pointer is set by the last command executed.
...@@ -96,8 +83,6 @@ static const u8 ds2482_chan_rd[8] = ...@@ -96,8 +83,6 @@ static const u8 ds2482_chan_rd[8] =
static int ds2482_probe(struct i2c_client *client, static int ds2482_probe(struct i2c_client *client,
const struct i2c_device_id *id); 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); static int ds2482_remove(struct i2c_client *client);
...@@ -117,8 +102,6 @@ static struct i2c_driver ds2482_driver = { ...@@ -117,8 +102,6 @@ static struct i2c_driver ds2482_driver = {
.probe = ds2482_probe, .probe = ds2482_probe,
.remove = ds2482_remove, .remove = ds2482_remove,
.id_table = ds2482_id, .id_table = ds2482_id,
.detect = ds2482_detect,
.address_data = &addr_data,
}; };
/* /*
...@@ -425,19 +408,6 @@ static u8 ds2482_w1_reset_bus(void *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, static int ds2482_probe(struct i2c_client *client,
const struct i2c_device_id *id) const struct i2c_device_id *id)
{ {
...@@ -446,6 +416,11 @@ static int ds2482_probe(struct i2c_client *client, ...@@ -446,6 +416,11 @@ static int ds2482_probe(struct i2c_client *client,
int temp1; int temp1;
int idx; 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))) { if (!(data = kzalloc(sizeof(struct ds2482_data), GFP_KERNEL))) {
err = -ENOMEM; err = -ENOMEM;
goto exit; goto exit;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment