git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
drivers
/
sbus
/
char
/
bpp.c
diff --git
a/drivers/sbus/char/bpp.c
b/drivers/sbus/char/bpp.c
index
8067aea
..
ac7d125
100644
(file)
--- a/
drivers/sbus/char/bpp.c
+++ b/
drivers/sbus/char/bpp.c
@@
-20,7
+20,6
@@
#include <linux/timer.h>
#include <linux/ioport.h>
#include <linux/major.h>
#include <linux/timer.h>
#include <linux/ioport.h>
#include <linux/major.h>
-#include <linux/devfs_fs_kernel.h>
#include <asm/uaccess.h>
#include <asm/io.h>
#include <asm/uaccess.h>
#include <asm/io.h>
@@
-79,17
+78,13
@@
struct inst {
unsigned char run_length;
unsigned char repeat_byte;
unsigned char run_length;
unsigned char repeat_byte;
-
- /* These members manage timeouts for programmed delays */
- wait_queue_head_t wait_queue;
- struct timer_list timer_list;
};
static struct inst instances[BPP_NO];
#if defined(__i386__)
};
static struct inst instances[BPP_NO];
#if defined(__i386__)
-const unsigned short base_addrs[BPP_NO] = { 0x278, 0x378, 0x3bc };
+
static
const unsigned short base_addrs[BPP_NO] = { 0x278, 0x378, 0x3bc };
/*
* These are for data access.
/*
* These are for data access.
@@
-246,7
+241,7
@@
static unsigned short get_pins(unsigned minor)
#define P_ERR_IRP 0x0002 /* RW1 1= rising edge */
#define P_ERR_IRQ_EN 0x0001 /* RW */
#define P_ERR_IRP 0x0002 /* RW1 1= rising edge */
#define P_ERR_IRQ_EN 0x0001 /* RW */
-
unsigned long
base_addrs[BPP_NO];
+
static void __iomem *
base_addrs[BPP_NO];
#define bpp_outb_p(data, base) sbus_writeb(data, (base) + BPP_DR)
#define bpp_inb_p(base) sbus_readb((base) + BPP_DR)
#define bpp_outb_p(data, base) sbus_writeb(data, (base) + BPP_DR)
#define bpp_inb_p(base) sbus_readb((base) + BPP_DR)
@@
-254,7
+249,7
@@
unsigned long base_addrs[BPP_NO];
static void set_pins(unsigned short pins, unsigned minor)
{
static void set_pins(unsigned short pins, unsigned minor)
{
-
unsigned long
base = base_addrs[minor];
+
void __iomem *
base = base_addrs[minor];
unsigned char bits_tcr = 0, bits_or = 0;
if (instances[minor].direction & 0x20) bits_tcr |= P_TCR_DIR;
unsigned char bits_tcr = 0, bits_or = 0;
if (instances[minor].direction & 0x20) bits_tcr |= P_TCR_DIR;
@@
-275,7
+270,7
@@
static void set_pins(unsigned short pins, unsigned minor)
*/
static unsigned short get_pins(unsigned minor)
{
*/
static unsigned short get_pins(unsigned minor)
{
-
unsigned long
base = base_addrs[minor];
+
void __iomem *
base = base_addrs[minor];
unsigned short bits = 0;
unsigned value_tcr = sbus_readb(base + BPP_TCR);
unsigned value_ir = sbus_readb(base + BPP_IR);
unsigned short bits = 0;
unsigned value_tcr = sbus_readb(base + BPP_TCR);
unsigned value_ir = sbus_readb(base + BPP_IR);
@@
-297,16
+292,9
@@
static unsigned short get_pins(unsigned minor)
#endif /* __sparc__ */
#endif /* __sparc__ */
-static void bpp_wake_up(unsigned long val)
-{ wake_up(&instances[val].wait_queue); }
-
static void snooze(unsigned long snooze_time, unsigned minor)
{
static void snooze(unsigned long snooze_time, unsigned minor)
{
- init_timer(&instances[minor].timer_list);
- instances[minor].timer_list.expires = jiffies + snooze_time + 1;
- instances[minor].timer_list.data = minor;
- add_timer(&instances[minor].timer_list);
- sleep_on (&instances[minor].wait_queue);
+ schedule_timeout_uninterruptible(snooze_time + 1);
}
static int wait_for(unsigned short set, unsigned short clr,
}
static int wait_for(unsigned short set, unsigned short clr,
@@
-432,7
+420,7
@@
static int terminate(unsigned minor)
return 0;
}
return 0;
}
-static
spinlock_t bpp_open_lock = SPIN_LOCK_UNLOCKED
;
+static
DEFINE_SPINLOCK(bpp_open_lock)
;
/*
* Allow only one process to open the device at a time.
/*
* Allow only one process to open the device at a time.
@@
-633,7
+621,7
@@
static long read_ecp(unsigned minor, char __user *c, unsigned long cnt)
static ssize_t bpp_read(struct file *f, char __user *c, size_t cnt, loff_t * ppos)
{
long rc;
static ssize_t bpp_read(struct file *f, char __user *c, size_t cnt, loff_t * ppos)
{
long rc;
- unsigned minor = iminor(f->f_dentry->d_inode);
+ unsigned minor = iminor(f->f_
path.
dentry->d_inode);
if (minor >= BPP_NO) return -ENODEV;
if (!instances[minor].present) return -ENODEV;
if (minor >= BPP_NO) return -ENODEV;
if (!instances[minor].present) return -ENODEV;
@@
-786,7
+774,7
@@
static long write_ecp(unsigned minor, const char __user *c, unsigned long cnt)
static ssize_t bpp_write(struct file *f, const char __user *c, size_t cnt, loff_t * ppos)
{
long errno = 0;
static ssize_t bpp_write(struct file *f, const char __user *c, size_t cnt, loff_t * ppos)
{
long errno = 0;
- unsigned minor = iminor(f->f_dentry->d_inode);
+ unsigned minor = iminor(f->f_
path.
dentry->d_inode);
if (minor >= BPP_NO) return -ENODEV;
if (!instances[minor].present) return -ENODEV;
if (minor >= BPP_NO) return -ENODEV;
if (!instances[minor].present) return -ENODEV;
@@
-880,11
+868,8
@@
static void probeLptPort(unsigned idx)
instances[idx].enhanced = 0;
instances[idx].direction = 0;
instances[idx].mode = COMPATIBILITY;
instances[idx].enhanced = 0;
instances[idx].direction = 0;
instances[idx].mode = COMPATIBILITY;
- instances[idx].wait_queue = 0;
instances[idx].run_length = 0;
instances[idx].run_flag = 0;
instances[idx].run_length = 0;
instances[idx].run_flag = 0;
- init_timer(&instances[idx].timer_list);
- instances[idx].timer_list.function = bpp_wake_up;
if (!request_region(lpAddr,3, dev_name)) return;
/*
if (!request_region(lpAddr,3, dev_name)) return;
/*
@@
-940,7
+925,7
@@
static inline void freeLptPort(int idx)
#if defined(__sparc__)
#if defined(__sparc__)
-static
unsigned long
map_bpp(struct sbus_dev *dev, int idx)
+static
void __iomem *
map_bpp(struct sbus_dev *dev, int idx)
{
return sbus_ioremap(&dev->resource[0], 0, BPP_SIZE, "bpp");
}
{
return sbus_ioremap(&dev->resource[0], 0, BPP_SIZE, "bpp");
}
@@
-969,7
+954,7
@@
static int collectLptPorts(void)
static void probeLptPort(unsigned idx)
{
static void probeLptPort(unsigned idx)
{
-
unsigned long
rp = base_addrs[idx];
+
void __iomem *
rp = base_addrs[idx];
__u32 csr;
char *brand;
__u32 csr;
char *brand;
@@
-977,13
+962,10
@@
static void probeLptPort(unsigned idx)
instances[idx].enhanced = 0;
instances[idx].direction = 0;
instances[idx].mode = COMPATIBILITY;
instances[idx].enhanced = 0;
instances[idx].direction = 0;
instances[idx].mode = COMPATIBILITY;
- init_waitqueue_head(&instances[idx].wait_queue);
instances[idx].run_length = 0;
instances[idx].run_flag = 0;
instances[idx].run_length = 0;
instances[idx].run_flag = 0;
- init_timer(&instances[idx].timer_list);
- instances[idx].timer_list.function = bpp_wake_up;
- if (
rp == 0
) return;
+ if (
!rp
) return;
instances[idx].present = 1;
instances[idx].enhanced = 1; /* Sure */
instances[idx].present = 1;
instances[idx].enhanced = 1; /* Sure */
@@
-1014,7
+996,7
@@
static void probeLptPort(unsigned idx)
default:
brand = "Unknown";
}
default:
brand = "Unknown";
}
- printk("bpp%d: %s at
0x%lx
\n", idx, brand, rp);
+ printk("bpp%d: %s at
%p
\n", idx, brand, rp);
/*
* Leave the port in compat idle mode.
/*
* Leave the port in compat idle mode.
@@
-1048,11
+1030,6
@@
static int __init bpp_init(void)
instances[idx].opened = 0;
probeLptPort(idx);
}
instances[idx].opened = 0;
probeLptPort(idx);
}
- devfs_mk_dir("bpp");
- for (idx = 0; idx < BPP_NO; idx++) {
- devfs_mk_cdev(MKDEV(BPP_MAJOR, idx),
- S_IFCHR | S_IRUSR | S_IWUSR, "bpp/%d", idx);
- }
return 0;
}
return 0;
}
@@
-1061,9
+1038,6
@@
static void __exit bpp_cleanup(void)
{
unsigned idx;
{
unsigned idx;
- for (idx = 0; idx < BPP_NO; idx++)
- devfs_remove("bpp/%d", idx);
- devfs_remove("bpp");
unregister_chrdev(BPP_MAJOR, dev_name);
for (idx = 0; idx < BPP_NO; idx++) {
unregister_chrdev(BPP_MAJOR, dev_name);
for (idx = 0; idx < BPP_NO; idx++) {