summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <greg@kroah.com>2004-08-22 19:54:01 -0700
committerGreg Kroah-Hartman <greg@kroah.com>2004-08-22 19:54:01 -0700
commit9c46b04a4e3ecec0e96a188c5e68c10c8dd769d3 (patch)
tree3312420dac83ed36178a171c691e21aace0af929 /include/linux
parent14729dbe26e736a6cc5479d3acb9e288b56a9a1b (diff)
parentb289a4b7b91abf6712f751da1694ffff9eb9dbe0 (diff)
Merge kroah.com:/home/greg/linux/BK/bleed-2.6
into kroah.com:/home/greg/linux/BK/pci-2.6
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/i2c-algo-pca.h17
-rw-r--r--include/linux/i2c-id.h4
-rw-r--r--include/linux/i2c-vid.h5
-rw-r--r--include/linux/i2c.h4
-rw-r--r--include/linux/moduleparam.h4
-rw-r--r--include/linux/pci.h22
-rw-r--r--include/linux/pci_ids.h4
7 files changed, 51 insertions, 9 deletions
diff --git a/include/linux/i2c-algo-pca.h b/include/linux/i2c-algo-pca.h
new file mode 100644
index 000000000000..941b786c5732
--- /dev/null
+++ b/include/linux/i2c-algo-pca.h
@@ -0,0 +1,17 @@
+#ifndef _LINUX_I2C_ALGO_PCA_H
+#define _LINUX_I2C_ALGO_PCA_H
+
+struct i2c_algo_pca_data {
+ int (*get_own) (struct i2c_algo_pca_data *adap); /* Obtain own address */
+ int (*get_clock) (struct i2c_algo_pca_data *adap);
+ void (*write_byte) (struct i2c_algo_pca_data *adap, int reg, int val);
+ int (*read_byte) (struct i2c_algo_pca_data *adap, int reg);
+ int (*wait_for_interrupt) (struct i2c_algo_pca_data *adap);
+};
+
+#define I2C_PCA_ADAP_MAX 16
+
+int i2c_pca_add_bus(struct i2c_adapter *);
+int i2c_pca_del_bus(struct i2c_adapter *);
+
+#endif /* _LINUX_I2C_ALGO_PCA_H */
diff --git a/include/linux/i2c-id.h b/include/linux/i2c-id.h
index 520fe7220cd3..c75219a37bb5 100644
--- a/include/linux/i2c-id.h
+++ b/include/linux/i2c-id.h
@@ -194,6 +194,7 @@
#define I2C_ALGO_OCP 0x120000 /* IBM or otherwise On-chip I2C algorithm */
#define I2C_ALGO_BITHS 0x130000 /* enhanced bit style adapters */
#define I2C_ALGO_OCP_IOP3XX 0x140000 /* XSCALE IOP3XX On-chip I2C alg */
+#define I2C_ALGO_PCA 0x150000 /* PCA 9564 style adapters */
#define I2C_ALGO_EXP 0x800000 /* experimental */
@@ -239,6 +240,9 @@
#define I2C_HW_P_ISA 0x01 /* generic ISA Bus inteface card */
#define I2C_HW_P_ELEK 0x02 /* Elektor ISA Bus inteface card */
+/* --- PCA 9564 based algorithms */
+#define I2C_HW_A_ISA 0x00 /* generic ISA Bus interface card */
+
/* --- ACPI Embedded controller algorithms */
#define I2C_HW_ACPI_EC 0x00
diff --git a/include/linux/i2c-vid.h b/include/linux/i2c-vid.h
index 86ed1178193f..62424092e44e 100644
--- a/include/linux/i2c-vid.h
+++ b/include/linux/i2c-vid.h
@@ -35,12 +35,15 @@
to avoid floating point in the kernel.
*/
+int i2c_which_vrm(void);
+
#define DEFAULT_VRM 82
static inline int vid_from_reg(int val, int vrm)
{
switch(vrm) {
-
+ case 0:
+ return 0;
case 91: /* VRM 9.1 */
case 90: /* VRM 9.0 */
return(val == 0x1f ? 0 :
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index 0c3cf0e2fbca..caac24868d85 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -566,7 +566,9 @@ union i2c_smbus_data {
#define I2C_CLIENT_MODULE_PARM(var,desc) \
static unsigned short var[I2C_CLIENT_MAX_OPTS] = I2C_CLIENT_DEFAULTS; \
- MODULE_PARM(var,I2C_CLIENT_MODPARM); \
+ static unsigned int var##_num; \
+ /*MODULE_PARM(var,I2C_CLIENT_MODPARM);*/ \
+ module_param_array(var, short, var##_num, 0); \
MODULE_PARM_DESC(var,desc)
/* This is the one you want to use in your own modules */
diff --git a/include/linux/moduleparam.h b/include/linux/moduleparam.h
index 9e799ecc1b43..3b961421c359 100644
--- a/include/linux/moduleparam.h
+++ b/include/linux/moduleparam.h
@@ -89,6 +89,10 @@ extern int parse_args(const char *name,
#define __param_check(name, p, type) \
static inline type *__check_##name(void) { return(p); }
+extern int param_set_byte(const char *val, struct kernel_param *kp);
+extern int param_get_byte(char *buffer, struct kernel_param *kp);
+#define param_check_byte(name, p) __param_check(name, p, unsigned char)
+
extern int param_set_short(const char *val, struct kernel_param *kp);
extern int param_get_short(char *buffer, struct kernel_param *kp);
#define param_check_short(name, p) __param_check(name, p, short)
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 2ce5f957c072..866919694dbc 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -536,7 +536,7 @@ struct pci_dev {
unsigned int is_enabled:1; /* pci_enable_device has been called */
unsigned int is_busmaster:1; /* device is busmaster */
- unsigned int saved_config_space[16]; /* config space saved at suspend time */
+ u32 saved_config_space[16]; /* config space saved at suspend time */
#ifdef CONFIG_PCI_NAMES
#define PCI_NAME_SIZE 96
#define PCI_NAME_HALF __stringify(43) /* less than half to handle slop */
@@ -1001,17 +1001,27 @@ static inline char *pci_name(struct pci_dev *pdev)
*/
struct pci_fixup {
- int pass;
u16 vendor, device; /* You can use PCI_ANY_ID here of course */
void (*hook)(struct pci_dev *dev);
};
-extern struct pci_fixup pcibios_fixups[];
+enum pci_fixup_pass {
+ pci_fixup_header, /* Called immediately after reading configuration header */
+ pci_fixup_final, /* Final phase of device fixups */
+};
+
+/* Anonymous variables would be nice... */
+#define DECLARE_PCI_FIXUP_HEADER(vendor, device, hook) \
+ static struct pci_fixup __pci_fixup_##vendor##device##hook __attribute_used__ \
+ __attribute__((__section__(".pci_fixup_header"))) = { \
+ vendor, device, hook };
-#define PCI_FIXUP_HEADER 1 /* Called immediately after reading configuration header */
-#define PCI_FIXUP_FINAL 2 /* Final phase of device fixups */
+#define DECLARE_PCI_FIXUP_FINAL(vendor, device, hook) \
+ static struct pci_fixup __pci_fixup_##vendor##device##hook __attribute_used__ \
+ __attribute__((__section__(".pci_fixup_final"))) = { \
+ vendor, device, hook };
-void pci_fixup_device(int pass, struct pci_dev *dev);
+void pci_fixup_device(enum pci_fixup_pass pass, struct pci_dev *dev);
extern int pci_pci_problems;
#define PCIPCI_FAIL 1
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 0ca0b5068bc2..4da96fec52a0 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -2229,7 +2229,9 @@
#define PCI_DEVICE_ID_INTEL_82451NX 0x84ca
#define PCI_DEVICE_ID_INTEL_82454NX 0x84cb
#define PCI_DEVICE_ID_INTEL_84460GX 0x84ea
-#define PCI_DEVICE_ID_INTEL_IXP4XX 0x8500
+#define PCI_DEVICE_ID_INTEL_IXP4XX 0x8500
+#define PCI_DEVICE_ID_INTEL_IXP2400 0x9001
+#define PCI_DEVICE_ID_INTEL_IXP2800 0x9004
#define PCI_VENDOR_ID_COMPUTONE 0x8e0e
#define PCI_DEVICE_ID_COMPUTONE_IP2EX 0x0291