diff options
author | Anton Altaparmakov <aia21@cantab.net> | 2005-10-30 16:00:04 -0500 |
---|---|---|
committer | Anton Altaparmakov <aia21@cantab.net> | 2005-10-30 16:00:04 -0500 |
commit | 07b188ab773e183871e57b33ae37bf635c9f12ba (patch) | |
tree | 311df8a0dd12fb7bd3e9b5b1a5ca500f0428d679 /drivers/char | |
parent | 47c564e10f219f867bdb49225972749a43485a47 (diff) | |
parent | 9f75e1eff3edb2bb07349b94c28f4f2a6c66ca43 (diff) |
Merge branch 'master' of /usr/src/ntfs-2.6/
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/agp/sgi-agp.c | 1 | ||||
-rw-r--r-- | drivers/char/drm/radeon_cp.c | 11 | ||||
-rw-r--r-- | drivers/char/dsp56k.c | 2 | ||||
-rw-r--r-- | drivers/char/ftape/zftape/zftape-init.c | 12 | ||||
-rw-r--r-- | drivers/char/ip2main.c | 10 | ||||
-rw-r--r-- | drivers/char/ipmi/ipmi_devintf.c | 2 | ||||
-rw-r--r-- | drivers/char/istallion.c | 3 | ||||
-rw-r--r-- | drivers/char/lcd.c | 4 | ||||
-rw-r--r-- | drivers/char/lcd.h | 2 | ||||
-rw-r--r-- | drivers/char/lp.c | 2 | ||||
-rw-r--r-- | drivers/char/mem.c | 3 | ||||
-rw-r--r-- | drivers/char/misc.c | 2 | ||||
-rw-r--r-- | drivers/char/mmtimer.c | 4 | ||||
-rw-r--r-- | drivers/char/n_tty.c | 2 | ||||
-rw-r--r-- | drivers/char/nvram.c | 110 | ||||
-rw-r--r-- | drivers/char/ppdev.c | 2 | ||||
-rw-r--r-- | drivers/char/qtronix.c | 5 | ||||
-rw-r--r-- | drivers/char/raw.c | 4 | ||||
-rw-r--r-- | drivers/char/s3c2410-rtc.c | 20 | ||||
-rw-r--r-- | drivers/char/snsc.c | 6 | ||||
-rw-r--r-- | drivers/char/sonypi.c | 106 | ||||
-rw-r--r-- | drivers/char/stallion.c | 4 | ||||
-rw-r--r-- | drivers/char/tipar.c | 2 | ||||
-rw-r--r-- | drivers/char/tty_io.c | 10 | ||||
-rw-r--r-- | drivers/char/vc_screen.c | 10 | ||||
-rw-r--r-- | drivers/char/viotape.c | 4 | ||||
-rw-r--r-- | drivers/char/watchdog/s3c2410_wdt.c | 30 |
27 files changed, 251 insertions, 122 deletions
diff --git a/drivers/char/agp/sgi-agp.c b/drivers/char/agp/sgi-agp.c index d3aa159c9dec..7957fc91f6ad 100644 --- a/drivers/char/agp/sgi-agp.c +++ b/drivers/char/agp/sgi-agp.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
18 | #include <linux/agp_backend.h> | 18 | #include <linux/agp_backend.h> |
19 | #include <asm/sn/addrs.h> | 19 | #include <asm/sn/addrs.h> |
20 | #include <asm/sn/io.h> | ||
20 | #include <asm/sn/pcidev.h> | 21 | #include <asm/sn/pcidev.h> |
21 | #include <asm/sn/pcibus_provider_defs.h> | 22 | #include <asm/sn/pcibus_provider_defs.h> |
22 | #include <asm/sn/tioca_provider.h> | 23 | #include <asm/sn/tioca_provider.h> |
diff --git a/drivers/char/drm/radeon_cp.c b/drivers/char/drm/radeon_cp.c index 6d9080a3ca7e..12ef13ff04ca 100644 --- a/drivers/char/drm/radeon_cp.c +++ b/drivers/char/drm/radeon_cp.c | |||
@@ -1133,10 +1133,10 @@ static void radeon_cp_init_ring_buffer( drm_device_t *dev, | |||
1133 | ring_start = (dev_priv->cp_ring->offset | 1133 | ring_start = (dev_priv->cp_ring->offset |
1134 | - dev->agp->base | 1134 | - dev->agp->base |
1135 | + dev_priv->gart_vm_start); | 1135 | + dev_priv->gart_vm_start); |
1136 | } else | 1136 | } else |
1137 | #endif | 1137 | #endif |
1138 | ring_start = (dev_priv->cp_ring->offset | 1138 | ring_start = (dev_priv->cp_ring->offset |
1139 | - dev->sg->handle | 1139 | - (unsigned long)dev->sg->virtual |
1140 | + dev_priv->gart_vm_start); | 1140 | + dev_priv->gart_vm_start); |
1141 | 1141 | ||
1142 | RADEON_WRITE( RADEON_CP_RB_BASE, ring_start ); | 1142 | RADEON_WRITE( RADEON_CP_RB_BASE, ring_start ); |
@@ -1164,7 +1164,8 @@ static void radeon_cp_init_ring_buffer( drm_device_t *dev, | |||
1164 | drm_sg_mem_t *entry = dev->sg; | 1164 | drm_sg_mem_t *entry = dev->sg; |
1165 | unsigned long tmp_ofs, page_ofs; | 1165 | unsigned long tmp_ofs, page_ofs; |
1166 | 1166 | ||
1167 | tmp_ofs = dev_priv->ring_rptr->offset - dev->sg->handle; | 1167 | tmp_ofs = dev_priv->ring_rptr->offset - |
1168 | (unsigned long)dev->sg->virtual; | ||
1168 | page_ofs = tmp_ofs >> PAGE_SHIFT; | 1169 | page_ofs = tmp_ofs >> PAGE_SHIFT; |
1169 | 1170 | ||
1170 | RADEON_WRITE( RADEON_CP_RB_RPTR_ADDR, | 1171 | RADEON_WRITE( RADEON_CP_RB_RPTR_ADDR, |
@@ -1491,8 +1492,8 @@ static int radeon_do_init_cp( drm_device_t *dev, drm_radeon_init_t *init ) | |||
1491 | else | 1492 | else |
1492 | #endif | 1493 | #endif |
1493 | dev_priv->gart_buffers_offset = (dev->agp_buffer_map->offset | 1494 | dev_priv->gart_buffers_offset = (dev->agp_buffer_map->offset |
1494 | - dev->sg->handle | 1495 | - (unsigned long)dev->sg->virtual |
1495 | + dev_priv->gart_vm_start); | 1496 | + dev_priv->gart_vm_start); |
1496 | 1497 | ||
1497 | DRM_DEBUG( "dev_priv->gart_size %d\n", | 1498 | DRM_DEBUG( "dev_priv->gart_size %d\n", |
1498 | dev_priv->gart_size ); | 1499 | dev_priv->gart_size ); |
diff --git a/drivers/char/dsp56k.c b/drivers/char/dsp56k.c index 26271e3ca823..8693835cb2d5 100644 --- a/drivers/char/dsp56k.c +++ b/drivers/char/dsp56k.c | |||
@@ -515,7 +515,7 @@ static int __init dsp56k_init_driver(void) | |||
515 | err = PTR_ERR(dsp56k_class); | 515 | err = PTR_ERR(dsp56k_class); |
516 | goto out_chrdev; | 516 | goto out_chrdev; |
517 | } | 517 | } |
518 | class_device_create(dsp56k_class, MKDEV(DSP56K_MAJOR, 0), NULL, "dsp56k"); | 518 | class_device_create(dsp56k_class, NULL, MKDEV(DSP56K_MAJOR, 0), NULL, "dsp56k"); |
519 | 519 | ||
520 | err = devfs_mk_cdev(MKDEV(DSP56K_MAJOR, 0), | 520 | err = devfs_mk_cdev(MKDEV(DSP56K_MAJOR, 0), |
521 | S_IFCHR | S_IRUSR | S_IWUSR, "dsp56k"); | 521 | S_IFCHR | S_IRUSR | S_IWUSR, "dsp56k"); |
diff --git a/drivers/char/ftape/zftape/zftape-init.c b/drivers/char/ftape/zftape/zftape-init.c index 5745b74044ec..821357ce7e0e 100644 --- a/drivers/char/ftape/zftape/zftape-init.c +++ b/drivers/char/ftape/zftape/zftape-init.c | |||
@@ -331,27 +331,27 @@ KERN_INFO | |||
331 | 331 | ||
332 | zft_class = class_create(THIS_MODULE, "zft"); | 332 | zft_class = class_create(THIS_MODULE, "zft"); |
333 | for (i = 0; i < 4; i++) { | 333 | for (i = 0; i < 4; i++) { |
334 | class_device_create(zft_class, MKDEV(QIC117_TAPE_MAJOR, i), NULL, "qft%i", i); | 334 | class_device_create(zft_class, NULL, MKDEV(QIC117_TAPE_MAJOR, i), NULL, "qft%i", i); |
335 | devfs_mk_cdev(MKDEV(QIC117_TAPE_MAJOR, i), | 335 | devfs_mk_cdev(MKDEV(QIC117_TAPE_MAJOR, i), |
336 | S_IFCHR | S_IRUSR | S_IWUSR, | 336 | S_IFCHR | S_IRUSR | S_IWUSR, |
337 | "qft%i", i); | 337 | "qft%i", i); |
338 | class_device_create(zft_class, MKDEV(QIC117_TAPE_MAJOR, i + 4), NULL, "nqft%i", i); | 338 | class_device_create(zft_class, NULL, MKDEV(QIC117_TAPE_MAJOR, i + 4), NULL, "nqft%i", i); |
339 | devfs_mk_cdev(MKDEV(QIC117_TAPE_MAJOR, i + 4), | 339 | devfs_mk_cdev(MKDEV(QIC117_TAPE_MAJOR, i + 4), |
340 | S_IFCHR | S_IRUSR | S_IWUSR, | 340 | S_IFCHR | S_IRUSR | S_IWUSR, |
341 | "nqft%i", i); | 341 | "nqft%i", i); |
342 | class_device_create(zft_class, MKDEV(QIC117_TAPE_MAJOR, i + 16), NULL, "zqft%i", i); | 342 | class_device_create(zft_class, NULL, MKDEV(QIC117_TAPE_MAJOR, i + 16), NULL, "zqft%i", i); |
343 | devfs_mk_cdev(MKDEV(QIC117_TAPE_MAJOR, i + 16), | 343 | devfs_mk_cdev(MKDEV(QIC117_TAPE_MAJOR, i + 16), |
344 | S_IFCHR | S_IRUSR | S_IWUSR, | 344 | S_IFCHR | S_IRUSR | S_IWUSR, |
345 | "zqft%i", i); | 345 | "zqft%i", i); |
346 | class_device_create(zft_class, MKDEV(QIC117_TAPE_MAJOR, i + 20), NULL, "nzqft%i", i); | 346 | class_device_create(zft_class, NULL, MKDEV(QIC117_TAPE_MAJOR, i + 20), NULL, "nzqft%i", i); |
347 | devfs_mk_cdev(MKDEV(QIC117_TAPE_MAJOR, i + 20), | 347 | devfs_mk_cdev(MKDEV(QIC117_TAPE_MAJOR, i + 20), |
348 | S_IFCHR | S_IRUSR | S_IWUSR, | 348 | S_IFCHR | S_IRUSR | S_IWUSR, |
349 | "nzqft%i", i); | 349 | "nzqft%i", i); |
350 | class_device_create(zft_class, MKDEV(QIC117_TAPE_MAJOR, i + 32), NULL, "rawqft%i", i); | 350 | class_device_create(zft_class, NULL, MKDEV(QIC117_TAPE_MAJOR, i + 32), NULL, "rawqft%i", i); |
351 | devfs_mk_cdev(MKDEV(QIC117_TAPE_MAJOR, i + 32), | 351 | devfs_mk_cdev(MKDEV(QIC117_TAPE_MAJOR, i + 32), |
352 | S_IFCHR | S_IRUSR | S_IWUSR, | 352 | S_IFCHR | S_IRUSR | S_IWUSR, |
353 | "rawqft%i", i); | 353 | "rawqft%i", i); |
354 | class_device_create(zft_class, MKDEV(QIC117_TAPE_MAJOR, i + 36), NULL, "nrawrawqft%i", i); | 354 | class_device_create(zft_class, NULL, MKDEV(QIC117_TAPE_MAJOR, i + 36), NULL, "nrawrawqft%i", i); |
355 | devfs_mk_cdev(MKDEV(QIC117_TAPE_MAJOR, i + 36), | 355 | devfs_mk_cdev(MKDEV(QIC117_TAPE_MAJOR, i + 36), |
356 | S_IFCHR | S_IRUSR | S_IWUSR, | 356 | S_IFCHR | S_IRUSR | S_IWUSR, |
357 | "nrawqft%i", i); | 357 | "nrawqft%i", i); |
diff --git a/drivers/char/ip2main.c b/drivers/char/ip2main.c index 9e4e26aef94e..d815d197dc3e 100644 --- a/drivers/char/ip2main.c +++ b/drivers/char/ip2main.c | |||
@@ -721,8 +721,9 @@ ip2_loadmain(int *iop, int *irqp, unsigned char *firmware, int firmsize) | |||
721 | } | 721 | } |
722 | 722 | ||
723 | if ( NULL != ( pB = i2BoardPtrTable[i] ) ) { | 723 | if ( NULL != ( pB = i2BoardPtrTable[i] ) ) { |
724 | class_device_create(ip2_class, MKDEV(IP2_IPL_MAJOR, | 724 | class_device_create(ip2_class, NULL, |
725 | 4 * i), NULL, "ipl%d", i); | 725 | MKDEV(IP2_IPL_MAJOR, 4 * i), |
726 | NULL, "ipl%d", i); | ||
726 | err = devfs_mk_cdev(MKDEV(IP2_IPL_MAJOR, 4 * i), | 727 | err = devfs_mk_cdev(MKDEV(IP2_IPL_MAJOR, 4 * i), |
727 | S_IRUSR | S_IWUSR | S_IRGRP | S_IFCHR, | 728 | S_IRUSR | S_IWUSR | S_IRGRP | S_IFCHR, |
728 | "ip2/ipl%d", i); | 729 | "ip2/ipl%d", i); |
@@ -732,8 +733,9 @@ ip2_loadmain(int *iop, int *irqp, unsigned char *firmware, int firmsize) | |||
732 | goto out_class; | 733 | goto out_class; |
733 | } | 734 | } |
734 | 735 | ||
735 | class_device_create(ip2_class, MKDEV(IP2_IPL_MAJOR, | 736 | class_device_create(ip2_class, NULL, |
736 | 4 * i + 1), NULL, "stat%d", i); | 737 | MKDEV(IP2_IPL_MAJOR, 4 * i + 1), |
738 | NULL, "stat%d", i); | ||
737 | err = devfs_mk_cdev(MKDEV(IP2_IPL_MAJOR, 4 * i + 1), | 739 | err = devfs_mk_cdev(MKDEV(IP2_IPL_MAJOR, 4 * i + 1), |
738 | S_IRUSR | S_IWUSR | S_IRGRP | S_IFCHR, | 740 | S_IRUSR | S_IWUSR | S_IRGRP | S_IFCHR, |
739 | "ip2/stat%d", i); | 741 | "ip2/stat%d", i); |
diff --git a/drivers/char/ipmi/ipmi_devintf.c b/drivers/char/ipmi/ipmi_devintf.c index a09ff1080687..7c0684deea06 100644 --- a/drivers/char/ipmi/ipmi_devintf.c +++ b/drivers/char/ipmi/ipmi_devintf.c | |||
@@ -798,7 +798,7 @@ static void ipmi_new_smi(int if_num) | |||
798 | devfs_mk_cdev(dev, S_IFCHR | S_IRUSR | S_IWUSR, | 798 | devfs_mk_cdev(dev, S_IFCHR | S_IRUSR | S_IWUSR, |
799 | "ipmidev/%d", if_num); | 799 | "ipmidev/%d", if_num); |
800 | 800 | ||
801 | class_device_create(ipmi_class, dev, NULL, "ipmi%d", if_num); | 801 | class_device_create(ipmi_class, NULL, dev, NULL, "ipmi%d", if_num); |
802 | } | 802 | } |
803 | 803 | ||
804 | static void ipmi_smi_gone(int if_num) | 804 | static void ipmi_smi_gone(int if_num) |
diff --git a/drivers/char/istallion.c b/drivers/char/istallion.c index 9c19e5435a11..e3ddbdb85a2f 100644 --- a/drivers/char/istallion.c +++ b/drivers/char/istallion.c | |||
@@ -5246,7 +5246,8 @@ int __init stli_init(void) | |||
5246 | devfs_mk_cdev(MKDEV(STL_SIOMEMMAJOR, i), | 5246 | devfs_mk_cdev(MKDEV(STL_SIOMEMMAJOR, i), |
5247 | S_IFCHR | S_IRUSR | S_IWUSR, | 5247 | S_IFCHR | S_IRUSR | S_IWUSR, |
5248 | "staliomem/%d", i); | 5248 | "staliomem/%d", i); |
5249 | class_device_create(istallion_class, MKDEV(STL_SIOMEMMAJOR, i), | 5249 | class_device_create(istallion_class, NULL, |
5250 | MKDEV(STL_SIOMEMMAJOR, i), | ||
5250 | NULL, "staliomem%d", i); | 5251 | NULL, "staliomem%d", i); |
5251 | } | 5252 | } |
5252 | 5253 | ||
diff --git a/drivers/char/lcd.c b/drivers/char/lcd.c index b77161146144..29963d8be667 100644 --- a/drivers/char/lcd.c +++ b/drivers/char/lcd.c | |||
@@ -575,8 +575,8 @@ static inline int button_pressed(void) | |||
575 | 575 | ||
576 | static int lcd_waiters = 0; | 576 | static int lcd_waiters = 0; |
577 | 577 | ||
578 | static long lcd_read(struct inode *inode, struct file *file, char *buf, | 578 | static ssize_t lcd_read(struct file *file, char *buf, |
579 | unsigned long count) | 579 | size_t count, loff_t *ofs) |
580 | { | 580 | { |
581 | long buttons_now; | 581 | long buttons_now; |
582 | 582 | ||
diff --git a/drivers/char/lcd.h b/drivers/char/lcd.h index 878a95280e87..a8d4ae737158 100644 --- a/drivers/char/lcd.h +++ b/drivers/char/lcd.h | |||
@@ -22,7 +22,7 @@ static int timeout(volatile unsigned long); | |||
22 | #define MAX_IDLE_TIME 120 | 22 | #define MAX_IDLE_TIME 120 |
23 | 23 | ||
24 | struct lcd_display { | 24 | struct lcd_display { |
25 | unsigned long buttons; | 25 | unsigned buttons; |
26 | int size1; | 26 | int size1; |
27 | int size2; | 27 | int size2; |
28 | unsigned char line1[LCD_CHARS_PER_LINE]; | 28 | unsigned char line1[LCD_CHARS_PER_LINE]; |
diff --git a/drivers/char/lp.c b/drivers/char/lp.c index 2afb9038dbc5..e57260525293 100644 --- a/drivers/char/lp.c +++ b/drivers/char/lp.c | |||
@@ -805,7 +805,7 @@ static int lp_register(int nr, struct parport *port) | |||
805 | if (reset) | 805 | if (reset) |
806 | lp_reset(nr); | 806 | lp_reset(nr); |
807 | 807 | ||
808 | class_device_create(lp_class, MKDEV(LP_MAJOR, nr), NULL, | 808 | class_device_create(lp_class, NULL, MKDEV(LP_MAJOR, nr), NULL, |
809 | "lp%d", nr); | 809 | "lp%d", nr); |
810 | devfs_mk_cdev(MKDEV(LP_MAJOR, nr), S_IFCHR | S_IRUGO | S_IWUGO, | 810 | devfs_mk_cdev(MKDEV(LP_MAJOR, nr), S_IFCHR | S_IRUGO | S_IWUGO, |
811 | "printers/%d", nr); | 811 | "printers/%d", nr); |
diff --git a/drivers/char/mem.c b/drivers/char/mem.c index f182752fe918..38be4b0dbd1c 100644 --- a/drivers/char/mem.c +++ b/drivers/char/mem.c | |||
@@ -920,7 +920,8 @@ static int __init chr_dev_init(void) | |||
920 | 920 | ||
921 | mem_class = class_create(THIS_MODULE, "mem"); | 921 | mem_class = class_create(THIS_MODULE, "mem"); |
922 | for (i = 0; i < ARRAY_SIZE(devlist); i++) { | 922 | for (i = 0; i < ARRAY_SIZE(devlist); i++) { |
923 | class_device_create(mem_class, MKDEV(MEM_MAJOR, devlist[i].minor), | 923 | class_device_create(mem_class, NULL, |
924 | MKDEV(MEM_MAJOR, devlist[i].minor), | ||
924 | NULL, devlist[i].name); | 925 | NULL, devlist[i].name); |
925 | devfs_mk_cdev(MKDEV(MEM_MAJOR, devlist[i].minor), | 926 | devfs_mk_cdev(MKDEV(MEM_MAJOR, devlist[i].minor), |
926 | S_IFCHR | devlist[i].mode, devlist[i].name); | 927 | S_IFCHR | devlist[i].mode, devlist[i].name); |
diff --git a/drivers/char/misc.c b/drivers/char/misc.c index 0c8375165e29..3e4c0414a01a 100644 --- a/drivers/char/misc.c +++ b/drivers/char/misc.c | |||
@@ -234,7 +234,7 @@ int misc_register(struct miscdevice * misc) | |||
234 | } | 234 | } |
235 | dev = MKDEV(MISC_MAJOR, misc->minor); | 235 | dev = MKDEV(MISC_MAJOR, misc->minor); |
236 | 236 | ||
237 | misc->class = class_device_create(misc_class, dev, misc->dev, | 237 | misc->class = class_device_create(misc_class, NULL, dev, misc->dev, |
238 | "%s", misc->name); | 238 | "%s", misc->name); |
239 | if (IS_ERR(misc->class)) { | 239 | if (IS_ERR(misc->class)) { |
240 | err = PTR_ERR(misc->class); | 240 | err = PTR_ERR(misc->class); |
diff --git a/drivers/char/mmtimer.c b/drivers/char/mmtimer.c index 12006182f575..78c89a3e7825 100644 --- a/drivers/char/mmtimer.c +++ b/drivers/char/mmtimer.c | |||
@@ -441,7 +441,7 @@ static irqreturn_t | |||
441 | mmtimer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | 441 | mmtimer_interrupt(int irq, void *dev_id, struct pt_regs *regs) |
442 | { | 442 | { |
443 | int i; | 443 | int i; |
444 | mmtimer_t *base = timers + cpuid_to_cnodeid(smp_processor_id()) * | 444 | mmtimer_t *base = timers + cpu_to_node(smp_processor_id()) * |
445 | NUM_COMPARATORS; | 445 | NUM_COMPARATORS; |
446 | unsigned long expires = 0; | 446 | unsigned long expires = 0; |
447 | int result = IRQ_NONE; | 447 | int result = IRQ_NONE; |
@@ -608,7 +608,7 @@ static int sgi_timer_set(struct k_itimer *timr, int flags, | |||
608 | */ | 608 | */ |
609 | preempt_disable(); | 609 | preempt_disable(); |
610 | 610 | ||
611 | nodeid = cpuid_to_cnodeid(smp_processor_id()); | 611 | nodeid = cpu_to_node(smp_processor_id()); |
612 | base = timers + nodeid * NUM_COMPARATORS; | 612 | base = timers + nodeid * NUM_COMPARATORS; |
613 | retry: | 613 | retry: |
614 | /* Don't use an allocated timer, or a deleted one that's pending */ | 614 | /* Don't use an allocated timer, or a deleted one that's pending */ |
diff --git a/drivers/char/n_tty.c b/drivers/char/n_tty.c index c9bdf544ed2c..c556f4d3ccd7 100644 --- a/drivers/char/n_tty.c +++ b/drivers/char/n_tty.c | |||
@@ -62,7 +62,7 @@ | |||
62 | 62 | ||
63 | static inline unsigned char *alloc_buf(void) | 63 | static inline unsigned char *alloc_buf(void) |
64 | { | 64 | { |
65 | unsigned int prio = in_interrupt() ? GFP_ATOMIC : GFP_KERNEL; | 65 | gfp_t prio = in_interrupt() ? GFP_ATOMIC : GFP_KERNEL; |
66 | 66 | ||
67 | if (PAGE_SIZE != N_TTY_BUF_SIZE) | 67 | if (PAGE_SIZE != N_TTY_BUF_SIZE) |
68 | return kmalloc(N_TTY_BUF_SIZE, prio); | 68 | return kmalloc(N_TTY_BUF_SIZE, prio); |
diff --git a/drivers/char/nvram.c b/drivers/char/nvram.c index 1af733d07321..9e24bbd4090c 100644 --- a/drivers/char/nvram.c +++ b/drivers/char/nvram.c | |||
@@ -32,9 +32,11 @@ | |||
32 | * added changelog | 32 | * added changelog |
33 | * 1.2 Erik Gilling: Cobalt Networks support | 33 | * 1.2 Erik Gilling: Cobalt Networks support |
34 | * Tim Hockin: general cleanup, Cobalt support | 34 | * Tim Hockin: general cleanup, Cobalt support |
35 | * 1.3 Jon Ringle: Comdial MP1000 support | ||
36 | * | ||
35 | */ | 37 | */ |
36 | 38 | ||
37 | #define NVRAM_VERSION "1.2" | 39 | #define NVRAM_VERSION "1.3" |
38 | 40 | ||
39 | #include <linux/module.h> | 41 | #include <linux/module.h> |
40 | #include <linux/config.h> | 42 | #include <linux/config.h> |
@@ -45,6 +47,7 @@ | |||
45 | #define PC 1 | 47 | #define PC 1 |
46 | #define ATARI 2 | 48 | #define ATARI 2 |
47 | #define COBALT 3 | 49 | #define COBALT 3 |
50 | #define MP1000 4 | ||
48 | 51 | ||
49 | /* select machine configuration */ | 52 | /* select machine configuration */ |
50 | #if defined(CONFIG_ATARI) | 53 | #if defined(CONFIG_ATARI) |
@@ -54,6 +57,9 @@ | |||
54 | # if defined(CONFIG_COBALT) | 57 | # if defined(CONFIG_COBALT) |
55 | # include <linux/cobalt-nvram.h> | 58 | # include <linux/cobalt-nvram.h> |
56 | # define MACH COBALT | 59 | # define MACH COBALT |
60 | # elif defined(CONFIG_MACH_MP1000) | ||
61 | # undef MACH | ||
62 | # define MACH MP1000 | ||
57 | # else | 63 | # else |
58 | # define MACH PC | 64 | # define MACH PC |
59 | # endif | 65 | # endif |
@@ -112,6 +118,23 @@ | |||
112 | 118 | ||
113 | #endif | 119 | #endif |
114 | 120 | ||
121 | #if MACH == MP1000 | ||
122 | |||
123 | /* RTC in a MP1000 */ | ||
124 | #define CHECK_DRIVER_INIT() 1 | ||
125 | |||
126 | #define MP1000_CKS_RANGE_START 0 | ||
127 | #define MP1000_CKS_RANGE_END 111 | ||
128 | #define MP1000_CKS_LOC 112 | ||
129 | |||
130 | #define NVRAM_BYTES (128-NVRAM_FIRST_BYTE) | ||
131 | |||
132 | #define mach_check_checksum mp1000_check_checksum | ||
133 | #define mach_set_checksum mp1000_set_checksum | ||
134 | #define mach_proc_infos mp1000_proc_infos | ||
135 | |||
136 | #endif | ||
137 | |||
115 | /* Note that *all* calls to CMOS_READ and CMOS_WRITE must be done with | 138 | /* Note that *all* calls to CMOS_READ and CMOS_WRITE must be done with |
116 | * rtc_lock held. Due to the index-port/data-port design of the RTC, we | 139 | * rtc_lock held. Due to the index-port/data-port design of the RTC, we |
117 | * don't want two different things trying to get to it at once. (e.g. the | 140 | * don't want two different things trying to get to it at once. (e.g. the |
@@ -915,6 +938,91 @@ atari_proc_infos(unsigned char *nvram, char *buffer, int *len, | |||
915 | 938 | ||
916 | #endif /* MACH == ATARI */ | 939 | #endif /* MACH == ATARI */ |
917 | 940 | ||
941 | #if MACH == MP1000 | ||
942 | |||
943 | static int | ||
944 | mp1000_check_checksum(void) | ||
945 | { | ||
946 | int i; | ||
947 | unsigned short sum = 0; | ||
948 | unsigned short expect; | ||
949 | |||
950 | for (i = MP1000_CKS_RANGE_START; i <= MP1000_CKS_RANGE_END; ++i) | ||
951 | sum += __nvram_read_byte(i); | ||
952 | |||
953 | expect = __nvram_read_byte(MP1000_CKS_LOC+1)<<8 | | ||
954 | __nvram_read_byte(MP1000_CKS_LOC); | ||
955 | return ((sum & 0xffff) == expect); | ||
956 | } | ||
957 | |||
958 | static void | ||
959 | mp1000_set_checksum(void) | ||
960 | { | ||
961 | int i; | ||
962 | unsigned short sum = 0; | ||
963 | |||
964 | for (i = MP1000_CKS_RANGE_START; i <= MP1000_CKS_RANGE_END; ++i) | ||
965 | sum += __nvram_read_byte(i); | ||
966 | __nvram_write_byte(sum >> 8, MP1000_CKS_LOC + 1); | ||
967 | __nvram_write_byte(sum & 0xff, MP1000_CKS_LOC); | ||
968 | } | ||
969 | |||
970 | #ifdef CONFIG_PROC_FS | ||
971 | |||
972 | #define SERVER_N_LEN 32 | ||
973 | #define PATH_N_LEN 32 | ||
974 | #define FILE_N_LEN 32 | ||
975 | #define NVRAM_MAGIC_SIG 0xdead | ||
976 | |||
977 | typedef struct NvRamImage | ||
978 | { | ||
979 | unsigned short int magic; | ||
980 | unsigned short int mode; | ||
981 | char fname[FILE_N_LEN]; | ||
982 | char path[PATH_N_LEN]; | ||
983 | char server[SERVER_N_LEN]; | ||
984 | char pad[12]; | ||
985 | } NvRam; | ||
986 | |||
987 | static int | ||
988 | mp1000_proc_infos(unsigned char *nvram, char *buffer, int *len, | ||
989 | off_t *begin, off_t offset, int size) | ||
990 | { | ||
991 | int checksum; | ||
992 | NvRam* nv = (NvRam*)nvram; | ||
993 | |||
994 | spin_lock_irq(&rtc_lock); | ||
995 | checksum = __nvram_check_checksum(); | ||
996 | spin_unlock_irq(&rtc_lock); | ||
997 | |||
998 | PRINT_PROC("Checksum status: %svalid\n", checksum ? "" : "not "); | ||
999 | |||
1000 | switch( nv->mode ) | ||
1001 | { | ||
1002 | case 0 : | ||
1003 | PRINT_PROC( "\tMode 0, tftp prompt\n" ); | ||
1004 | break; | ||
1005 | case 1 : | ||
1006 | PRINT_PROC( "\tMode 1, booting from disk\n" ); | ||
1007 | break; | ||
1008 | case 2 : | ||
1009 | PRINT_PROC( "\tMode 2, Alternate boot from disk /boot/%s\n", nv->fname ); | ||
1010 | break; | ||
1011 | case 3 : | ||
1012 | PRINT_PROC( "\tMode 3, Booting from net:\n" ); | ||
1013 | PRINT_PROC( "\t\t%s:%s%s\n",nv->server, nv->path, nv->fname ); | ||
1014 | break; | ||
1015 | default: | ||
1016 | PRINT_PROC( "\tInconsistant nvram?\n" ); | ||
1017 | break; | ||
1018 | } | ||
1019 | |||
1020 | return 1; | ||
1021 | } | ||
1022 | #endif | ||
1023 | |||
1024 | #endif /* MACH == MP1000 */ | ||
1025 | |||
918 | MODULE_LICENSE("GPL"); | 1026 | MODULE_LICENSE("GPL"); |
919 | 1027 | ||
920 | EXPORT_SYMBOL(__nvram_read_byte); | 1028 | EXPORT_SYMBOL(__nvram_read_byte); |
diff --git a/drivers/char/ppdev.c b/drivers/char/ppdev.c index 0e22880432bc..306ee0f091a4 100644 --- a/drivers/char/ppdev.c +++ b/drivers/char/ppdev.c | |||
@@ -752,7 +752,7 @@ static struct file_operations pp_fops = { | |||
752 | 752 | ||
753 | static void pp_attach(struct parport *port) | 753 | static void pp_attach(struct parport *port) |
754 | { | 754 | { |
755 | class_device_create(ppdev_class, MKDEV(PP_MAJOR, port->number), | 755 | class_device_create(ppdev_class, NULL, MKDEV(PP_MAJOR, port->number), |
756 | NULL, "parport%d", port->number); | 756 | NULL, "parport%d", port->number); |
757 | } | 757 | } |
758 | 758 | ||
diff --git a/drivers/char/qtronix.c b/drivers/char/qtronix.c index 40a3cf62e1a8..601d09baf9d7 100644 --- a/drivers/char/qtronix.c +++ b/drivers/char/qtronix.c | |||
@@ -591,6 +591,11 @@ static int __init psaux_init(void) | |||
591 | return retval; | 591 | return retval; |
592 | 592 | ||
593 | queue = (struct aux_queue *) kmalloc(sizeof(*queue), GFP_KERNEL); | 593 | queue = (struct aux_queue *) kmalloc(sizeof(*queue), GFP_KERNEL); |
594 | if (!queue) { | ||
595 | misc_deregister(&psaux_mouse); | ||
596 | return -ENOMEM; | ||
597 | } | ||
598 | |||
594 | memset(queue, 0, sizeof(*queue)); | 599 | memset(queue, 0, sizeof(*queue)); |
595 | queue->head = queue->tail = 0; | 600 | queue->head = queue->tail = 0; |
596 | init_waitqueue_head(&queue->proc_list); | 601 | init_waitqueue_head(&queue->proc_list); |
diff --git a/drivers/char/raw.c b/drivers/char/raw.c index f13e5de02207..30e4cbe16bb0 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c | |||
@@ -128,7 +128,7 @@ raw_ioctl(struct inode *inode, struct file *filp, | |||
128 | static void bind_device(struct raw_config_request *rq) | 128 | static void bind_device(struct raw_config_request *rq) |
129 | { | 129 | { |
130 | class_device_destroy(raw_class, MKDEV(RAW_MAJOR, rq->raw_minor)); | 130 | class_device_destroy(raw_class, MKDEV(RAW_MAJOR, rq->raw_minor)); |
131 | class_device_create(raw_class, MKDEV(RAW_MAJOR, rq->raw_minor), | 131 | class_device_create(raw_class, NULL, MKDEV(RAW_MAJOR, rq->raw_minor), |
132 | NULL, "raw%d", rq->raw_minor); | 132 | NULL, "raw%d", rq->raw_minor); |
133 | } | 133 | } |
134 | 134 | ||
@@ -307,7 +307,7 @@ static int __init raw_init(void) | |||
307 | unregister_chrdev_region(dev, MAX_RAW_MINORS); | 307 | unregister_chrdev_region(dev, MAX_RAW_MINORS); |
308 | goto error; | 308 | goto error; |
309 | } | 309 | } |
310 | class_device_create(raw_class, MKDEV(RAW_MAJOR, 0), NULL, "rawctl"); | 310 | class_device_create(raw_class, NULL, MKDEV(RAW_MAJOR, 0), NULL, "rawctl"); |
311 | 311 | ||
312 | devfs_mk_cdev(MKDEV(RAW_MAJOR, 0), | 312 | devfs_mk_cdev(MKDEV(RAW_MAJOR, 0), |
313 | S_IFCHR | S_IRUGO | S_IWUGO, | 313 | S_IFCHR | S_IRUGO | S_IWUGO, |
diff --git a/drivers/char/s3c2410-rtc.c b/drivers/char/s3c2410-rtc.c index e1a90d9a8756..887b8b2d7882 100644 --- a/drivers/char/s3c2410-rtc.c +++ b/drivers/char/s3c2410-rtc.c | |||
@@ -519,30 +519,28 @@ static struct timespec s3c2410_rtc_delta; | |||
519 | 519 | ||
520 | static int ticnt_save; | 520 | static int ticnt_save; |
521 | 521 | ||
522 | static int s3c2410_rtc_suspend(struct device *dev, pm_message_t state, u32 level) | 522 | static int s3c2410_rtc_suspend(struct device *dev, pm_message_t state) |
523 | { | 523 | { |
524 | struct rtc_time tm; | 524 | struct rtc_time tm; |
525 | struct timespec time; | 525 | struct timespec time; |
526 | 526 | ||
527 | time.tv_nsec = 0; | 527 | time.tv_nsec = 0; |
528 | 528 | ||
529 | if (level == SUSPEND_POWER_DOWN) { | 529 | /* save TICNT for anyone using periodic interrupts */ |
530 | /* save TICNT for anyone using periodic interrupts */ | ||
531 | 530 | ||
532 | ticnt_save = readb(S3C2410_TICNT); | 531 | ticnt_save = readb(S3C2410_TICNT); |
533 | 532 | ||
534 | /* calculate time delta for suspend */ | 533 | /* calculate time delta for suspend */ |
535 | 534 | ||
536 | s3c2410_rtc_gettime(&tm); | 535 | s3c2410_rtc_gettime(&tm); |
537 | rtc_tm_to_time(&tm, &time.tv_sec); | 536 | rtc_tm_to_time(&tm, &time.tv_sec); |
538 | save_time_delta(&s3c2410_rtc_delta, &time); | 537 | save_time_delta(&s3c2410_rtc_delta, &time); |
539 | s3c2410_rtc_enable(dev, 0); | 538 | s3c2410_rtc_enable(dev, 0); |
540 | } | ||
541 | 539 | ||
542 | return 0; | 540 | return 0; |
543 | } | 541 | } |
544 | 542 | ||
545 | static int s3c2410_rtc_resume(struct device *dev, u32 level) | 543 | static int s3c2410_rtc_resume(struct device *dev) |
546 | { | 544 | { |
547 | struct rtc_time tm; | 545 | struct rtc_time tm; |
548 | struct timespec time; | 546 | struct timespec time; |
diff --git a/drivers/char/snsc.c b/drivers/char/snsc.c index 261a41bf6d02..0e7d216e7eb0 100644 --- a/drivers/char/snsc.c +++ b/drivers/char/snsc.c | |||
@@ -377,7 +377,7 @@ scdrv_init(void) | |||
377 | dev_t first_dev, dev; | 377 | dev_t first_dev, dev; |
378 | nasid_t event_nasid = ia64_sn_get_console_nasid(); | 378 | nasid_t event_nasid = ia64_sn_get_console_nasid(); |
379 | 379 | ||
380 | if (alloc_chrdev_region(&first_dev, 0, numionodes, | 380 | if (alloc_chrdev_region(&first_dev, 0, num_cnodes, |
381 | SYSCTL_BASENAME) < 0) { | 381 | SYSCTL_BASENAME) < 0) { |
382 | printk("%s: failed to register SN system controller device\n", | 382 | printk("%s: failed to register SN system controller device\n", |
383 | __FUNCTION__); | 383 | __FUNCTION__); |
@@ -385,7 +385,7 @@ scdrv_init(void) | |||
385 | } | 385 | } |
386 | snsc_class = class_create(THIS_MODULE, SYSCTL_BASENAME); | 386 | snsc_class = class_create(THIS_MODULE, SYSCTL_BASENAME); |
387 | 387 | ||
388 | for (cnode = 0; cnode < numionodes; cnode++) { | 388 | for (cnode = 0; cnode < num_cnodes; cnode++) { |
389 | geoid = cnodeid_get_geoid(cnode); | 389 | geoid = cnodeid_get_geoid(cnode); |
390 | devnamep = devname; | 390 | devnamep = devname; |
391 | format_module_id(devnamep, geo_module(geoid), | 391 | format_module_id(devnamep, geo_module(geoid), |
@@ -437,7 +437,7 @@ scdrv_init(void) | |||
437 | continue; | 437 | continue; |
438 | } | 438 | } |
439 | 439 | ||
440 | class_device_create(snsc_class, dev, NULL, | 440 | class_device_create(snsc_class, NULL, dev, NULL, |
441 | "%s", devname); | 441 | "%s", devname); |
442 | 442 | ||
443 | ia64_sn_irtr_intr_enable(scd->scd_nasid, | 443 | ia64_sn_irtr_intr_enable(scd->scd_nasid, |
diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c index 36ae9ad2598c..f86c15587238 100644 --- a/drivers/char/sonypi.c +++ b/drivers/char/sonypi.c | |||
@@ -424,10 +424,6 @@ static struct sonypi_eventtypes { | |||
424 | 424 | ||
425 | #define SONYPI_BUF_SIZE 128 | 425 | #define SONYPI_BUF_SIZE 128 |
426 | 426 | ||
427 | /* The name of the devices for the input device drivers */ | ||
428 | #define SONYPI_JOG_INPUTNAME "Sony Vaio Jogdial" | ||
429 | #define SONYPI_KEY_INPUTNAME "Sony Vaio Keys" | ||
430 | |||
431 | /* Correspondance table between sonypi events and input layer events */ | 427 | /* Correspondance table between sonypi events and input layer events */ |
432 | static struct { | 428 | static struct { |
433 | int sonypiev; | 429 | int sonypiev; |
@@ -490,8 +486,8 @@ static struct sonypi_device { | |||
490 | struct fasync_struct *fifo_async; | 486 | struct fasync_struct *fifo_async; |
491 | int open_count; | 487 | int open_count; |
492 | int model; | 488 | int model; |
493 | struct input_dev input_jog_dev; | 489 | struct input_dev *input_jog_dev; |
494 | struct input_dev input_key_dev; | 490 | struct input_dev *input_key_dev; |
495 | struct work_struct input_work; | 491 | struct work_struct input_work; |
496 | struct kfifo *input_fifo; | 492 | struct kfifo *input_fifo; |
497 | spinlock_t input_fifo_lock; | 493 | spinlock_t input_fifo_lock; |
@@ -779,8 +775,8 @@ static void input_keyrelease(void *data) | |||
779 | 775 | ||
780 | static void sonypi_report_input_event(u8 event) | 776 | static void sonypi_report_input_event(u8 event) |
781 | { | 777 | { |
782 | struct input_dev *jog_dev = &sonypi_device.input_jog_dev; | 778 | struct input_dev *jog_dev = sonypi_device.input_jog_dev; |
783 | struct input_dev *key_dev = &sonypi_device.input_key_dev; | 779 | struct input_dev *key_dev = sonypi_device.input_key_dev; |
784 | struct sonypi_keypress kp = { NULL }; | 780 | struct sonypi_keypress kp = { NULL }; |
785 | int i; | 781 | int i; |
786 | 782 | ||
@@ -1171,19 +1167,17 @@ static int sonypi_disable(void) | |||
1171 | #ifdef CONFIG_PM | 1167 | #ifdef CONFIG_PM |
1172 | static int old_camera_power; | 1168 | static int old_camera_power; |
1173 | 1169 | ||
1174 | static int sonypi_suspend(struct device *dev, pm_message_t state, u32 level) | 1170 | static int sonypi_suspend(struct device *dev, pm_message_t state) |
1175 | { | 1171 | { |
1176 | if (level == SUSPEND_DISABLE) { | 1172 | old_camera_power = sonypi_device.camera_power; |
1177 | old_camera_power = sonypi_device.camera_power; | 1173 | sonypi_disable(); |
1178 | sonypi_disable(); | 1174 | |
1179 | } | ||
1180 | return 0; | 1175 | return 0; |
1181 | } | 1176 | } |
1182 | 1177 | ||
1183 | static int sonypi_resume(struct device *dev, u32 level) | 1178 | static int sonypi_resume(struct device *dev) |
1184 | { | 1179 | { |
1185 | if (level == RESUME_ENABLE) | 1180 | sonypi_enable(old_camera_power); |
1186 | sonypi_enable(old_camera_power); | ||
1187 | return 0; | 1181 | return 0; |
1188 | } | 1182 | } |
1189 | #endif | 1183 | #endif |
@@ -1203,6 +1197,47 @@ static struct device_driver sonypi_driver = { | |||
1203 | .shutdown = sonypi_shutdown, | 1197 | .shutdown = sonypi_shutdown, |
1204 | }; | 1198 | }; |
1205 | 1199 | ||
1200 | static int __devinit sonypi_create_input_devices(void) | ||
1201 | { | ||
1202 | struct input_dev *jog_dev; | ||
1203 | struct input_dev *key_dev; | ||
1204 | int i; | ||
1205 | |||
1206 | sonypi_device.input_jog_dev = jog_dev = input_allocate_device(); | ||
1207 | if (!jog_dev) | ||
1208 | return -ENOMEM; | ||
1209 | |||
1210 | jog_dev->name = "Sony Vaio Jogdial"; | ||
1211 | jog_dev->id.bustype = BUS_ISA; | ||
1212 | jog_dev->id.vendor = PCI_VENDOR_ID_SONY; | ||
1213 | |||
1214 | jog_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REL); | ||
1215 | jog_dev->keybit[LONG(BTN_MOUSE)] = BIT(BTN_MIDDLE); | ||
1216 | jog_dev->relbit[0] = BIT(REL_WHEEL); | ||
1217 | |||
1218 | sonypi_device.input_key_dev = key_dev = input_allocate_device(); | ||
1219 | if (!key_dev) { | ||
1220 | input_free_device(jog_dev); | ||
1221 | sonypi_device.input_jog_dev = NULL; | ||
1222 | return -ENOMEM; | ||
1223 | } | ||
1224 | |||
1225 | key_dev->name = "Sony Vaio Keys"; | ||
1226 | key_dev->id.bustype = BUS_ISA; | ||
1227 | key_dev->id.vendor = PCI_VENDOR_ID_SONY; | ||
1228 | |||
1229 | /* Initialize the Input Drivers: special keys */ | ||
1230 | key_dev->evbit[0] = BIT(EV_KEY); | ||
1231 | for (i = 0; sonypi_inputkeys[i].sonypiev; i++) | ||
1232 | if (sonypi_inputkeys[i].inputev) | ||
1233 | set_bit(sonypi_inputkeys[i].inputev, key_dev->keybit); | ||
1234 | |||
1235 | input_register_device(jog_dev); | ||
1236 | input_register_device(key_dev); | ||
1237 | |||
1238 | return 0; | ||
1239 | } | ||
1240 | |||
1206 | static int __devinit sonypi_probe(void) | 1241 | static int __devinit sonypi_probe(void) |
1207 | { | 1242 | { |
1208 | int i, ret; | 1243 | int i, ret; |
@@ -1298,34 +1333,10 @@ static int __devinit sonypi_probe(void) | |||
1298 | } | 1333 | } |
1299 | 1334 | ||
1300 | if (useinput) { | 1335 | if (useinput) { |
1301 | /* Initialize the Input Drivers: jogdial */ | ||
1302 | int i; | ||
1303 | sonypi_device.input_jog_dev.evbit[0] = | ||
1304 | BIT(EV_KEY) | BIT(EV_REL); | ||
1305 | sonypi_device.input_jog_dev.keybit[LONG(BTN_MOUSE)] = | ||
1306 | BIT(BTN_MIDDLE); | ||
1307 | sonypi_device.input_jog_dev.relbit[0] = BIT(REL_WHEEL); | ||
1308 | sonypi_device.input_jog_dev.name = SONYPI_JOG_INPUTNAME; | ||
1309 | sonypi_device.input_jog_dev.id.bustype = BUS_ISA; | ||
1310 | sonypi_device.input_jog_dev.id.vendor = PCI_VENDOR_ID_SONY; | ||
1311 | |||
1312 | input_register_device(&sonypi_device.input_jog_dev); | ||
1313 | printk(KERN_INFO "%s input method installed.\n", | ||
1314 | sonypi_device.input_jog_dev.name); | ||
1315 | |||
1316 | /* Initialize the Input Drivers: special keys */ | ||
1317 | sonypi_device.input_key_dev.evbit[0] = BIT(EV_KEY); | ||
1318 | for (i = 0; sonypi_inputkeys[i].sonypiev; i++) | ||
1319 | if (sonypi_inputkeys[i].inputev) | ||
1320 | set_bit(sonypi_inputkeys[i].inputev, | ||
1321 | sonypi_device.input_key_dev.keybit); | ||
1322 | sonypi_device.input_key_dev.name = SONYPI_KEY_INPUTNAME; | ||
1323 | sonypi_device.input_key_dev.id.bustype = BUS_ISA; | ||
1324 | sonypi_device.input_key_dev.id.vendor = PCI_VENDOR_ID_SONY; | ||
1325 | 1336 | ||
1326 | input_register_device(&sonypi_device.input_key_dev); | 1337 | ret = sonypi_create_input_devices(); |
1327 | printk(KERN_INFO "%s input method installed.\n", | 1338 | if (ret) |
1328 | sonypi_device.input_key_dev.name); | 1339 | goto out_inputdevices; |
1329 | 1340 | ||
1330 | spin_lock_init(&sonypi_device.input_fifo_lock); | 1341 | spin_lock_init(&sonypi_device.input_fifo_lock); |
1331 | sonypi_device.input_fifo = | 1342 | sonypi_device.input_fifo = |
@@ -1375,8 +1386,9 @@ static int __devinit sonypi_probe(void) | |||
1375 | out_platformdev: | 1386 | out_platformdev: |
1376 | kfifo_free(sonypi_device.input_fifo); | 1387 | kfifo_free(sonypi_device.input_fifo); |
1377 | out_infifo: | 1388 | out_infifo: |
1378 | input_unregister_device(&sonypi_device.input_key_dev); | 1389 | input_unregister_device(sonypi_device.input_key_dev); |
1379 | input_unregister_device(&sonypi_device.input_jog_dev); | 1390 | input_unregister_device(sonypi_device.input_jog_dev); |
1391 | out_inputdevices: | ||
1380 | free_irq(sonypi_device.irq, sonypi_irq); | 1392 | free_irq(sonypi_device.irq, sonypi_irq); |
1381 | out_reqirq: | 1393 | out_reqirq: |
1382 | release_region(sonypi_device.ioport1, sonypi_device.region_size); | 1394 | release_region(sonypi_device.ioport1, sonypi_device.region_size); |
@@ -1402,8 +1414,8 @@ static void __devexit sonypi_remove(void) | |||
1402 | platform_device_unregister(sonypi_device.pdev); | 1414 | platform_device_unregister(sonypi_device.pdev); |
1403 | 1415 | ||
1404 | if (useinput) { | 1416 | if (useinput) { |
1405 | input_unregister_device(&sonypi_device.input_key_dev); | 1417 | input_unregister_device(sonypi_device.input_key_dev); |
1406 | input_unregister_device(&sonypi_device.input_jog_dev); | 1418 | input_unregister_device(sonypi_device.input_jog_dev); |
1407 | kfifo_free(sonypi_device.input_fifo); | 1419 | kfifo_free(sonypi_device.input_fifo); |
1408 | } | 1420 | } |
1409 | 1421 | ||
diff --git a/drivers/char/stallion.c b/drivers/char/stallion.c index 951545a6ef2d..1c686414e0a1 100644 --- a/drivers/char/stallion.c +++ b/drivers/char/stallion.c | |||
@@ -3095,7 +3095,9 @@ static int __init stl_init(void) | |||
3095 | devfs_mk_cdev(MKDEV(STL_SIOMEMMAJOR, i), | 3095 | devfs_mk_cdev(MKDEV(STL_SIOMEMMAJOR, i), |
3096 | S_IFCHR|S_IRUSR|S_IWUSR, | 3096 | S_IFCHR|S_IRUSR|S_IWUSR, |
3097 | "staliomem/%d", i); | 3097 | "staliomem/%d", i); |
3098 | class_device_create(stallion_class, MKDEV(STL_SIOMEMMAJOR, i), NULL, "staliomem%d", i); | 3098 | class_device_create(stallion_class, NULL, |
3099 | MKDEV(STL_SIOMEMMAJOR, i), NULL, | ||
3100 | "staliomem%d", i); | ||
3099 | } | 3101 | } |
3100 | 3102 | ||
3101 | stl_serial->owner = THIS_MODULE; | 3103 | stl_serial->owner = THIS_MODULE; |
diff --git a/drivers/char/tipar.c b/drivers/char/tipar.c index ec78d2f161f7..41a94bc79f67 100644 --- a/drivers/char/tipar.c +++ b/drivers/char/tipar.c | |||
@@ -436,7 +436,7 @@ tipar_register(int nr, struct parport *port) | |||
436 | goto out; | 436 | goto out; |
437 | } | 437 | } |
438 | 438 | ||
439 | class_device_create(tipar_class, MKDEV(TIPAR_MAJOR, | 439 | class_device_create(tipar_class, NULL, MKDEV(TIPAR_MAJOR, |
440 | TIPAR_MINOR + nr), NULL, "par%d", nr); | 440 | TIPAR_MINOR + nr), NULL, "par%d", nr); |
441 | /* Use devfs, tree: /dev/ticables/par/[0..2] */ | 441 | /* Use devfs, tree: /dev/ticables/par/[0..2] */ |
442 | err = devfs_mk_cdev(MKDEV(TIPAR_MAJOR, TIPAR_MINOR + nr), | 442 | err = devfs_mk_cdev(MKDEV(TIPAR_MAJOR, TIPAR_MINOR + nr), |
diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c index e5953f3433f3..f5649a337743 100644 --- a/drivers/char/tty_io.c +++ b/drivers/char/tty_io.c | |||
@@ -2728,7 +2728,7 @@ void tty_register_device(struct tty_driver *driver, unsigned index, | |||
2728 | pty_line_name(driver, index, name); | 2728 | pty_line_name(driver, index, name); |
2729 | else | 2729 | else |
2730 | tty_line_name(driver, index, name); | 2730 | tty_line_name(driver, index, name); |
2731 | class_device_create(tty_class, dev, device, name); | 2731 | class_device_create(tty_class, NULL, dev, device, "%s", name); |
2732 | } | 2732 | } |
2733 | 2733 | ||
2734 | /** | 2734 | /** |
@@ -2983,14 +2983,14 @@ static int __init tty_init(void) | |||
2983 | register_chrdev_region(MKDEV(TTYAUX_MAJOR, 0), 1, "/dev/tty") < 0) | 2983 | register_chrdev_region(MKDEV(TTYAUX_MAJOR, 0), 1, "/dev/tty") < 0) |
2984 | panic("Couldn't register /dev/tty driver\n"); | 2984 | panic("Couldn't register /dev/tty driver\n"); |
2985 | devfs_mk_cdev(MKDEV(TTYAUX_MAJOR, 0), S_IFCHR|S_IRUGO|S_IWUGO, "tty"); | 2985 | devfs_mk_cdev(MKDEV(TTYAUX_MAJOR, 0), S_IFCHR|S_IRUGO|S_IWUGO, "tty"); |
2986 | class_device_create(tty_class, MKDEV(TTYAUX_MAJOR, 0), NULL, "tty"); | 2986 | class_device_create(tty_class, NULL, MKDEV(TTYAUX_MAJOR, 0), NULL, "tty"); |
2987 | 2987 | ||
2988 | cdev_init(&console_cdev, &console_fops); | 2988 | cdev_init(&console_cdev, &console_fops); |
2989 | if (cdev_add(&console_cdev, MKDEV(TTYAUX_MAJOR, 1), 1) || | 2989 | if (cdev_add(&console_cdev, MKDEV(TTYAUX_MAJOR, 1), 1) || |
2990 | register_chrdev_region(MKDEV(TTYAUX_MAJOR, 1), 1, "/dev/console") < 0) | 2990 | register_chrdev_region(MKDEV(TTYAUX_MAJOR, 1), 1, "/dev/console") < 0) |
2991 | panic("Couldn't register /dev/console driver\n"); | 2991 | panic("Couldn't register /dev/console driver\n"); |
2992 | devfs_mk_cdev(MKDEV(TTYAUX_MAJOR, 1), S_IFCHR|S_IRUSR|S_IWUSR, "console"); | 2992 | devfs_mk_cdev(MKDEV(TTYAUX_MAJOR, 1), S_IFCHR|S_IRUSR|S_IWUSR, "console"); |
2993 | class_device_create(tty_class, MKDEV(TTYAUX_MAJOR, 1), NULL, "console"); | 2993 | class_device_create(tty_class, NULL, MKDEV(TTYAUX_MAJOR, 1), NULL, "console"); |
2994 | 2994 | ||
2995 | #ifdef CONFIG_UNIX98_PTYS | 2995 | #ifdef CONFIG_UNIX98_PTYS |
2996 | cdev_init(&ptmx_cdev, &ptmx_fops); | 2996 | cdev_init(&ptmx_cdev, &ptmx_fops); |
@@ -2998,7 +2998,7 @@ static int __init tty_init(void) | |||
2998 | register_chrdev_region(MKDEV(TTYAUX_MAJOR, 2), 1, "/dev/ptmx") < 0) | 2998 | register_chrdev_region(MKDEV(TTYAUX_MAJOR, 2), 1, "/dev/ptmx") < 0) |
2999 | panic("Couldn't register /dev/ptmx driver\n"); | 2999 | panic("Couldn't register /dev/ptmx driver\n"); |
3000 | devfs_mk_cdev(MKDEV(TTYAUX_MAJOR, 2), S_IFCHR|S_IRUGO|S_IWUGO, "ptmx"); | 3000 | devfs_mk_cdev(MKDEV(TTYAUX_MAJOR, 2), S_IFCHR|S_IRUGO|S_IWUGO, "ptmx"); |
3001 | class_device_create(tty_class, MKDEV(TTYAUX_MAJOR, 2), NULL, "ptmx"); | 3001 | class_device_create(tty_class, NULL, MKDEV(TTYAUX_MAJOR, 2), NULL, "ptmx"); |
3002 | #endif | 3002 | #endif |
3003 | 3003 | ||
3004 | #ifdef CONFIG_VT | 3004 | #ifdef CONFIG_VT |
@@ -3007,7 +3007,7 @@ static int __init tty_init(void) | |||
3007 | register_chrdev_region(MKDEV(TTY_MAJOR, 0), 1, "/dev/vc/0") < 0) | 3007 | register_chrdev_region(MKDEV(TTY_MAJOR, 0), 1, "/dev/vc/0") < 0) |
3008 | panic("Couldn't register /dev/tty0 driver\n"); | 3008 | panic("Couldn't register /dev/tty0 driver\n"); |
3009 | devfs_mk_cdev(MKDEV(TTY_MAJOR, 0), S_IFCHR|S_IRUSR|S_IWUSR, "vc/0"); | 3009 | devfs_mk_cdev(MKDEV(TTY_MAJOR, 0), S_IFCHR|S_IRUSR|S_IWUSR, "vc/0"); |
3010 | class_device_create(tty_class, MKDEV(TTY_MAJOR, 0), NULL, "tty0"); | 3010 | class_device_create(tty_class, NULL, MKDEV(TTY_MAJOR, 0), NULL, "tty0"); |
3011 | 3011 | ||
3012 | vty_init(); | 3012 | vty_init(); |
3013 | #endif | 3013 | #endif |
diff --git a/drivers/char/vc_screen.c b/drivers/char/vc_screen.c index 79c2928a8817..f66c7ad6fd38 100644 --- a/drivers/char/vc_screen.c +++ b/drivers/char/vc_screen.c | |||
@@ -484,8 +484,10 @@ void vcs_make_devfs(struct tty_struct *tty) | |||
484 | devfs_mk_cdev(MKDEV(VCS_MAJOR, tty->index + 129), | 484 | devfs_mk_cdev(MKDEV(VCS_MAJOR, tty->index + 129), |
485 | S_IFCHR|S_IRUSR|S_IWUSR, | 485 | S_IFCHR|S_IRUSR|S_IWUSR, |
486 | "vcc/a%u", tty->index + 1); | 486 | "vcc/a%u", tty->index + 1); |
487 | class_device_create(vc_class, MKDEV(VCS_MAJOR, tty->index + 1), NULL, "vcs%u", tty->index + 1); | 487 | class_device_create(vc_class, NULL, MKDEV(VCS_MAJOR, tty->index + 1), |
488 | class_device_create(vc_class, MKDEV(VCS_MAJOR, tty->index + 129), NULL, "vcsa%u", tty->index + 1); | 488 | NULL, "vcs%u", tty->index + 1); |
489 | class_device_create(vc_class, NULL, MKDEV(VCS_MAJOR, tty->index + 129), | ||
490 | NULL, "vcsa%u", tty->index + 1); | ||
489 | } | 491 | } |
490 | void vcs_remove_devfs(struct tty_struct *tty) | 492 | void vcs_remove_devfs(struct tty_struct *tty) |
491 | { | 493 | { |
@@ -503,7 +505,7 @@ int __init vcs_init(void) | |||
503 | 505 | ||
504 | devfs_mk_cdev(MKDEV(VCS_MAJOR, 0), S_IFCHR|S_IRUSR|S_IWUSR, "vcc/0"); | 506 | devfs_mk_cdev(MKDEV(VCS_MAJOR, 0), S_IFCHR|S_IRUSR|S_IWUSR, "vcc/0"); |
505 | devfs_mk_cdev(MKDEV(VCS_MAJOR, 128), S_IFCHR|S_IRUSR|S_IWUSR, "vcc/a0"); | 507 | devfs_mk_cdev(MKDEV(VCS_MAJOR, 128), S_IFCHR|S_IRUSR|S_IWUSR, "vcc/a0"); |
506 | class_device_create(vc_class, MKDEV(VCS_MAJOR, 0), NULL, "vcs"); | 508 | class_device_create(vc_class, NULL, MKDEV(VCS_MAJOR, 0), NULL, "vcs"); |
507 | class_device_create(vc_class, MKDEV(VCS_MAJOR, 128), NULL, "vcsa"); | 509 | class_device_create(vc_class, NULL, MKDEV(VCS_MAJOR, 128), NULL, "vcsa"); |
508 | return 0; | 510 | return 0; |
509 | } | 511 | } |
diff --git a/drivers/char/viotape.c b/drivers/char/viotape.c index 0aff45fac2e6..a5e104f428f8 100644 --- a/drivers/char/viotape.c +++ b/drivers/char/viotape.c | |||
@@ -956,9 +956,9 @@ static int viotape_probe(struct vio_dev *vdev, const struct vio_device_id *id) | |||
956 | state[i].cur_part = 0; | 956 | state[i].cur_part = 0; |
957 | for (j = 0; j < MAX_PARTITIONS; ++j) | 957 | for (j = 0; j < MAX_PARTITIONS; ++j) |
958 | state[i].part_stat_rwi[j] = VIOT_IDLE; | 958 | state[i].part_stat_rwi[j] = VIOT_IDLE; |
959 | class_device_create(tape_class, MKDEV(VIOTAPE_MAJOR, i), NULL, | 959 | class_device_create(tape_class, NULL, MKDEV(VIOTAPE_MAJOR, i), NULL, |
960 | "iseries!vt%d", i); | 960 | "iseries!vt%d", i); |
961 | class_device_create(tape_class, MKDEV(VIOTAPE_MAJOR, i | 0x80), | 961 | class_device_create(tape_class, NULL, MKDEV(VIOTAPE_MAJOR, i | 0x80), |
962 | NULL, "iseries!nvt%d", i); | 962 | NULL, "iseries!nvt%d", i); |
963 | devfs_mk_cdev(MKDEV(VIOTAPE_MAJOR, i), S_IFCHR | S_IRUSR | S_IWUSR, | 963 | devfs_mk_cdev(MKDEV(VIOTAPE_MAJOR, i), S_IFCHR | S_IRUSR | S_IWUSR, |
964 | "iseries/vt%d", i); | 964 | "iseries/vt%d", i); |
diff --git a/drivers/char/watchdog/s3c2410_wdt.c b/drivers/char/watchdog/s3c2410_wdt.c index 3625b2601b42..b732020acadb 100644 --- a/drivers/char/watchdog/s3c2410_wdt.c +++ b/drivers/char/watchdog/s3c2410_wdt.c | |||
@@ -464,32 +464,28 @@ static void s3c2410wdt_shutdown(struct device *dev) | |||
464 | static unsigned long wtcon_save; | 464 | static unsigned long wtcon_save; |
465 | static unsigned long wtdat_save; | 465 | static unsigned long wtdat_save; |
466 | 466 | ||
467 | static int s3c2410wdt_suspend(struct device *dev, pm_message_t state, u32 level) | 467 | static int s3c2410wdt_suspend(struct device *dev, pm_message_t state) |
468 | { | 468 | { |
469 | if (level == SUSPEND_POWER_DOWN) { | 469 | /* Save watchdog state, and turn it off. */ |
470 | /* Save watchdog state, and turn it off. */ | 470 | wtcon_save = readl(wdt_base + S3C2410_WTCON); |
471 | wtcon_save = readl(wdt_base + S3C2410_WTCON); | 471 | wtdat_save = readl(wdt_base + S3C2410_WTDAT); |
472 | wtdat_save = readl(wdt_base + S3C2410_WTDAT); | ||
473 | 472 | ||
474 | /* Note that WTCNT doesn't need to be saved. */ | 473 | /* Note that WTCNT doesn't need to be saved. */ |
475 | s3c2410wdt_stop(); | 474 | s3c2410wdt_stop(); |
476 | } | ||
477 | 475 | ||
478 | return 0; | 476 | return 0; |
479 | } | 477 | } |
480 | 478 | ||
481 | static int s3c2410wdt_resume(struct device *dev, u32 level) | 479 | static int s3c2410wdt_resume(struct device *dev) |
482 | { | 480 | { |
483 | if (level == RESUME_POWER_ON) { | 481 | /* Restore watchdog state. */ |
484 | /* Restore watchdog state. */ | ||
485 | 482 | ||
486 | writel(wtdat_save, wdt_base + S3C2410_WTDAT); | 483 | writel(wtdat_save, wdt_base + S3C2410_WTDAT); |
487 | writel(wtdat_save, wdt_base + S3C2410_WTCNT); /* Reset count */ | 484 | writel(wtdat_save, wdt_base + S3C2410_WTCNT); /* Reset count */ |
488 | writel(wtcon_save, wdt_base + S3C2410_WTCON); | 485 | writel(wtcon_save, wdt_base + S3C2410_WTCON); |
489 | 486 | ||
490 | printk(KERN_INFO PFX "watchdog %sabled\n", | 487 | printk(KERN_INFO PFX "watchdog %sabled\n", |
491 | (wtcon_save & S3C2410_WTCON_ENABLE) ? "en" : "dis"); | 488 | (wtcon_save & S3C2410_WTCON_ENABLE) ? "en" : "dis"); |
492 | } | ||
493 | 489 | ||
494 | return 0; | 490 | return 0; |
495 | } | 491 | } |