diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/block/viodasd.c | 2 | ||||
-rw-r--r-- | drivers/cdrom/viocd.c | 2 | ||||
-rw-r--r-- | drivers/char/hvc_console.c | 4 | ||||
-rw-r--r-- | drivers/char/hvc_rtas.c | 37 | ||||
-rw-r--r-- | drivers/char/hvsi.c | 2 | ||||
-rw-r--r-- | drivers/char/viotape.c | 2 | ||||
-rw-r--r-- | drivers/macintosh/via-pmu.c | 4 | ||||
-rw-r--r-- | drivers/net/ibmveth.c | 2 | ||||
-rw-r--r-- | drivers/net/iseries_veth.c | 27 |
9 files changed, 42 insertions, 40 deletions
diff --git a/drivers/block/viodasd.c b/drivers/block/viodasd.c index f63e07bd9f9c..b0df4f5ab97a 100644 --- a/drivers/block/viodasd.c +++ b/drivers/block/viodasd.c | |||
@@ -747,7 +747,7 @@ static int viodasd_remove(struct vio_dev *vdev) | |||
747 | * support. | 747 | * support. |
748 | */ | 748 | */ |
749 | static struct vio_device_id viodasd_device_table[] __devinitdata = { | 749 | static struct vio_device_id viodasd_device_table[] __devinitdata = { |
750 | { "viodasd", "" }, | 750 | { "block", "IBM,iSeries-viodasd" }, |
751 | { "", "" } | 751 | { "", "" } |
752 | }; | 752 | }; |
753 | MODULE_DEVICE_TABLE(vio, viodasd_device_table); | 753 | MODULE_DEVICE_TABLE(vio, viodasd_device_table); |
diff --git a/drivers/cdrom/viocd.c b/drivers/cdrom/viocd.c index c0f817ba7adb..af6b3bfd169b 100644 --- a/drivers/cdrom/viocd.c +++ b/drivers/cdrom/viocd.c | |||
@@ -731,7 +731,7 @@ static int viocd_remove(struct vio_dev *vdev) | |||
731 | * support. | 731 | * support. |
732 | */ | 732 | */ |
733 | static struct vio_device_id viocd_device_table[] __devinitdata = { | 733 | static struct vio_device_id viocd_device_table[] __devinitdata = { |
734 | { "viocd", "" }, | 734 | { "block", "IBM,iSeries-viocd" }, |
735 | { "", "" } | 735 | { "", "" } |
736 | }; | 736 | }; |
737 | MODULE_DEVICE_TABLE(vio, viocd_device_table); | 737 | MODULE_DEVICE_TABLE(vio, viocd_device_table); |
diff --git a/drivers/char/hvc_console.c b/drivers/char/hvc_console.c index 2b6a56b2bf35..a5c6a9d7ff08 100644 --- a/drivers/char/hvc_console.c +++ b/drivers/char/hvc_console.c | |||
@@ -553,7 +553,6 @@ static int hvc_chars_in_buffer(struct tty_struct *tty) | |||
553 | 553 | ||
554 | #define HVC_POLL_READ 0x00000001 | 554 | #define HVC_POLL_READ 0x00000001 |
555 | #define HVC_POLL_WRITE 0x00000002 | 555 | #define HVC_POLL_WRITE 0x00000002 |
556 | #define HVC_POLL_QUICK 0x00000004 | ||
557 | 556 | ||
558 | static int hvc_poll(struct hvc_struct *hp) | 557 | static int hvc_poll(struct hvc_struct *hp) |
559 | { | 558 | { |
@@ -568,6 +567,7 @@ static int hvc_poll(struct hvc_struct *hp) | |||
568 | /* Push pending writes */ | 567 | /* Push pending writes */ |
569 | if (hp->n_outbuf > 0) | 568 | if (hp->n_outbuf > 0) |
570 | hvc_push(hp); | 569 | hvc_push(hp); |
570 | |||
571 | /* Reschedule us if still some write pending */ | 571 | /* Reschedule us if still some write pending */ |
572 | if (hp->n_outbuf > 0) | 572 | if (hp->n_outbuf > 0) |
573 | poll_mask |= HVC_POLL_WRITE; | 573 | poll_mask |= HVC_POLL_WRITE; |
@@ -680,7 +680,7 @@ int khvcd(void *unused) | |||
680 | poll_mask |= HVC_POLL_READ; | 680 | poll_mask |= HVC_POLL_READ; |
681 | if (hvc_kicked) | 681 | if (hvc_kicked) |
682 | continue; | 682 | continue; |
683 | if (poll_mask & HVC_POLL_QUICK) { | 683 | if (poll_mask & HVC_POLL_WRITE) { |
684 | yield(); | 684 | yield(); |
685 | continue; | 685 | continue; |
686 | } | 686 | } |
diff --git a/drivers/char/hvc_rtas.c b/drivers/char/hvc_rtas.c index 83364ea63cba..57106e02fd2e 100644 --- a/drivers/char/hvc_rtas.c +++ b/drivers/char/hvc_rtas.c | |||
@@ -41,37 +41,28 @@ | |||
41 | #define hvc_rtas_cookie 0x67781e15 | 41 | #define hvc_rtas_cookie 0x67781e15 |
42 | struct hvc_struct *hvc_rtas_dev; | 42 | struct hvc_struct *hvc_rtas_dev; |
43 | 43 | ||
44 | #define RTASCONS_PUT_ATTEMPTS 16 | ||
45 | |||
46 | static int rtascons_put_char_token = RTAS_UNKNOWN_SERVICE; | 44 | static int rtascons_put_char_token = RTAS_UNKNOWN_SERVICE; |
47 | static int rtascons_get_char_token = RTAS_UNKNOWN_SERVICE; | 45 | 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 | 46 | ||
51 | static inline int hvc_rtas_write_console(uint32_t vtermno, const char *buf, int count) | 47 | static inline int hvc_rtas_write_console(uint32_t vtermno, const char *buf, |
48 | int count) | ||
52 | { | 49 | { |
53 | int done; | 50 | int i; |
54 | 51 | ||
55 | /* if there is more than one character to be displayed, wait a bit */ | 52 | for (i = 0; i < count; i++) { |
56 | for (done = 0; done < count; done++) { | 53 | if (rtas_call(rtascons_put_char_token, 1, 1, NULL, buf[i])) |
57 | int result; | ||
58 | result = rtas_call(rtascons_put_char_token, 1, 1, NULL, buf[done]); | ||
59 | if (result) | ||
60 | break; | 54 | break; |
61 | } | 55 | } |
62 | /* the calling routine expects to receive the number of bytes sent */ | 56 | |
63 | return done; | 57 | return i; |
64 | } | 58 | } |
65 | 59 | ||
66 | static int hvc_rtas_read_console(uint32_t vtermno, char *buf, int count) | 60 | static int hvc_rtas_read_console(uint32_t vtermno, char *buf, int count) |
67 | { | 61 | { |
68 | int i; | 62 | int i, c; |
69 | 63 | ||
70 | for (i = 0; i < count; i++) { | 64 | for (i = 0; i < count; i++) { |
71 | int c, err; | 65 | if (rtas_call(rtascons_get_char_token, 0, 2, &c)) |
72 | |||
73 | err = rtas_call(rtascons_get_char_token, 0, 2, &c); | ||
74 | if (err) | ||
75 | break; | 66 | break; |
76 | 67 | ||
77 | buf[i] = c; | 68 | buf[i] = c; |
@@ -106,7 +97,9 @@ static int hvc_rtas_init(void) | |||
106 | hp = hvc_alloc(hvc_rtas_cookie, NO_IRQ, &hvc_rtas_get_put_ops); | 97 | hp = hvc_alloc(hvc_rtas_cookie, NO_IRQ, &hvc_rtas_get_put_ops); |
107 | if (IS_ERR(hp)) | 98 | if (IS_ERR(hp)) |
108 | return PTR_ERR(hp); | 99 | return PTR_ERR(hp); |
100 | |||
109 | hvc_rtas_dev = hp; | 101 | hvc_rtas_dev = hp; |
102 | |||
110 | return 0; | 103 | return 0; |
111 | } | 104 | } |
112 | module_init(hvc_rtas_init); | 105 | module_init(hvc_rtas_init); |
@@ -114,8 +107,8 @@ module_init(hvc_rtas_init); | |||
114 | /* This will tear down the tty portion of the driver */ | 107 | /* This will tear down the tty portion of the driver */ |
115 | static void __exit hvc_rtas_exit(void) | 108 | static void __exit hvc_rtas_exit(void) |
116 | { | 109 | { |
117 | /* Really the fun isn't over until the worker thread breaks down and the | 110 | /* Really the fun isn't over until the worker thread breaks down and |
118 | * tty cleans up */ | 111 | * the tty cleans up */ |
119 | if (hvc_rtas_dev) | 112 | if (hvc_rtas_dev) |
120 | hvc_remove(hvc_rtas_dev); | 113 | hvc_remove(hvc_rtas_dev); |
121 | } | 114 | } |
@@ -127,12 +120,14 @@ static int hvc_rtas_console_init(void) | |||
127 | rtascons_put_char_token = rtas_token("put-term-char"); | 120 | rtascons_put_char_token = rtas_token("put-term-char"); |
128 | if (rtascons_put_char_token == RTAS_UNKNOWN_SERVICE) | 121 | if (rtascons_put_char_token == RTAS_UNKNOWN_SERVICE) |
129 | return -EIO; | 122 | return -EIO; |
123 | |||
130 | rtascons_get_char_token = rtas_token("get-term-char"); | 124 | rtascons_get_char_token = rtas_token("get-term-char"); |
131 | if (rtascons_get_char_token == RTAS_UNKNOWN_SERVICE) | 125 | if (rtascons_get_char_token == RTAS_UNKNOWN_SERVICE) |
132 | return -EIO; | 126 | return -EIO; |
133 | 127 | ||
134 | hvc_instantiate(hvc_rtas_cookie, 0, &hvc_rtas_get_put_ops ); | 128 | hvc_instantiate(hvc_rtas_cookie, 0, &hvc_rtas_get_put_ops); |
135 | add_preferred_console("hvc", 0, NULL); | 129 | add_preferred_console("hvc", 0, NULL); |
130 | |||
136 | return 0; | 131 | return 0; |
137 | } | 132 | } |
138 | console_initcall(hvc_rtas_console_init); | 133 | console_initcall(hvc_rtas_console_init); |
diff --git a/drivers/char/hvsi.c b/drivers/char/hvsi.c index a9522189fc9e..a0370ed752ce 100644 --- a/drivers/char/hvsi.c +++ b/drivers/char/hvsi.c | |||
@@ -1179,7 +1179,7 @@ static int __init hvsi_init(void) | |||
1179 | if (tty_register_driver(hvsi_driver)) | 1179 | if (tty_register_driver(hvsi_driver)) |
1180 | panic("Couldn't register hvsi console driver\n"); | 1180 | panic("Couldn't register hvsi console driver\n"); |
1181 | 1181 | ||
1182 | printk(KERN_INFO "HVSI: registered %i devices\n", hvsi_count); | 1182 | printk(KERN_DEBUG "HVSI: registered %i devices\n", hvsi_count); |
1183 | 1183 | ||
1184 | return 0; | 1184 | return 0; |
1185 | } | 1185 | } |
diff --git a/drivers/char/viotape.c b/drivers/char/viotape.c index 60aabdb4a046..11c7e9de5958 100644 --- a/drivers/char/viotape.c +++ b/drivers/char/viotape.c | |||
@@ -989,7 +989,7 @@ static int viotape_remove(struct vio_dev *vdev) | |||
989 | * support. | 989 | * support. |
990 | */ | 990 | */ |
991 | static struct vio_device_id viotape_device_table[] __devinitdata = { | 991 | static struct vio_device_id viotape_device_table[] __devinitdata = { |
992 | { "viotape", "" }, | 992 | { "byte", "IBM,iSeries-viotape" }, |
993 | { "", "" } | 993 | { "", "" } |
994 | }; | 994 | }; |
995 | MODULE_DEVICE_TABLE(vio, viotape_device_table); | 995 | MODULE_DEVICE_TABLE(vio, viotape_device_table); |
diff --git a/drivers/macintosh/via-pmu.c b/drivers/macintosh/via-pmu.c index 0b5ff553e39a..c63d4e7984be 100644 --- a/drivers/macintosh/via-pmu.c +++ b/drivers/macintosh/via-pmu.c | |||
@@ -2268,7 +2268,7 @@ static int powerbook_sleep_grackle(void) | |||
2268 | _set_L2CR(save_l2cr); | 2268 | _set_L2CR(save_l2cr); |
2269 | 2269 | ||
2270 | /* Restore userland MMU context */ | 2270 | /* Restore userland MMU context */ |
2271 | set_context(current->active_mm->context, current->active_mm->pgd); | 2271 | set_context(current->active_mm->context.id, current->active_mm->pgd); |
2272 | 2272 | ||
2273 | /* Power things up */ | 2273 | /* Power things up */ |
2274 | pmu_unlock(); | 2274 | pmu_unlock(); |
@@ -2366,7 +2366,7 @@ powerbook_sleep_Core99(void) | |||
2366 | _set_L3CR(save_l3cr); | 2366 | _set_L3CR(save_l3cr); |
2367 | 2367 | ||
2368 | /* Restore userland MMU context */ | 2368 | /* Restore userland MMU context */ |
2369 | set_context(current->active_mm->context, current->active_mm->pgd); | 2369 | set_context(current->active_mm->context.id, current->active_mm->pgd); |
2370 | 2370 | ||
2371 | /* Tell PMU we are ready */ | 2371 | /* Tell PMU we are ready */ |
2372 | pmu_unlock(); | 2372 | pmu_unlock(); |
diff --git a/drivers/net/ibmveth.c b/drivers/net/ibmveth.c index 52d01027d9e7..37965dc78eec 100644 --- a/drivers/net/ibmveth.c +++ b/drivers/net/ibmveth.c | |||
@@ -61,7 +61,7 @@ | |||
61 | #undef DEBUG | 61 | #undef DEBUG |
62 | 62 | ||
63 | #define ibmveth_printk(fmt, args...) \ | 63 | #define ibmveth_printk(fmt, args...) \ |
64 | printk(KERN_INFO "%s: " fmt, __FILE__, ## args) | 64 | printk(KERN_DEBUG "%s: " fmt, __FILE__, ## args) |
65 | 65 | ||
66 | #define ibmveth_error_printk(fmt, args...) \ | 66 | #define ibmveth_error_printk(fmt, args...) \ |
67 | printk(KERN_ERR "(%s:%3.3d ua:%x) ERROR: " fmt, __FILE__, __LINE__ , adapter->vdev->unit_address, ## args) | 67 | printk(KERN_ERR "(%s:%3.3d ua:%x) ERROR: " fmt, __FILE__, __LINE__ , adapter->vdev->unit_address, ## args) |
diff --git a/drivers/net/iseries_veth.c b/drivers/net/iseries_veth.c index f0f04be989d6..93394d76587a 100644 --- a/drivers/net/iseries_veth.c +++ b/drivers/net/iseries_veth.c | |||
@@ -69,6 +69,7 @@ | |||
69 | #include <linux/delay.h> | 69 | #include <linux/delay.h> |
70 | #include <linux/mm.h> | 70 | #include <linux/mm.h> |
71 | #include <linux/ethtool.h> | 71 | #include <linux/ethtool.h> |
72 | #include <linux/if_ether.h> | ||
72 | 73 | ||
73 | #include <asm/abs_addr.h> | 74 | #include <asm/abs_addr.h> |
74 | #include <asm/iseries/mf.h> | 75 | #include <asm/iseries/mf.h> |
@@ -1035,11 +1036,22 @@ static struct ethtool_ops ops = { | |||
1035 | .get_link = veth_get_link, | 1036 | .get_link = veth_get_link, |
1036 | }; | 1037 | }; |
1037 | 1038 | ||
1038 | static struct net_device * __init veth_probe_one(int vlan, struct device *vdev) | 1039 | static struct net_device * __init veth_probe_one(int vlan, |
1040 | struct vio_dev *vio_dev) | ||
1039 | { | 1041 | { |
1040 | struct net_device *dev; | 1042 | struct net_device *dev; |
1041 | struct veth_port *port; | 1043 | struct veth_port *port; |
1044 | struct device *vdev = &vio_dev->dev; | ||
1042 | int i, rc; | 1045 | int i, rc; |
1046 | const unsigned char *mac_addr; | ||
1047 | |||
1048 | mac_addr = vio_get_attribute(vio_dev, "local-mac-address", NULL); | ||
1049 | if (mac_addr == NULL) | ||
1050 | mac_addr = vio_get_attribute(vio_dev, "mac-address", NULL); | ||
1051 | if (mac_addr == NULL) { | ||
1052 | veth_error("Unable to fetch MAC address from device tree.\n"); | ||
1053 | return NULL; | ||
1054 | } | ||
1043 | 1055 | ||
1044 | dev = alloc_etherdev(sizeof (struct veth_port)); | 1056 | dev = alloc_etherdev(sizeof (struct veth_port)); |
1045 | if (! dev) { | 1057 | if (! dev) { |
@@ -1064,16 +1076,11 @@ static struct net_device * __init veth_probe_one(int vlan, struct device *vdev) | |||
1064 | } | 1076 | } |
1065 | port->dev = vdev; | 1077 | port->dev = vdev; |
1066 | 1078 | ||
1067 | dev->dev_addr[0] = 0x02; | 1079 | memcpy(dev->dev_addr, mac_addr, ETH_ALEN); |
1068 | dev->dev_addr[1] = 0x01; | ||
1069 | dev->dev_addr[2] = 0xff; | ||
1070 | dev->dev_addr[3] = vlan; | ||
1071 | dev->dev_addr[4] = 0xff; | ||
1072 | dev->dev_addr[5] = this_lp; | ||
1073 | 1080 | ||
1074 | dev->mtu = VETH_MAX_MTU; | 1081 | dev->mtu = VETH_MAX_MTU; |
1075 | 1082 | ||
1076 | memcpy(&port->mac_addr, dev->dev_addr, 6); | 1083 | memcpy(&port->mac_addr, mac_addr, ETH_ALEN); |
1077 | 1084 | ||
1078 | dev->open = veth_open; | 1085 | dev->open = veth_open; |
1079 | dev->hard_start_xmit = veth_start_xmit; | 1086 | dev->hard_start_xmit = veth_start_xmit; |
@@ -1608,7 +1615,7 @@ static int veth_probe(struct vio_dev *vdev, const struct vio_device_id *id) | |||
1608 | struct net_device *dev; | 1615 | struct net_device *dev; |
1609 | struct veth_port *port; | 1616 | struct veth_port *port; |
1610 | 1617 | ||
1611 | dev = veth_probe_one(i, &vdev->dev); | 1618 | dev = veth_probe_one(i, vdev); |
1612 | if (dev == NULL) { | 1619 | if (dev == NULL) { |
1613 | veth_remove(vdev); | 1620 | veth_remove(vdev); |
1614 | return 1; | 1621 | return 1; |
@@ -1641,7 +1648,7 @@ static int veth_probe(struct vio_dev *vdev, const struct vio_device_id *id) | |||
1641 | * support. | 1648 | * support. |
1642 | */ | 1649 | */ |
1643 | static struct vio_device_id veth_device_table[] __devinitdata = { | 1650 | static struct vio_device_id veth_device_table[] __devinitdata = { |
1644 | { "vlan", "" }, | 1651 | { "network", "IBM,iSeries-l-lan" }, |
1645 | { "", "" } | 1652 | { "", "" } |
1646 | }; | 1653 | }; |
1647 | MODULE_DEVICE_TABLE(vio, veth_device_table); | 1654 | MODULE_DEVICE_TABLE(vio, veth_device_table); |