i2c-tools: don't include linux/i2c-dev.h
Installing headers from upstream i2c-tools makes it impossible to build the busybox version due to redefined symbols. This is caused by the fact that linux/i2c-dev.h from i2c-tools overwrites the one from linux uapi and defines symbols already defined by linux' linux/i2c.h. Drop this include and simply re-implement the relevant defines from linux/i2c-dev.h in miscutils/i2c-tools.c. Tested by building on systems with and without i2c-tools headers. Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
3a7b0fb7b6
commit
0d1eaf407c
@ -8,7 +8,6 @@
|
|||||||
*
|
*
|
||||||
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
|
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//config:config I2CGET
|
//config:config I2CGET
|
||||||
//config: bool "i2cget (5.6 kb)"
|
//config: bool "i2cget (5.6 kb)"
|
||||||
//config: default y
|
//config: default y
|
||||||
@ -63,7 +62,6 @@
|
|||||||
#include "libbb.h"
|
#include "libbb.h"
|
||||||
|
|
||||||
#include <linux/i2c.h>
|
#include <linux/i2c.h>
|
||||||
#include <linux/i2c-dev.h>
|
|
||||||
|
|
||||||
#define I2CDUMP_NUM_REGS 256
|
#define I2CDUMP_NUM_REGS 256
|
||||||
|
|
||||||
@ -71,6 +69,25 @@
|
|||||||
#define I2CDETECT_MODE_QUICK 1
|
#define I2CDETECT_MODE_QUICK 1
|
||||||
#define I2CDETECT_MODE_READ 2
|
#define I2CDETECT_MODE_READ 2
|
||||||
|
|
||||||
|
/* linux/i2c-dev.h from i2c-tools overwrites the one from linux uapi
|
||||||
|
* and defines symbols already defined by linux/i2c.h.
|
||||||
|
* Also, it defines a bunch of static inlines which we would rather NOT
|
||||||
|
* inline. What a mess.
|
||||||
|
* We need only these definitions from linux/i2c-dev.h:
|
||||||
|
*/
|
||||||
|
#define I2C_SLAVE 0x0703
|
||||||
|
#define I2C_SLAVE_FORCE 0x0706
|
||||||
|
#define I2C_FUNCS 0x0705
|
||||||
|
#define I2C_PEC 0x0708
|
||||||
|
#define I2C_SMBUS 0x0720
|
||||||
|
struct i2c_smbus_ioctl_data {
|
||||||
|
__u8 read_write;
|
||||||
|
__u8 command;
|
||||||
|
__u32 size;
|
||||||
|
union i2c_smbus_data *data;
|
||||||
|
};
|
||||||
|
/* end linux/i2c-dev.h */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is needed for ioctl_or_perror_and_die() since it only accepts pointers.
|
* This is needed for ioctl_or_perror_and_die() since it only accepts pointers.
|
||||||
*/
|
*/
|
||||||
@ -1187,18 +1204,17 @@ static void will_skip(const char *cmd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//usage:#define i2cdetect_trivial_usage
|
//usage:#define i2cdetect_trivial_usage
|
||||||
//usage: "[-F I2CBUS] [-l] [-y] [-a] [-q|-r] I2CBUS [FIRST LAST]"
|
//usage: "-l | -F I2CBUS | [-ya] [-q|-r] I2CBUS [FIRST LAST]"
|
||||||
//usage:#define i2cdetect_full_usage "\n\n"
|
//usage:#define i2cdetect_full_usage "\n\n"
|
||||||
//usage: "Detect I2C chips.\n"
|
//usage: "Detect I2C chips"
|
||||||
//usage: "\n I2CBUS i2c bus number"
|
|
||||||
//usage: "\n FIRST and LAST limit the probing range"
|
|
||||||
//usage: "\n"
|
//usage: "\n"
|
||||||
//usage: "\n -l output list of installed busses"
|
//usage: "\n -l Print list of installed buses"
|
||||||
//usage: "\n -y disable interactive mode"
|
//usage: "\n -F BUS# Print list of functionalities on this bus"
|
||||||
//usage: "\n -a force scanning of non-regular addresses"
|
//usage: "\n -y Disable interactive mode"
|
||||||
//usage: "\n -q use smbus quick write commands for probing (default)"
|
//usage: "\n -a Force scanning of non-regular addresses"
|
||||||
//usage: "\n -r use smbus read byte commands for probing"
|
//usage: "\n -q Use smbus quick write commands for probing (default)"
|
||||||
//usage: "\n -F display list of functionalities"
|
//usage: "\n -r Use smbus read byte commands for probing"
|
||||||
|
//usage: "\n FIRST and LAST limit probing range"
|
||||||
int i2cdetect_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
int i2cdetect_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
||||||
int i2cdetect_main(int argc UNUSED_PARAM, char **argv)
|
int i2cdetect_main(int argc UNUSED_PARAM, char **argv)
|
||||||
{
|
{
|
||||||
@ -1213,7 +1229,8 @@ int i2cdetect_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
opts = getopt32(argv, "^"
|
opts = getopt32(argv, "^"
|
||||||
"yaqrFl"
|
"yaqrFl"
|
||||||
"\0"
|
"\0"
|
||||||
"q--r:r--q:"/*mutually exclusive*/ "?3"/*up to 3 args*/
|
"q--r:r--q:"/*mutually exclusive*/
|
||||||
|
"?3"/*up to 3 args*/
|
||||||
);
|
);
|
||||||
argv += optind;
|
argv += optind;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user