summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 20:33:43 -0800
committerLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 20:33:43 -0800
commit1fc742dd8e03a4957af9c1fee4a4e465781ba7a9 (patch)
tree775cdf3d1c05d216787569a1b129b3f9aae7b6db /include
parentd40d1af9f0aebf7e108f1dfb66ac5af671bc9719 (diff)
v2.4.14.3 -> v2.4.14.4
- Mikael Pettersson: make proc_misc happy without modules - Arjan van de Ven: clean up acpitable implementation ("micro-acpi") - Anton Altaparmakov: LDM partition code update - Alan Cox: final (yeah, sure) small missing pieces - Andrey Savochkin/Andrew Morton: eepro100 config space save/restore over suspend - Arjan van de Ven: remove power from pcmcia socket on card remove - Greg KH: USB updates - Neil Brown: multipath updates - Martin Dalecki: fix up some "asmlinkage" routine markings
Diffstat (limited to 'include')
-rw-r--r--include/linux/ac97_codec.h3
-rw-r--r--include/linux/console.h1
-rw-r--r--include/linux/isapnp.h15
-rw-r--r--include/linux/kernel.h2
-rw-r--r--include/linux/pci.h5
-rw-r--r--include/linux/raid/md_k.h1
-rw-r--r--include/linux/raid/multipath.h22
7 files changed, 28 insertions, 21 deletions
diff --git a/include/linux/ac97_codec.h b/include/linux/ac97_codec.h
index 96944938fc18..8701d6a01164 100644
--- a/include/linux/ac97_codec.h
+++ b/include/linux/ac97_codec.h
@@ -239,6 +239,7 @@ extern int ac97_read_proc (char *page_out, char **start, off_t off,
extern int ac97_probe_codec(struct ac97_codec *);
extern unsigned int ac97_set_adc_rate(struct ac97_codec *codec, unsigned int rate);
extern unsigned int ac97_set_dac_rate(struct ac97_codec *codec, unsigned int rate);
-
+extern int ac97_save_state(struct ac97_codec *codec);
+extern int ac97_restore_state(struct ac97_codec *codec);
#endif /* _AC97_CODEC_H_ */
diff --git a/include/linux/console.h b/include/linux/console.h
index d2ae967af36c..0fca958bd07e 100644
--- a/include/linux/console.h
+++ b/include/linux/console.h
@@ -112,6 +112,7 @@ extern struct console *console_drivers;
extern void acquire_console_sem(void);
extern void release_console_sem(void);
extern void console_conditional_schedule(void);
+extern void console_unblank(void);
/* VESA Blanking Levels */
#define VESA_NO_BLANKING 0
diff --git a/include/linux/isapnp.h b/include/linux/isapnp.h
index f42165a80799..136dac530b93 100644
--- a/include/linux/isapnp.h
+++ b/include/linux/isapnp.h
@@ -162,6 +162,14 @@ struct isapnp_device_id {
unsigned long driver_data; /* data private to the driver */
};
+struct isapnp_driver {
+ struct list_head node;
+ char *name;
+ const struct isapnp_device_id *id_table; /* NULL if wants all devices */
+ int (*probe) (struct pci_dev *dev, const struct isapnp_device_id *id); /* New device inserted */
+ void (*remove) (struct pci_dev *dev); /* Device removed (NULL if not a hot-plug capable driver) */
+};
+
#if defined(CONFIG_ISAPNP) || (defined(CONFIG_ISAPNP_MODULE) && defined(MODULE))
#define __ISAPNP__
@@ -214,6 +222,9 @@ extern struct list_head isapnp_devices;
#define isapnp_for_each_dev(dev) \
for(dev = pci_dev_g(isapnp_devices.next); dev != pci_dev_g(&isapnp_devices); dev = pci_dev_g(dev->global_list.next))
+int isapnp_register_driver(struct isapnp_driver *drv);
+void isapnp_unregister_driver(struct isapnp_driver *drv);
+
#else /* !CONFIG_ISAPNP */
/* lowlevel configuration */
@@ -249,6 +260,10 @@ static inline void isapnp_resource_change(struct resource *resource,
unsigned long size) { ; }
static inline int isapnp_activate_dev(struct pci_dev *dev, const char *name) { return -ENODEV; }
+static inline int isapnp_register_driver(struct isapnp_driver *drv) { return 0; }
+
+static inline void isapnp_unregister_driver(struct isapnp_driver *drv) { }
+
#endif /* CONFIG_ISAPNP */
#endif /* __KERNEL__ */
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index f6821a2668b2..ce4aef9e5666 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -51,7 +51,7 @@ struct completion;
extern struct notifier_block *panic_notifier_list;
NORET_TYPE void panic(const char * fmt, ...)
__attribute__ ((NORET_AND format (printf, 1, 2)));
-NORET_TYPE void do_exit(long error_code)
+asmlinkage NORET_TYPE void do_exit(long error_code)
ATTRIB_NORET;
NORET_TYPE void complete_and_exit(struct completion *, long)
ATTRIB_NORET;
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 8eaa73a08c3e..e1cd3b4203e0 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -532,6 +532,8 @@ struct pci_bus *pci_alloc_primary_bus(int bus);
struct pci_dev *pci_scan_slot(struct pci_dev *temp);
int pci_proc_attach_device(struct pci_dev *dev);
int pci_proc_detach_device(struct pci_dev *dev);
+int pci_proc_attach_bus(struct pci_bus *bus);
+int pci_proc_detach_bus(struct pci_bus *bus);
void pci_name_device(struct pci_dev *dev);
char *pci_class_name(u32 class);
void pci_read_bridge_bases(struct pci_bus *child);
@@ -589,6 +591,9 @@ void pci_insert_device(struct pci_dev *, struct pci_bus *);
void pci_remove_device(struct pci_dev *);
struct pci_driver *pci_dev_driver(const struct pci_dev *);
const struct pci_device_id *pci_match_device(const struct pci_device_id *ids, const struct pci_dev *dev);
+void pci_announce_device_to_drivers(struct pci_dev *);
+unsigned int pci_do_scan_bus(struct pci_bus *bus);
+struct pci_bus * pci_add_new_bus(struct pci_bus *parent, struct pci_dev *dev, int busnr);
/* kmem_cache style wrapper around pci_alloc_consistent() */
struct pci_pool *pci_pool_create (const char *name, struct pci_dev *dev,
diff --git a/include/linux/raid/md_k.h b/include/linux/raid/md_k.h
index 851df24f4a5a..b53549dda951 100644
--- a/include/linux/raid/md_k.h
+++ b/include/linux/raid/md_k.h
@@ -43,6 +43,7 @@ static inline int pers_to_level (int pers)
static inline int level_to_pers (int level)
{
switch (level) {
+ case -4: return MULTIPATH;
case -3: return HSM;
case -2: return TRANSLUCENT;
case -1: return LINEAR;
diff --git a/include/linux/raid/multipath.h b/include/linux/raid/multipath.h
index db2f3ec99bda..261c1c837d7b 100644
--- a/include/linux/raid/multipath.h
+++ b/include/linux/raid/multipath.h
@@ -7,14 +7,11 @@ struct multipath_info {
int number;
int raid_disk;
kdev_t dev;
- int sect_limit;
- int head_position;
/*
* State bits:
*/
int operational;
- int write_only;
int spare;
int used_slot;
@@ -36,22 +33,10 @@ struct multipath_private_data {
* multipath_bh that are pre-allocated have MPBH_PreAlloc set.
* All these variable are protected by device_lock
*/
- struct buffer_head *freebh;
- int freebh_cnt; /* how many are on the list */
struct multipath_bh *freer1;
- struct multipath_bh *freebuf; /* each bh_req has a page allocated */
+ int freer1_blocked;
+ int freer1_cnt;
md_wait_queue_head_t wait_buffer;
-
- /* for use when syncing multipaths: */
- unsigned long start_active, start_ready,
- start_pending, start_future;
- int cnt_done, cnt_active, cnt_ready,
- cnt_pending, cnt_future;
- int phase;
- int window;
- md_wait_queue_head_t wait_done;
- md_wait_queue_head_t wait_ready;
- md_spinlock_t segment_lock;
};
typedef struct multipath_private_data multipath_conf_t;
@@ -76,9 +61,8 @@ struct multipath_bh {
unsigned long state;
mddev_t *mddev;
struct buffer_head *master_bh;
- struct buffer_head *multipath_bh_list;
struct buffer_head bh_req;
- struct multipath_bh *next_r1; /* next for retry or in free list */
+ struct multipath_bh *next_mp; /* next for retry or in free list */
};
/* bits for multipath_bh.state */
#define MPBH_Uptodate 1