aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/acpi/numa.c8
-rw-r--r--drivers/mtd/ubi/eba.c3
-rw-r--r--drivers/rtc/Kconfig6
-rw-r--r--drivers/rtc/rtc-omap.c4
-rw-r--r--drivers/serial/8250.c21
-rw-r--r--drivers/serial/icom.c55
-rw-r--r--drivers/video/console/vgacon.c9
7 files changed, 65 insertions, 41 deletions
diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
index 8fcd6a15517f..a2efae8a4c4e 100644
--- a/drivers/acpi/numa.c
+++ b/drivers/acpi/numa.c
@@ -40,19 +40,19 @@ static nodemask_t nodes_found_map = NODE_MASK_NONE;
40#define NID_INVAL -1 40#define NID_INVAL -1
41 41
42/* maps to convert between proximity domain and logical node ID */ 42/* maps to convert between proximity domain and logical node ID */
43int __cpuinitdata pxm_to_node_map[MAX_PXM_DOMAINS] 43static int pxm_to_node_map[MAX_PXM_DOMAINS]
44 = { [0 ... MAX_PXM_DOMAINS - 1] = NID_INVAL }; 44 = { [0 ... MAX_PXM_DOMAINS - 1] = NID_INVAL };
45int __cpuinitdata node_to_pxm_map[MAX_NUMNODES] 45static int node_to_pxm_map[MAX_NUMNODES]
46 = { [0 ... MAX_NUMNODES - 1] = PXM_INVAL }; 46 = { [0 ... MAX_NUMNODES - 1] = PXM_INVAL };
47 47
48int __cpuinit pxm_to_node(int pxm) 48int pxm_to_node(int pxm)
49{ 49{
50 if (pxm < 0) 50 if (pxm < 0)
51 return NID_INVAL; 51 return NID_INVAL;
52 return pxm_to_node_map[pxm]; 52 return pxm_to_node_map[pxm];
53} 53}
54 54
55int __cpuinit node_to_pxm(int node) 55int node_to_pxm(int node)
56{ 56{
57 if (node < 0) 57 if (node < 0)
58 return PXM_INVAL; 58 return PXM_INVAL;
diff --git a/drivers/mtd/ubi/eba.c b/drivers/mtd/ubi/eba.c
index 3dba5733ed1f..74002945b71b 100644
--- a/drivers/mtd/ubi/eba.c
+++ b/drivers/mtd/ubi/eba.c
@@ -940,9 +940,6 @@ static void ltree_entry_ctor(void *obj, struct kmem_cache *cache,
940{ 940{
941 struct ltree_entry *le = obj; 941 struct ltree_entry *le = obj;
942 942
943 if (flags & SLAB_CTOR_CONSTRUCTOR)
944 return;
945
946 le->users = 0; 943 le->users = 0;
947 init_rwsem(&le->mutex); 944 init_rwsem(&le->mutex);
948} 945}
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index 95ce8f49e382..4e4c10a7fd3a 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -59,7 +59,7 @@ comment "RTC interfaces"
59 depends on RTC_CLASS 59 depends on RTC_CLASS
60 60
61config RTC_INTF_SYSFS 61config RTC_INTF_SYSFS
62 boolean "sysfs" 62 boolean "/sys/class/rtc/rtcN (sysfs)"
63 depends on RTC_CLASS && SYSFS 63 depends on RTC_CLASS && SYSFS
64 default RTC_CLASS 64 default RTC_CLASS
65 help 65 help
@@ -70,7 +70,7 @@ config RTC_INTF_SYSFS
70 will be called rtc-sysfs. 70 will be called rtc-sysfs.
71 71
72config RTC_INTF_PROC 72config RTC_INTF_PROC
73 boolean "proc" 73 boolean "/proc/driver/rtc (procfs for rtc0)"
74 depends on RTC_CLASS && PROC_FS 74 depends on RTC_CLASS && PROC_FS
75 default RTC_CLASS 75 default RTC_CLASS
76 help 76 help
@@ -82,7 +82,7 @@ config RTC_INTF_PROC
82 will be called rtc-proc. 82 will be called rtc-proc.
83 83
84config RTC_INTF_DEV 84config RTC_INTF_DEV
85 boolean "dev" 85 boolean "/dev/rtcN (character devices)"
86 depends on RTC_CLASS 86 depends on RTC_CLASS
87 default RTC_CLASS 87 default RTC_CLASS
88 help 88 help
diff --git a/drivers/rtc/rtc-omap.c b/drivers/rtc/rtc-omap.c
index 60a8a4bb8bd2..a2f84f169588 100644
--- a/drivers/rtc/rtc-omap.c
+++ b/drivers/rtc/rtc-omap.c
@@ -371,7 +371,7 @@ static int __devinit omap_rtc_probe(struct platform_device *pdev)
371 goto fail; 371 goto fail;
372 } 372 }
373 platform_set_drvdata(pdev, rtc); 373 platform_set_drvdata(pdev, rtc);
374 dev_set_devdata(&rtc->dev, mem); 374 dev_set_drvdata(&rtc->dev, mem);
375 375
376 /* clear pending irqs, and set 1/second periodic, 376 /* clear pending irqs, and set 1/second periodic,
377 * which we'll use instead of update irqs 377 * which we'll use instead of update irqs
@@ -453,7 +453,7 @@ static int __devexit omap_rtc_remove(struct platform_device *pdev)
453 free_irq(omap_rtc_timer, rtc); 453 free_irq(omap_rtc_timer, rtc);
454 free_irq(omap_rtc_alarm, rtc); 454 free_irq(omap_rtc_alarm, rtc);
455 455
456 release_resource(dev_get_devdata(&rtc->dev)); 456 release_resource(dev_get_drvdata(&rtc->dev));
457 rtc_device_unregister(rtc); 457 rtc_device_unregister(rtc);
458 return 0; 458 return 0;
459} 459}
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
index 48e259a0167d..c84dab083a85 100644
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
@@ -894,7 +894,7 @@ static void autoconfig_16550a(struct uart_8250_port *up)
894 quot = serial_dl_read(up); 894 quot = serial_dl_read(up);
895 quot <<= 3; 895 quot <<= 3;
896 896
897 status1 = serial_in(up, 0x04); /* EXCR1 */ 897 status1 = serial_in(up, 0x04); /* EXCR2 */
898 status1 &= ~0xB0; /* Disable LOCK, mask out PRESL[01] */ 898 status1 &= ~0xB0; /* Disable LOCK, mask out PRESL[01] */
899 status1 |= 0x10; /* 1.625 divisor for baud_base --> 921600 */ 899 status1 |= 0x10; /* 1.625 divisor for baud_base --> 921600 */
900 serial_outp(up, 0x04, status1); 900 serial_outp(up, 0x04, status1);
@@ -2617,7 +2617,22 @@ void serial8250_suspend_port(int line)
2617 */ 2617 */
2618void serial8250_resume_port(int line) 2618void serial8250_resume_port(int line)
2619{ 2619{
2620 uart_resume_port(&serial8250_reg, &serial8250_ports[line].port); 2620 struct uart_8250_port *up = &serial8250_ports[line];
2621
2622 if (up->capabilities & UART_NATSEMI) {
2623 unsigned char tmp;
2624
2625 /* Ensure it's still in high speed mode */
2626 serial_outp(up, UART_LCR, 0xE0);
2627
2628 tmp = serial_in(up, 0x04); /* EXCR2 */
2629 tmp &= ~0xB0; /* Disable LOCK, mask out PRESL[01] */
2630 tmp |= 0x10; /* 1.625 divisor for baud_base --> 921600 */
2631 serial_outp(up, 0x04, tmp);
2632
2633 serial_outp(up, UART_LCR, 0);
2634 }
2635 uart_resume_port(&serial8250_reg, &up->port);
2621} 2636}
2622 2637
2623/* 2638/*
@@ -2694,7 +2709,7 @@ static int serial8250_resume(struct platform_device *dev)
2694 struct uart_8250_port *up = &serial8250_ports[i]; 2709 struct uart_8250_port *up = &serial8250_ports[i];
2695 2710
2696 if (up->port.type != PORT_UNKNOWN && up->port.dev == &dev->dev) 2711 if (up->port.type != PORT_UNKNOWN && up->port.dev == &dev->dev)
2697 uart_resume_port(&serial8250_reg, &up->port); 2712 serial8250_resume_port(i);
2698 } 2713 }
2699 2714
2700 return 0; 2715 return 0;
diff --git a/drivers/serial/icom.c b/drivers/serial/icom.c
index 6202995e8211..9d3105b64a7a 100644
--- a/drivers/serial/icom.c
+++ b/drivers/serial/icom.c
@@ -69,33 +69,40 @@
69 69
70static const struct pci_device_id icom_pci_table[] = { 70static const struct pci_device_id icom_pci_table[] = {
71 { 71 {
72 .vendor = PCI_VENDOR_ID_IBM, 72 .vendor = PCI_VENDOR_ID_IBM,
73 .device = PCI_DEVICE_ID_IBM_ICOM_DEV_ID_1, 73 .device = PCI_DEVICE_ID_IBM_ICOM_DEV_ID_1,
74 .subvendor = PCI_ANY_ID, 74 .subvendor = PCI_ANY_ID,
75 .subdevice = PCI_ANY_ID, 75 .subdevice = PCI_ANY_ID,
76 .driver_data = ADAPTER_V1, 76 .driver_data = ADAPTER_V1,
77 }, 77 },
78 { 78 {
79 .vendor = PCI_VENDOR_ID_IBM, 79 .vendor = PCI_VENDOR_ID_IBM,
80 .device = PCI_DEVICE_ID_IBM_ICOM_DEV_ID_2, 80 .device = PCI_DEVICE_ID_IBM_ICOM_DEV_ID_2,
81 .subvendor = PCI_VENDOR_ID_IBM, 81 .subvendor = PCI_VENDOR_ID_IBM,
82 .subdevice = PCI_DEVICE_ID_IBM_ICOM_V2_TWO_PORTS_RVX, 82 .subdevice = PCI_DEVICE_ID_IBM_ICOM_V2_TWO_PORTS_RVX,
83 .driver_data = ADAPTER_V2, 83 .driver_data = ADAPTER_V2,
84 }, 84 },
85 { 85 {
86 .vendor = PCI_VENDOR_ID_IBM, 86 .vendor = PCI_VENDOR_ID_IBM,
87 .device = PCI_DEVICE_ID_IBM_ICOM_DEV_ID_2, 87 .device = PCI_DEVICE_ID_IBM_ICOM_DEV_ID_2,
88 .subvendor = PCI_VENDOR_ID_IBM, 88 .subvendor = PCI_VENDOR_ID_IBM,
89 .subdevice = PCI_DEVICE_ID_IBM_ICOM_V2_ONE_PORT_RVX_ONE_PORT_MDM, 89 .subdevice = PCI_DEVICE_ID_IBM_ICOM_V2_ONE_PORT_RVX_ONE_PORT_MDM,
90 .driver_data = ADAPTER_V2, 90 .driver_data = ADAPTER_V2,
91 }, 91 },
92 { 92 {
93 .vendor = PCI_VENDOR_ID_IBM, 93 .vendor = PCI_VENDOR_ID_IBM,
94 .device = PCI_DEVICE_ID_IBM_ICOM_DEV_ID_2, 94 .device = PCI_DEVICE_ID_IBM_ICOM_DEV_ID_2,
95 .subvendor = PCI_VENDOR_ID_IBM, 95 .subvendor = PCI_VENDOR_ID_IBM,
96 .subdevice = PCI_DEVICE_ID_IBM_ICOM_FOUR_PORT_MODEL, 96 .subdevice = PCI_DEVICE_ID_IBM_ICOM_FOUR_PORT_MODEL,
97 .driver_data = ADAPTER_V2, 97 .driver_data = ADAPTER_V2,
98 }, 98 },
99 {
100 .vendor = PCI_VENDOR_ID_IBM,
101 .device = PCI_DEVICE_ID_IBM_ICOM_DEV_ID_2,
102 .subvendor = PCI_VENDOR_ID_IBM,
103 .subdevice = PCI_DEVICE_ID_IBM_ICOM_V2_ONE_PORT_RVX_ONE_PORT_MDM_PCIE,
104 .driver_data = ADAPTER_V2,
105 },
99 {} 106 {}
100}; 107};
101 108
diff --git a/drivers/video/console/vgacon.c b/drivers/video/console/vgacon.c
index 2460b82a1d93..f46fe95f69fb 100644
--- a/drivers/video/console/vgacon.c
+++ b/drivers/video/console/vgacon.c
@@ -368,9 +368,14 @@ static const char *vgacon_startup(void)
368#endif 368#endif
369 } 369 }
370 370
371 /* SCREEN_INFO initialized? */
372 if ((ORIG_VIDEO_MODE == 0) &&
373 (ORIG_VIDEO_LINES == 0) &&
374 (ORIG_VIDEO_COLS == 0))
375 goto no_vga;
376
371 /* VGA16 modes are not handled by VGACON */ 377 /* VGA16 modes are not handled by VGACON */
372 if ((ORIG_VIDEO_MODE == 0x00) || /* SCREEN_INFO not initialized */ 378 if ((ORIG_VIDEO_MODE == 0x0D) || /* 320x200/4 */
373 (ORIG_VIDEO_MODE == 0x0D) || /* 320x200/4 */
374 (ORIG_VIDEO_MODE == 0x0E) || /* 640x200/4 */ 379 (ORIG_VIDEO_MODE == 0x0E) || /* 640x200/4 */
375 (ORIG_VIDEO_MODE == 0x10) || /* 640x350/4 */ 380 (ORIG_VIDEO_MODE == 0x10) || /* 640x350/4 */
376 (ORIG_VIDEO_MODE == 0x12) || /* 640x480/4 */ 381 (ORIG_VIDEO_MODE == 0x12) || /* 640x480/4 */