aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/dontdiff1
-rw-r--r--arch/sparc/configs/sparc32_defconfig44
-rw-r--r--arch/sparc/configs/sparc64_defconfig51
-rw-r--r--arch/sparc/kernel/setup_32.c2
-rw-r--r--arch/sparc/kernel/setup_64.c2
-rw-r--r--drivers/char/vt.c3
-rw-r--r--drivers/video/console/.gitignore2
-rw-r--r--drivers/video/console/Kconfig9
-rw-r--r--drivers/video/console/Makefile12
-rw-r--r--drivers/video/console/prom.uni11
-rw-r--r--drivers/video/console/promcon.c598
-rw-r--r--scripts/Makefile1
12 files changed, 56 insertions, 680 deletions
diff --git a/Documentation/dontdiff b/Documentation/dontdiff
index 88519daab6e9..e1efc400bed6 100644
--- a/Documentation/dontdiff
+++ b/Documentation/dontdiff
@@ -152,7 +152,6 @@ piggy.gz
152piggyback 152piggyback
153pnmtologo 153pnmtologo
154ppc_defs.h* 154ppc_defs.h*
155promcon_tbl.c
156pss_boot.h 155pss_boot.h
157qconf 156qconf
158raid6altivec*.c 157raid6altivec*.c
diff --git a/arch/sparc/configs/sparc32_defconfig b/arch/sparc/configs/sparc32_defconfig
index a0f62a808edb..983d59824a28 100644
--- a/arch/sparc/configs/sparc32_defconfig
+++ b/arch/sparc/configs/sparc32_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.31-rc1 3# Linux kernel version: 2.6.31
4# Tue Aug 18 23:45:52 2009 4# Wed Sep 16 00:03:43 2009
5# 5#
6# CONFIG_64BIT is not set 6# CONFIG_64BIT is not set
7CONFIG_SPARC=y 7CONFIG_SPARC=y
@@ -39,11 +39,12 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
39# 39#
40# RCU Subsystem 40# RCU Subsystem
41# 41#
42CONFIG_CLASSIC_RCU=y 42CONFIG_TREE_RCU=y
43# CONFIG_TREE_RCU is not set 43# CONFIG_TREE_PREEMPT_RCU is not set
44# CONFIG_PREEMPT_RCU is not set 44# CONFIG_RCU_TRACE is not set
45CONFIG_RCU_FANOUT=32
46# CONFIG_RCU_FANOUT_EXACT is not set
45# CONFIG_TREE_RCU_TRACE is not set 47# CONFIG_TREE_RCU_TRACE is not set
46# CONFIG_PREEMPT_RCU_TRACE is not set
47# CONFIG_IKCONFIG is not set 48# CONFIG_IKCONFIG is not set
48CONFIG_LOG_BUF_SHIFT=14 49CONFIG_LOG_BUF_SHIFT=14
49CONFIG_GROUP_SCHED=y 50CONFIG_GROUP_SCHED=y
@@ -87,10 +88,12 @@ CONFIG_TIMERFD=y
87CONFIG_EVENTFD=y 88CONFIG_EVENTFD=y
88CONFIG_SHMEM=y 89CONFIG_SHMEM=y
89CONFIG_AIO=y 90CONFIG_AIO=y
91CONFIG_HAVE_PERF_COUNTERS=y
90 92
91# 93#
92# Performance Counters 94# Performance Counters
93# 95#
96# CONFIG_PERF_COUNTERS is not set
94CONFIG_VM_EVENT_COUNTERS=y 97CONFIG_VM_EVENT_COUNTERS=y
95CONFIG_PCI_QUIRKS=y 98CONFIG_PCI_QUIRKS=y
96# CONFIG_STRIP_ASM_SYMS is not set 99# CONFIG_STRIP_ASM_SYMS is not set
@@ -102,6 +105,8 @@ CONFIG_SLAB=y
102# CONFIG_MARKERS is not set 105# CONFIG_MARKERS is not set
103CONFIG_HAVE_OPROFILE=y 106CONFIG_HAVE_OPROFILE=y
104CONFIG_HAVE_ARCH_TRACEHOOK=y 107CONFIG_HAVE_ARCH_TRACEHOOK=y
108CONFIG_HAVE_DMA_ATTRS=y
109CONFIG_HAVE_DMA_API_DEBUG=y
105 110
106# 111#
107# GCOV-based kernel profiling 112# GCOV-based kernel profiling
@@ -169,6 +174,7 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
169CONFIG_SUN_PM=y 174CONFIG_SUN_PM=y
170# CONFIG_SPARC_LED is not set 175# CONFIG_SPARC_LED is not set
171CONFIG_SERIAL_CONSOLE=y 176CONFIG_SERIAL_CONSOLE=y
177# CONFIG_SPARC_LEON is not set
172 178
173# 179#
174# Bus options (PCI etc.) 180# Bus options (PCI etc.)
@@ -259,6 +265,7 @@ CONFIG_IPV6_TUNNEL=m
259# CONFIG_NETFILTER is not set 265# CONFIG_NETFILTER is not set
260# CONFIG_IP_DCCP is not set 266# CONFIG_IP_DCCP is not set
261# CONFIG_IP_SCTP is not set 267# CONFIG_IP_SCTP is not set
268# CONFIG_RDS is not set
262# CONFIG_TIPC is not set 269# CONFIG_TIPC is not set
263# CONFIG_ATM is not set 270# CONFIG_ATM is not set
264# CONFIG_BRIDGE is not set 271# CONFIG_BRIDGE is not set
@@ -288,6 +295,7 @@ CONFIG_NET_PKTGEN=m
288# CONFIG_AF_RXRPC is not set 295# CONFIG_AF_RXRPC is not set
289CONFIG_WIRELESS=y 296CONFIG_WIRELESS=y
290# CONFIG_CFG80211 is not set 297# CONFIG_CFG80211 is not set
298CONFIG_CFG80211_DEFAULT_PS_VALUE=0
291CONFIG_WIRELESS_OLD_REGULATORY=y 299CONFIG_WIRELESS_OLD_REGULATORY=y
292# CONFIG_WIRELESS_EXT is not set 300# CONFIG_WIRELESS_EXT is not set
293# CONFIG_LIB80211 is not set 301# CONFIG_LIB80211 is not set
@@ -295,7 +303,6 @@ CONFIG_WIRELESS_OLD_REGULATORY=y
295# 303#
296# CFG80211 needs to be enabled for MAC80211 304# CFG80211 needs to be enabled for MAC80211
297# 305#
298CONFIG_MAC80211_DEFAULT_PS_VALUE=0
299# CONFIG_WIMAX is not set 306# CONFIG_WIMAX is not set
300# CONFIG_RFKILL is not set 307# CONFIG_RFKILL is not set
301# CONFIG_NET_9P is not set 308# CONFIG_NET_9P is not set
@@ -426,6 +433,7 @@ CONFIG_SCSI_QLOGICPTI=m
426# CONFIG_SCSI_NSP32 is not set 433# CONFIG_SCSI_NSP32 is not set
427# CONFIG_SCSI_DEBUG is not set 434# CONFIG_SCSI_DEBUG is not set
428CONFIG_SCSI_SUNESP=y 435CONFIG_SCSI_SUNESP=y
436# CONFIG_SCSI_PMCRAID is not set
429# CONFIG_SCSI_SRP is not set 437# CONFIG_SCSI_SRP is not set
430# CONFIG_SCSI_DH is not set 438# CONFIG_SCSI_DH is not set
431# CONFIG_SCSI_OSD_INITIATOR is not set 439# CONFIG_SCSI_OSD_INITIATOR is not set
@@ -524,12 +532,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
524# CONFIG_SFC is not set 532# CONFIG_SFC is not set
525# CONFIG_BE2NET is not set 533# CONFIG_BE2NET is not set
526# CONFIG_TR is not set 534# CONFIG_TR is not set
527 535# CONFIG_WLAN is not set
528#
529# Wireless LAN
530#
531# CONFIG_WLAN_PRE80211 is not set
532# CONFIG_WLAN_80211 is not set
533 536
534# 537#
535# Enable WiMAX (Networking options) to see the WiMAX drivers 538# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -569,11 +572,11 @@ CONFIG_INPUT_EVBUG=m
569# 572#
570CONFIG_INPUT_KEYBOARD=y 573CONFIG_INPUT_KEYBOARD=y
571CONFIG_KEYBOARD_ATKBD=m 574CONFIG_KEYBOARD_ATKBD=m
572CONFIG_KEYBOARD_SUNKBD=m
573# CONFIG_KEYBOARD_LKKBD is not set 575# CONFIG_KEYBOARD_LKKBD is not set
574# CONFIG_KEYBOARD_XTKBD is not set
575# CONFIG_KEYBOARD_NEWTON is not set 576# CONFIG_KEYBOARD_NEWTON is not set
576# CONFIG_KEYBOARD_STOWAWAY is not set 577# CONFIG_KEYBOARD_STOWAWAY is not set
578CONFIG_KEYBOARD_SUNKBD=m
579# CONFIG_KEYBOARD_XTKBD is not set
577CONFIG_INPUT_MOUSE=y 580CONFIG_INPUT_MOUSE=y
578CONFIG_MOUSE_PS2=m 581CONFIG_MOUSE_PS2=m
579CONFIG_MOUSE_PS2_ALPS=y 582CONFIG_MOUSE_PS2_ALPS=y
@@ -581,6 +584,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
581CONFIG_MOUSE_PS2_SYNAPTICS=y 584CONFIG_MOUSE_PS2_SYNAPTICS=y
582CONFIG_MOUSE_PS2_TRACKPOINT=y 585CONFIG_MOUSE_PS2_TRACKPOINT=y
583# CONFIG_MOUSE_PS2_ELANTECH is not set 586# CONFIG_MOUSE_PS2_ELANTECH is not set
587# CONFIG_MOUSE_PS2_SENTELIC is not set
584# CONFIG_MOUSE_PS2_TOUCHKIT is not set 588# CONFIG_MOUSE_PS2_TOUCHKIT is not set
585CONFIG_MOUSE_SERIAL=m 589CONFIG_MOUSE_SERIAL=m
586# CONFIG_MOUSE_APPLETOUCH is not set 590# CONFIG_MOUSE_APPLETOUCH is not set
@@ -708,12 +712,10 @@ CONFIG_SSB_POSSIBLE=y
708# 712#
709# Console display driver support 713# Console display driver support
710# 714#
711# CONFIG_PROM_CONSOLE is not set
712CONFIG_DUMMY_CONSOLE=y 715CONFIG_DUMMY_CONSOLE=y
713# CONFIG_SOUND is not set 716# CONFIG_SOUND is not set
714CONFIG_HID_SUPPORT=y 717CONFIG_HID_SUPPORT=y
715CONFIG_HID=y 718CONFIG_HID=y
716# CONFIG_HID_DEBUG is not set
717# CONFIG_HIDRAW is not set 719# CONFIG_HIDRAW is not set
718# CONFIG_HID_PID is not set 720# CONFIG_HID_PID is not set
719 721
@@ -814,6 +816,7 @@ CONFIG_FS_POSIX_ACL=y
814# CONFIG_GFS2_FS is not set 816# CONFIG_GFS2_FS is not set
815# CONFIG_OCFS2_FS is not set 817# CONFIG_OCFS2_FS is not set
816# CONFIG_BTRFS_FS is not set 818# CONFIG_BTRFS_FS is not set
819# CONFIG_NILFS2_FS is not set
817CONFIG_FILE_LOCKING=y 820CONFIG_FILE_LOCKING=y
818CONFIG_FSNOTIFY=y 821CONFIG_FSNOTIFY=y
819CONFIG_DNOTIFY=y 822CONFIG_DNOTIFY=y
@@ -877,7 +880,6 @@ CONFIG_ROMFS_BACKED_BY_BLOCK=y
877CONFIG_ROMFS_ON_BLOCK=y 880CONFIG_ROMFS_ON_BLOCK=y
878# CONFIG_SYSV_FS is not set 881# CONFIG_SYSV_FS is not set
879# CONFIG_UFS_FS is not set 882# CONFIG_UFS_FS is not set
880# CONFIG_NILFS2_FS is not set
881CONFIG_NETWORK_FILESYSTEMS=y 883CONFIG_NETWORK_FILESYSTEMS=y
882CONFIG_NFS_FS=y 884CONFIG_NFS_FS=y
883# CONFIG_NFS_V3 is not set 885# CONFIG_NFS_V3 is not set
@@ -984,14 +986,17 @@ CONFIG_DEBUG_MEMORY_INIT=y
984# CONFIG_DEBUG_LIST is not set 986# CONFIG_DEBUG_LIST is not set
985# CONFIG_DEBUG_SG is not set 987# CONFIG_DEBUG_SG is not set
986# CONFIG_DEBUG_NOTIFIERS is not set 988# CONFIG_DEBUG_NOTIFIERS is not set
989# CONFIG_DEBUG_CREDENTIALS is not set
987# CONFIG_BOOT_PRINTK_DELAY is not set 990# CONFIG_BOOT_PRINTK_DELAY is not set
988# CONFIG_RCU_TORTURE_TEST is not set 991# CONFIG_RCU_TORTURE_TEST is not set
989# CONFIG_RCU_CPU_STALL_DETECTOR is not set 992# CONFIG_RCU_CPU_STALL_DETECTOR is not set
990# CONFIG_BACKTRACE_SELF_TEST is not set 993# CONFIG_BACKTRACE_SELF_TEST is not set
991# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 994# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
995# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
992# CONFIG_FAULT_INJECTION is not set 996# CONFIG_FAULT_INJECTION is not set
993# CONFIG_SYSCTL_SYSCALL_CHECK is not set 997# CONFIG_SYSCTL_SYSCALL_CHECK is not set
994# CONFIG_PAGE_POISONING is not set 998# CONFIG_PAGE_POISONING is not set
999# CONFIG_DMA_API_DEBUG is not set
995# CONFIG_SAMPLES is not set 1000# CONFIG_SAMPLES is not set
996CONFIG_HAVE_ARCH_KGDB=y 1001CONFIG_HAVE_ARCH_KGDB=y
997CONFIG_KGDB=y 1002CONFIG_KGDB=y
@@ -1014,7 +1019,6 @@ CONFIG_CRYPTO=y
1014# 1019#
1015# Crypto core or helper 1020# Crypto core or helper
1016# 1021#
1017# CONFIG_CRYPTO_FIPS is not set
1018CONFIG_CRYPTO_ALGAPI=y 1022CONFIG_CRYPTO_ALGAPI=y
1019CONFIG_CRYPTO_ALGAPI2=y 1023CONFIG_CRYPTO_ALGAPI2=y
1020CONFIG_CRYPTO_AEAD=y 1024CONFIG_CRYPTO_AEAD=y
@@ -1057,11 +1061,13 @@ CONFIG_CRYPTO_PCBC=m
1057# 1061#
1058CONFIG_CRYPTO_HMAC=y 1062CONFIG_CRYPTO_HMAC=y
1059# CONFIG_CRYPTO_XCBC is not set 1063# CONFIG_CRYPTO_XCBC is not set
1064# CONFIG_CRYPTO_VMAC is not set
1060 1065
1061# 1066#
1062# Digest 1067# Digest
1063# 1068#
1064CONFIG_CRYPTO_CRC32C=m 1069CONFIG_CRYPTO_CRC32C=m
1070# CONFIG_CRYPTO_GHASH is not set
1065CONFIG_CRYPTO_MD4=y 1071CONFIG_CRYPTO_MD4=y
1066CONFIG_CRYPTO_MD5=y 1072CONFIG_CRYPTO_MD5=y
1067CONFIG_CRYPTO_MICHAEL_MIC=m 1073CONFIG_CRYPTO_MICHAEL_MIC=m
diff --git a/arch/sparc/configs/sparc64_defconfig b/arch/sparc/configs/sparc64_defconfig
index fdddf7a6f725..f80b881dfea7 100644
--- a/arch/sparc/configs/sparc64_defconfig
+++ b/arch/sparc/configs/sparc64_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.31-rc1 3# Linux kernel version: 2.6.31
4# Tue Aug 18 23:56:02 2009 4# Tue Sep 15 17:06:03 2009
5# 5#
6CONFIG_64BIT=y 6CONFIG_64BIT=y
7CONFIG_SPARC=y 7CONFIG_SPARC=y
@@ -19,7 +19,7 @@ CONFIG_LOCKDEP_SUPPORT=y
19CONFIG_HAVE_LATENCYTOP_SUPPORT=y 19CONFIG_HAVE_LATENCYTOP_SUPPORT=y
20CONFIG_AUDIT_ARCH=y 20CONFIG_AUDIT_ARCH=y
21CONFIG_HAVE_SETUP_PER_CPU_AREA=y 21CONFIG_HAVE_SETUP_PER_CPU_AREA=y
22CONFIG_HAVE_DYNAMIC_PER_CPU_AREA=y 22CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
23CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 23CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
24CONFIG_MMU=y 24CONFIG_MMU=y
25CONFIG_ARCH_NO_VIRT_TO_BUS=y 25CONFIG_ARCH_NO_VIRT_TO_BUS=y
@@ -48,11 +48,12 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
48# 48#
49# RCU Subsystem 49# RCU Subsystem
50# 50#
51CONFIG_CLASSIC_RCU=y 51CONFIG_TREE_RCU=y
52# CONFIG_TREE_RCU is not set 52# CONFIG_TREE_PREEMPT_RCU is not set
53# CONFIG_PREEMPT_RCU is not set 53# CONFIG_RCU_TRACE is not set
54CONFIG_RCU_FANOUT=64
55# CONFIG_RCU_FANOUT_EXACT is not set
54# CONFIG_TREE_RCU_TRACE is not set 56# CONFIG_TREE_RCU_TRACE is not set
55# CONFIG_PREEMPT_RCU_TRACE is not set
56# CONFIG_IKCONFIG is not set 57# CONFIG_IKCONFIG is not set
57CONFIG_LOG_BUF_SHIFT=18 58CONFIG_LOG_BUF_SHIFT=18
58CONFIG_GROUP_SCHED=y 59CONFIG_GROUP_SCHED=y
@@ -96,10 +97,13 @@ CONFIG_TIMERFD=y
96CONFIG_EVENTFD=y 97CONFIG_EVENTFD=y
97CONFIG_SHMEM=y 98CONFIG_SHMEM=y
98CONFIG_AIO=y 99CONFIG_AIO=y
100CONFIG_HAVE_PERF_COUNTERS=y
99 101
100# 102#
101# Performance Counters 103# Performance Counters
102# 104#
105CONFIG_PERF_COUNTERS=y
106CONFIG_EVENT_PROFILE=y
103CONFIG_VM_EVENT_COUNTERS=y 107CONFIG_VM_EVENT_COUNTERS=y
104CONFIG_PCI_QUIRKS=y 108CONFIG_PCI_QUIRKS=y
105CONFIG_SLUB_DEBUG=y 109CONFIG_SLUB_DEBUG=y
@@ -119,7 +123,9 @@ CONFIG_KRETPROBES=y
119CONFIG_HAVE_KPROBES=y 123CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 124CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 125CONFIG_HAVE_ARCH_TRACEHOOK=y
126CONFIG_HAVE_DMA_ATTRS=y
122CONFIG_USE_GENERIC_SMP_HELPERS=y 127CONFIG_USE_GENERIC_SMP_HELPERS=y
128CONFIG_HAVE_DMA_API_DEBUG=y
123 129
124# 130#
125# GCOV-based kernel profiling 131# GCOV-based kernel profiling
@@ -317,6 +323,7 @@ CONFIG_IPV6_TUNNEL=m
317# CONFIG_NETFILTER is not set 323# CONFIG_NETFILTER is not set
318# CONFIG_IP_DCCP is not set 324# CONFIG_IP_DCCP is not set
319# CONFIG_IP_SCTP is not set 325# CONFIG_IP_SCTP is not set
326# CONFIG_RDS is not set
320# CONFIG_TIPC is not set 327# CONFIG_TIPC is not set
321# CONFIG_ATM is not set 328# CONFIG_ATM is not set
322# CONFIG_BRIDGE is not set 329# CONFIG_BRIDGE is not set
@@ -349,6 +356,7 @@ CONFIG_NET_TCPPROBE=m
349# CONFIG_AF_RXRPC is not set 356# CONFIG_AF_RXRPC is not set
350CONFIG_WIRELESS=y 357CONFIG_WIRELESS=y
351# CONFIG_CFG80211 is not set 358# CONFIG_CFG80211 is not set
359CONFIG_CFG80211_DEFAULT_PS_VALUE=0
352CONFIG_WIRELESS_OLD_REGULATORY=y 360CONFIG_WIRELESS_OLD_REGULATORY=y
353# CONFIG_WIRELESS_EXT is not set 361# CONFIG_WIRELESS_EXT is not set
354# CONFIG_LIB80211 is not set 362# CONFIG_LIB80211 is not set
@@ -356,7 +364,6 @@ CONFIG_WIRELESS_OLD_REGULATORY=y
356# 364#
357# CFG80211 needs to be enabled for MAC80211 365# CFG80211 needs to be enabled for MAC80211
358# 366#
359CONFIG_MAC80211_DEFAULT_PS_VALUE=0
360# CONFIG_WIMAX is not set 367# CONFIG_WIMAX is not set
361# CONFIG_RFKILL is not set 368# CONFIG_RFKILL is not set
362# CONFIG_NET_9P is not set 369# CONFIG_NET_9P is not set
@@ -549,6 +556,7 @@ CONFIG_SCSI_LOWLEVEL=y
549# CONFIG_SCSI_DC390T is not set 556# CONFIG_SCSI_DC390T is not set
550# CONFIG_SCSI_DEBUG is not set 557# CONFIG_SCSI_DEBUG is not set
551# CONFIG_SCSI_SUNESP is not set 558# CONFIG_SCSI_SUNESP is not set
559# CONFIG_SCSI_PMCRAID is not set
552# CONFIG_SCSI_SRP is not set 560# CONFIG_SCSI_SRP is not set
553# CONFIG_SCSI_DH is not set 561# CONFIG_SCSI_DH is not set
554# CONFIG_SCSI_OSD_INITIATOR is not set 562# CONFIG_SCSI_OSD_INITIATOR is not set
@@ -704,12 +712,7 @@ CONFIG_NIU=m
704# CONFIG_SFC is not set 712# CONFIG_SFC is not set
705# CONFIG_BE2NET is not set 713# CONFIG_BE2NET is not set
706# CONFIG_TR is not set 714# CONFIG_TR is not set
707 715# CONFIG_WLAN is not set
708#
709# Wireless LAN
710#
711# CONFIG_WLAN_PRE80211 is not set
712# CONFIG_WLAN_80211 is not set
713 716
714# 717#
715# Enable WiMAX (Networking options) to see the WiMAX drivers 718# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -768,11 +771,11 @@ CONFIG_INPUT_EVDEV=y
768# 771#
769CONFIG_INPUT_KEYBOARD=y 772CONFIG_INPUT_KEYBOARD=y
770CONFIG_KEYBOARD_ATKBD=y 773CONFIG_KEYBOARD_ATKBD=y
771CONFIG_KEYBOARD_SUNKBD=y
772CONFIG_KEYBOARD_LKKBD=m 774CONFIG_KEYBOARD_LKKBD=m
773# CONFIG_KEYBOARD_XTKBD is not set
774# CONFIG_KEYBOARD_NEWTON is not set 775# CONFIG_KEYBOARD_NEWTON is not set
775# CONFIG_KEYBOARD_STOWAWAY is not set 776# CONFIG_KEYBOARD_STOWAWAY is not set
777CONFIG_KEYBOARD_SUNKBD=y
778# CONFIG_KEYBOARD_XTKBD is not set
776CONFIG_INPUT_MOUSE=y 779CONFIG_INPUT_MOUSE=y
777CONFIG_MOUSE_PS2=y 780CONFIG_MOUSE_PS2=y
778CONFIG_MOUSE_PS2_ALPS=y 781CONFIG_MOUSE_PS2_ALPS=y
@@ -780,6 +783,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
780CONFIG_MOUSE_PS2_SYNAPTICS=y 783CONFIG_MOUSE_PS2_SYNAPTICS=y
781CONFIG_MOUSE_PS2_TRACKPOINT=y 784CONFIG_MOUSE_PS2_TRACKPOINT=y
782# CONFIG_MOUSE_PS2_ELANTECH is not set 785# CONFIG_MOUSE_PS2_ELANTECH is not set
786# CONFIG_MOUSE_PS2_SENTELIC is not set
783# CONFIG_MOUSE_PS2_TOUCHKIT is not set 787# CONFIG_MOUSE_PS2_TOUCHKIT is not set
784CONFIG_MOUSE_SERIAL=y 788CONFIG_MOUSE_SERIAL=y
785# CONFIG_MOUSE_APPLETOUCH is not set 789# CONFIG_MOUSE_APPLETOUCH is not set
@@ -883,7 +887,6 @@ CONFIG_I2C_ALGOBIT=y
883# 887#
884# I2C system bus drivers (mostly embedded / system-on-chip) 888# I2C system bus drivers (mostly embedded / system-on-chip)
885# 889#
886# CONFIG_I2C_DESIGNWARE is not set
887# CONFIG_I2C_OCORES is not set 890# CONFIG_I2C_OCORES is not set
888# CONFIG_I2C_SIMTEC is not set 891# CONFIG_I2C_SIMTEC is not set
889 892
@@ -1102,7 +1105,6 @@ CONFIG_FB_ATY_GX=y
1102# 1105#
1103# Console display driver support 1106# Console display driver support
1104# 1107#
1105# CONFIG_PROM_CONSOLE is not set
1106CONFIG_DUMMY_CONSOLE=y 1108CONFIG_DUMMY_CONSOLE=y
1107CONFIG_FRAMEBUFFER_CONSOLE=y 1109CONFIG_FRAMEBUFFER_CONSOLE=y
1108CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y 1110CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
@@ -1124,6 +1126,7 @@ CONFIG_LOGO=y
1124CONFIG_LOGO_SUN_CLUT224=y 1126CONFIG_LOGO_SUN_CLUT224=y
1125CONFIG_SOUND=m 1127CONFIG_SOUND=m
1126CONFIG_SOUND_OSS_CORE=y 1128CONFIG_SOUND_OSS_CORE=y
1129CONFIG_SOUND_OSS_CORE_PRECLAIM=y
1127CONFIG_SND=m 1130CONFIG_SND=m
1128CONFIG_SND_TIMER=m 1131CONFIG_SND_TIMER=m
1129CONFIG_SND_PCM=m 1132CONFIG_SND_PCM=m
@@ -1232,7 +1235,6 @@ CONFIG_SND_SUN_CS4231=m
1232CONFIG_AC97_BUS=m 1235CONFIG_AC97_BUS=m
1233CONFIG_HID_SUPPORT=y 1236CONFIG_HID_SUPPORT=y
1234CONFIG_HID=y 1237CONFIG_HID=y
1235# CONFIG_HID_DEBUG is not set
1236# CONFIG_HIDRAW is not set 1238# CONFIG_HIDRAW is not set
1237 1239
1238# 1240#
@@ -1256,6 +1258,7 @@ CONFIG_HID_DRAGONRISE=y
1256CONFIG_HID_EZKEY=y 1258CONFIG_HID_EZKEY=y
1257CONFIG_HID_KYE=y 1259CONFIG_HID_KYE=y
1258CONFIG_HID_GYRATION=y 1260CONFIG_HID_GYRATION=y
1261CONFIG_HID_TWINHAN=y
1259CONFIG_HID_KENSINGTON=y 1262CONFIG_HID_KENSINGTON=y
1260CONFIG_HID_LOGITECH=y 1263CONFIG_HID_LOGITECH=y
1261# CONFIG_LOGITECH_FF is not set 1264# CONFIG_LOGITECH_FF is not set
@@ -1289,6 +1292,7 @@ CONFIG_USB=y
1289# 1292#
1290# Miscellaneous USB options 1293# Miscellaneous USB options
1291# 1294#
1295# CONFIG_USB_DEVICEFS is not set
1292# CONFIG_USB_DEVICE_CLASS is not set 1296# CONFIG_USB_DEVICE_CLASS is not set
1293# CONFIG_USB_DYNAMIC_MINORS is not set 1297# CONFIG_USB_DYNAMIC_MINORS is not set
1294# CONFIG_USB_OTG is not set 1298# CONFIG_USB_OTG is not set
@@ -1379,6 +1383,7 @@ CONFIG_USB_STORAGE=m
1379# CONFIG_USB_LD is not set 1383# CONFIG_USB_LD is not set
1380# CONFIG_USB_TRANCEVIBRATOR is not set 1384# CONFIG_USB_TRANCEVIBRATOR is not set
1381# CONFIG_USB_IOWARRIOR is not set 1385# CONFIG_USB_IOWARRIOR is not set
1386# CONFIG_USB_TEST is not set
1382# CONFIG_USB_ISIGHTFW is not set 1387# CONFIG_USB_ISIGHTFW is not set
1383# CONFIG_USB_VST is not set 1388# CONFIG_USB_VST is not set
1384# CONFIG_USB_GADGET is not set 1389# CONFIG_USB_GADGET is not set
@@ -1493,6 +1498,7 @@ CONFIG_FS_POSIX_ACL=y
1493# CONFIG_GFS2_FS is not set 1498# CONFIG_GFS2_FS is not set
1494# CONFIG_OCFS2_FS is not set 1499# CONFIG_OCFS2_FS is not set
1495# CONFIG_BTRFS_FS is not set 1500# CONFIG_BTRFS_FS is not set
1501# CONFIG_NILFS2_FS is not set
1496CONFIG_FILE_LOCKING=y 1502CONFIG_FILE_LOCKING=y
1497CONFIG_FSNOTIFY=y 1503CONFIG_FSNOTIFY=y
1498CONFIG_DNOTIFY=y 1504CONFIG_DNOTIFY=y
@@ -1553,7 +1559,6 @@ CONFIG_MISC_FILESYSTEMS=y
1553# CONFIG_ROMFS_FS is not set 1559# CONFIG_ROMFS_FS is not set
1554# CONFIG_SYSV_FS is not set 1560# CONFIG_SYSV_FS is not set
1555# CONFIG_UFS_FS is not set 1561# CONFIG_UFS_FS is not set
1556# CONFIG_NILFS2_FS is not set
1557CONFIG_NETWORK_FILESYSTEMS=y 1562CONFIG_NETWORK_FILESYSTEMS=y
1558# CONFIG_NFS_FS is not set 1563# CONFIG_NFS_FS is not set
1559# CONFIG_NFSD is not set 1564# CONFIG_NFSD is not set
@@ -1656,12 +1661,14 @@ CONFIG_DEBUG_MEMORY_INIT=y
1656# CONFIG_DEBUG_LIST is not set 1661# CONFIG_DEBUG_LIST is not set
1657# CONFIG_DEBUG_SG is not set 1662# CONFIG_DEBUG_SG is not set
1658# CONFIG_DEBUG_NOTIFIERS is not set 1663# CONFIG_DEBUG_NOTIFIERS is not set
1664# CONFIG_DEBUG_CREDENTIALS is not set
1659# CONFIG_BOOT_PRINTK_DELAY is not set 1665# CONFIG_BOOT_PRINTK_DELAY is not set
1660# CONFIG_RCU_TORTURE_TEST is not set 1666# CONFIG_RCU_TORTURE_TEST is not set
1661# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1667# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1662# CONFIG_KPROBES_SANITY_TEST is not set 1668# CONFIG_KPROBES_SANITY_TEST is not set
1663# CONFIG_BACKTRACE_SELF_TEST is not set 1669# CONFIG_BACKTRACE_SELF_TEST is not set
1664# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1670# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1671# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1665# CONFIG_LKDTM is not set 1672# CONFIG_LKDTM is not set
1666# CONFIG_FAULT_INJECTION is not set 1673# CONFIG_FAULT_INJECTION is not set
1667# CONFIG_LATENCYTOP is not set 1674# CONFIG_LATENCYTOP is not set
@@ -1692,6 +1699,7 @@ CONFIG_BLK_DEV_IO_TRACE=y
1692# CONFIG_FTRACE_STARTUP_TEST is not set 1699# CONFIG_FTRACE_STARTUP_TEST is not set
1693# CONFIG_RING_BUFFER_BENCHMARK is not set 1700# CONFIG_RING_BUFFER_BENCHMARK is not set
1694# CONFIG_DYNAMIC_DEBUG is not set 1701# CONFIG_DYNAMIC_DEBUG is not set
1702# CONFIG_DMA_API_DEBUG is not set
1695# CONFIG_SAMPLES is not set 1703# CONFIG_SAMPLES is not set
1696CONFIG_HAVE_ARCH_KGDB=y 1704CONFIG_HAVE_ARCH_KGDB=y
1697# CONFIG_KGDB is not set 1705# CONFIG_KGDB is not set
@@ -1716,7 +1724,6 @@ CONFIG_CRYPTO=y
1716# 1724#
1717# Crypto core or helper 1725# Crypto core or helper
1718# 1726#
1719# CONFIG_CRYPTO_FIPS is not set
1720CONFIG_CRYPTO_ALGAPI=y 1727CONFIG_CRYPTO_ALGAPI=y
1721CONFIG_CRYPTO_ALGAPI2=y 1728CONFIG_CRYPTO_ALGAPI2=y
1722CONFIG_CRYPTO_AEAD=y 1729CONFIG_CRYPTO_AEAD=y
@@ -1759,11 +1766,13 @@ CONFIG_CRYPTO_XTS=m
1759# 1766#
1760CONFIG_CRYPTO_HMAC=y 1767CONFIG_CRYPTO_HMAC=y
1761CONFIG_CRYPTO_XCBC=y 1768CONFIG_CRYPTO_XCBC=y
1769# CONFIG_CRYPTO_VMAC is not set
1762 1770
1763# 1771#
1764# Digest 1772# Digest
1765# 1773#
1766CONFIG_CRYPTO_CRC32C=m 1774CONFIG_CRYPTO_CRC32C=m
1775# CONFIG_CRYPTO_GHASH is not set
1767CONFIG_CRYPTO_MD4=y 1776CONFIG_CRYPTO_MD4=y
1768CONFIG_CRYPTO_MD5=y 1777CONFIG_CRYPTO_MD5=y
1769CONFIG_CRYPTO_MICHAEL_MIC=m 1778CONFIG_CRYPTO_MICHAEL_MIC=m
diff --git a/arch/sparc/kernel/setup_32.c b/arch/sparc/kernel/setup_32.c
index 16a47ffe03c1..9be2af55c5cd 100644
--- a/arch/sparc/kernel/setup_32.c
+++ b/arch/sparc/kernel/setup_32.c
@@ -268,8 +268,6 @@ void __init setup_arch(char **cmdline_p)
268 268
269#ifdef CONFIG_DUMMY_CONSOLE 269#ifdef CONFIG_DUMMY_CONSOLE
270 conswitchp = &dummy_con; 270 conswitchp = &dummy_con;
271#elif defined(CONFIG_PROM_CONSOLE)
272 conswitchp = &prom_con;
273#endif 271#endif
274 boot_flags_init(*cmdline_p); 272 boot_flags_init(*cmdline_p);
275 273
diff --git a/arch/sparc/kernel/setup_64.c b/arch/sparc/kernel/setup_64.c
index f2bcfd2967d7..21180339cb09 100644
--- a/arch/sparc/kernel/setup_64.c
+++ b/arch/sparc/kernel/setup_64.c
@@ -295,8 +295,6 @@ void __init setup_arch(char **cmdline_p)
295 295
296#ifdef CONFIG_DUMMY_CONSOLE 296#ifdef CONFIG_DUMMY_CONSOLE
297 conswitchp = &dummy_con; 297 conswitchp = &dummy_con;
298#elif defined(CONFIG_PROM_CONSOLE)
299 conswitchp = &prom_con;
300#endif 298#endif
301 299
302 idprom_init(); 300 idprom_init();
diff --git a/drivers/char/vt.c b/drivers/char/vt.c
index 404f4c1ee431..6aa88f50b039 100644
--- a/drivers/char/vt.c
+++ b/drivers/char/vt.c
@@ -2948,9 +2948,6 @@ int __init vty_init(const struct file_operations *console_fops)
2948 panic("Couldn't register console driver\n"); 2948 panic("Couldn't register console driver\n");
2949 kbd_init(); 2949 kbd_init();
2950 console_map_init(); 2950 console_map_init();
2951#ifdef CONFIG_PROM_CONSOLE
2952 prom_con_init();
2953#endif
2954#ifdef CONFIG_MDA_CONSOLE 2951#ifdef CONFIG_MDA_CONSOLE
2955 mda_console_init(); 2952 mda_console_init();
2956#endif 2953#endif
diff --git a/drivers/video/console/.gitignore b/drivers/video/console/.gitignore
deleted file mode 100644
index 0c258b45439c..000000000000
--- a/drivers/video/console/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
1# conmakehash generated file
2promcon_tbl.c
diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
index 2f50a80b413e..fc7d9bbb548c 100644
--- a/drivers/video/console/Kconfig
+++ b/drivers/video/console/Kconfig
@@ -67,16 +67,9 @@ config SGI_NEWPORT_CONSOLE
67 67
68# bool 'IODC console' CONFIG_IODC_CONSOLE 68# bool 'IODC console' CONFIG_IODC_CONSOLE
69 69
70config PROM_CONSOLE
71 bool "PROM console"
72 depends on SPARC
73 help
74 Say Y to build a console driver for Sun machines that uses the
75 terminal emulation built into their console PROMS.
76
77config DUMMY_CONSOLE 70config DUMMY_CONSOLE
78 bool 71 bool
79 depends on PROM_CONSOLE!=y || VGA_CONSOLE!=y || SGI_NEWPORT_CONSOLE!=y 72 depends on VGA_CONSOLE!=y || SGI_NEWPORT_CONSOLE!=y
80 default y 73 default y
81 74
82config DUMMY_CONSOLE_COLUMNS 75config DUMMY_CONSOLE_COLUMNS
diff --git a/drivers/video/console/Makefile b/drivers/video/console/Makefile
index ac46cc3f6a2a..a862e9173ebe 100644
--- a/drivers/video/console/Makefile
+++ b/drivers/video/console/Makefile
@@ -22,7 +22,6 @@ font-objs += $(font-objs-y)
22 22
23obj-$(CONFIG_DUMMY_CONSOLE) += dummycon.o 23obj-$(CONFIG_DUMMY_CONSOLE) += dummycon.o
24obj-$(CONFIG_SGI_NEWPORT_CONSOLE) += newport_con.o font.o 24obj-$(CONFIG_SGI_NEWPORT_CONSOLE) += newport_con.o font.o
25obj-$(CONFIG_PROM_CONSOLE) += promcon.o promcon_tbl.o
26obj-$(CONFIG_STI_CONSOLE) += sticon.o sticore.o font.o 25obj-$(CONFIG_STI_CONSOLE) += sticon.o sticore.o font.o
27obj-$(CONFIG_VGA_CONSOLE) += vgacon.o 26obj-$(CONFIG_VGA_CONSOLE) += vgacon.o
28obj-$(CONFIG_MDA_CONSOLE) += mdacon.o 27obj-$(CONFIG_MDA_CONSOLE) += mdacon.o
@@ -40,14 +39,3 @@ obj-$(CONFIG_FB_STI) += sticore.o font.o
40ifeq ($(CONFIG_USB_SISUSBVGA_CON),y) 39ifeq ($(CONFIG_USB_SISUSBVGA_CON),y)
41obj-$(CONFIG_USB_SISUSBVGA) += font.o 40obj-$(CONFIG_USB_SISUSBVGA) += font.o
42endif 41endif
43
44# Targets that kbuild needs to know about
45targets := promcon_tbl.c
46
47quiet_cmd_conmakehash = CNMKHSH $@
48 cmd_conmakehash = scripts/conmakehash $< | \
49 sed -e '/\#include <[^>]*>/p' -e 's/types/init/' \
50 -e 's/dfont\(_uni.*\]\)/promfont\1 /' > $@
51
52$(obj)/promcon_tbl.c: $(src)/prom.uni
53 $(call cmd,conmakehash)
diff --git a/drivers/video/console/prom.uni b/drivers/video/console/prom.uni
deleted file mode 100644
index 58f9c04ed9d3..000000000000
--- a/drivers/video/console/prom.uni
+++ /dev/null
@@ -1,11 +0,0 @@
1#
2# Unicode mapping table for font in Sun PROM
3#
4#
50x20-0x7e idem
60xa0-0xff idem
7#
80x7c U+2502
90x2d U+2500
100x2b U+250c U+2510 U+2514 U+2518 U+251c U+2524 U+252c U+2534 U+253c
110xa4 U+fffd
diff --git a/drivers/video/console/promcon.c b/drivers/video/console/promcon.c
deleted file mode 100644
index ae02e4eb18e7..000000000000
--- a/drivers/video/console/promcon.c
+++ /dev/null
@@ -1,598 +0,0 @@
1/* $Id: promcon.c,v 1.17 2000/07/26 23:02:52 davem Exp $
2 * Console driver utilizing PROM sun terminal emulation
3 *
4 * Copyright (C) 1998 Eddie C. Dost (ecd@skynet.be)
5 * Copyright (C) 1998 Jakub Jelinek (jj@ultra.linux.cz)
6 */
7
8#include <linux/module.h>
9#include <linux/kernel.h>
10#include <linux/errno.h>
11#include <linux/string.h>
12#include <linux/mm.h>
13#include <linux/slab.h>
14#include <linux/delay.h>
15#include <linux/console.h>
16#include <linux/vt_kern.h>
17#include <linux/selection.h>
18#include <linux/fb.h>
19#include <linux/init.h>
20#include <linux/kd.h>
21
22#include <asm/oplib.h>
23#include <asm/uaccess.h>
24
25static short pw = 80 - 1, ph = 34 - 1;
26static short px, py;
27static unsigned long promcon_uni_pagedir[2];
28
29extern u8 promfont_unicount[];
30extern u16 promfont_unitable[];
31
32#define PROMCON_COLOR 0
33
34#if PROMCON_COLOR
35#define inverted(s) ((((s) & 0x7700) == 0x0700) ? 0 : 1)
36#else
37#define inverted(s) (((s) & 0x0800) ? 1 : 0)
38#endif
39
40static __inline__ void
41promcon_puts(char *buf, int cnt)
42{
43 prom_printf("%*.*s", cnt, cnt, buf);
44}
45
46static int
47promcon_start(struct vc_data *conp, char *b)
48{
49 unsigned short *s = (unsigned short *)
50 (conp->vc_origin + py * conp->vc_size_row + (px << 1));
51 u16 cs;
52
53 cs = scr_readw(s);
54 if (px == pw) {
55 unsigned short *t = s - 1;
56 u16 ct = scr_readw(t);
57
58 if (inverted(cs) && inverted(ct))
59 return sprintf(b, "\b\033[7m%c\b\033[@%c\033[m", cs,
60 ct);
61 else if (inverted(cs))
62 return sprintf(b, "\b\033[7m%c\033[m\b\033[@%c", cs,
63 ct);
64 else if (inverted(ct))
65 return sprintf(b, "\b%c\b\033[@\033[7m%c\033[m", cs,
66 ct);
67 else
68 return sprintf(b, "\b%c\b\033[@%c", cs, ct);
69 }
70
71 if (inverted(cs))
72 return sprintf(b, "\033[7m%c\033[m\b", cs);
73 else
74 return sprintf(b, "%c\b", cs);
75}
76
77static int
78promcon_end(struct vc_data *conp, char *b)
79{
80 unsigned short *s = (unsigned short *)
81 (conp->vc_origin + py * conp->vc_size_row + (px << 1));
82 char *p = b;
83 u16 cs;
84
85 b += sprintf(b, "\033[%d;%dH", py + 1, px + 1);
86
87 cs = scr_readw(s);
88 if (px == pw) {
89 unsigned short *t = s - 1;
90 u16 ct = scr_readw(t);
91
92 if (inverted(cs) && inverted(ct))
93 b += sprintf(b, "\b%c\b\033[@\033[7m%c\033[m", cs, ct);
94 else if (inverted(cs))
95 b += sprintf(b, "\b%c\b\033[@%c", cs, ct);
96 else if (inverted(ct))
97 b += sprintf(b, "\b\033[7m%c\b\033[@%c\033[m", cs, ct);
98 else
99 b += sprintf(b, "\b\033[7m%c\033[m\b\033[@%c", cs, ct);
100 return b - p;
101 }
102
103 if (inverted(cs))
104 b += sprintf(b, "%c\b", cs);
105 else
106 b += sprintf(b, "\033[7m%c\033[m\b", cs);
107 return b - p;
108}
109
110const char *promcon_startup(void)
111{
112 const char *display_desc = "PROM";
113 int node;
114 char buf[40];
115
116 node = prom_getchild(prom_root_node);
117 node = prom_searchsiblings(node, "options");
118 if (prom_getproperty(node, "screen-#columns", buf, 40) != -1) {
119 pw = simple_strtoul(buf, NULL, 0);
120 if (pw < 10 || pw > 256)
121 pw = 80;
122 pw--;
123 }
124 if (prom_getproperty(node, "screen-#rows", buf, 40) != -1) {
125 ph = simple_strtoul(buf, NULL, 0);
126 if (ph < 10 || ph > 256)
127 ph = 34;
128 ph--;
129 }
130 promcon_puts("\033[H\033[J", 6);
131 return display_desc;
132}
133
134static void
135promcon_init_unimap(struct vc_data *conp)
136{
137 mm_segment_t old_fs = get_fs();
138 struct unipair *p, *p1;
139 u16 *q;
140 int i, j, k;
141
142 p = kmalloc(256*sizeof(struct unipair), GFP_KERNEL);
143 if (!p) return;
144
145 q = promfont_unitable;
146 p1 = p;
147 k = 0;
148 for (i = 0; i < 256; i++)
149 for (j = promfont_unicount[i]; j; j--) {
150 p1->unicode = *q++;
151 p1->fontpos = i;
152 p1++;
153 k++;
154 }
155 set_fs(KERNEL_DS);
156 con_clear_unimap(conp, NULL);
157 con_set_unimap(conp, k, p);
158 con_protect_unimap(conp, 1);
159 set_fs(old_fs);
160 kfree(p);
161}
162
163static void
164promcon_init(struct vc_data *conp, int init)
165{
166 unsigned long p;
167
168 conp->vc_can_do_color = PROMCON_COLOR;
169 if (init) {
170 conp->vc_cols = pw + 1;
171 conp->vc_rows = ph + 1;
172 }
173 p = *conp->vc_uni_pagedir_loc;
174 if (conp->vc_uni_pagedir_loc == &conp->vc_uni_pagedir ||
175 !--conp->vc_uni_pagedir_loc[1])
176 con_free_unimap(conp);
177 conp->vc_uni_pagedir_loc = promcon_uni_pagedir;
178 promcon_uni_pagedir[1]++;
179 if (!promcon_uni_pagedir[0] && p) {
180 promcon_init_unimap(conp);
181 }
182 if (!init) {
183 if (conp->vc_cols != pw + 1 || conp->vc_rows != ph + 1)
184 vc_resize(conp, pw + 1, ph + 1);
185 }
186}
187
188static void
189promcon_deinit(struct vc_data *conp)
190{
191 /* When closing the last console, reset video origin */
192 if (!--promcon_uni_pagedir[1])
193 con_free_unimap(conp);
194 conp->vc_uni_pagedir_loc = &conp->vc_uni_pagedir;
195 con_set_default_unimap(conp);
196}
197
198static int
199promcon_switch(struct vc_data *conp)
200{
201 return 1;
202}
203
204static unsigned short *
205promcon_repaint_line(unsigned short *s, unsigned char *buf, unsigned char **bp)
206{
207 int cnt = pw + 1;
208 int attr = -1;
209 unsigned char *b = *bp;
210
211 while (cnt--) {
212 u16 c = scr_readw(s);
213 if (attr != inverted(c)) {
214 attr = inverted(c);
215 if (attr) {
216 strcpy (b, "\033[7m");
217 b += 4;
218 } else {
219 strcpy (b, "\033[m");
220 b += 3;
221 }
222 }
223 *b++ = c;
224 s++;
225 if (b - buf >= 224) {
226 promcon_puts(buf, b - buf);
227 b = buf;
228 }
229 }
230 *bp = b;
231 return s;
232}
233
234static void
235promcon_putcs(struct vc_data *conp, const unsigned short *s,
236 int count, int y, int x)
237{
238 unsigned char buf[256], *b = buf;
239 unsigned short attr = scr_readw(s);
240 unsigned char save;
241 int i, last = 0;
242
243 if (console_blanked)
244 return;
245
246 if (count <= 0)
247 return;
248
249 b += promcon_start(conp, b);
250
251 if (x + count >= pw + 1) {
252 if (count == 1) {
253 x -= 1;
254 save = scr_readw((unsigned short *)(conp->vc_origin
255 + y * conp->vc_size_row
256 + (x << 1)));
257
258 if (px != x || py != y) {
259 b += sprintf(b, "\033[%d;%dH", y + 1, x + 1);
260 px = x;
261 py = y;
262 }
263
264 if (inverted(attr))
265 b += sprintf(b, "\033[7m%c\033[m", scr_readw(s++));
266 else
267 b += sprintf(b, "%c", scr_readw(s++));
268
269 strcpy(b, "\b\033[@");
270 b += 4;
271
272 if (inverted(save))
273 b += sprintf(b, "\033[7m%c\033[m", save);
274 else
275 b += sprintf(b, "%c", save);
276
277 px++;
278
279 b += promcon_end(conp, b);
280 promcon_puts(buf, b - buf);
281 return;
282 } else {
283 last = 1;
284 count = pw - x - 1;
285 }
286 }
287
288 if (inverted(attr)) {
289 strcpy(b, "\033[7m");
290 b += 4;
291 }
292
293 if (px != x || py != y) {
294 b += sprintf(b, "\033[%d;%dH", y + 1, x + 1);
295 px = x;
296 py = y;
297 }
298
299 for (i = 0; i < count; i++) {
300 if (b - buf >= 224) {
301 promcon_puts(buf, b - buf);
302 b = buf;
303 }
304 *b++ = scr_readw(s++);
305 }
306
307 px += count;
308
309 if (last) {
310 save = scr_readw(s++);
311 b += sprintf(b, "%c\b\033[@%c", scr_readw(s++), save);
312 px++;
313 }
314
315 if (inverted(attr)) {
316 strcpy(b, "\033[m");
317 b += 3;
318 }
319
320 b += promcon_end(conp, b);
321 promcon_puts(buf, b - buf);
322}
323
324static void
325promcon_putc(struct vc_data *conp, int c, int y, int x)
326{
327 unsigned short s;
328
329 if (console_blanked)
330 return;
331
332 scr_writew(c, &s);
333 promcon_putcs(conp, &s, 1, y, x);
334}
335
336static void
337promcon_clear(struct vc_data *conp, int sy, int sx, int height, int width)
338{
339 unsigned char buf[256], *b = buf;
340 int i, j;
341
342 if (console_blanked)
343 return;
344
345 b += promcon_start(conp, b);
346
347 if (!sx && width == pw + 1) {
348
349 if (!sy && height == ph + 1) {
350 strcpy(b, "\033[H\033[J");
351 b += 6;
352 b += promcon_end(conp, b);
353 promcon_puts(buf, b - buf);
354 return;
355 } else if (sy + height == ph + 1) {
356 b += sprintf(b, "\033[%dH\033[J", sy + 1);
357 b += promcon_end(conp, b);
358 promcon_puts(buf, b - buf);
359 return;
360 }
361
362 b += sprintf(b, "\033[%dH", sy + 1);
363 for (i = 1; i < height; i++) {
364 strcpy(b, "\033[K\n");
365 b += 4;
366 }
367
368 strcpy(b, "\033[K");
369 b += 3;
370
371 b += promcon_end(conp, b);
372 promcon_puts(buf, b - buf);
373 return;
374
375 } else if (sx + width == pw + 1) {
376
377 b += sprintf(b, "\033[%d;%dH", sy + 1, sx + 1);
378 for (i = 1; i < height; i++) {
379 strcpy(b, "\033[K\n");
380 b += 4;
381 }
382
383 strcpy(b, "\033[K");
384 b += 3;
385
386 b += promcon_end(conp, b);
387 promcon_puts(buf, b - buf);
388 return;
389 }
390
391 for (i = sy + 1; i <= sy + height; i++) {
392 b += sprintf(b, "\033[%d;%dH", i, sx + 1);
393 for (j = 0; j < width; j++)
394 *b++ = ' ';
395 if (b - buf + width >= 224) {
396 promcon_puts(buf, b - buf);
397 b = buf;
398 }
399 }
400
401 b += promcon_end(conp, b);
402 promcon_puts(buf, b - buf);
403}
404
405static void
406promcon_bmove(struct vc_data *conp, int sy, int sx, int dy, int dx,
407 int height, int width)
408{
409 char buf[256], *b = buf;
410
411 if (console_blanked)
412 return;
413
414 b += promcon_start(conp, b);
415 if (sy == dy && height == 1) {
416 if (dx > sx && dx + width == conp->vc_cols)
417 b += sprintf(b, "\033[%d;%dH\033[%d@\033[%d;%dH",
418 sy + 1, sx + 1, dx - sx, py + 1, px + 1);
419 else if (dx < sx && sx + width == conp->vc_cols)
420 b += sprintf(b, "\033[%d;%dH\033[%dP\033[%d;%dH",
421 dy + 1, dx + 1, sx - dx, py + 1, px + 1);
422
423 b += promcon_end(conp, b);
424 promcon_puts(buf, b - buf);
425 return;
426 }
427
428 /*
429 * FIXME: What to do here???
430 * Current console.c should not call it like that ever.
431 */
432 prom_printf("\033[7mFIXME: bmove not handled\033[m\n");
433}
434
435static void
436promcon_cursor(struct vc_data *conp, int mode)
437{
438 char buf[32], *b = buf;
439
440 switch (mode) {
441 case CM_ERASE:
442 break;
443
444 case CM_MOVE:
445 case CM_DRAW:
446 b += promcon_start(conp, b);
447 if (px != conp->vc_x || py != conp->vc_y) {
448 px = conp->vc_x;
449 py = conp->vc_y;
450 b += sprintf(b, "\033[%d;%dH", py + 1, px + 1);
451 }
452 promcon_puts(buf, b - buf);
453 break;
454 }
455}
456
457static int
458promcon_blank(struct vc_data *conp, int blank, int mode_switch)
459{
460 if (blank) {
461 promcon_puts("\033[H\033[J\033[7m \033[m\b", 15);
462 return 0;
463 } else {
464 /* Let console.c redraw */
465 return 1;
466 }
467}
468
469static int
470promcon_scroll(struct vc_data *conp, int t, int b, int dir, int count)
471{
472 unsigned char buf[256], *p = buf;
473 unsigned short *s;
474 int i;
475
476 if (console_blanked)
477 return 0;
478
479 p += promcon_start(conp, p);
480
481 switch (dir) {
482 case SM_UP:
483 if (b == ph + 1) {
484 p += sprintf(p, "\033[%dH\033[%dM", t + 1, count);
485 px = 0;
486 py = t;
487 p += promcon_end(conp, p);
488 promcon_puts(buf, p - buf);
489 break;
490 }
491
492 s = (unsigned short *)(conp->vc_origin
493 + (t + count) * conp->vc_size_row);
494
495 p += sprintf(p, "\033[%dH", t + 1);
496
497 for (i = t; i < b - count; i++)
498 s = promcon_repaint_line(s, buf, &p);
499
500 for (; i < b - 1; i++) {
501 strcpy(p, "\033[K\n");
502 p += 4;
503 if (p - buf >= 224) {
504 promcon_puts(buf, p - buf);
505 p = buf;
506 }
507 }
508
509 strcpy(p, "\033[K");
510 p += 3;
511
512 p += promcon_end(conp, p);
513 promcon_puts(buf, p - buf);
514 break;
515
516 case SM_DOWN:
517 if (b == ph + 1) {
518 p += sprintf(p, "\033[%dH\033[%dL", t + 1, count);
519 px = 0;
520 py = t;
521 p += promcon_end(conp, p);
522 promcon_puts(buf, p - buf);
523 break;
524 }
525
526 s = (unsigned short *)(conp->vc_origin + t * conp->vc_size_row);
527
528 p += sprintf(p, "\033[%dH", t + 1);
529
530 for (i = t; i < t + count; i++) {
531 strcpy(p, "\033[K\n");
532 p += 4;
533 if (p - buf >= 224) {
534 promcon_puts(buf, p - buf);
535 p = buf;
536 }
537 }
538
539 for (; i < b; i++)
540 s = promcon_repaint_line(s, buf, &p);
541
542 p += promcon_end(conp, p);
543 promcon_puts(buf, p - buf);
544 break;
545 }
546
547 return 0;
548}
549
550#if !(PROMCON_COLOR)
551static u8 promcon_build_attr(struct vc_data *conp, u8 _color, u8 _intensity,
552 u8 _blink, u8 _underline, u8 _reverse, u8 _italic)
553{
554 return (_reverse) ? 0xf : 0x7;
555}
556#endif
557
558/*
559 * The console 'switch' structure for the VGA based console
560 */
561
562static int promcon_dummy(void)
563{
564 return 0;
565}
566
567#define DUMMY (void *) promcon_dummy
568
569const struct consw prom_con = {
570 .owner = THIS_MODULE,
571 .con_startup = promcon_startup,
572 .con_init = promcon_init,
573 .con_deinit = promcon_deinit,
574 .con_clear = promcon_clear,
575 .con_putc = promcon_putc,
576 .con_putcs = promcon_putcs,
577 .con_cursor = promcon_cursor,
578 .con_scroll = promcon_scroll,
579 .con_bmove = promcon_bmove,
580 .con_switch = promcon_switch,
581 .con_blank = promcon_blank,
582 .con_set_palette = DUMMY,
583 .con_scrolldelta = DUMMY,
584#if !(PROMCON_COLOR)
585 .con_build_attr = promcon_build_attr,
586#endif
587};
588
589void __init prom_con_init(void)
590{
591#ifdef CONFIG_DUMMY_CONSOLE
592 if (conswitchp == &dummy_con)
593 take_over_console(&prom_con, 0, MAX_NR_CONSOLES-1, 1);
594 else
595#endif
596 if (conswitchp == &prom_con)
597 promcon_init_unimap(vc_cons[fg_console].d);
598}
diff --git a/scripts/Makefile b/scripts/Makefile
index 9dd5b25a1d53..842dbc2d5aed 100644
--- a/scripts/Makefile
+++ b/scripts/Makefile
@@ -10,7 +10,6 @@
10hostprogs-$(CONFIG_KALLSYMS) += kallsyms 10hostprogs-$(CONFIG_KALLSYMS) += kallsyms
11hostprogs-$(CONFIG_LOGO) += pnmtologo 11hostprogs-$(CONFIG_LOGO) += pnmtologo
12hostprogs-$(CONFIG_VT) += conmakehash 12hostprogs-$(CONFIG_VT) += conmakehash
13hostprogs-$(CONFIG_PROM_CONSOLE) += conmakehash
14hostprogs-$(CONFIG_IKCONFIG) += bin2c 13hostprogs-$(CONFIG_IKCONFIG) += bin2c
15 14
16always := $(hostprogs-y) $(hostprogs-m) 15always := $(hostprogs-y) $(hostprogs-m)