diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-29 14:28:30 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-29 14:28:30 -0500 |
commit | 76babde121d2ffef04ca692ce64ef9f8a9866086 (patch) | |
tree | 294923bbb4974258d86d223e35eee691abacdfb1 /drivers | |
parent | e71ac6032edf77a1e4a81f3e3b260807e94b37a5 (diff) | |
parent | 15e812ad849e142e3dfc984d33c4d8042389f148 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
* git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (67 commits)
[PATCH] powerpc: Remove oprofile spinlock backtrace code
[PATCH] powerpc: Add oprofile calltrace support to all powerpc cpus
[PATCH] powerpc: Add oprofile calltrace support
[PATCH] for_each_possible_cpu: ppc
[PATCH] for_each_possible_cpu: powerpc
[PATCH] lock PTE before updating it in 440/BookE page fault handler
[PATCH] powerpc: Kill _machine and hard-coded platform numbers
ppc: Fix compile error in arch/ppc/lib/strcase.c
[PATCH] git-powerpc: WARN was a dumb idea
[PATCH] powerpc: a couple of trivial compile warning fixes
powerpc: remove OCP references
powerpc: Make uImage default build output for MPC8540 ADS
powerpc: move math-emu over to arch/powerpc
powerpc: use memparse() for mem= command line parsing
ppc: fix strncasecmp prototype
[PATCH] powerpc: make ISA floppies work again
[PATCH] powerpc: Fix some initcall return values
[PATCH] powerpc: Workaround for pSeries RTAS bug
[PATCH] spufs: fix __init/__exit annotations
[PATCH] powerpc: add hvc backend for rtas
...
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/char/Kconfig | 17 | ||||
-rw-r--r-- | drivers/char/Makefile | 4 | ||||
-rw-r--r-- | drivers/char/generic_nvram.c | 5 | ||||
-rw-r--r-- | drivers/char/hvc_console.c | 101 | ||||
-rw-r--r-- | drivers/char/hvc_console.h | 63 | ||||
-rw-r--r-- | drivers/char/hvc_rtas.c | 138 | ||||
-rw-r--r-- | drivers/char/hvc_vio.c | 11 | ||||
-rw-r--r-- | drivers/char/hvcs.c | 1 | ||||
-rw-r--r-- | drivers/ide/pci/via82cxxx.c | 2 | ||||
-rw-r--r-- | drivers/ide/ppc/pmac.c | 2 | ||||
-rw-r--r-- | drivers/ieee1394/ohci1394.c | 4 | ||||
-rw-r--r-- | drivers/macintosh/adb.c | 3 | ||||
-rw-r--r-- | drivers/macintosh/adbhid.c | 4 | ||||
-rw-r--r-- | drivers/macintosh/mediabay.c | 4 | ||||
-rw-r--r-- | drivers/media/video/planb.c | 2 | ||||
-rw-r--r-- | drivers/net/tulip/de4x5.c | 2 | ||||
-rw-r--r-- | drivers/scsi/mesh.c | 2 | ||||
-rw-r--r-- | drivers/usb/core/hcd-pci.c | 4 | ||||
-rw-r--r-- | drivers/video/aty/aty128fb.c | 7 | ||||
-rw-r--r-- | drivers/video/aty/atyfb_base.c | 7 | ||||
-rw-r--r-- | drivers/video/aty/radeon_pm.c | 4 | ||||
-rw-r--r-- | drivers/video/cirrusfb.c | 4 | ||||
-rw-r--r-- | drivers/video/matrox/matroxfb_base.c | 3 | ||||
-rw-r--r-- | drivers/video/nvidia/nvidia.c | 5 | ||||
-rw-r--r-- | drivers/video/radeonfb.c | 2 | ||||
-rw-r--r-- | drivers/video/riva/fbdev.c | 9 |
26 files changed, 321 insertions, 89 deletions
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig index 73d30bf01582..889cad07774e 100644 --- a/drivers/char/Kconfig +++ b/drivers/char/Kconfig | |||
@@ -561,14 +561,31 @@ config TIPAR | |||
561 | 561 | ||
562 | If unsure, say N. | 562 | If unsure, say N. |
563 | 563 | ||
564 | config HVC_DRIVER | ||
565 | bool | ||
566 | help | ||
567 | Users of pSeries machines that want to utilize the hvc console front-end | ||
568 | module for their backend console driver should select this option. | ||
569 | It will automatically be selected if one of the back-end console drivers | ||
570 | is selected. | ||
571 | |||
572 | |||
564 | config HVC_CONSOLE | 573 | config HVC_CONSOLE |
565 | bool "pSeries Hypervisor Virtual Console support" | 574 | bool "pSeries Hypervisor Virtual Console support" |
566 | depends on PPC_PSERIES | 575 | depends on PPC_PSERIES |
576 | select HVC_DRIVER | ||
567 | help | 577 | help |
568 | pSeries machines when partitioned support a hypervisor virtual | 578 | pSeries machines when partitioned support a hypervisor virtual |
569 | console. This driver allows each pSeries partition to have a console | 579 | console. This driver allows each pSeries partition to have a console |
570 | which is accessed via the HMC. | 580 | which is accessed via the HMC. |
571 | 581 | ||
582 | config HVC_RTAS | ||
583 | bool "IBM RTAS Console support" | ||
584 | depends on PPC_RTAS | ||
585 | select HVC_DRIVER | ||
586 | help | ||
587 | IBM Console device driver which makes use of RTAS | ||
588 | |||
572 | config HVCS | 589 | config HVCS |
573 | tristate "IBM Hypervisor Virtual Console Server support" | 590 | tristate "IBM Hypervisor Virtual Console Server support" |
574 | depends on PPC_PSERIES | 591 | depends on PPC_PSERIES |
diff --git a/drivers/char/Makefile b/drivers/char/Makefile index b2a11245fa95..a73cb4956928 100644 --- a/drivers/char/Makefile +++ b/drivers/char/Makefile | |||
@@ -41,7 +41,9 @@ obj-$(CONFIG_N_HDLC) += n_hdlc.o | |||
41 | obj-$(CONFIG_AMIGA_BUILTIN_SERIAL) += amiserial.o | 41 | obj-$(CONFIG_AMIGA_BUILTIN_SERIAL) += amiserial.o |
42 | obj-$(CONFIG_SX) += sx.o generic_serial.o | 42 | obj-$(CONFIG_SX) += sx.o generic_serial.o |
43 | obj-$(CONFIG_RIO) += rio/ generic_serial.o | 43 | obj-$(CONFIG_RIO) += rio/ generic_serial.o |
44 | obj-$(CONFIG_HVC_CONSOLE) += hvc_console.o hvc_vio.o hvsi.o | 44 | obj-$(CONFIG_HVC_DRIVER) += hvc_console.o |
45 | obj-$(CONFIG_HVC_CONSOLE) += hvc_vio.o hvsi.o | ||
46 | obj-$(CONFIG_HVC_RTAS) += hvc_rtas.o | ||
45 | obj-$(CONFIG_RAW_DRIVER) += raw.o | 47 | obj-$(CONFIG_RAW_DRIVER) += raw.o |
46 | obj-$(CONFIG_SGI_SNSC) += snsc.o snsc_event.o | 48 | obj-$(CONFIG_SGI_SNSC) += snsc.o snsc_event.o |
47 | obj-$(CONFIG_MMTIMER) += mmtimer.o | 49 | obj-$(CONFIG_MMTIMER) += mmtimer.o |
diff --git a/drivers/char/generic_nvram.c b/drivers/char/generic_nvram.c index 1b5e01e6e129..43ff59816511 100644 --- a/drivers/char/generic_nvram.c +++ b/drivers/char/generic_nvram.c | |||
@@ -22,6 +22,9 @@ | |||
22 | #include <linux/smp_lock.h> | 22 | #include <linux/smp_lock.h> |
23 | #include <asm/uaccess.h> | 23 | #include <asm/uaccess.h> |
24 | #include <asm/nvram.h> | 24 | #include <asm/nvram.h> |
25 | #ifdef CONFIG_PPC_PMAC | ||
26 | #include <asm/machdep.h> | ||
27 | #endif | ||
25 | 28 | ||
26 | #define NVRAM_SIZE 8192 | 29 | #define NVRAM_SIZE 8192 |
27 | 30 | ||
@@ -92,7 +95,7 @@ static int nvram_ioctl(struct inode *inode, struct file *file, | |||
92 | case IOC_NVRAM_GET_OFFSET: { | 95 | case IOC_NVRAM_GET_OFFSET: { |
93 | int part, offset; | 96 | int part, offset; |
94 | 97 | ||
95 | if (_machine != _MACH_Pmac) | 98 | if (!machine_is(powermac)) |
96 | return -EINVAL; | 99 | return -EINVAL; |
97 | if (copy_from_user(&part, (void __user*)arg, sizeof(part)) != 0) | 100 | if (copy_from_user(&part, (void __user*)arg, sizeof(part)) != 0) |
98 | return -EFAULT; | 101 | return -EFAULT; |
diff --git a/drivers/char/hvc_console.c b/drivers/char/hvc_console.c index f65b2e14a485..2b6a56b2bf35 100644 --- a/drivers/char/hvc_console.c +++ b/drivers/char/hvc_console.c | |||
@@ -39,8 +39,10 @@ | |||
39 | #include <linux/sched.h> | 39 | #include <linux/sched.h> |
40 | #include <linux/spinlock.h> | 40 | #include <linux/spinlock.h> |
41 | #include <linux/delay.h> | 41 | #include <linux/delay.h> |
42 | |||
42 | #include <asm/uaccess.h> | 43 | #include <asm/uaccess.h> |
43 | #include <asm/hvconsole.h> | 44 | |
45 | #include "hvc_console.h" | ||
44 | 46 | ||
45 | #define HVC_MAJOR 229 | 47 | #define HVC_MAJOR 229 |
46 | #define HVC_MINOR 0 | 48 | #define HVC_MINOR 0 |
@@ -54,17 +56,14 @@ | |||
54 | #define HVC_CLOSE_WAIT (HZ/100) /* 1/10 of a second */ | 56 | #define HVC_CLOSE_WAIT (HZ/100) /* 1/10 of a second */ |
55 | 57 | ||
56 | /* | 58 | /* |
57 | * The Linux TTY code does not support dynamic addition of tty derived devices | 59 | * These sizes are most efficient for vio, because they are the |
58 | * so we need to know how many tty devices we might need when space is allocated | 60 | * native transfer size. We could make them selectable in the |
59 | * for the tty device. Since this driver supports hotplug of vty adapters we | 61 | * future to better deal with backends that want other buffer sizes. |
60 | * need to make sure we have enough allocated. | ||
61 | */ | 62 | */ |
62 | #define HVC_ALLOC_TTY_ADAPTERS 8 | ||
63 | |||
64 | #define N_OUTBUF 16 | 63 | #define N_OUTBUF 16 |
65 | #define N_INBUF 16 | 64 | #define N_INBUF 16 |
66 | 65 | ||
67 | #define __ALIGNED__ __attribute__((__aligned__(8))) | 66 | #define __ALIGNED__ __attribute__((__aligned__(sizeof(long)))) |
68 | 67 | ||
69 | static struct tty_driver *hvc_driver; | 68 | static struct tty_driver *hvc_driver; |
70 | static struct task_struct *hvc_task; | 69 | static struct task_struct *hvc_task; |
@@ -154,7 +153,7 @@ static uint32_t vtermnos[MAX_NR_HVC_CONSOLES] = | |||
154 | 153 | ||
155 | void hvc_console_print(struct console *co, const char *b, unsigned count) | 154 | void hvc_console_print(struct console *co, const char *b, unsigned count) |
156 | { | 155 | { |
157 | char c[16] __ALIGNED__; | 156 | char c[N_OUTBUF] __ALIGNED__; |
158 | unsigned i = 0, n = 0; | 157 | unsigned i = 0, n = 0; |
159 | int r, donecr = 0, index = co->index; | 158 | int r, donecr = 0, index = co->index; |
160 | 159 | ||
@@ -473,8 +472,10 @@ static void hvc_push(struct hvc_struct *hp) | |||
473 | 472 | ||
474 | n = hp->ops->put_chars(hp->vtermno, hp->outbuf, hp->n_outbuf); | 473 | n = hp->ops->put_chars(hp->vtermno, hp->outbuf, hp->n_outbuf); |
475 | if (n <= 0) { | 474 | if (n <= 0) { |
476 | if (n == 0) | 475 | if (n == 0) { |
476 | hp->do_wakeup = 1; | ||
477 | return; | 477 | return; |
478 | } | ||
478 | /* throw away output on error; this happens when | 479 | /* throw away output on error; this happens when |
479 | there is no session connected to the vterm. */ | 480 | there is no session connected to the vterm. */ |
480 | hp->n_outbuf = 0; | 481 | hp->n_outbuf = 0; |
@@ -486,12 +487,19 @@ static void hvc_push(struct hvc_struct *hp) | |||
486 | hp->do_wakeup = 1; | 487 | hp->do_wakeup = 1; |
487 | } | 488 | } |
488 | 489 | ||
489 | static inline int __hvc_write_kernel(struct hvc_struct *hp, | 490 | static int hvc_write(struct tty_struct *tty, const unsigned char *buf, int count) |
490 | const unsigned char *buf, int count) | ||
491 | { | 491 | { |
492 | struct hvc_struct *hp = tty->driver_data; | ||
492 | unsigned long flags; | 493 | unsigned long flags; |
493 | int rsize, written = 0; | 494 | int rsize, written = 0; |
494 | 495 | ||
496 | /* This write was probably executed during a tty close. */ | ||
497 | if (!hp) | ||
498 | return -EPIPE; | ||
499 | |||
500 | if (hp->count <= 0) | ||
501 | return -EIO; | ||
502 | |||
495 | spin_lock_irqsave(&hp->lock, flags); | 503 | spin_lock_irqsave(&hp->lock, flags); |
496 | 504 | ||
497 | /* Push pending writes */ | 505 | /* Push pending writes */ |
@@ -510,26 +518,8 @@ static inline int __hvc_write_kernel(struct hvc_struct *hp, | |||
510 | } | 518 | } |
511 | spin_unlock_irqrestore(&hp->lock, flags); | 519 | spin_unlock_irqrestore(&hp->lock, flags); |
512 | 520 | ||
513 | return written; | ||
514 | } | ||
515 | static int hvc_write(struct tty_struct *tty, const unsigned char *buf, int count) | ||
516 | { | ||
517 | struct hvc_struct *hp = tty->driver_data; | ||
518 | int written; | ||
519 | |||
520 | /* This write was probably executed during a tty close. */ | ||
521 | if (!hp) | ||
522 | return -EPIPE; | ||
523 | |||
524 | if (hp->count <= 0) | ||
525 | return -EIO; | ||
526 | |||
527 | written = __hvc_write_kernel(hp, buf, count); | ||
528 | |||
529 | /* | 521 | /* |
530 | * Racy, but harmless, kick thread if there is still pending data. | 522 | * Racy, but harmless, kick thread if there is still pending data. |
531 | * There really is nothing wrong with kicking the thread, even if there | ||
532 | * is no buffered data. | ||
533 | */ | 523 | */ |
534 | if (hp->n_outbuf) | 524 | if (hp->n_outbuf) |
535 | hvc_kick(); | 525 | hvc_kick(); |
@@ -614,6 +604,13 @@ static int hvc_poll(struct hvc_struct *hp) | |||
614 | spin_unlock_irqrestore(&hp->lock, flags); | 604 | spin_unlock_irqrestore(&hp->lock, flags); |
615 | tty_hangup(tty); | 605 | tty_hangup(tty); |
616 | spin_lock_irqsave(&hp->lock, flags); | 606 | spin_lock_irqsave(&hp->lock, flags); |
607 | } else if ( n == -EAGAIN ) { | ||
608 | /* | ||
609 | * Some back-ends can only ensure a certain min | ||
610 | * num of bytes read, which may be > 'count'. | ||
611 | * Let the tty clear the flip buff to make room. | ||
612 | */ | ||
613 | poll_mask |= HVC_POLL_READ; | ||
617 | } | 614 | } |
618 | break; | 615 | break; |
619 | } | 616 | } |
@@ -635,16 +632,7 @@ static int hvc_poll(struct hvc_struct *hp) | |||
635 | tty_insert_flip_char(tty, buf[i], 0); | 632 | tty_insert_flip_char(tty, buf[i], 0); |
636 | } | 633 | } |
637 | 634 | ||
638 | /* | ||
639 | * Account for the total amount read in one loop, and if above | ||
640 | * 64 bytes, we do a quick schedule loop to let the tty grok | ||
641 | * the data and eventually throttle us. | ||
642 | */ | ||
643 | read_total += n; | 635 | read_total += n; |
644 | if (read_total >= 64) { | ||
645 | poll_mask |= HVC_POLL_QUICK; | ||
646 | break; | ||
647 | } | ||
648 | } | 636 | } |
649 | throttled: | 637 | throttled: |
650 | /* Wakeup write queue if necessary */ | 638 | /* Wakeup write queue if necessary */ |
@@ -767,7 +755,8 @@ struct hvc_struct __devinit *hvc_alloc(uint32_t vtermno, int irq, | |||
767 | * see if this vterm id matches one registered for console. | 755 | * see if this vterm id matches one registered for console. |
768 | */ | 756 | */ |
769 | for (i=0; i < MAX_NR_HVC_CONSOLES; i++) | 757 | for (i=0; i < MAX_NR_HVC_CONSOLES; i++) |
770 | if (vtermnos[i] == hp->vtermno) | 758 | if (vtermnos[i] == hp->vtermno && |
759 | cons_ops[i] == hp->ops) | ||
771 | break; | 760 | break; |
772 | 761 | ||
773 | /* no matching slot, just use a counter */ | 762 | /* no matching slot, just use a counter */ |
@@ -823,34 +812,38 @@ EXPORT_SYMBOL(hvc_remove); | |||
823 | * interfaces start to become available. */ | 812 | * interfaces start to become available. */ |
824 | int __init hvc_init(void) | 813 | int __init hvc_init(void) |
825 | { | 814 | { |
815 | struct tty_driver *drv; | ||
816 | |||
826 | /* We need more than hvc_count adapters due to hotplug additions. */ | 817 | /* We need more than hvc_count adapters due to hotplug additions. */ |
827 | hvc_driver = alloc_tty_driver(HVC_ALLOC_TTY_ADAPTERS); | 818 | drv = alloc_tty_driver(HVC_ALLOC_TTY_ADAPTERS); |
828 | if (!hvc_driver) | 819 | if (!drv) |
829 | return -ENOMEM; | 820 | return -ENOMEM; |
830 | 821 | ||
831 | hvc_driver->owner = THIS_MODULE; | 822 | drv->owner = THIS_MODULE; |
832 | hvc_driver->devfs_name = "hvc/"; | 823 | drv->devfs_name = "hvc/"; |
833 | hvc_driver->driver_name = "hvc"; | 824 | drv->driver_name = "hvc"; |
834 | hvc_driver->name = "hvc"; | 825 | drv->name = "hvc"; |
835 | hvc_driver->major = HVC_MAJOR; | 826 | drv->major = HVC_MAJOR; |
836 | hvc_driver->minor_start = HVC_MINOR; | 827 | drv->minor_start = HVC_MINOR; |
837 | hvc_driver->type = TTY_DRIVER_TYPE_SYSTEM; | 828 | drv->type = TTY_DRIVER_TYPE_SYSTEM; |
838 | hvc_driver->init_termios = tty_std_termios; | 829 | drv->init_termios = tty_std_termios; |
839 | hvc_driver->flags = TTY_DRIVER_REAL_RAW; | 830 | drv->flags = TTY_DRIVER_REAL_RAW; |
840 | tty_set_operations(hvc_driver, &hvc_ops); | 831 | tty_set_operations(drv, &hvc_ops); |
841 | 832 | ||
842 | /* Always start the kthread because there can be hotplug vty adapters | 833 | /* Always start the kthread because there can be hotplug vty adapters |
843 | * added later. */ | 834 | * added later. */ |
844 | hvc_task = kthread_run(khvcd, NULL, "khvcd"); | 835 | hvc_task = kthread_run(khvcd, NULL, "khvcd"); |
845 | if (IS_ERR(hvc_task)) { | 836 | if (IS_ERR(hvc_task)) { |
846 | panic("Couldn't create kthread for console.\n"); | 837 | panic("Couldn't create kthread for console.\n"); |
847 | put_tty_driver(hvc_driver); | 838 | put_tty_driver(drv); |
848 | return -EIO; | 839 | return -EIO; |
849 | } | 840 | } |
850 | 841 | ||
851 | if (tty_register_driver(hvc_driver)) | 842 | if (tty_register_driver(drv)) |
852 | panic("Couldn't register hvc console driver\n"); | 843 | panic("Couldn't register hvc console driver\n"); |
853 | 844 | ||
845 | mb(); | ||
846 | hvc_driver = drv; | ||
854 | return 0; | 847 | return 0; |
855 | } | 848 | } |
856 | module_init(hvc_init); | 849 | module_init(hvc_init); |
diff --git a/drivers/char/hvc_console.h b/drivers/char/hvc_console.h new file mode 100644 index 000000000000..96b7401319c1 --- /dev/null +++ b/drivers/char/hvc_console.h | |||
@@ -0,0 +1,63 @@ | |||
1 | /* | ||
2 | * hvc_console.h | ||
3 | * Copyright (C) 2005 IBM Corporation | ||
4 | * | ||
5 | * Author(s): | ||
6 | * Ryan S. Arnold <rsa@us.ibm.com> | ||
7 | * | ||
8 | * hvc_console header information: | ||
9 | * moved here from include/asm-powerpc/hvconsole.h | ||
10 | * and drivers/char/hvc_console.c | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or modify | ||
13 | * it under the terms of the GNU General Public License as published by | ||
14 | * the Free Software Foundation; either version 2 of the License, or | ||
15 | * (at your option) any later version. | ||
16 | * | ||
17 | * This program is distributed in the hope that it will be useful, | ||
18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
20 | * GNU General Public License for more details. | ||
21 | * | ||
22 | * You should have received a copy of the GNU General Public License | ||
23 | * along with this program; if not, write to the Free Software | ||
24 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
25 | */ | ||
26 | |||
27 | #ifndef HVC_CONSOLE_H | ||
28 | #define HVC_CONSOLE_H | ||
29 | |||
30 | /* | ||
31 | * This is the max number of console adapters that can/will be found as | ||
32 | * console devices on first stage console init. Any number beyond this range | ||
33 | * can't be used as a console device but is still a valid tty device. | ||
34 | */ | ||
35 | #define MAX_NR_HVC_CONSOLES 16 | ||
36 | |||
37 | /* | ||
38 | * The Linux TTY code does not support dynamic addition of tty derived devices | ||
39 | * so we need to know how many tty devices we might need when space is allocated | ||
40 | * for the tty device. Since this driver supports hotplug of vty adapters we | ||
41 | * need to make sure we have enough allocated. | ||
42 | */ | ||
43 | #define HVC_ALLOC_TTY_ADAPTERS 8 | ||
44 | |||
45 | |||
46 | /* implemented by a low level driver */ | ||
47 | struct hv_ops { | ||
48 | int (*get_chars)(uint32_t vtermno, char *buf, int count); | ||
49 | int (*put_chars)(uint32_t vtermno, const char *buf, int count); | ||
50 | }; | ||
51 | |||
52 | struct hvc_struct; | ||
53 | |||
54 | /* Register a vterm and a slot index for use as a console (console_init) */ | ||
55 | extern int hvc_instantiate(uint32_t vtermno, int index, struct hv_ops *ops); | ||
56 | |||
57 | /* register a vterm for hvc tty operation (module_init or hotplug add) */ | ||
58 | extern struct hvc_struct * __devinit hvc_alloc(uint32_t vtermno, int irq, | ||
59 | struct hv_ops *ops); | ||
60 | /* remove a vterm from hvc tty operation (modele_exit or hotplug remove) */ | ||
61 | extern int __devexit hvc_remove(struct hvc_struct *hp); | ||
62 | |||
63 | #endif // HVC_CONSOLE_H | ||
diff --git a/drivers/char/hvc_rtas.c b/drivers/char/hvc_rtas.c new file mode 100644 index 000000000000..83364ea63cba --- /dev/null +++ b/drivers/char/hvc_rtas.c | |||
@@ -0,0 +1,138 @@ | |||
1 | /* | ||
2 | * IBM RTAS driver interface to hvc_console.c | ||
3 | * | ||
4 | * (C) Copyright IBM Corporation 2001-2005 | ||
5 | * (C) Copyright Red Hat, Inc. 2005 | ||
6 | * | ||
7 | * Author(s): Maximino Augilar <IBM STI Design Center> | ||
8 | * : Ryan S. Arnold <rsa@us.ibm.com> | ||
9 | * : Utz Bacher <utz.bacher@de.ibm.com> | ||
10 | * : David Woodhouse <dwmw2@infradead.org> | ||
11 | * | ||
12 | * inspired by drivers/char/hvc_console.c | ||
13 | * written by Anton Blanchard and Paul Mackerras | ||
14 | * | ||
15 | * This program is free software; you can redistribute it and/or modify | ||
16 | * it under the terms of the GNU General Public License as published by | ||
17 | * the Free Software Foundation; either version 2 of the License, or | ||
18 | * (at your option) any later version. | ||
19 | * | ||
20 | * This program is distributed in the hope that it will be useful, | ||
21 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
22 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
23 | * GNU General Public License for more details. | ||
24 | * | ||
25 | * You should have received a copy of the GNU General Public License | ||
26 | * along with this program; if not, write to the Free Software | ||
27 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
28 | */ | ||
29 | |||
30 | #include <linux/console.h> | ||
31 | #include <linux/delay.h> | ||
32 | #include <linux/err.h> | ||
33 | #include <linux/init.h> | ||
34 | #include <linux/moduleparam.h> | ||
35 | #include <linux/types.h> | ||
36 | |||
37 | #include <asm/irq.h> | ||
38 | #include <asm/rtas.h> | ||
39 | #include "hvc_console.h" | ||
40 | |||
41 | #define hvc_rtas_cookie 0x67781e15 | ||
42 | struct hvc_struct *hvc_rtas_dev; | ||
43 | |||
44 | #define RTASCONS_PUT_ATTEMPTS 16 | ||
45 | |||
46 | static int rtascons_put_char_token = RTAS_UNKNOWN_SERVICE; | ||
47 | static int rtascons_get_char_token = RTAS_UNKNOWN_SERVICE; | ||
48 | static int rtascons_put_delay = 100; | ||
49 | module_param_named(put_delay, rtascons_put_delay, int, 0644); | ||
50 | |||
51 | static inline int hvc_rtas_write_console(uint32_t vtermno, const char *buf, int count) | ||
52 | { | ||
53 | int done; | ||
54 | |||
55 | /* if there is more than one character to be displayed, wait a bit */ | ||
56 | for (done = 0; done < count; done++) { | ||
57 | int result; | ||
58 | result = rtas_call(rtascons_put_char_token, 1, 1, NULL, buf[done]); | ||
59 | if (result) | ||
60 | break; | ||
61 | } | ||
62 | /* the calling routine expects to receive the number of bytes sent */ | ||
63 | return done; | ||
64 | } | ||
65 | |||
66 | static int hvc_rtas_read_console(uint32_t vtermno, char *buf, int count) | ||
67 | { | ||
68 | int i; | ||
69 | |||
70 | for (i = 0; i < count; i++) { | ||
71 | int c, err; | ||
72 | |||
73 | err = rtas_call(rtascons_get_char_token, 0, 2, &c); | ||
74 | if (err) | ||
75 | break; | ||
76 | |||
77 | buf[i] = c; | ||
78 | } | ||
79 | |||
80 | return i; | ||
81 | } | ||
82 | |||
83 | static struct hv_ops hvc_rtas_get_put_ops = { | ||
84 | .get_chars = hvc_rtas_read_console, | ||
85 | .put_chars = hvc_rtas_write_console, | ||
86 | }; | ||
87 | |||
88 | static int hvc_rtas_init(void) | ||
89 | { | ||
90 | struct hvc_struct *hp; | ||
91 | |||
92 | if (rtascons_put_char_token == RTAS_UNKNOWN_SERVICE) | ||
93 | rtascons_put_char_token = rtas_token("put-term-char"); | ||
94 | if (rtascons_put_char_token == RTAS_UNKNOWN_SERVICE) | ||
95 | return -EIO; | ||
96 | |||
97 | if (rtascons_get_char_token == RTAS_UNKNOWN_SERVICE) | ||
98 | rtascons_get_char_token = rtas_token("get-term-char"); | ||
99 | if (rtascons_get_char_token == RTAS_UNKNOWN_SERVICE) | ||
100 | return -EIO; | ||
101 | |||
102 | BUG_ON(hvc_rtas_dev); | ||
103 | |||
104 | /* Allocate an hvc_struct for the console device we instantiated | ||
105 | * earlier. Save off hp so that we can return it on exit */ | ||
106 | hp = hvc_alloc(hvc_rtas_cookie, NO_IRQ, &hvc_rtas_get_put_ops); | ||
107 | if (IS_ERR(hp)) | ||
108 | return PTR_ERR(hp); | ||
109 | hvc_rtas_dev = hp; | ||
110 | return 0; | ||
111 | } | ||
112 | module_init(hvc_rtas_init); | ||
113 | |||
114 | /* This will tear down the tty portion of the driver */ | ||
115 | static void __exit hvc_rtas_exit(void) | ||
116 | { | ||
117 | /* Really the fun isn't over until the worker thread breaks down and the | ||
118 | * tty cleans up */ | ||
119 | if (hvc_rtas_dev) | ||
120 | hvc_remove(hvc_rtas_dev); | ||
121 | } | ||
122 | module_exit(hvc_rtas_exit); | ||
123 | |||
124 | /* This will happen prior to module init. There is no tty at this time? */ | ||
125 | static int hvc_rtas_console_init(void) | ||
126 | { | ||
127 | rtascons_put_char_token = rtas_token("put-term-char"); | ||
128 | if (rtascons_put_char_token == RTAS_UNKNOWN_SERVICE) | ||
129 | return -EIO; | ||
130 | rtascons_get_char_token = rtas_token("get-term-char"); | ||
131 | if (rtascons_get_char_token == RTAS_UNKNOWN_SERVICE) | ||
132 | return -EIO; | ||
133 | |||
134 | hvc_instantiate(hvc_rtas_cookie, 0, &hvc_rtas_get_put_ops ); | ||
135 | add_preferred_console("hvc", 0, NULL); | ||
136 | return 0; | ||
137 | } | ||
138 | console_initcall(hvc_rtas_console_init); | ||
diff --git a/drivers/char/hvc_vio.c b/drivers/char/hvc_vio.c index f5212eb2b41d..9add81ceb440 100644 --- a/drivers/char/hvc_vio.c +++ b/drivers/char/hvc_vio.c | |||
@@ -31,10 +31,13 @@ | |||
31 | 31 | ||
32 | #include <linux/types.h> | 32 | #include <linux/types.h> |
33 | #include <linux/init.h> | 33 | #include <linux/init.h> |
34 | |||
34 | #include <asm/hvconsole.h> | 35 | #include <asm/hvconsole.h> |
35 | #include <asm/vio.h> | 36 | #include <asm/vio.h> |
36 | #include <asm/prom.h> | 37 | #include <asm/prom.h> |
37 | 38 | ||
39 | #include "hvc_console.h" | ||
40 | |||
38 | char hvc_driver_name[] = "hvc_console"; | 41 | char hvc_driver_name[] = "hvc_console"; |
39 | 42 | ||
40 | static struct vio_device_id hvc_driver_table[] __devinitdata = { | 43 | static struct vio_device_id hvc_driver_table[] __devinitdata = { |
@@ -48,6 +51,14 @@ static int filtered_get_chars(uint32_t vtermno, char *buf, int count) | |||
48 | unsigned long got; | 51 | unsigned long got; |
49 | int i; | 52 | int i; |
50 | 53 | ||
54 | /* | ||
55 | * Vio firmware will read up to SIZE_VIO_GET_CHARS at its own discretion | ||
56 | * so we play safe and avoid the situation where got > count which could | ||
57 | * overload the flip buffer. | ||
58 | */ | ||
59 | if (count < SIZE_VIO_GET_CHARS) | ||
60 | return -EAGAIN; | ||
61 | |||
51 | got = hvc_get_chars(vtermno, buf, count); | 62 | got = hvc_get_chars(vtermno, buf, count); |
52 | 63 | ||
53 | /* | 64 | /* |
diff --git a/drivers/char/hvcs.c b/drivers/char/hvcs.c index f7ac31856572..327b00c3c45e 100644 --- a/drivers/char/hvcs.c +++ b/drivers/char/hvcs.c | |||
@@ -439,7 +439,6 @@ static int hvcs_io(struct hvcs_struct *hvcsd) | |||
439 | char buf[HVCS_BUFF_LEN] __ALIGNED__; | 439 | char buf[HVCS_BUFF_LEN] __ALIGNED__; |
440 | unsigned long flags; | 440 | unsigned long flags; |
441 | int got = 0; | 441 | int got = 0; |
442 | int i; | ||
443 | 442 | ||
444 | spin_lock_irqsave(&hvcsd->lock, flags); | 443 | spin_lock_irqsave(&hvcsd->lock, flags); |
445 | 444 | ||
diff --git a/drivers/ide/pci/via82cxxx.c b/drivers/ide/pci/via82cxxx.c index c85b87cb59d1..3e677c4f8c28 100644 --- a/drivers/ide/pci/via82cxxx.c +++ b/drivers/ide/pci/via82cxxx.c | |||
@@ -440,7 +440,7 @@ static void __devinit init_hwif_via82cxxx(ide_hwif_t *hwif) | |||
440 | 440 | ||
441 | 441 | ||
442 | #if defined(CONFIG_PPC_CHRP) && defined(CONFIG_PPC32) | 442 | #if defined(CONFIG_PPC_CHRP) && defined(CONFIG_PPC32) |
443 | if(_machine == _MACH_chrp && _chrp_type == _CHRP_Pegasos) { | 443 | if(machine_is(chrp) && _chrp_type == _CHRP_Pegasos) { |
444 | hwif->irq = hwif->channel ? 15 : 14; | 444 | hwif->irq = hwif->channel ? 15 : 14; |
445 | } | 445 | } |
446 | #endif | 446 | #endif |
diff --git a/drivers/ide/ppc/pmac.c b/drivers/ide/ppc/pmac.c index 5013b1285e22..78e30f803671 100644 --- a/drivers/ide/ppc/pmac.c +++ b/drivers/ide/ppc/pmac.c | |||
@@ -1677,7 +1677,7 @@ MODULE_DEVICE_TABLE(pci, pmac_ide_pci_match); | |||
1677 | void __init | 1677 | void __init |
1678 | pmac_ide_probe(void) | 1678 | pmac_ide_probe(void) |
1679 | { | 1679 | { |
1680 | if (_machine != _MACH_Pmac) | 1680 | if (!machine_is(powermac)) |
1681 | return; | 1681 | return; |
1682 | 1682 | ||
1683 | #ifdef CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST | 1683 | #ifdef CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST |
diff --git a/drivers/ieee1394/ohci1394.c b/drivers/ieee1394/ohci1394.c index a86beeb6af5d..19222878aae9 100644 --- a/drivers/ieee1394/ohci1394.c +++ b/drivers/ieee1394/ohci1394.c | |||
@@ -3529,7 +3529,7 @@ static void ohci1394_pci_remove(struct pci_dev *pdev) | |||
3529 | static int ohci1394_pci_resume (struct pci_dev *pdev) | 3529 | static int ohci1394_pci_resume (struct pci_dev *pdev) |
3530 | { | 3530 | { |
3531 | #ifdef CONFIG_PPC_PMAC | 3531 | #ifdef CONFIG_PPC_PMAC |
3532 | if (_machine == _MACH_Pmac) { | 3532 | if (machine_is(powermac)) { |
3533 | struct device_node *of_node; | 3533 | struct device_node *of_node; |
3534 | 3534 | ||
3535 | /* Re-enable 1394 */ | 3535 | /* Re-enable 1394 */ |
@@ -3548,7 +3548,7 @@ static int ohci1394_pci_resume (struct pci_dev *pdev) | |||
3548 | static int ohci1394_pci_suspend (struct pci_dev *pdev, pm_message_t state) | 3548 | static int ohci1394_pci_suspend (struct pci_dev *pdev, pm_message_t state) |
3549 | { | 3549 | { |
3550 | #ifdef CONFIG_PPC_PMAC | 3550 | #ifdef CONFIG_PPC_PMAC |
3551 | if (_machine == _MACH_Pmac) { | 3551 | if (machine_is(powermac)) { |
3552 | struct device_node *of_node; | 3552 | struct device_node *of_node; |
3553 | 3553 | ||
3554 | /* Disable 1394 */ | 3554 | /* Disable 1394 */ |
diff --git a/drivers/macintosh/adb.c b/drivers/macintosh/adb.c index 34fcabac5fdb..259fd8973ce9 100644 --- a/drivers/macintosh/adb.c +++ b/drivers/macintosh/adb.c | |||
@@ -42,6 +42,7 @@ | |||
42 | #include <asm/semaphore.h> | 42 | #include <asm/semaphore.h> |
43 | #ifdef CONFIG_PPC | 43 | #ifdef CONFIG_PPC |
44 | #include <asm/prom.h> | 44 | #include <asm/prom.h> |
45 | #include <asm/machdep.h> | ||
45 | #endif | 46 | #endif |
46 | 47 | ||
47 | 48 | ||
@@ -294,7 +295,7 @@ int __init adb_init(void) | |||
294 | int i; | 295 | int i; |
295 | 296 | ||
296 | #ifdef CONFIG_PPC32 | 297 | #ifdef CONFIG_PPC32 |
297 | if ( (_machine != _MACH_chrp) && (_machine != _MACH_Pmac) ) | 298 | if (!machine_is(chrp) && !machine_is(powermac)) |
298 | return 0; | 299 | return 0; |
299 | #endif | 300 | #endif |
300 | #ifdef CONFIG_MAC | 301 | #ifdef CONFIG_MAC |
diff --git a/drivers/macintosh/adbhid.c b/drivers/macintosh/adbhid.c index f5779a73184d..394334ec5765 100644 --- a/drivers/macintosh/adbhid.c +++ b/drivers/macintosh/adbhid.c | |||
@@ -1206,8 +1206,8 @@ init_ms_a3(int id) | |||
1206 | static int __init adbhid_init(void) | 1206 | static int __init adbhid_init(void) |
1207 | { | 1207 | { |
1208 | #ifndef CONFIG_MAC | 1208 | #ifndef CONFIG_MAC |
1209 | if ( (_machine != _MACH_chrp) && (_machine != _MACH_Pmac) ) | 1209 | if (!machine_is(chrp) && !machine_is(powermac)) |
1210 | return 0; | 1210 | return 0; |
1211 | #endif | 1211 | #endif |
1212 | 1212 | ||
1213 | led_request.complete = 1; | 1213 | led_request.complete = 1; |
diff --git a/drivers/macintosh/mediabay.c b/drivers/macintosh/mediabay.c index 8dbf2852bae0..53c1c7909413 100644 --- a/drivers/macintosh/mediabay.c +++ b/drivers/macintosh/mediabay.c | |||
@@ -839,8 +839,8 @@ static int __init media_bay_init(void) | |||
839 | media_bays[i].cd_index = -1; | 839 | media_bays[i].cd_index = -1; |
840 | #endif | 840 | #endif |
841 | } | 841 | } |
842 | if (_machine != _MACH_Pmac) | 842 | if (!machine_is(powermac)) |
843 | return -ENODEV; | 843 | return 0; |
844 | 844 | ||
845 | macio_register_driver(&media_bay_driver); | 845 | macio_register_driver(&media_bay_driver); |
846 | 846 | ||
diff --git a/drivers/media/video/planb.c b/drivers/media/video/planb.c index 522e9ddeb089..d9e3cada52f4 100644 --- a/drivers/media/video/planb.c +++ b/drivers/media/video/planb.c | |||
@@ -2156,7 +2156,7 @@ static int find_planb(void) | |||
2156 | struct pci_dev *pdev; | 2156 | struct pci_dev *pdev; |
2157 | int rc; | 2157 | int rc; |
2158 | 2158 | ||
2159 | if (_machine != _MACH_Pmac) | 2159 | if (!machine_is(powermac)) |
2160 | return 0; | 2160 | return 0; |
2161 | 2161 | ||
2162 | planb_devices = find_devices("planb"); | 2162 | planb_devices = find_devices("planb"); |
diff --git a/drivers/net/tulip/de4x5.c b/drivers/net/tulip/de4x5.c index d1a86a080a65..f56094102042 100644 --- a/drivers/net/tulip/de4x5.c +++ b/drivers/net/tulip/de4x5.c | |||
@@ -4160,7 +4160,7 @@ get_hw_addr(struct net_device *dev) | |||
4160 | ** If the address starts with 00 a0, we have to bit-reverse | 4160 | ** If the address starts with 00 a0, we have to bit-reverse |
4161 | ** each byte of the address. | 4161 | ** each byte of the address. |
4162 | */ | 4162 | */ |
4163 | if ( (_machine & _MACH_Pmac) && | 4163 | if ( machine_is(powermac) && |
4164 | (dev->dev_addr[0] == 0) && | 4164 | (dev->dev_addr[0] == 0) && |
4165 | (dev->dev_addr[1] == 0xa0) ) | 4165 | (dev->dev_addr[1] == 0xa0) ) |
4166 | { | 4166 | { |
diff --git a/drivers/scsi/mesh.c b/drivers/scsi/mesh.c index d6d2125f9044..f852421002ef 100644 --- a/drivers/scsi/mesh.c +++ b/drivers/scsi/mesh.c | |||
@@ -1748,7 +1748,7 @@ static int mesh_host_reset(struct scsi_cmnd *cmd) | |||
1748 | 1748 | ||
1749 | static void set_mesh_power(struct mesh_state *ms, int state) | 1749 | static void set_mesh_power(struct mesh_state *ms, int state) |
1750 | { | 1750 | { |
1751 | if (_machine != _MACH_Pmac) | 1751 | if (!machine_is(powermac)) |
1752 | return; | 1752 | return; |
1753 | if (state) { | 1753 | if (state) { |
1754 | pmac_call_feature(PMAC_FTR_MESH_ENABLE, macio_get_of_node(ms->mdev), 0, 1); | 1754 | pmac_call_feature(PMAC_FTR_MESH_ENABLE, macio_get_of_node(ms->mdev), 0, 1); |
diff --git a/drivers/usb/core/hcd-pci.c b/drivers/usb/core/hcd-pci.c index e0afb5ad29e5..0d2193b69235 100644 --- a/drivers/usb/core/hcd-pci.c +++ b/drivers/usb/core/hcd-pci.c | |||
@@ -296,7 +296,7 @@ done: | |||
296 | 296 | ||
297 | #ifdef CONFIG_PPC_PMAC | 297 | #ifdef CONFIG_PPC_PMAC |
298 | /* Disable ASIC clocks for USB */ | 298 | /* Disable ASIC clocks for USB */ |
299 | if (_machine == _MACH_Pmac) { | 299 | if (machine_is(powermac)) { |
300 | struct device_node *of_node; | 300 | struct device_node *of_node; |
301 | 301 | ||
302 | of_node = pci_device_to_OF_node (dev); | 302 | of_node = pci_device_to_OF_node (dev); |
@@ -331,7 +331,7 @@ int usb_hcd_pci_resume (struct pci_dev *dev) | |||
331 | 331 | ||
332 | #ifdef CONFIG_PPC_PMAC | 332 | #ifdef CONFIG_PPC_PMAC |
333 | /* Reenable ASIC clocks for USB */ | 333 | /* Reenable ASIC clocks for USB */ |
334 | if (_machine == _MACH_Pmac) { | 334 | if (machine_is(powermac)) { |
335 | struct device_node *of_node; | 335 | struct device_node *of_node; |
336 | 336 | ||
337 | of_node = pci_device_to_OF_node (dev); | 337 | of_node = pci_device_to_OF_node (dev); |
diff --git a/drivers/video/aty/aty128fb.c b/drivers/video/aty/aty128fb.c index 821c6da8e42c..f7bbff4ddc6a 100644 --- a/drivers/video/aty/aty128fb.c +++ b/drivers/video/aty/aty128fb.c | |||
@@ -67,6 +67,7 @@ | |||
67 | #include <asm/io.h> | 67 | #include <asm/io.h> |
68 | 68 | ||
69 | #ifdef CONFIG_PPC_PMAC | 69 | #ifdef CONFIG_PPC_PMAC |
70 | #include <asm/machdep.h> | ||
70 | #include <asm/pmac_feature.h> | 71 | #include <asm/pmac_feature.h> |
71 | #include <asm/prom.h> | 72 | #include <asm/prom.h> |
72 | #include <asm/pci-bridge.h> | 73 | #include <asm/pci-bridge.h> |
@@ -1748,7 +1749,7 @@ static int __init aty128_init(struct pci_dev *pdev, const struct pci_device_id * | |||
1748 | 1749 | ||
1749 | var = default_var; | 1750 | var = default_var; |
1750 | #ifdef CONFIG_PPC_PMAC | 1751 | #ifdef CONFIG_PPC_PMAC |
1751 | if (_machine == _MACH_Pmac) { | 1752 | if (machine_is(powermac)) { |
1752 | /* Indicate sleep capability */ | 1753 | /* Indicate sleep capability */ |
1753 | if (par->chip_gen == rage_M3) { | 1754 | if (par->chip_gen == rage_M3) { |
1754 | pmac_call_feature(PMAC_FTR_DEVICE_CAN_WAKE, NULL, 0, 1); | 1755 | pmac_call_feature(PMAC_FTR_DEVICE_CAN_WAKE, NULL, 0, 1); |
@@ -2011,7 +2012,7 @@ static int aty128fb_blank(int blank, struct fb_info *fb) | |||
2011 | return 0; | 2012 | return 0; |
2012 | 2013 | ||
2013 | #ifdef CONFIG_PMAC_BACKLIGHT | 2014 | #ifdef CONFIG_PMAC_BACKLIGHT |
2014 | if ((_machine == _MACH_Pmac) && blank) | 2015 | if (machine_is(powermac) && blank) |
2015 | set_backlight_enable(0); | 2016 | set_backlight_enable(0); |
2016 | #endif /* CONFIG_PMAC_BACKLIGHT */ | 2017 | #endif /* CONFIG_PMAC_BACKLIGHT */ |
2017 | 2018 | ||
@@ -2029,7 +2030,7 @@ static int aty128fb_blank(int blank, struct fb_info *fb) | |||
2029 | aty128_set_lcd_enable(par, par->lcd_on && !blank); | 2030 | aty128_set_lcd_enable(par, par->lcd_on && !blank); |
2030 | } | 2031 | } |
2031 | #ifdef CONFIG_PMAC_BACKLIGHT | 2032 | #ifdef CONFIG_PMAC_BACKLIGHT |
2032 | if ((_machine == _MACH_Pmac) && !blank) | 2033 | if (machine_is(powermac) && !blank) |
2033 | set_backlight_enable(1); | 2034 | set_backlight_enable(1); |
2034 | #endif /* CONFIG_PMAC_BACKLIGHT */ | 2035 | #endif /* CONFIG_PMAC_BACKLIGHT */ |
2035 | return 0; | 2036 | return 0; |
diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c index e799fcca365a..b39e72d5413b 100644 --- a/drivers/video/aty/atyfb_base.c +++ b/drivers/video/aty/atyfb_base.c | |||
@@ -75,6 +75,7 @@ | |||
75 | #include "ati_ids.h" | 75 | #include "ati_ids.h" |
76 | 76 | ||
77 | #ifdef __powerpc__ | 77 | #ifdef __powerpc__ |
78 | #include <asm/machdep.h> | ||
78 | #include <asm/prom.h> | 79 | #include <asm/prom.h> |
79 | #include "../macmodes.h" | 80 | #include "../macmodes.h" |
80 | #endif | 81 | #endif |
@@ -2518,7 +2519,7 @@ static int __init aty_init(struct fb_info *info, const char *name) | |||
2518 | 2519 | ||
2519 | memset(&var, 0, sizeof(var)); | 2520 | memset(&var, 0, sizeof(var)); |
2520 | #ifdef CONFIG_PPC | 2521 | #ifdef CONFIG_PPC |
2521 | if (_machine == _MACH_Pmac) { | 2522 | if (machine_is(powermac)) { |
2522 | /* | 2523 | /* |
2523 | * FIXME: The NVRAM stuff should be put in a Mac-specific file, as it | 2524 | * FIXME: The NVRAM stuff should be put in a Mac-specific file, as it |
2524 | * applies to all Mac video cards | 2525 | * applies to all Mac video cards |
@@ -2673,7 +2674,7 @@ static int atyfb_blank(int blank, struct fb_info *info) | |||
2673 | return 0; | 2674 | return 0; |
2674 | 2675 | ||
2675 | #ifdef CONFIG_PMAC_BACKLIGHT | 2676 | #ifdef CONFIG_PMAC_BACKLIGHT |
2676 | if ((_machine == _MACH_Pmac) && blank > FB_BLANK_NORMAL) | 2677 | if (machine_is(powermac) && blank > FB_BLANK_NORMAL) |
2677 | set_backlight_enable(0); | 2678 | set_backlight_enable(0); |
2678 | #elif defined(CONFIG_FB_ATY_GENERIC_LCD) | 2679 | #elif defined(CONFIG_FB_ATY_GENERIC_LCD) |
2679 | if (par->lcd_table && blank > FB_BLANK_NORMAL && | 2680 | if (par->lcd_table && blank > FB_BLANK_NORMAL && |
@@ -2705,7 +2706,7 @@ static int atyfb_blank(int blank, struct fb_info *info) | |||
2705 | aty_st_le32(CRTC_GEN_CNTL, gen_cntl, par); | 2706 | aty_st_le32(CRTC_GEN_CNTL, gen_cntl, par); |
2706 | 2707 | ||
2707 | #ifdef CONFIG_PMAC_BACKLIGHT | 2708 | #ifdef CONFIG_PMAC_BACKLIGHT |
2708 | if ((_machine == _MACH_Pmac) && blank <= FB_BLANK_NORMAL) | 2709 | if (machine_is(powermac) && blank <= FB_BLANK_NORMAL) |
2709 | set_backlight_enable(1); | 2710 | set_backlight_enable(1); |
2710 | #elif defined(CONFIG_FB_ATY_GENERIC_LCD) | 2711 | #elif defined(CONFIG_FB_ATY_GENERIC_LCD) |
2711 | if (par->lcd_table && blank <= FB_BLANK_NORMAL && | 2712 | if (par->lcd_table && blank <= FB_BLANK_NORMAL && |
diff --git a/drivers/video/aty/radeon_pm.c b/drivers/video/aty/radeon_pm.c index 5886a2f1323e..c7091761cef4 100644 --- a/drivers/video/aty/radeon_pm.c +++ b/drivers/video/aty/radeon_pm.c | |||
@@ -20,7 +20,7 @@ | |||
20 | #include <linux/agp_backend.h> | 20 | #include <linux/agp_backend.h> |
21 | 21 | ||
22 | #ifdef CONFIG_PPC_PMAC | 22 | #ifdef CONFIG_PPC_PMAC |
23 | #include <asm/processor.h> | 23 | #include <asm/machdep.h> |
24 | #include <asm/prom.h> | 24 | #include <asm/prom.h> |
25 | #include <asm/pmac_feature.h> | 25 | #include <asm/pmac_feature.h> |
26 | #endif | 26 | #endif |
@@ -2745,7 +2745,7 @@ void radeonfb_pm_init(struct radeonfb_info *rinfo, int dynclk) | |||
2745 | rinfo->pm_mode |= radeon_pm_off; | 2745 | rinfo->pm_mode |= radeon_pm_off; |
2746 | } | 2746 | } |
2747 | #if defined(CONFIG_PPC_PMAC) | 2747 | #if defined(CONFIG_PPC_PMAC) |
2748 | if (_machine == _MACH_Pmac && rinfo->of_node) { | 2748 | if (machine_is(powermac) && rinfo->of_node) { |
2749 | if (rinfo->is_mobility && rinfo->pm_reg && | 2749 | if (rinfo->is_mobility && rinfo->pm_reg && |
2750 | rinfo->family <= CHIP_FAMILY_RV250) | 2750 | rinfo->family <= CHIP_FAMILY_RV250) |
2751 | rinfo->pm_mode |= radeon_pm_d2; | 2751 | rinfo->pm_mode |= radeon_pm_d2; |
diff --git a/drivers/video/cirrusfb.c b/drivers/video/cirrusfb.c index 66d6f2f0a219..1103010af54a 100644 --- a/drivers/video/cirrusfb.c +++ b/drivers/video/cirrusfb.c | |||
@@ -60,8 +60,8 @@ | |||
60 | #include <asm/amigahw.h> | 60 | #include <asm/amigahw.h> |
61 | #endif | 61 | #endif |
62 | #ifdef CONFIG_PPC_PREP | 62 | #ifdef CONFIG_PPC_PREP |
63 | #include <asm/processor.h> | 63 | #include <asm/machdep.h> |
64 | #define isPReP (_machine == _MACH_prep) | 64 | #define isPReP (machine_is(prep)) |
65 | #else | 65 | #else |
66 | #define isPReP 0 | 66 | #define isPReP 0 |
67 | #endif | 67 | #endif |
diff --git a/drivers/video/matrox/matroxfb_base.c b/drivers/video/matrox/matroxfb_base.c index 951c9974a1d3..23c1827b2d0b 100644 --- a/drivers/video/matrox/matroxfb_base.c +++ b/drivers/video/matrox/matroxfb_base.c | |||
@@ -115,6 +115,7 @@ | |||
115 | #include <asm/uaccess.h> | 115 | #include <asm/uaccess.h> |
116 | 116 | ||
117 | #ifdef CONFIG_PPC_PMAC | 117 | #ifdef CONFIG_PPC_PMAC |
118 | #include <asm/machdep.h> | ||
118 | unsigned char nvram_read_byte(int); | 119 | unsigned char nvram_read_byte(int); |
119 | static int default_vmode = VMODE_NVRAM; | 120 | static int default_vmode = VMODE_NVRAM; |
120 | static int default_cmode = CMODE_NVRAM; | 121 | static int default_cmode = CMODE_NVRAM; |
@@ -1833,7 +1834,7 @@ static int initMatrox2(WPMINFO struct board* b){ | |||
1833 | /* FIXME: Where to move this?! */ | 1834 | /* FIXME: Where to move this?! */ |
1834 | #if defined(CONFIG_PPC_PMAC) | 1835 | #if defined(CONFIG_PPC_PMAC) |
1835 | #ifndef MODULE | 1836 | #ifndef MODULE |
1836 | if (_machine == _MACH_Pmac) { | 1837 | if (machine_is(powermac)) { |
1837 | struct fb_var_screeninfo var; | 1838 | struct fb_var_screeninfo var; |
1838 | if (default_vmode <= 0 || default_vmode > VMODE_MAX) | 1839 | if (default_vmode <= 0 || default_vmode > VMODE_MAX) |
1839 | default_vmode = VMODE_640_480_60; | 1840 | default_vmode = VMODE_640_480_60; |
diff --git a/drivers/video/nvidia/nvidia.c b/drivers/video/nvidia/nvidia.c index 6d3e4890cb43..093ab9977c7c 100644 --- a/drivers/video/nvidia/nvidia.c +++ b/drivers/video/nvidia/nvidia.c | |||
@@ -30,6 +30,7 @@ | |||
30 | #include <asm/pci-bridge.h> | 30 | #include <asm/pci-bridge.h> |
31 | #endif | 31 | #endif |
32 | #ifdef CONFIG_PMAC_BACKLIGHT | 32 | #ifdef CONFIG_PMAC_BACKLIGHT |
33 | #include <asm/machdep.h> | ||
33 | #include <asm/backlight.h> | 34 | #include <asm/backlight.h> |
34 | #endif | 35 | #endif |
35 | 36 | ||
@@ -1355,7 +1356,7 @@ static int nvidiafb_blank(int blank, struct fb_info *info) | |||
1355 | NVWriteCrtc(par, 0x1a, vesa); | 1356 | NVWriteCrtc(par, 0x1a, vesa); |
1356 | 1357 | ||
1357 | #ifdef CONFIG_PMAC_BACKLIGHT | 1358 | #ifdef CONFIG_PMAC_BACKLIGHT |
1358 | if (par->FlatPanel && _machine == _MACH_Pmac) { | 1359 | if (par->FlatPanel && machine_is(powermac)) { |
1359 | set_backlight_enable(!blank); | 1360 | set_backlight_enable(!blank); |
1360 | } | 1361 | } |
1361 | #endif | 1362 | #endif |
@@ -1741,7 +1742,7 @@ static int __devinit nvidiafb_probe(struct pci_dev *pd, | |||
1741 | info->fix.id, | 1742 | info->fix.id, |
1742 | par->FbMapSize / (1024 * 1024), info->fix.smem_start); | 1743 | par->FbMapSize / (1024 * 1024), info->fix.smem_start); |
1743 | #ifdef CONFIG_PMAC_BACKLIGHT | 1744 | #ifdef CONFIG_PMAC_BACKLIGHT |
1744 | if (par->FlatPanel && _machine == _MACH_Pmac) | 1745 | if (par->FlatPanel && machine_is(powermac)) |
1745 | register_backlight_controller(&nvidia_backlight_controller, | 1746 | register_backlight_controller(&nvidia_backlight_controller, |
1746 | par, "mnca"); | 1747 | par, "mnca"); |
1747 | #endif | 1748 | #endif |
diff --git a/drivers/video/radeonfb.c b/drivers/video/radeonfb.c index 24982adb3aa2..afb6c2ead599 100644 --- a/drivers/video/radeonfb.c +++ b/drivers/video/radeonfb.c | |||
@@ -1596,7 +1596,7 @@ static int radeonfb_blank (int blank, struct fb_info *info) | |||
1596 | return 0; | 1596 | return 0; |
1597 | 1597 | ||
1598 | #ifdef CONFIG_PMAC_BACKLIGHT | 1598 | #ifdef CONFIG_PMAC_BACKLIGHT |
1599 | if (rinfo->dviDisp_type == MT_LCD && _machine == _MACH_Pmac) { | 1599 | if (rinfo->dviDisp_type == MT_LCD && machine_is(powermac)) { |
1600 | set_backlight_enable(!blank); | 1600 | set_backlight_enable(!blank); |
1601 | return 0; | 1601 | return 0; |
1602 | } | 1602 | } |
diff --git a/drivers/video/riva/fbdev.c b/drivers/video/riva/fbdev.c index f841f013b96f..3e9308f0f165 100644 --- a/drivers/video/riva/fbdev.c +++ b/drivers/video/riva/fbdev.c | |||
@@ -49,6 +49,7 @@ | |||
49 | #include <asm/pci-bridge.h> | 49 | #include <asm/pci-bridge.h> |
50 | #endif | 50 | #endif |
51 | #ifdef CONFIG_PMAC_BACKLIGHT | 51 | #ifdef CONFIG_PMAC_BACKLIGHT |
52 | #include <asm/machdep.h> | ||
52 | #include <asm/backlight.h> | 53 | #include <asm/backlight.h> |
53 | #endif | 54 | #endif |
54 | 55 | ||
@@ -1247,7 +1248,7 @@ static int rivafb_blank(int blank, struct fb_info *info) | |||
1247 | CRTCout(par, 0x1a, vesa); | 1248 | CRTCout(par, 0x1a, vesa); |
1248 | 1249 | ||
1249 | #ifdef CONFIG_PMAC_BACKLIGHT | 1250 | #ifdef CONFIG_PMAC_BACKLIGHT |
1250 | if ( par->FlatPanel && _machine == _MACH_Pmac) { | 1251 | if ( par->FlatPanel && machine_is(powermac)) { |
1251 | set_backlight_enable(!blank); | 1252 | set_backlight_enable(!blank); |
1252 | } | 1253 | } |
1253 | #endif | 1254 | #endif |
@@ -2037,9 +2038,9 @@ static int __devinit rivafb_probe(struct pci_dev *pd, | |||
2037 | info->fix.smem_len / (1024 * 1024), | 2038 | info->fix.smem_len / (1024 * 1024), |
2038 | info->fix.smem_start); | 2039 | info->fix.smem_start); |
2039 | #ifdef CONFIG_PMAC_BACKLIGHT | 2040 | #ifdef CONFIG_PMAC_BACKLIGHT |
2040 | if (default_par->FlatPanel && _machine == _MACH_Pmac) | 2041 | if (default_par->FlatPanel && machine_is(powermac)) |
2041 | register_backlight_controller(&riva_backlight_controller, | 2042 | register_backlight_controller(&riva_backlight_controller, |
2042 | default_par, "mnca"); | 2043 | default_par, "mnca"); |
2043 | #endif | 2044 | #endif |
2044 | NVTRACE_LEAVE(); | 2045 | NVTRACE_LEAVE(); |
2045 | return 0; | 2046 | return 0; |