diff options
author | Dave Airlie <airlied@starflyer.(none)> | 2005-07-07 06:08:27 -0400 |
---|---|---|
committer | Dave Airlie <airlied@linux.ie> | 2005-07-07 06:08:27 -0400 |
commit | 717cb906bd43a9ac00631d600adda5c6546843a6 (patch) | |
tree | f41b250e9e0fa1e664f002fa9c4608d94527f2f2 /drivers/char | |
parent | 22f579c621e2f264e6d093b07d75f99bc97d5df2 (diff) | |
parent | c101f3136cc98a003d0d16be6fab7d0d950581a6 (diff) |
Merge ../linux-2.6/
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/agp/amd64-agp.c | 9 | ||||
-rw-r--r-- | drivers/char/hw_random.c | 2 | ||||
-rw-r--r-- | drivers/char/ipmi/ipmi_msghandler.c | 4 | ||||
-rw-r--r-- | drivers/char/moxa.c | 2 | ||||
-rw-r--r-- | drivers/char/rio/rio_linux.c | 4 | ||||
-rw-r--r-- | drivers/char/rtc.c | 16 | ||||
-rw-r--r-- | drivers/char/tipar.c | 2 | ||||
-rw-r--r-- | drivers/char/tpm/tpm.c | 2 | ||||
-rw-r--r-- | drivers/char/tty_ioctl.c | 4 | ||||
-rw-r--r-- | drivers/char/vt_ioctl.c | 5 | ||||
-rw-r--r-- | drivers/char/watchdog/i8xx_tco.c | 2 | ||||
-rw-r--r-- | drivers/char/watchdog/ixp2000_wdt.c | 2 | ||||
-rw-r--r-- | drivers/char/watchdog/ixp4xx_wdt.c | 2 |
13 files changed, 29 insertions, 27 deletions
diff --git a/drivers/char/agp/amd64-agp.c b/drivers/char/agp/amd64-agp.c index 1407945a5892..59f589d733f9 100644 --- a/drivers/char/agp/amd64-agp.c +++ b/drivers/char/agp/amd64-agp.c | |||
@@ -686,6 +686,15 @@ static struct pci_device_id agp_amd64_pci_table[] = { | |||
686 | .subvendor = PCI_ANY_ID, | 686 | .subvendor = PCI_ANY_ID, |
687 | .subdevice = PCI_ANY_ID, | 687 | .subdevice = PCI_ANY_ID, |
688 | }, | 688 | }, |
689 | /* SIS 760 */ | ||
690 | { | ||
691 | .class = (PCI_CLASS_BRIDGE_HOST << 8), | ||
692 | .class_mask = ~0, | ||
693 | .vendor = PCI_VENDOR_ID_SI, | ||
694 | .device = PCI_DEVICE_ID_SI_760, | ||
695 | .subvendor = PCI_ANY_ID, | ||
696 | .subdevice = PCI_ANY_ID, | ||
697 | }, | ||
689 | { } | 698 | { } |
690 | }; | 699 | }; |
691 | 700 | ||
diff --git a/drivers/char/hw_random.c b/drivers/char/hw_random.c index 7e6ac14c2450..3480535a09c5 100644 --- a/drivers/char/hw_random.c +++ b/drivers/char/hw_random.c | |||
@@ -579,7 +579,7 @@ static int __init rng_init (void) | |||
579 | 579 | ||
580 | /* Probe for Intel, AMD RNGs */ | 580 | /* Probe for Intel, AMD RNGs */ |
581 | for_each_pci_dev(pdev) { | 581 | for_each_pci_dev(pdev) { |
582 | ent = pci_match_device (rng_pci_tbl, pdev); | 582 | ent = pci_match_id(rng_pci_tbl, pdev); |
583 | if (ent) { | 583 | if (ent) { |
584 | rng_ops = &rng_vendor_ops[ent->driver_data]; | 584 | rng_ops = &rng_vendor_ops[ent->driver_data]; |
585 | goto match; | 585 | goto match; |
diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c index 1813d0d198f1..e16c13fe698d 100644 --- a/drivers/char/ipmi/ipmi_msghandler.c +++ b/drivers/char/ipmi/ipmi_msghandler.c | |||
@@ -1088,8 +1088,8 @@ static inline int i_ipmi_request(ipmi_user_t user, | |||
1088 | long seqid; | 1088 | long seqid; |
1089 | int broadcast = 0; | 1089 | int broadcast = 0; |
1090 | 1090 | ||
1091 | if (addr->channel > IPMI_NUM_CHANNELS) { | 1091 | if (addr->channel >= IPMI_MAX_CHANNELS) { |
1092 | spin_lock_irqsave(&intf->counter_lock, flags); | 1092 | spin_lock_irqsave(&intf->counter_lock, flags); |
1093 | intf->sent_invalid_commands++; | 1093 | intf->sent_invalid_commands++; |
1094 | spin_unlock_irqrestore(&intf->counter_lock, flags); | 1094 | spin_unlock_irqrestore(&intf->counter_lock, flags); |
1095 | rv = -EINVAL; | 1095 | rv = -EINVAL; |
diff --git a/drivers/char/moxa.c b/drivers/char/moxa.c index 7c24fbe831f8..95f7046ff059 100644 --- a/drivers/char/moxa.c +++ b/drivers/char/moxa.c | |||
@@ -451,7 +451,7 @@ static int __init moxa_init(void) | |||
451 | int n = (sizeof(moxa_pcibrds) / sizeof(moxa_pcibrds[0])) - 1; | 451 | int n = (sizeof(moxa_pcibrds) / sizeof(moxa_pcibrds[0])) - 1; |
452 | i = 0; | 452 | i = 0; |
453 | while (i < n) { | 453 | while (i < n) { |
454 | while ((p = pci_find_device(moxa_pcibrds[i].vendor, moxa_pcibrds[i].device, p))!=NULL) | 454 | while ((p = pci_get_device(moxa_pcibrds[i].vendor, moxa_pcibrds[i].device, p))!=NULL) |
455 | { | 455 | { |
456 | if (pci_enable_device(p)) | 456 | if (pci_enable_device(p)) |
457 | continue; | 457 | continue; |
diff --git a/drivers/char/rio/rio_linux.c b/drivers/char/rio/rio_linux.c index 7db3370f4972..d7d484024e2b 100644 --- a/drivers/char/rio/rio_linux.c +++ b/drivers/char/rio/rio_linux.c | |||
@@ -1095,7 +1095,7 @@ static int __init rio_init(void) | |||
1095 | 1095 | ||
1096 | #ifdef CONFIG_PCI | 1096 | #ifdef CONFIG_PCI |
1097 | /* First look for the JET devices: */ | 1097 | /* First look for the JET devices: */ |
1098 | while ((pdev = pci_find_device (PCI_VENDOR_ID_SPECIALIX, | 1098 | while ((pdev = pci_get_device (PCI_VENDOR_ID_SPECIALIX, |
1099 | PCI_DEVICE_ID_SPECIALIX_SX_XIO_IO8, | 1099 | PCI_DEVICE_ID_SPECIALIX_SX_XIO_IO8, |
1100 | pdev))) { | 1100 | pdev))) { |
1101 | if (pci_enable_device(pdev)) continue; | 1101 | if (pci_enable_device(pdev)) continue; |
@@ -1169,7 +1169,7 @@ static int __init rio_init(void) | |||
1169 | */ | 1169 | */ |
1170 | 1170 | ||
1171 | /* Then look for the older RIO/PCI devices: */ | 1171 | /* Then look for the older RIO/PCI devices: */ |
1172 | while ((pdev = pci_find_device (PCI_VENDOR_ID_SPECIALIX, | 1172 | while ((pdev = pci_get_device (PCI_VENDOR_ID_SPECIALIX, |
1173 | PCI_DEVICE_ID_SPECIALIX_RIO, | 1173 | PCI_DEVICE_ID_SPECIALIX_RIO, |
1174 | pdev))) { | 1174 | pdev))) { |
1175 | if (pci_enable_device(pdev)) continue; | 1175 | if (pci_enable_device(pdev)) continue; |
diff --git a/drivers/char/rtc.c b/drivers/char/rtc.c index ff4f09804865..d8f9e94ae475 100644 --- a/drivers/char/rtc.c +++ b/drivers/char/rtc.c | |||
@@ -78,6 +78,7 @@ | |||
78 | #include <linux/sysctl.h> | 78 | #include <linux/sysctl.h> |
79 | #include <linux/wait.h> | 79 | #include <linux/wait.h> |
80 | #include <linux/bcd.h> | 80 | #include <linux/bcd.h> |
81 | #include <linux/delay.h> | ||
81 | 82 | ||
82 | #include <asm/current.h> | 83 | #include <asm/current.h> |
83 | #include <asm/uaccess.h> | 84 | #include <asm/uaccess.h> |
@@ -894,7 +895,6 @@ static int __init rtc_init(void) | |||
894 | struct proc_dir_entry *ent; | 895 | struct proc_dir_entry *ent; |
895 | #if defined(__alpha__) || defined(__mips__) | 896 | #if defined(__alpha__) || defined(__mips__) |
896 | unsigned int year, ctrl; | 897 | unsigned int year, ctrl; |
897 | unsigned long uip_watchdog; | ||
898 | char *guess = NULL; | 898 | char *guess = NULL; |
899 | #endif | 899 | #endif |
900 | #ifdef __sparc__ | 900 | #ifdef __sparc__ |
@@ -1000,12 +1000,8 @@ no_irq: | |||
1000 | /* Each operating system on an Alpha uses its own epoch. | 1000 | /* Each operating system on an Alpha uses its own epoch. |
1001 | Let's try to guess which one we are using now. */ | 1001 | Let's try to guess which one we are using now. */ |
1002 | 1002 | ||
1003 | uip_watchdog = jiffies; | ||
1004 | if (rtc_is_updating() != 0) | 1003 | if (rtc_is_updating() != 0) |
1005 | while (jiffies - uip_watchdog < 2*HZ/100) { | 1004 | msleep(20); |
1006 | barrier(); | ||
1007 | cpu_relax(); | ||
1008 | } | ||
1009 | 1005 | ||
1010 | spin_lock_irq(&rtc_lock); | 1006 | spin_lock_irq(&rtc_lock); |
1011 | year = CMOS_READ(RTC_YEAR); | 1007 | year = CMOS_READ(RTC_YEAR); |
@@ -1213,7 +1209,6 @@ static int rtc_proc_open(struct inode *inode, struct file *file) | |||
1213 | 1209 | ||
1214 | void rtc_get_rtc_time(struct rtc_time *rtc_tm) | 1210 | void rtc_get_rtc_time(struct rtc_time *rtc_tm) |
1215 | { | 1211 | { |
1216 | unsigned long uip_watchdog = jiffies; | ||
1217 | unsigned char ctrl; | 1212 | unsigned char ctrl; |
1218 | #ifdef CONFIG_MACH_DECSTATION | 1213 | #ifdef CONFIG_MACH_DECSTATION |
1219 | unsigned int real_year; | 1214 | unsigned int real_year; |
@@ -1221,7 +1216,7 @@ void rtc_get_rtc_time(struct rtc_time *rtc_tm) | |||
1221 | 1216 | ||
1222 | /* | 1217 | /* |
1223 | * read RTC once any update in progress is done. The update | 1218 | * read RTC once any update in progress is done. The update |
1224 | * can take just over 2ms. We wait 10 to 20ms. There is no need to | 1219 | * can take just over 2ms. We wait 20ms. There is no need to |
1225 | * to poll-wait (up to 1s - eeccch) for the falling edge of RTC_UIP. | 1220 | * to poll-wait (up to 1s - eeccch) for the falling edge of RTC_UIP. |
1226 | * If you need to know *exactly* when a second has started, enable | 1221 | * If you need to know *exactly* when a second has started, enable |
1227 | * periodic update complete interrupts, (via ioctl) and then | 1222 | * periodic update complete interrupts, (via ioctl) and then |
@@ -1230,10 +1225,7 @@ void rtc_get_rtc_time(struct rtc_time *rtc_tm) | |||
1230 | */ | 1225 | */ |
1231 | 1226 | ||
1232 | if (rtc_is_updating() != 0) | 1227 | if (rtc_is_updating() != 0) |
1233 | while (jiffies - uip_watchdog < 2*HZ/100) { | 1228 | msleep(20); |
1234 | barrier(); | ||
1235 | cpu_relax(); | ||
1236 | } | ||
1237 | 1229 | ||
1238 | /* | 1230 | /* |
1239 | * Only the values that we read from the RTC are set. We leave | 1231 | * Only the values that we read from the RTC are set. We leave |
diff --git a/drivers/char/tipar.c b/drivers/char/tipar.c index 659335d80ee7..ec78d2f161f7 100644 --- a/drivers/char/tipar.c +++ b/drivers/char/tipar.c | |||
@@ -396,7 +396,7 @@ static struct file_operations tipar_fops = { | |||
396 | static int __init | 396 | static int __init |
397 | tipar_setup(char *str) | 397 | tipar_setup(char *str) |
398 | { | 398 | { |
399 | int ints[2]; | 399 | int ints[3]; |
400 | 400 | ||
401 | str = get_options(str, ARRAY_SIZE(ints), ints); | 401 | str = get_options(str, ARRAY_SIZE(ints), ints); |
402 | 402 | ||
diff --git a/drivers/char/tpm/tpm.c b/drivers/char/tpm/tpm.c index 854475c54f0e..049d128ae7f0 100644 --- a/drivers/char/tpm/tpm.c +++ b/drivers/char/tpm/tpm.c | |||
@@ -464,7 +464,7 @@ void __devexit tpm_remove(struct pci_dev *pci_dev) | |||
464 | 464 | ||
465 | pci_set_drvdata(pci_dev, NULL); | 465 | pci_set_drvdata(pci_dev, NULL); |
466 | misc_deregister(&chip->vendor->miscdev); | 466 | misc_deregister(&chip->vendor->miscdev); |
467 | kfree(&chip->vendor->miscdev.name); | 467 | kfree(chip->vendor->miscdev.name); |
468 | 468 | ||
469 | sysfs_remove_group(&pci_dev->dev.kobj, chip->vendor->attr_group); | 469 | sysfs_remove_group(&pci_dev->dev.kobj, chip->vendor->attr_group); |
470 | 470 | ||
diff --git a/drivers/char/tty_ioctl.c b/drivers/char/tty_ioctl.c index 58597993954f..f19cf9d7792d 100644 --- a/drivers/char/tty_ioctl.c +++ b/drivers/char/tty_ioctl.c | |||
@@ -476,11 +476,11 @@ int n_tty_ioctl(struct tty_struct * tty, struct file * file, | |||
476 | ld = tty_ldisc_ref(tty); | 476 | ld = tty_ldisc_ref(tty); |
477 | switch (arg) { | 477 | switch (arg) { |
478 | case TCIFLUSH: | 478 | case TCIFLUSH: |
479 | if (ld->flush_buffer) | 479 | if (ld && ld->flush_buffer) |
480 | ld->flush_buffer(tty); | 480 | ld->flush_buffer(tty); |
481 | break; | 481 | break; |
482 | case TCIOFLUSH: | 482 | case TCIOFLUSH: |
483 | if (ld->flush_buffer) | 483 | if (ld && ld->flush_buffer) |
484 | ld->flush_buffer(tty); | 484 | ld->flush_buffer(tty); |
485 | /* fall through */ | 485 | /* fall through */ |
486 | case TCOFLUSH: | 486 | case TCOFLUSH: |
diff --git a/drivers/char/vt_ioctl.c b/drivers/char/vt_ioctl.c index 8971484b956b..1d44f69e1fda 100644 --- a/drivers/char/vt_ioctl.c +++ b/drivers/char/vt_ioctl.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/fs.h> | 25 | #include <linux/fs.h> |
26 | #include <linux/console.h> | 26 | #include <linux/console.h> |
27 | #include <linux/signal.h> | 27 | #include <linux/signal.h> |
28 | #include <linux/timex.h> | ||
28 | 29 | ||
29 | #include <asm/io.h> | 30 | #include <asm/io.h> |
30 | #include <asm/uaccess.h> | 31 | #include <asm/uaccess.h> |
@@ -386,7 +387,7 @@ int vt_ioctl(struct tty_struct *tty, struct file * file, | |||
386 | if (!perm) | 387 | if (!perm) |
387 | return -EPERM; | 388 | return -EPERM; |
388 | if (arg) | 389 | if (arg) |
389 | arg = 1193182 / arg; | 390 | arg = CLOCK_TICK_RATE / arg; |
390 | kd_mksound(arg, 0); | 391 | kd_mksound(arg, 0); |
391 | return 0; | 392 | return 0; |
392 | 393 | ||
@@ -403,7 +404,7 @@ int vt_ioctl(struct tty_struct *tty, struct file * file, | |||
403 | ticks = HZ * ((arg >> 16) & 0xffff) / 1000; | 404 | ticks = HZ * ((arg >> 16) & 0xffff) / 1000; |
404 | count = ticks ? (arg & 0xffff) : 0; | 405 | count = ticks ? (arg & 0xffff) : 0; |
405 | if (count) | 406 | if (count) |
406 | count = 1193182 / count; | 407 | count = CLOCK_TICK_RATE / count; |
407 | kd_mksound(count, ticks); | 408 | kd_mksound(count, ticks); |
408 | return 0; | 409 | return 0; |
409 | } | 410 | } |
diff --git a/drivers/char/watchdog/i8xx_tco.c b/drivers/char/watchdog/i8xx_tco.c index b14d642439ed..5d07ee59679d 100644 --- a/drivers/char/watchdog/i8xx_tco.c +++ b/drivers/char/watchdog/i8xx_tco.c | |||
@@ -401,7 +401,7 @@ static unsigned char __init i8xx_tco_getdevice (void) | |||
401 | */ | 401 | */ |
402 | 402 | ||
403 | while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) { | 403 | while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) { |
404 | if (pci_match_device(i8xx_tco_pci_tbl, dev)) { | 404 | if (pci_match_id(i8xx_tco_pci_tbl, dev)) { |
405 | i8xx_tco_pci = dev; | 405 | i8xx_tco_pci = dev; |
406 | break; | 406 | break; |
407 | } | 407 | } |
diff --git a/drivers/char/watchdog/ixp2000_wdt.c b/drivers/char/watchdog/ixp2000_wdt.c index 4e98c215e5b1..4b039516cc86 100644 --- a/drivers/char/watchdog/ixp2000_wdt.c +++ b/drivers/char/watchdog/ixp2000_wdt.c | |||
@@ -162,7 +162,7 @@ ixp2000_wdt_release(struct inode *inode, struct file *file) | |||
162 | if (test_bit(WDT_OK_TO_CLOSE, &wdt_status)) { | 162 | if (test_bit(WDT_OK_TO_CLOSE, &wdt_status)) { |
163 | wdt_disable(); | 163 | wdt_disable(); |
164 | } else { | 164 | } else { |
165 | printk(KERN_CRIT "WATCHDOG: Device closed unexpectdly - " | 165 | printk(KERN_CRIT "WATCHDOG: Device closed unexpectedly - " |
166 | "timer will not stop\n"); | 166 | "timer will not stop\n"); |
167 | } | 167 | } |
168 | 168 | ||
diff --git a/drivers/char/watchdog/ixp4xx_wdt.c b/drivers/char/watchdog/ixp4xx_wdt.c index 82396e06c8a8..83df369113a4 100644 --- a/drivers/char/watchdog/ixp4xx_wdt.c +++ b/drivers/char/watchdog/ixp4xx_wdt.c | |||
@@ -156,7 +156,7 @@ ixp4xx_wdt_release(struct inode *inode, struct file *file) | |||
156 | if (test_bit(WDT_OK_TO_CLOSE, &wdt_status)) { | 156 | if (test_bit(WDT_OK_TO_CLOSE, &wdt_status)) { |
157 | wdt_disable(); | 157 | wdt_disable(); |
158 | } else { | 158 | } else { |
159 | printk(KERN_CRIT "WATCHDOG: Device closed unexpectdly - " | 159 | printk(KERN_CRIT "WATCHDOG: Device closed unexpectedly - " |
160 | "timer will not stop\n"); | 160 | "timer will not stop\n"); |
161 | } | 161 | } |
162 | 162 | ||