[DIRECTFB] Placeholder
[openwrt/mini2440.git] / target / linux / mini2440 / patches-2.6.29 / 000-mini2440.patch
blob9d67cd6cd6a7b119de2407e22bc3bb3b67a06000
1 diff --git a/Makefile b/Makefile
2 index df6ce3e..0addac9 100644
3 --- a/Makefile
4 +++ b/Makefile
5 @@ -190,8 +190,11 @@ SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
6 # Default value for CROSS_COMPILE is not to prefix executables
7 # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
8 export KBUILD_BUILDHOST := $(SUBARCH)
9 -ARCH ?= $(SUBARCH)
10 -CROSS_COMPILE ?=
11 +#ARCH ?= $(SUBARCH)
12 +#CROSS_COMPILE ?=
14 +ARCH ?= arm
15 +CROSS_COMPILE ?= /opt/build/arm-gcc/arm-angstrom-linux-gnueabi-
17 # Architecture as present in compile.h
18 UTS_MACHINE := $(ARCH)
19 diff --git a/arch/arm/Makefile b/arch/arm/Makefile
20 index 24e0f01..f47f9c9 100644
21 --- a/arch/arm/Makefile
22 +++ b/arch/arm/Makefile
23 @@ -68,7 +68,7 @@ tune-$(CONFIG_CPU_ARM740T) :=-mtune=arm7tdmi
24 tune-$(CONFIG_CPU_ARM9TDMI) :=-mtune=arm9tdmi
25 tune-$(CONFIG_CPU_ARM940T) :=-mtune=arm9tdmi
26 tune-$(CONFIG_CPU_ARM946E) :=$(call cc-option,-mtune=arm9e,-mtune=arm9tdmi)
27 -tune-$(CONFIG_CPU_ARM920T) :=-mtune=arm9tdmi
28 +tune-$(CONFIG_CPU_ARM920T) :=-mtune=arm920t
29 tune-$(CONFIG_CPU_ARM922T) :=-mtune=arm9tdmi
30 tune-$(CONFIG_CPU_ARM925T) :=-mtune=arm9tdmi
31 tune-$(CONFIG_CPU_ARM926T) :=-mtune=arm9tdmi
32 diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile
33 index da226ab..f260407 100644
34 --- a/arch/arm/boot/Makefile
35 +++ b/arch/arm/boot/Makefile
36 @@ -55,6 +55,8 @@ $(obj)/compressed/vmlinux: $(obj)/Image FORCE
38 $(obj)/zImage: $(obj)/compressed/vmlinux FORCE
39 $(call if_changed,objcopy)
40 + mkimage -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d $(obj)/zImage /tftpboot/uImage
41 + dd bs=512 if=/tftpboot/uImage of=/tftpboot/uImage-nand512 conv=sync
42 @echo ' Kernel: $@ is ready'
44 endif
45 diff --git a/arch/arm/configs/mini2440_defconfig b/arch/arm/configs/mini2440_defconfig
46 new file mode 100644
47 index 0000000..03d2b24
48 --- /dev/null
49 +++ b/arch/arm/configs/mini2440_defconfig
50 @@ -0,0 +1,1868 @@
52 +# Automatically generated make config: don't edit
53 +# Linux kernel version: 2.6.29-rc5
54 +# Tue Feb 17 15:40:14 2009
56 +CONFIG_ARM=y
57 +CONFIG_HAVE_PWM=y
58 +CONFIG_SYS_SUPPORTS_APM_EMULATION=y
59 +CONFIG_GENERIC_GPIO=y
60 +# CONFIG_GENERIC_TIME is not set
61 +# CONFIG_GENERIC_CLOCKEVENTS is not set
62 +CONFIG_MMU=y
63 +CONFIG_NO_IOPORT=y
64 +CONFIG_GENERIC_HARDIRQS=y
65 +CONFIG_STACKTRACE_SUPPORT=y
66 +CONFIG_HAVE_LATENCYTOP_SUPPORT=y
67 +CONFIG_LOCKDEP_SUPPORT=y
68 +CONFIG_TRACE_IRQFLAGS_SUPPORT=y
69 +CONFIG_HARDIRQS_SW_RESEND=y
70 +CONFIG_GENERIC_IRQ_PROBE=y
71 +CONFIG_RWSEM_GENERIC_SPINLOCK=y
72 +# CONFIG_ARCH_HAS_ILOG2_U32 is not set
73 +# CONFIG_ARCH_HAS_ILOG2_U64 is not set
74 +CONFIG_GENERIC_HWEIGHT=y
75 +CONFIG_GENERIC_CALIBRATE_DELAY=y
76 +CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
77 +CONFIG_VECTORS_BASE=0xffff0000
78 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
81 +# General setup
83 +CONFIG_EXPERIMENTAL=y
84 +CONFIG_BROKEN_ON_SMP=y
85 +CONFIG_LOCK_KERNEL=y
86 +CONFIG_INIT_ENV_ARG_LIMIT=32
87 +CONFIG_LOCALVERSION="-michel"
88 +# CONFIG_LOCALVERSION_AUTO is not set
89 +CONFIG_SWAP=y
90 +CONFIG_SYSVIPC=y
91 +CONFIG_SYSVIPC_SYSCTL=y
92 +CONFIG_POSIX_MQUEUE=y
93 +CONFIG_BSD_PROCESS_ACCT=y
94 +CONFIG_BSD_PROCESS_ACCT_V3=y
95 +CONFIG_TASKSTATS=y
96 +# CONFIG_TASK_DELAY_ACCT is not set
97 +CONFIG_TASK_XACCT=y
98 +CONFIG_TASK_IO_ACCOUNTING=y
99 +CONFIG_AUDIT=y
102 +# RCU Subsystem
104 +CONFIG_CLASSIC_RCU=y
105 +# CONFIG_TREE_RCU is not set
106 +# CONFIG_PREEMPT_RCU is not set
107 +# CONFIG_TREE_RCU_TRACE is not set
108 +# CONFIG_PREEMPT_RCU_TRACE is not set
109 +# CONFIG_IKCONFIG is not set
110 +CONFIG_LOG_BUF_SHIFT=17
111 +CONFIG_GROUP_SCHED=y
112 +CONFIG_FAIR_GROUP_SCHED=y
113 +CONFIG_RT_GROUP_SCHED=y
114 +# CONFIG_USER_SCHED is not set
115 +CONFIG_CGROUP_SCHED=y
116 +CONFIG_CGROUPS=y
117 +# CONFIG_CGROUP_DEBUG is not set
118 +CONFIG_CGROUP_NS=y
119 +# CONFIG_CGROUP_FREEZER is not set
120 +# CONFIG_CGROUP_DEVICE is not set
121 +CONFIG_CGROUP_CPUACCT=y
122 +CONFIG_RESOURCE_COUNTERS=y
123 +CONFIG_CGROUP_MEM_RES_CTLR=y
124 +# CONFIG_CGROUP_MEM_RES_CTLR_SWAP is not set
125 +CONFIG_MM_OWNER=y
126 +# CONFIG_SYSFS_DEPRECATED_V2 is not set
127 +CONFIG_RELAY=y
128 +CONFIG_NAMESPACES=y
129 +CONFIG_UTS_NS=y
130 +CONFIG_IPC_NS=y
131 +# CONFIG_USER_NS is not set
132 +# CONFIG_PID_NS is not set
133 +# CONFIG_NET_NS is not set
134 +CONFIG_BLK_DEV_INITRD=y
135 +CONFIG_INITRAMFS_SOURCE=""
136 +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
137 +CONFIG_SYSCTL=y
138 +# CONFIG_EMBEDDED is not set
139 +CONFIG_UID16=y
140 +CONFIG_SYSCTL_SYSCALL=y
141 +CONFIG_KALLSYMS=y
142 +# CONFIG_KALLSYMS_EXTRA_PASS is not set
143 +CONFIG_HOTPLUG=y
144 +CONFIG_PRINTK=y
145 +CONFIG_BUG=y
146 +CONFIG_ELF_CORE=y
147 +# CONFIG_COMPAT_BRK is not set
148 +CONFIG_BASE_FULL=y
149 +CONFIG_FUTEX=y
150 +CONFIG_ANON_INODES=y
151 +CONFIG_EPOLL=y
152 +CONFIG_SIGNALFD=y
153 +CONFIG_TIMERFD=y
154 +CONFIG_EVENTFD=y
155 +CONFIG_SHMEM=y
156 +CONFIG_AIO=y
157 +CONFIG_VM_EVENT_COUNTERS=y
158 +CONFIG_SLUB_DEBUG=y
159 +# CONFIG_SLAB is not set
160 +CONFIG_SLUB=y
161 +# CONFIG_SLOB is not set
162 +CONFIG_PROFILING=y
163 +CONFIG_TRACEPOINTS=y
164 +CONFIG_MARKERS=y
165 +CONFIG_OPROFILE=m
166 +CONFIG_HAVE_OPROFILE=y
167 +CONFIG_KPROBES=y
168 +CONFIG_KRETPROBES=y
169 +CONFIG_HAVE_KPROBES=y
170 +CONFIG_HAVE_KRETPROBES=y
171 +CONFIG_HAVE_CLK=y
172 +CONFIG_HAVE_GENERIC_DMA_COHERENT=y
173 +CONFIG_SLABINFO=y
174 +CONFIG_RT_MUTEXES=y
175 +CONFIG_BASE_SMALL=0
176 +CONFIG_MODULES=y
177 +# CONFIG_MODULE_FORCE_LOAD is not set
178 +CONFIG_MODULE_UNLOAD=y
179 +# CONFIG_MODULE_FORCE_UNLOAD is not set
180 +CONFIG_MODVERSIONS=y
181 +CONFIG_MODULE_SRCVERSION_ALL=y
182 +CONFIG_BLOCK=y
183 +CONFIG_LBD=y
184 +CONFIG_BLK_DEV_IO_TRACE=y
185 +# CONFIG_BLK_DEV_BSG is not set
186 +CONFIG_BLK_DEV_INTEGRITY=y
189 +# IO Schedulers
191 +CONFIG_IOSCHED_NOOP=y
192 +CONFIG_IOSCHED_AS=y
193 +CONFIG_IOSCHED_DEADLINE=y
194 +CONFIG_IOSCHED_CFQ=y
195 +# CONFIG_DEFAULT_AS is not set
196 +# CONFIG_DEFAULT_DEADLINE is not set
197 +CONFIG_DEFAULT_CFQ=y
198 +# CONFIG_DEFAULT_NOOP is not set
199 +CONFIG_DEFAULT_IOSCHED="cfq"
200 +CONFIG_FREEZER=y
203 +# System Type
205 +# CONFIG_ARCH_AAEC2000 is not set
206 +# CONFIG_ARCH_INTEGRATOR is not set
207 +# CONFIG_ARCH_REALVIEW is not set
208 +# CONFIG_ARCH_VERSATILE is not set
209 +# CONFIG_ARCH_AT91 is not set
210 +# CONFIG_ARCH_CLPS711X is not set
211 +# CONFIG_ARCH_EBSA110 is not set
212 +# CONFIG_ARCH_EP93XX is not set
213 +# CONFIG_ARCH_FOOTBRIDGE is not set
214 +# CONFIG_ARCH_NETX is not set
215 +# CONFIG_ARCH_H720X is not set
216 +# CONFIG_ARCH_IMX is not set
217 +# CONFIG_ARCH_IOP13XX is not set
218 +# CONFIG_ARCH_IOP32X is not set
219 +# CONFIG_ARCH_IOP33X is not set
220 +# CONFIG_ARCH_IXP23XX is not set
221 +# CONFIG_ARCH_IXP2000 is not set
222 +# CONFIG_ARCH_IXP4XX is not set
223 +# CONFIG_ARCH_L7200 is not set
224 +# CONFIG_ARCH_KIRKWOOD is not set
225 +# CONFIG_ARCH_KS8695 is not set
226 +# CONFIG_ARCH_NS9XXX is not set
227 +# CONFIG_ARCH_LOKI is not set
228 +# CONFIG_ARCH_MV78XX0 is not set
229 +# CONFIG_ARCH_MXC is not set
230 +# CONFIG_ARCH_ORION5X is not set
231 +# CONFIG_ARCH_PNX4008 is not set
232 +# CONFIG_ARCH_PXA is not set
233 +# CONFIG_ARCH_RPC is not set
234 +# CONFIG_ARCH_SA1100 is not set
235 +CONFIG_ARCH_S3C2410=y
236 +# CONFIG_ARCH_S3C64XX is not set
237 +# CONFIG_ARCH_SHARK is not set
238 +# CONFIG_ARCH_LH7A40X is not set
239 +# CONFIG_ARCH_DAVINCI is not set
240 +# CONFIG_ARCH_OMAP is not set
241 +# CONFIG_ARCH_MSM is not set
242 +# CONFIG_ARCH_W90X900 is not set
243 +CONFIG_PLAT_S3C24XX=y
244 +CONFIG_S3C2410_CLOCK=y
245 +CONFIG_CPU_S3C244X=y
246 +CONFIG_S3C24XX_PWM=y
247 +CONFIG_S3C24XX_GPIO_EXTRA=0
248 +CONFIG_S3C2410_DMA=y
249 +# CONFIG_S3C2410_DMA_DEBUG is not set
250 +CONFIG_S3C24XX_ADC=y
251 +CONFIG_PLAT_S3C=y
252 +CONFIG_CPU_LLSERIAL_S3C2440_ONLY=y
253 +CONFIG_CPU_LLSERIAL_S3C2440=y
256 +# Boot options
258 +# CONFIG_S3C_BOOT_WATCHDOG is not set
259 +# CONFIG_S3C_BOOT_ERROR_RESET is not set
260 +CONFIG_S3C_BOOT_UART_FORCE_FIFO=y
263 +# Power management
265 +# CONFIG_S3C2410_PM_DEBUG is not set
266 +# CONFIG_S3C2410_PM_CHECK is not set
267 +CONFIG_S3C_LOWLEVEL_UART_PORT=0
268 +CONFIG_S3C_GPIO_SPACE=0
271 +# S3C2400 Machines
273 +CONFIG_S3C2410_PM=y
274 +CONFIG_S3C2410_GPIO=y
277 +# S3C2410 Machines
279 +# CONFIG_ARCH_SMDK2410 is not set
280 +# CONFIG_ARCH_H1940 is not set
281 +# CONFIG_MACH_N30 is not set
282 +# CONFIG_ARCH_BAST is not set
283 +# CONFIG_MACH_OTOM is not set
284 +# CONFIG_MACH_AML_M5900 is not set
285 +# CONFIG_MACH_TCT_HAMMER is not set
286 +# CONFIG_MACH_VR1000 is not set
287 +# CONFIG_MACH_QT2410 is not set
290 +# S3C2412 Machines
292 +# CONFIG_MACH_JIVE is not set
293 +# CONFIG_MACH_SMDK2413 is not set
294 +# CONFIG_MACH_SMDK2412 is not set
295 +# CONFIG_MACH_VSTMS is not set
296 +CONFIG_CPU_S3C2440=y
297 +CONFIG_S3C2440_DMA=y
300 +# S3C2440 Machines
302 +# CONFIG_MACH_ANUBIS is not set
303 +# CONFIG_MACH_OSIRIS is not set
304 +# CONFIG_MACH_RX3715 is not set
305 +# CONFIG_ARCH_S3C2440 is not set
306 +# CONFIG_MACH_NEXCODER_2440 is not set
307 +# CONFIG_MACH_AT2440EVB is not set
308 +CONFIG_MACH_MINI2440=y
311 +# S3C2442 Machines
315 +# S3C2443 Machines
317 +# CONFIG_MACH_SMDK2443 is not set
320 +# Processor Type
322 +CONFIG_CPU_32=y
323 +CONFIG_CPU_ARM920T=y
324 +CONFIG_CPU_32v4T=y
325 +CONFIG_CPU_ABRT_EV4T=y
326 +CONFIG_CPU_PABRT_NOIFAR=y
327 +CONFIG_CPU_CACHE_V4WT=y
328 +CONFIG_CPU_CACHE_VIVT=y
329 +CONFIG_CPU_COPY_V4WB=y
330 +CONFIG_CPU_TLB_V4WBI=y
331 +CONFIG_CPU_CP15=y
332 +CONFIG_CPU_CP15_MMU=y
335 +# Processor Features
337 +CONFIG_ARM_THUMB=y
338 +# CONFIG_CPU_ICACHE_DISABLE is not set
339 +# CONFIG_CPU_DCACHE_DISABLE is not set
340 +# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
341 +# CONFIG_OUTER_CACHE is not set
344 +# Bus support
346 +# CONFIG_PCI_SYSCALL is not set
347 +# CONFIG_ARCH_SUPPORTS_MSI is not set
348 +# CONFIG_PCCARD is not set
351 +# Kernel Features
353 +CONFIG_VMSPLIT_3G=y
354 +# CONFIG_VMSPLIT_2G is not set
355 +# CONFIG_VMSPLIT_1G is not set
356 +CONFIG_PAGE_OFFSET=0xC0000000
357 +CONFIG_PREEMPT=y
358 +CONFIG_HZ=200
359 +CONFIG_AEABI=y
360 +CONFIG_OABI_COMPAT=y
361 +CONFIG_ARCH_FLATMEM_HAS_HOLES=y
362 +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
363 +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
364 +CONFIG_SELECT_MEMORY_MODEL=y
365 +CONFIG_FLATMEM_MANUAL=y
366 +# CONFIG_DISCONTIGMEM_MANUAL is not set
367 +# CONFIG_SPARSEMEM_MANUAL is not set
368 +CONFIG_FLATMEM=y
369 +CONFIG_FLAT_NODE_MEM_MAP=y
370 +CONFIG_PAGEFLAGS_EXTENDED=y
371 +CONFIG_SPLIT_PTLOCK_CPUS=4096
372 +# CONFIG_PHYS_ADDR_T_64BIT is not set
373 +CONFIG_ZONE_DMA_FLAG=0
374 +CONFIG_VIRT_TO_BUS=y
375 +CONFIG_UNEVICTABLE_LRU=y
376 +CONFIG_ALIGNMENT_TRAP=y
379 +# Boot options
381 +CONFIG_ZBOOT_ROM_TEXT=0
382 +CONFIG_ZBOOT_ROM_BSS=0
383 +CONFIG_CMDLINE=""
384 +# CONFIG_XIP_KERNEL is not set
385 +CONFIG_KEXEC=y
386 +CONFIG_ATAGS_PROC=y
389 +# CPU Power Management
391 +CONFIG_CPU_IDLE=y
392 +CONFIG_CPU_IDLE_GOV_LADDER=y
395 +# Floating point emulation
399 +# At least one emulation must be selected
401 +CONFIG_FPE_NWFPE=y
402 +CONFIG_FPE_NWFPE_XP=y
403 +CONFIG_FPE_FASTFPE=y
406 +# Userspace binary formats
408 +CONFIG_BINFMT_ELF=y
409 +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
410 +CONFIG_HAVE_AOUT=y
411 +CONFIG_BINFMT_AOUT=m
412 +CONFIG_BINFMT_MISC=m
415 +# Power management options
417 +CONFIG_PM=y
418 +# CONFIG_PM_DEBUG is not set
419 +CONFIG_PM_SLEEP=y
420 +CONFIG_SUSPEND=y
421 +CONFIG_SUSPEND_FREEZER=y
422 +CONFIG_APM_EMULATION=y
423 +CONFIG_ARCH_SUSPEND_POSSIBLE=y
424 +CONFIG_NET=y
427 +# Networking options
429 +CONFIG_COMPAT_NET_DEV_OPS=y
430 +CONFIG_PACKET=y
431 +CONFIG_PACKET_MMAP=y
432 +CONFIG_UNIX=y
433 +CONFIG_XFRM=y
434 +CONFIG_XFRM_USER=y
435 +# CONFIG_XFRM_SUB_POLICY is not set
436 +# CONFIG_XFRM_MIGRATE is not set
437 +# CONFIG_XFRM_STATISTICS is not set
438 +CONFIG_NET_KEY=y
439 +# CONFIG_NET_KEY_MIGRATE is not set
440 +CONFIG_INET=y
441 +CONFIG_IP_MULTICAST=y
442 +CONFIG_IP_ADVANCED_ROUTER=y
443 +CONFIG_ASK_IP_FIB_HASH=y
444 +# CONFIG_IP_FIB_TRIE is not set
445 +CONFIG_IP_FIB_HASH=y
446 +CONFIG_IP_MULTIPLE_TABLES=y
447 +CONFIG_IP_ROUTE_MULTIPATH=y
448 +CONFIG_IP_ROUTE_VERBOSE=y
449 +CONFIG_IP_PNP=y
450 +CONFIG_IP_PNP_DHCP=y
451 +CONFIG_IP_PNP_BOOTP=y
452 +CONFIG_IP_PNP_RARP=y
453 +# CONFIG_NET_IPIP is not set
454 +# CONFIG_NET_IPGRE is not set
455 +CONFIG_IP_MROUTE=y
456 +CONFIG_IP_PIMSM_V1=y
457 +CONFIG_IP_PIMSM_V2=y
458 +# CONFIG_ARPD is not set
459 +CONFIG_SYN_COOKIES=y
460 +# CONFIG_INET_AH is not set
461 +# CONFIG_INET_ESP is not set
462 +# CONFIG_INET_IPCOMP is not set
463 +# CONFIG_INET_XFRM_TUNNEL is not set
464 +# CONFIG_INET_TUNNEL is not set
465 +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
466 +# CONFIG_INET_XFRM_MODE_TUNNEL is not set
467 +# CONFIG_INET_XFRM_MODE_BEET is not set
468 +# CONFIG_INET_LRO is not set
469 +CONFIG_INET_DIAG=y
470 +CONFIG_INET_TCP_DIAG=y
471 +CONFIG_TCP_CONG_ADVANCED=y
472 +CONFIG_TCP_CONG_BIC=m
473 +CONFIG_TCP_CONG_CUBIC=y
474 +CONFIG_TCP_CONG_WESTWOOD=m
475 +CONFIG_TCP_CONG_HTCP=m
476 +CONFIG_TCP_CONG_HSTCP=m
477 +CONFIG_TCP_CONG_HYBLA=m
478 +CONFIG_TCP_CONG_VEGAS=m
479 +CONFIG_TCP_CONG_SCALABLE=m
480 +CONFIG_TCP_CONG_LP=m
481 +CONFIG_TCP_CONG_VENO=m
482 +CONFIG_TCP_CONG_YEAH=m
483 +CONFIG_TCP_CONG_ILLINOIS=m
484 +# CONFIG_DEFAULT_BIC is not set
485 +CONFIG_DEFAULT_CUBIC=y
486 +# CONFIG_DEFAULT_HTCP is not set
487 +# CONFIG_DEFAULT_VEGAS is not set
488 +# CONFIG_DEFAULT_WESTWOOD is not set
489 +# CONFIG_DEFAULT_RENO is not set
490 +CONFIG_DEFAULT_TCP_CONG="cubic"
491 +CONFIG_TCP_MD5SIG=y
492 +# CONFIG_IPV6 is not set
493 +CONFIG_NETWORK_SECMARK=y
494 +CONFIG_NETFILTER=y
495 +# CONFIG_NETFILTER_DEBUG is not set
496 +CONFIG_NETFILTER_ADVANCED=y
497 +CONFIG_BRIDGE_NETFILTER=y
500 +# Core Netfilter Configuration
502 +# CONFIG_NETFILTER_NETLINK_QUEUE is not set
503 +# CONFIG_NETFILTER_NETLINK_LOG is not set
504 +# CONFIG_NF_CONNTRACK is not set
505 +CONFIG_NETFILTER_XTABLES=m
506 +# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
507 +# CONFIG_NETFILTER_XT_TARGET_MARK is not set
508 +# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
509 +# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
510 +# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
511 +# CONFIG_NETFILTER_XT_TARGET_SECMARK is not set
512 +# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
513 +# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
514 +# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
515 +# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
516 +# CONFIG_NETFILTER_XT_MATCH_ESP is not set
517 +# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
518 +# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
519 +# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
520 +# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
521 +# CONFIG_NETFILTER_XT_MATCH_MAC is not set
522 +# CONFIG_NETFILTER_XT_MATCH_MARK is not set
523 +# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
524 +# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
525 +# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
526 +# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
527 +# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
528 +# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
529 +# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
530 +# CONFIG_NETFILTER_XT_MATCH_REALM is not set
531 +# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
532 +# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
533 +# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
534 +# CONFIG_NETFILTER_XT_MATCH_STRING is not set
535 +# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
536 +# CONFIG_NETFILTER_XT_MATCH_TIME is not set
537 +# CONFIG_NETFILTER_XT_MATCH_U32 is not set
538 +# CONFIG_IP_VS is not set
541 +# IP: Netfilter Configuration
543 +# CONFIG_NF_DEFRAG_IPV4 is not set
544 +CONFIG_IP_NF_QUEUE=y
545 +# CONFIG_IP_NF_IPTABLES is not set
546 +CONFIG_IP_NF_ARPTABLES=m
547 +# CONFIG_IP_NF_ARPFILTER is not set
548 +# CONFIG_IP_NF_ARP_MANGLE is not set
549 +# CONFIG_BRIDGE_NF_EBTABLES is not set
550 +# CONFIG_IP_DCCP is not set
551 +# CONFIG_IP_SCTP is not set
552 +# CONFIG_TIPC is not set
553 +# CONFIG_ATM is not set
554 +CONFIG_STP=y
555 +CONFIG_GARP=y
556 +CONFIG_BRIDGE=y
557 +# CONFIG_NET_DSA is not set
558 +CONFIG_VLAN_8021Q=y
559 +CONFIG_VLAN_8021Q_GVRP=y
560 +# CONFIG_DECNET is not set
561 +CONFIG_LLC=y
562 +# CONFIG_LLC2 is not set
563 +# CONFIG_IPX is not set
564 +# CONFIG_ATALK is not set
565 +# CONFIG_X25 is not set
566 +# CONFIG_LAPB is not set
567 +# CONFIG_ECONET is not set
568 +# CONFIG_WAN_ROUTER is not set
569 +CONFIG_NET_SCHED=y
572 +# Queueing/Scheduling
574 +CONFIG_NET_SCH_CBQ=m
575 +CONFIG_NET_SCH_HTB=m
576 +CONFIG_NET_SCH_HFSC=m
577 +CONFIG_NET_SCH_PRIO=m
578 +# CONFIG_NET_SCH_MULTIQ is not set
579 +CONFIG_NET_SCH_RED=m
580 +CONFIG_NET_SCH_SFQ=m
581 +CONFIG_NET_SCH_TEQL=m
582 +CONFIG_NET_SCH_TBF=m
583 +CONFIG_NET_SCH_GRED=m
584 +CONFIG_NET_SCH_DSMARK=m
585 +CONFIG_NET_SCH_NETEM=m
586 +# CONFIG_NET_SCH_DRR is not set
587 +CONFIG_NET_SCH_INGRESS=m
590 +# Classification
592 +CONFIG_NET_CLS=y
593 +CONFIG_NET_CLS_BASIC=m
594 +CONFIG_NET_CLS_TCINDEX=m
595 +CONFIG_NET_CLS_ROUTE4=m
596 +CONFIG_NET_CLS_ROUTE=y
597 +CONFIG_NET_CLS_FW=m
598 +CONFIG_NET_CLS_U32=m
599 +# CONFIG_CLS_U32_PERF is not set
600 +CONFIG_CLS_U32_MARK=y
601 +CONFIG_NET_CLS_RSVP=m
602 +CONFIG_NET_CLS_RSVP6=m
603 +# CONFIG_NET_CLS_FLOW is not set
604 +# CONFIG_NET_CLS_CGROUP is not set
605 +CONFIG_NET_EMATCH=y
606 +CONFIG_NET_EMATCH_STACK=32
607 +CONFIG_NET_EMATCH_CMP=m
608 +CONFIG_NET_EMATCH_NBYTE=m
609 +CONFIG_NET_EMATCH_U32=m
610 +CONFIG_NET_EMATCH_META=m
611 +CONFIG_NET_EMATCH_TEXT=m
612 +CONFIG_NET_CLS_ACT=y
613 +CONFIG_NET_ACT_POLICE=m
614 +CONFIG_NET_ACT_GACT=m
615 +CONFIG_GACT_PROB=y
616 +CONFIG_NET_ACT_MIRRED=m
617 +CONFIG_NET_ACT_NAT=m
618 +CONFIG_NET_ACT_PEDIT=m
619 +CONFIG_NET_ACT_SIMP=m
620 +CONFIG_NET_ACT_SKBEDIT=m
621 +# CONFIG_NET_CLS_IND is not set
622 +CONFIG_NET_SCH_FIFO=y
623 +# CONFIG_DCB is not set
626 +# Network testing
628 +CONFIG_NET_PKTGEN=m
629 +CONFIG_NET_TCPPROBE=m
630 +# CONFIG_HAMRADIO is not set
631 +# CONFIG_CAN is not set
632 +# CONFIG_IRDA is not set
633 +CONFIG_BT=y
634 +CONFIG_BT_L2CAP=m
635 +CONFIG_BT_SCO=m
636 +CONFIG_BT_RFCOMM=m
637 +CONFIG_BT_RFCOMM_TTY=y
638 +CONFIG_BT_BNEP=m
639 +CONFIG_BT_BNEP_MC_FILTER=y
640 +CONFIG_BT_BNEP_PROTO_FILTER=y
641 +CONFIG_BT_HIDP=m
644 +# Bluetooth device drivers
646 +CONFIG_BT_HCIBTUSB=y
647 +CONFIG_BT_HCIBTSDIO=y
648 +CONFIG_BT_HCIUART=m
649 +CONFIG_BT_HCIUART_H4=y
650 +CONFIG_BT_HCIUART_BCSP=y
651 +CONFIG_BT_HCIUART_LL=y
652 +CONFIG_BT_HCIBCM203X=m
653 +CONFIG_BT_HCIBPA10X=m
654 +CONFIG_BT_HCIBFUSB=m
655 +CONFIG_BT_HCIVHCI=m
656 +# CONFIG_AF_RXRPC is not set
657 +# CONFIG_PHONET is not set
658 +CONFIG_FIB_RULES=y
659 +# CONFIG_WIRELESS is not set
660 +# CONFIG_WIMAX is not set
661 +# CONFIG_RFKILL is not set
662 +# CONFIG_NET_9P is not set
665 +# Device Drivers
669 +# Generic Driver Options
671 +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
672 +CONFIG_STANDALONE=y
673 +CONFIG_PREVENT_FIRMWARE_BUILD=y
674 +CONFIG_FW_LOADER=y
675 +# CONFIG_FIRMWARE_IN_KERNEL is not set
676 +CONFIG_EXTRA_FIRMWARE=""
677 +# CONFIG_SYS_HYPERVISOR is not set
678 +CONFIG_CONNECTOR=y
679 +CONFIG_PROC_EVENTS=y
680 +CONFIG_MTD=y
681 +# CONFIG_MTD_DEBUG is not set
682 +CONFIG_MTD_CONCAT=y
683 +CONFIG_MTD_PARTITIONS=y
684 +# CONFIG_MTD_TESTS is not set
685 +# CONFIG_MTD_REDBOOT_PARTS is not set
686 +CONFIG_MTD_CMDLINE_PARTS=y
687 +# CONFIG_MTD_AFS_PARTS is not set
688 +# CONFIG_MTD_AR7_PARTS is not set
691 +# User Modules And Translation Layers
693 +CONFIG_MTD_CHAR=y
694 +CONFIG_MTD_BLKDEVS=y
695 +CONFIG_MTD_BLOCK=y
696 +CONFIG_FTL=y
697 +CONFIG_NFTL=y
698 +CONFIG_NFTL_RW=y
699 +CONFIG_INFTL=y
700 +CONFIG_RFD_FTL=y
701 +# CONFIG_SSFDC is not set
702 +# CONFIG_MTD_OOPS is not set
705 +# RAM/ROM/Flash chip drivers
707 +CONFIG_MTD_CFI=y
708 +CONFIG_MTD_JEDECPROBE=y
709 +CONFIG_MTD_GEN_PROBE=y
710 +# CONFIG_MTD_CFI_ADV_OPTIONS is not set
711 +CONFIG_MTD_MAP_BANK_WIDTH_1=y
712 +CONFIG_MTD_MAP_BANK_WIDTH_2=y
713 +CONFIG_MTD_MAP_BANK_WIDTH_4=y
714 +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
715 +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
716 +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
717 +CONFIG_MTD_CFI_I1=y
718 +CONFIG_MTD_CFI_I2=y
719 +# CONFIG_MTD_CFI_I4 is not set
720 +# CONFIG_MTD_CFI_I8 is not set
721 +# CONFIG_MTD_CFI_INTELEXT is not set
722 +CONFIG_MTD_CFI_AMDSTD=y
723 +CONFIG_MTD_CFI_STAA=y
724 +CONFIG_MTD_CFI_UTIL=y
725 +CONFIG_MTD_RAM=y
726 +CONFIG_MTD_ROM=y
727 +# CONFIG_MTD_ABSENT is not set
730 +# Mapping drivers for chip access
732 +# CONFIG_MTD_COMPLEX_MAPPINGS is not set
733 +# CONFIG_MTD_PHYSMAP is not set
734 +# CONFIG_MTD_ARM_INTEGRATOR is not set
735 +# CONFIG_MTD_IMPA7 is not set
736 +# CONFIG_MTD_PLATRAM is not set
739 +# Self-contained MTD device drivers
741 +# CONFIG_MTD_DATAFLASH is not set
742 +# CONFIG_MTD_M25P80 is not set
743 +# CONFIG_MTD_SLRAM is not set
744 +# CONFIG_MTD_PHRAM is not set
745 +# CONFIG_MTD_MTDRAM is not set
746 +# CONFIG_MTD_BLOCK2MTD is not set
749 +# Disk-On-Chip Device Drivers
751 +# CONFIG_MTD_DOC2000 is not set
752 +# CONFIG_MTD_DOC2001 is not set
753 +# CONFIG_MTD_DOC2001PLUS is not set
754 +CONFIG_MTD_NAND=y
755 +CONFIG_MTD_NAND_VERIFY_WRITE=y
756 +# CONFIG_MTD_NAND_ECC_SMC is not set
757 +# CONFIG_MTD_NAND_MUSEUM_IDS is not set
758 +# CONFIG_MTD_NAND_GPIO is not set
759 +CONFIG_MTD_NAND_IDS=y
760 +CONFIG_MTD_NAND_S3C2410=y
761 +# CONFIG_MTD_NAND_S3C2410_DEBUG is not set
762 +# CONFIG_MTD_NAND_S3C2410_HWECC is not set
763 +# CONFIG_MTD_NAND_S3C2410_CLKSTOP is not set
764 +# CONFIG_MTD_NAND_DISKONCHIP is not set
765 +# CONFIG_MTD_NAND_NANDSIM is not set
766 +CONFIG_MTD_NAND_PLATFORM=y
767 +# CONFIG_MTD_ALAUDA is not set
768 +# CONFIG_MTD_ONENAND is not set
771 +# LPDDR flash memory drivers
773 +CONFIG_MTD_LPDDR=y
774 +CONFIG_MTD_QINFO_PROBE=y
777 +# UBI - Unsorted block images
779 +# CONFIG_MTD_UBI is not set
780 +# CONFIG_PARPORT is not set
781 +CONFIG_BLK_DEV=y
782 +# CONFIG_BLK_DEV_COW_COMMON is not set
783 +CONFIG_BLK_DEV_LOOP=y
784 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set
785 +CONFIG_BLK_DEV_NBD=y
786 +# CONFIG_BLK_DEV_UB is not set
787 +CONFIG_BLK_DEV_RAM=y
788 +CONFIG_BLK_DEV_RAM_COUNT=16
789 +CONFIG_BLK_DEV_RAM_SIZE=65536
790 +# CONFIG_BLK_DEV_XIP is not set
791 +CONFIG_CDROM_PKTCDVD=m
792 +CONFIG_CDROM_PKTCDVD_BUFFERS=8
793 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set
794 +# CONFIG_ATA_OVER_ETH is not set
795 +CONFIG_MISC_DEVICES=y
796 +# CONFIG_ICS932S401 is not set
797 +# CONFIG_ENCLOSURE_SERVICES is not set
798 +# CONFIG_C2PORT is not set
801 +# EEPROM support
803 +CONFIG_EEPROM_AT24=y
804 +# CONFIG_EEPROM_AT25 is not set
805 +# CONFIG_EEPROM_LEGACY is not set
806 +CONFIG_EEPROM_93CX6=y
807 +CONFIG_HAVE_IDE=y
808 +# CONFIG_IDE is not set
811 +# SCSI device support
813 +# CONFIG_RAID_ATTRS is not set
814 +CONFIG_SCSI=y
815 +CONFIG_SCSI_DMA=y
816 +# CONFIG_SCSI_TGT is not set
817 +# CONFIG_SCSI_NETLINK is not set
818 +# CONFIG_SCSI_PROC_FS is not set
821 +# SCSI support type (disk, tape, CD-ROM)
823 +CONFIG_BLK_DEV_SD=y
824 +# CONFIG_CHR_DEV_ST is not set
825 +# CONFIG_CHR_DEV_OSST is not set
826 +# CONFIG_BLK_DEV_SR is not set
827 +CONFIG_CHR_DEV_SG=y
828 +# CONFIG_CHR_DEV_SCH is not set
831 +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
833 +# CONFIG_SCSI_MULTI_LUN is not set
834 +# CONFIG_SCSI_CONSTANTS is not set
835 +# CONFIG_SCSI_LOGGING is not set
836 +# CONFIG_SCSI_SCAN_ASYNC is not set
837 +CONFIG_SCSI_WAIT_SCAN=m
840 +# SCSI Transports
842 +# CONFIG_SCSI_SPI_ATTRS is not set
843 +# CONFIG_SCSI_FC_ATTRS is not set
844 +# CONFIG_SCSI_ISCSI_ATTRS is not set
845 +# CONFIG_SCSI_SAS_LIBSAS is not set
846 +# CONFIG_SCSI_SRP_ATTRS is not set
847 +# CONFIG_SCSI_LOWLEVEL is not set
848 +# CONFIG_SCSI_DH is not set
849 +# CONFIG_ATA is not set
850 +# CONFIG_MD is not set
851 +CONFIG_NETDEVICES=y
852 +# CONFIG_IFB is not set
853 +# CONFIG_DUMMY is not set
854 +# CONFIG_BONDING is not set
855 +# CONFIG_MACVLAN is not set
856 +# CONFIG_EQUALIZER is not set
857 +CONFIG_TUN=y
858 +# CONFIG_VETH is not set
859 +# CONFIG_PHYLIB is not set
860 +CONFIG_NET_ETHERNET=y
861 +CONFIG_MII=y
862 +# CONFIG_AX88796 is not set
863 +# CONFIG_SMC91X is not set
864 +CONFIG_DM9000=y
865 +CONFIG_DM9000_DEBUGLEVEL=4
866 +# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
867 +# CONFIG_ENC28J60 is not set
868 +# CONFIG_SMC911X is not set
869 +# CONFIG_SMSC911X is not set
870 +# CONFIG_IBM_NEW_EMAC_ZMII is not set
871 +# CONFIG_IBM_NEW_EMAC_RGMII is not set
872 +# CONFIG_IBM_NEW_EMAC_TAH is not set
873 +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
874 +# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
875 +# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
876 +# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
877 +# CONFIG_B44 is not set
878 +# CONFIG_NETDEV_1000 is not set
879 +# CONFIG_NETDEV_10000 is not set
882 +# Wireless LAN
884 +# CONFIG_WLAN_PRE80211 is not set
885 +# CONFIG_WLAN_80211 is not set
886 +# CONFIG_IWLWIFI_LEDS is not set
889 +# Enable WiMAX (Networking options) to see the WiMAX drivers
893 +# USB Network Adapters
895 +# CONFIG_USB_CATC is not set
896 +# CONFIG_USB_KAWETH is not set
897 +# CONFIG_USB_PEGASUS is not set
898 +# CONFIG_USB_RTL8150 is not set
899 +# CONFIG_USB_USBNET is not set
900 +# CONFIG_WAN is not set
901 +# CONFIG_PPP is not set
902 +# CONFIG_SLIP is not set
903 +# CONFIG_NETCONSOLE is not set
904 +# CONFIG_NETPOLL is not set
905 +# CONFIG_NET_POLL_CONTROLLER is not set
906 +# CONFIG_ISDN is not set
909 +# Input device support
911 +CONFIG_INPUT=y
912 +CONFIG_INPUT_FF_MEMLESS=y
913 +# CONFIG_INPUT_POLLDEV is not set
916 +# Userland interfaces
918 +CONFIG_INPUT_MOUSEDEV=y
919 +CONFIG_INPUT_MOUSEDEV_PSAUX=y
920 +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
921 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
922 +# CONFIG_INPUT_JOYDEV is not set
923 +CONFIG_INPUT_EVDEV=y
924 +CONFIG_INPUT_EVBUG=y
927 +# Input Device Drivers
929 +CONFIG_INPUT_KEYBOARD=y
930 +# CONFIG_KEYBOARD_ATKBD is not set
931 +# CONFIG_KEYBOARD_SUNKBD is not set
932 +# CONFIG_KEYBOARD_LKKBD is not set
933 +# CONFIG_KEYBOARD_XTKBD is not set
934 +# CONFIG_KEYBOARD_NEWTON is not set
935 +# CONFIG_KEYBOARD_STOWAWAY is not set
936 +CONFIG_KEYBOARD_GPIO=y
937 +CONFIG_INPUT_MOUSE=y
938 +CONFIG_MOUSE_PS2=y
939 +CONFIG_MOUSE_PS2_ALPS=y
940 +CONFIG_MOUSE_PS2_LOGIPS2PP=y
941 +CONFIG_MOUSE_PS2_SYNAPTICS=y
942 +CONFIG_MOUSE_PS2_LIFEBOOK=y
943 +CONFIG_MOUSE_PS2_TRACKPOINT=y
944 +# CONFIG_MOUSE_PS2_ELANTECH is not set
945 +# CONFIG_MOUSE_PS2_TOUCHKIT is not set
946 +# CONFIG_MOUSE_SERIAL is not set
947 +# CONFIG_MOUSE_APPLETOUCH is not set
948 +# CONFIG_MOUSE_BCM5974 is not set
949 +# CONFIG_MOUSE_VSXXXAA is not set
950 +# CONFIG_MOUSE_GPIO is not set
951 +# CONFIG_INPUT_JOYSTICK is not set
952 +# CONFIG_INPUT_TABLET is not set
953 +CONFIG_INPUT_TOUCHSCREEN=y
954 +CONFIG_TOUCHSCREEN_FILTER=y
955 +CONFIG_TOUCHSCREEN_FILTER_GROUP=y
956 +CONFIG_TOUCHSCREEN_FILTER_MEDIAN=y
957 +CONFIG_TOUCHSCREEN_FILTER_MEAN=y
958 +CONFIG_TOUCHSCREEN_FILTER_LINEAR=y
959 +# CONFIG_TOUCHSCREEN_ADS7846 is not set
960 +# CONFIG_TOUCHSCREEN_FUJITSU is not set
961 +CONFIG_TOUCHSCREEN_S3C2410=y
962 +# CONFIG_TOUCHSCREEN_S3C2410_DEBUG is not set
963 +# CONFIG_TOUCHSCREEN_GUNZE is not set
964 +# CONFIG_TOUCHSCREEN_ELO is not set
965 +# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
966 +# CONFIG_TOUCHSCREEN_MTOUCH is not set
967 +# CONFIG_TOUCHSCREEN_INEXIO is not set
968 +# CONFIG_TOUCHSCREEN_MK712 is not set
969 +# CONFIG_TOUCHSCREEN_PENMOUNT is not set
970 +# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
971 +# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
972 +# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
973 +# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
974 +# CONFIG_TOUCHSCREEN_TSC2007 is not set
975 +# CONFIG_INPUT_MISC is not set
978 +# Hardware I/O ports
980 +CONFIG_SERIO=y
981 +CONFIG_SERIO_SERPORT=y
982 +CONFIG_SERIO_LIBPS2=y
983 +CONFIG_SERIO_RAW=y
984 +# CONFIG_GAMEPORT is not set
987 +# Character devices
989 +CONFIG_VT=y
990 +CONFIG_CONSOLE_TRANSLATIONS=y
991 +CONFIG_VT_CONSOLE=y
992 +CONFIG_HW_CONSOLE=y
993 +CONFIG_VT_HW_CONSOLE_BINDING=y
994 +CONFIG_DEVKMEM=y
995 +# CONFIG_SERIAL_NONSTANDARD is not set
998 +# Serial drivers
1000 +# CONFIG_SERIAL_8250 is not set
1003 +# Non-8250 serial port support
1005 +CONFIG_SERIAL_SAMSUNG=y
1006 +CONFIG_SERIAL_SAMSUNG_UARTS=3
1007 +CONFIG_SERIAL_SAMSUNG_CONSOLE=y
1008 +CONFIG_SERIAL_S3C2440=y
1009 +CONFIG_SERIAL_CORE=y
1010 +CONFIG_SERIAL_CORE_CONSOLE=y
1011 +CONFIG_UNIX98_PTYS=y
1012 +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
1013 +CONFIG_LEGACY_PTYS=y
1014 +CONFIG_LEGACY_PTY_COUNT=128
1015 +CONFIG_IPMI_HANDLER=m
1016 +# CONFIG_IPMI_PANIC_EVENT is not set
1017 +CONFIG_IPMI_DEVICE_INTERFACE=m
1018 +CONFIG_IPMI_SI=m
1019 +CONFIG_IPMI_WATCHDOG=m
1020 +CONFIG_IPMI_POWEROFF=m
1021 +CONFIG_HW_RANDOM=y
1022 +# CONFIG_R3964 is not set
1023 +# CONFIG_RAW_DRIVER is not set
1024 +# CONFIG_TCG_TPM is not set
1025 +CONFIG_I2C=y
1026 +CONFIG_I2C_BOARDINFO=y
1027 +CONFIG_I2C_CHARDEV=y
1028 +CONFIG_I2C_HELPER_AUTO=y
1029 +CONFIG_I2C_ALGOBIT=y
1032 +# I2C Hardware Bus support
1036 +# I2C system bus drivers (mostly embedded / system-on-chip)
1038 +# CONFIG_I2C_GPIO is not set
1039 +# CONFIG_I2C_OCORES is not set
1040 +CONFIG_I2C_S3C2410=y
1041 +CONFIG_I2C_SIMTEC=y
1044 +# External I2C/SMBus adapter drivers
1046 +# CONFIG_I2C_PARPORT_LIGHT is not set
1047 +# CONFIG_I2C_TAOS_EVM is not set
1048 +# CONFIG_I2C_TINY_USB is not set
1051 +# Other I2C/SMBus bus drivers
1053 +# CONFIG_I2C_PCA_PLATFORM is not set
1054 +# CONFIG_I2C_STUB is not set
1057 +# Miscellaneous I2C Chip support
1059 +# CONFIG_DS1682 is not set
1060 +# CONFIG_SENSORS_PCF8574 is not set
1061 +# CONFIG_PCF8575 is not set
1062 +# CONFIG_SENSORS_PCA9539 is not set
1063 +# CONFIG_SENSORS_PCF8591 is not set
1064 +# CONFIG_SENSORS_MAX6875 is not set
1065 +CONFIG_SENSORS_TSL2550=y
1066 +# CONFIG_I2C_DEBUG_CORE is not set
1067 +# CONFIG_I2C_DEBUG_ALGO is not set
1068 +# CONFIG_I2C_DEBUG_BUS is not set
1069 +# CONFIG_I2C_DEBUG_CHIP is not set
1070 +CONFIG_SPI=y
1071 +CONFIG_SPI_MASTER=y
1074 +# SPI Master Controller Drivers
1076 +CONFIG_SPI_BITBANG=y
1077 +# CONFIG_SPI_GPIO is not set
1078 +CONFIG_SPI_S3C24XX=y
1079 +# CONFIG_SPI_S3C24XX_GPIO is not set
1082 +# SPI Protocol Masters
1084 +CONFIG_SPI_SPIDEV=y
1085 +# CONFIG_SPI_TLE62X0 is not set
1086 +CONFIG_ARCH_REQUIRE_GPIOLIB=y
1087 +CONFIG_GPIOLIB=y
1088 +CONFIG_GPIO_SYSFS=y
1091 +# Memory mapped GPIO expanders:
1095 +# I2C GPIO expanders:
1097 +# CONFIG_GPIO_MAX732X is not set
1098 +# CONFIG_GPIO_PCA953X is not set
1099 +# CONFIG_GPIO_PCF857X is not set
1102 +# PCI GPIO expanders:
1106 +# SPI GPIO expanders:
1108 +# CONFIG_GPIO_MAX7301 is not set
1109 +# CONFIG_GPIO_MCP23S08 is not set
1110 +# CONFIG_W1 is not set
1111 +# CONFIG_POWER_SUPPLY is not set
1112 +# CONFIG_HWMON is not set
1113 +CONFIG_THERMAL=y
1114 +CONFIG_WATCHDOG=y
1115 +# CONFIG_WATCHDOG_NOWAYOUT is not set
1118 +# Watchdog Device Drivers
1120 +# CONFIG_SOFT_WATCHDOG is not set
1121 +CONFIG_S3C2410_WATCHDOG=y
1124 +# USB-based Watchdog Cards
1126 +# CONFIG_USBPCWATCHDOG is not set
1127 +CONFIG_SSB_POSSIBLE=y
1130 +# Sonics Silicon Backplane
1132 +# CONFIG_SSB is not set
1135 +# Multifunction device drivers
1137 +# CONFIG_MFD_CORE is not set
1138 +# CONFIG_MFD_SM501 is not set
1139 +# CONFIG_MFD_ASIC3 is not set
1140 +# CONFIG_HTC_EGPIO is not set
1141 +# CONFIG_HTC_PASIC3 is not set
1142 +# CONFIG_TPS65010 is not set
1143 +# CONFIG_TWL4030_CORE is not set
1144 +# CONFIG_MFD_TMIO is not set
1145 +# CONFIG_MFD_T7L66XB is not set
1146 +# CONFIG_MFD_TC6387XB is not set
1147 +# CONFIG_MFD_TC6393XB is not set
1148 +# CONFIG_PMIC_DA903X is not set
1149 +# CONFIG_MFD_WM8400 is not set
1150 +# CONFIG_MFD_WM8350_I2C is not set
1151 +# CONFIG_MFD_PCF50633 is not set
1154 +# Multimedia devices
1158 +# Multimedia core support
1160 +# CONFIG_VIDEO_DEV is not set
1161 +# CONFIG_DVB_CORE is not set
1162 +# CONFIG_VIDEO_MEDIA is not set
1165 +# Multimedia drivers
1167 +# CONFIG_DAB is not set
1170 +# Graphics support
1172 +# CONFIG_VGASTATE is not set
1173 +CONFIG_VIDEO_OUTPUT_CONTROL=y
1174 +CONFIG_FB=y
1175 +CONFIG_FIRMWARE_EDID=y
1176 +# CONFIG_FB_DDC is not set
1177 +# CONFIG_FB_BOOT_VESA_SUPPORT is not set
1178 +CONFIG_FB_CFB_FILLRECT=y
1179 +CONFIG_FB_CFB_COPYAREA=y
1180 +CONFIG_FB_CFB_IMAGEBLIT=y
1181 +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
1182 +# CONFIG_FB_SYS_FILLRECT is not set
1183 +# CONFIG_FB_SYS_COPYAREA is not set
1184 +# CONFIG_FB_SYS_IMAGEBLIT is not set
1185 +# CONFIG_FB_FOREIGN_ENDIAN is not set
1186 +# CONFIG_FB_SYS_FOPS is not set
1187 +# CONFIG_FB_SVGALIB is not set
1188 +# CONFIG_FB_MACMODES is not set
1189 +# CONFIG_FB_BACKLIGHT is not set
1190 +CONFIG_FB_MODE_HELPERS=y
1191 +CONFIG_FB_TILEBLITTING=y
1194 +# Frame buffer hardware drivers
1196 +# CONFIG_FB_UVESA is not set
1197 +# CONFIG_FB_S1D13XXX is not set
1198 +CONFIG_FB_S3C2410=y
1199 +CONFIG_FB_S3C2410_DEBUG=y
1200 +# CONFIG_FB_VIRTUAL is not set
1201 +# CONFIG_FB_METRONOME is not set
1202 +# CONFIG_FB_MB862XX is not set
1203 +CONFIG_BACKLIGHT_LCD_SUPPORT=y
1204 +CONFIG_LCD_CLASS_DEVICE=y
1205 +# CONFIG_LCD_LTV350QV is not set
1206 +# CONFIG_LCD_ILI9320 is not set
1207 +# CONFIG_LCD_TDO24M is not set
1208 +# CONFIG_LCD_VGG2432A4 is not set
1209 +CONFIG_LCD_PLATFORM=y
1210 +CONFIG_BACKLIGHT_CLASS_DEVICE=y
1211 +# CONFIG_BACKLIGHT_GENERIC is not set
1212 +CONFIG_BACKLIGHT_PWM=y
1215 +# Display device support
1217 +CONFIG_DISPLAY_SUPPORT=y
1220 +# Display hardware drivers
1224 +# Console display driver support
1226 +# CONFIG_VGA_CONSOLE is not set
1227 +CONFIG_DUMMY_CONSOLE=y
1228 +CONFIG_FRAMEBUFFER_CONSOLE=y
1229 +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
1230 +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
1231 +CONFIG_FONTS=y
1232 +# CONFIG_FONT_8x8 is not set
1233 +# CONFIG_FONT_8x16 is not set
1234 +# CONFIG_FONT_6x11 is not set
1235 +# CONFIG_FONT_7x14 is not set
1236 +# CONFIG_FONT_PEARL_8x8 is not set
1237 +# CONFIG_FONT_ACORN_8x8 is not set
1238 +CONFIG_FONT_MINI_4x6=y
1239 +# CONFIG_FONT_SUN8x16 is not set
1240 +# CONFIG_FONT_SUN12x22 is not set
1241 +# CONFIG_FONT_10x18 is not set
1242 +CONFIG_LOGO=y
1243 +# CONFIG_LOGO_LINUX_MONO is not set
1244 +# CONFIG_LOGO_LINUX_VGA16 is not set
1245 +# CONFIG_LOGO_LINUX_CLUT224 is not set
1246 +CONFIG_LOGO_ARMWORKS_CLUT224=y
1247 +CONFIG_SOUND=y
1248 +CONFIG_SOUND_OSS_CORE=y
1249 +CONFIG_SND=y
1250 +CONFIG_SND_TIMER=y
1251 +CONFIG_SND_PCM=y
1252 +CONFIG_SND_HWDEP=m
1253 +CONFIG_SND_RAWMIDI=m
1254 +CONFIG_SND_SEQUENCER=m
1255 +CONFIG_SND_SEQ_DUMMY=m
1256 +CONFIG_SND_OSSEMUL=y
1257 +CONFIG_SND_MIXER_OSS=m
1258 +CONFIG_SND_PCM_OSS=m
1259 +CONFIG_SND_PCM_OSS_PLUGINS=y
1260 +CONFIG_SND_SEQUENCER_OSS=y
1261 +CONFIG_SND_DYNAMIC_MINORS=y
1262 +CONFIG_SND_SUPPORT_OLD_API=y
1263 +CONFIG_SND_VERBOSE_PROCFS=y
1264 +# CONFIG_SND_VERBOSE_PRINTK is not set
1265 +# CONFIG_SND_DEBUG is not set
1266 +CONFIG_SND_MPU401_UART=m
1267 +CONFIG_SND_DRIVERS=y
1268 +CONFIG_SND_DUMMY=m
1269 +CONFIG_SND_VIRMIDI=m
1270 +CONFIG_SND_MTPAV=m
1271 +CONFIG_SND_SERIAL_U16550=m
1272 +CONFIG_SND_MPU401=m
1273 +CONFIG_SND_ARM=y
1274 +CONFIG_SND_SPI=y
1275 +CONFIG_SND_USB=y
1276 +CONFIG_SND_USB_AUDIO=m
1277 +CONFIG_SND_USB_CAIAQ=m
1278 +CONFIG_SND_USB_CAIAQ_INPUT=y
1279 +CONFIG_SND_SOC=y
1280 +CONFIG_SND_S3C24XX_SOC=y
1281 +CONFIG_SND_S3C24XX_SOC_I2S=y
1282 +# CONFIG_SND_S3C24XX_SOC_LN2440SBC_ALC650 is not set
1283 +CONFIG_SND_S3C24XX_SOC_S3C24XX_UDA134X=y
1284 +CONFIG_SND_SOC_I2C_AND_SPI=y
1285 +# CONFIG_SND_SOC_ALL_CODECS is not set
1286 +CONFIG_SND_SOC_L3=y
1287 +CONFIG_SND_SOC_UDA134X=y
1288 +# CONFIG_SOUND_PRIME is not set
1289 +CONFIG_HID_SUPPORT=y
1290 +CONFIG_HID=y
1291 +# CONFIG_HID_DEBUG is not set
1292 +CONFIG_HIDRAW=y
1295 +# USB Input Devices
1297 +CONFIG_USB_HID=y
1298 +CONFIG_HID_PID=y
1299 +CONFIG_USB_HIDDEV=y
1302 +# Special HID drivers
1304 +CONFIG_HID_COMPAT=y
1305 +CONFIG_HID_A4TECH=y
1306 +CONFIG_HID_APPLE=y
1307 +CONFIG_HID_BELKIN=y
1308 +CONFIG_HID_CHERRY=y
1309 +CONFIG_HID_CHICONY=y
1310 +CONFIG_HID_CYPRESS=y
1311 +CONFIG_HID_EZKEY=y
1312 +CONFIG_HID_GYRATION=y
1313 +CONFIG_HID_LOGITECH=y
1314 +# CONFIG_LOGITECH_FF is not set
1315 +# CONFIG_LOGIRUMBLEPAD2_FF is not set
1316 +CONFIG_HID_MICROSOFT=y
1317 +CONFIG_HID_MONTEREY=y
1318 +CONFIG_HID_NTRIG=y
1319 +CONFIG_HID_PANTHERLORD=y
1320 +# CONFIG_PANTHERLORD_FF is not set
1321 +CONFIG_HID_PETALYNX=y
1322 +CONFIG_HID_SAMSUNG=y
1323 +CONFIG_HID_SONY=y
1324 +CONFIG_HID_SUNPLUS=y
1325 +# CONFIG_GREENASIA_FF is not set
1326 +CONFIG_HID_TOPSEED=y
1327 +# CONFIG_THRUSTMASTER_FF is not set
1328 +# CONFIG_ZEROPLUS_FF is not set
1329 +CONFIG_USB_SUPPORT=y
1330 +CONFIG_USB_ARCH_HAS_HCD=y
1331 +CONFIG_USB_ARCH_HAS_OHCI=y
1332 +# CONFIG_USB_ARCH_HAS_EHCI is not set
1333 +CONFIG_USB=y
1334 +# CONFIG_USB_DEBUG is not set
1335 +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1338 +# Miscellaneous USB options
1340 +CONFIG_USB_DEVICEFS=y
1341 +# CONFIG_USB_DEVICE_CLASS is not set
1342 +# CONFIG_USB_DYNAMIC_MINORS is not set
1343 +# CONFIG_USB_SUSPEND is not set
1344 +# CONFIG_USB_OTG is not set
1345 +# CONFIG_USB_MON is not set
1346 +# CONFIG_USB_WUSB is not set
1347 +# CONFIG_USB_WUSB_CBAF is not set
1350 +# USB Host Controller Drivers
1352 +# CONFIG_USB_C67X00_HCD is not set
1353 +# CONFIG_USB_OXU210HP_HCD is not set
1354 +# CONFIG_USB_ISP116X_HCD is not set
1355 +CONFIG_USB_OHCI_HCD=y
1356 +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1357 +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1358 +CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1359 +# CONFIG_USB_SL811_HCD is not set
1360 +# CONFIG_USB_R8A66597_HCD is not set
1361 +# CONFIG_USB_HWA_HCD is not set
1362 +# CONFIG_USB_MUSB_HDRC is not set
1363 +# CONFIG_USB_GADGET_MUSB_HDRC is not set
1366 +# USB Device Class drivers
1368 +CONFIG_USB_ACM=m
1369 +# CONFIG_USB_PRINTER is not set
1370 +CONFIG_USB_WDM=m
1371 +# CONFIG_USB_TMC is not set
1374 +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1378 +# see USB_STORAGE Help for more information
1380 +CONFIG_USB_STORAGE=y
1381 +# CONFIG_USB_STORAGE_DEBUG is not set
1382 +CONFIG_USB_STORAGE_DATAFAB=y
1383 +# CONFIG_USB_STORAGE_FREECOM is not set
1384 +CONFIG_USB_STORAGE_ISD200=y
1385 +CONFIG_USB_STORAGE_USBAT=y
1386 +CONFIG_USB_STORAGE_SDDR09=y
1387 +CONFIG_USB_STORAGE_SDDR55=y
1388 +CONFIG_USB_STORAGE_JUMPSHOT=y
1389 +CONFIG_USB_STORAGE_ALAUDA=y
1390 +# CONFIG_USB_STORAGE_ONETOUCH is not set
1391 +# CONFIG_USB_STORAGE_KARMA is not set
1392 +# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1393 +CONFIG_USB_LIBUSUAL=y
1396 +# USB Imaging devices
1398 +# CONFIG_USB_MDC800 is not set
1399 +# CONFIG_USB_MICROTEK is not set
1402 +# USB port drivers
1404 +# CONFIG_USB_SERIAL is not set
1407 +# USB Miscellaneous drivers
1409 +# CONFIG_USB_EMI62 is not set
1410 +# CONFIG_USB_EMI26 is not set
1411 +# CONFIG_USB_ADUTUX is not set
1412 +# CONFIG_USB_SEVSEG is not set
1413 +# CONFIG_USB_RIO500 is not set
1414 +# CONFIG_USB_LEGOTOWER is not set
1415 +# CONFIG_USB_LCD is not set
1416 +# CONFIG_USB_BERRY_CHARGE is not set
1417 +# CONFIG_USB_LED is not set
1418 +# CONFIG_USB_CYPRESS_CY7C63 is not set
1419 +# CONFIG_USB_CYTHERM is not set
1420 +# CONFIG_USB_PHIDGET is not set
1421 +# CONFIG_USB_IDMOUSE is not set
1422 +# CONFIG_USB_FTDI_ELAN is not set
1423 +# CONFIG_USB_APPLEDISPLAY is not set
1424 +# CONFIG_USB_LD is not set
1425 +# CONFIG_USB_TRANCEVIBRATOR is not set
1426 +# CONFIG_USB_IOWARRIOR is not set
1427 +# CONFIG_USB_TEST is not set
1428 +# CONFIG_USB_ISIGHTFW is not set
1429 +# CONFIG_USB_VST is not set
1430 +CONFIG_USB_GADGET=y
1431 +# CONFIG_USB_GADGET_DEBUG_FILES is not set
1432 +# CONFIG_USB_GADGET_DEBUG_FS is not set
1433 +CONFIG_USB_GADGET_VBUS_DRAW=2
1434 +CONFIG_USB_GADGET_SELECTED=y
1435 +# CONFIG_USB_GADGET_AT91 is not set
1436 +# CONFIG_USB_GADGET_ATMEL_USBA is not set
1437 +# CONFIG_USB_GADGET_FSL_USB2 is not set
1438 +# CONFIG_USB_GADGET_LH7A40X is not set
1439 +# CONFIG_USB_GADGET_OMAP is not set
1440 +# CONFIG_USB_GADGET_PXA25X is not set
1441 +# CONFIG_USB_GADGET_PXA27X is not set
1442 +CONFIG_USB_GADGET_S3C2410=y
1443 +CONFIG_USB_S3C2410=y
1444 +# CONFIG_USB_S3C2410_DEBUG is not set
1445 +# CONFIG_USB_GADGET_IMX is not set
1446 +# CONFIG_USB_GADGET_M66592 is not set
1447 +# CONFIG_USB_GADGET_AMD5536UDC is not set
1448 +# CONFIG_USB_GADGET_FSL_QE is not set
1449 +# CONFIG_USB_GADGET_CI13XXX is not set
1450 +# CONFIG_USB_GADGET_NET2280 is not set
1451 +# CONFIG_USB_GADGET_GOKU is not set
1452 +# CONFIG_USB_GADGET_DUMMY_HCD is not set
1453 +# CONFIG_USB_GADGET_DUALSPEED is not set
1454 +CONFIG_USB_ZERO=m
1455 +CONFIG_USB_ETH=m
1456 +CONFIG_USB_ETH_RNDIS=y
1457 +CONFIG_USB_GADGETFS=m
1458 +CONFIG_USB_FILE_STORAGE=m
1459 +# CONFIG_USB_FILE_STORAGE_TEST is not set
1460 +CONFIG_USB_G_SERIAL=m
1461 +# CONFIG_USB_MIDI_GADGET is not set
1462 +# CONFIG_USB_G_PRINTER is not set
1463 +CONFIG_USB_CDC_COMPOSITE=m
1466 +# OTG and related infrastructure
1468 +# CONFIG_USB_GPIO_VBUS is not set
1469 +CONFIG_MMC=y
1470 +# CONFIG_MMC_DEBUG is not set
1471 +# CONFIG_MMC_UNSAFE_RESUME is not set
1474 +# MMC/SD/SDIO Card Drivers
1476 +CONFIG_MMC_BLOCK=y
1477 +CONFIG_MMC_BLOCK_BOUNCE=y
1478 +CONFIG_SDIO_UART=y
1479 +# CONFIG_MMC_TEST is not set
1482 +# MMC/SD/SDIO Host Controller Drivers
1484 +# CONFIG_MMC_SDHCI is not set
1485 +# CONFIG_MMC_SPI is not set
1486 +CONFIG_MMC_S3C=y
1487 +# CONFIG_MEMSTICK is not set
1488 +# CONFIG_ACCESSIBILITY is not set
1489 +CONFIG_NEW_LEDS=y
1490 +CONFIG_LEDS_CLASS=y
1493 +# LED drivers
1495 +CONFIG_LEDS_S3C24XX=y
1496 +# CONFIG_LEDS_PCA9532 is not set
1497 +CONFIG_LEDS_GPIO=y
1498 +# CONFIG_LEDS_PCA955X is not set
1501 +# LED Triggers
1503 +CONFIG_LEDS_TRIGGERS=y
1504 +CONFIG_LEDS_TRIGGER_TIMER=y
1505 +CONFIG_LEDS_TRIGGER_HEARTBEAT=y
1506 +CONFIG_LEDS_TRIGGER_BACKLIGHT=y
1507 +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
1508 +CONFIG_RTC_LIB=y
1509 +CONFIG_RTC_CLASS=y
1510 +CONFIG_RTC_HCTOSYS=y
1511 +CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1512 +# CONFIG_RTC_DEBUG is not set
1515 +# RTC interfaces
1517 +CONFIG_RTC_INTF_SYSFS=y
1518 +CONFIG_RTC_INTF_PROC=y
1519 +CONFIG_RTC_INTF_DEV=y
1520 +CONFIG_RTC_INTF_DEV_UIE_EMUL=y
1521 +# CONFIG_RTC_DRV_TEST is not set
1524 +# I2C RTC drivers
1526 +# CONFIG_RTC_DRV_DS1307 is not set
1527 +# CONFIG_RTC_DRV_DS1374 is not set
1528 +# CONFIG_RTC_DRV_DS1672 is not set
1529 +# CONFIG_RTC_DRV_MAX6900 is not set
1530 +# CONFIG_RTC_DRV_RS5C372 is not set
1531 +# CONFIG_RTC_DRV_ISL1208 is not set
1532 +# CONFIG_RTC_DRV_X1205 is not set
1533 +# CONFIG_RTC_DRV_PCF8563 is not set
1534 +# CONFIG_RTC_DRV_PCF8583 is not set
1535 +# CONFIG_RTC_DRV_M41T80 is not set
1536 +# CONFIG_RTC_DRV_S35390A is not set
1537 +# CONFIG_RTC_DRV_FM3130 is not set
1538 +# CONFIG_RTC_DRV_RX8581 is not set
1541 +# SPI RTC drivers
1543 +# CONFIG_RTC_DRV_M41T94 is not set
1544 +# CONFIG_RTC_DRV_DS1305 is not set
1545 +# CONFIG_RTC_DRV_DS1390 is not set
1546 +# CONFIG_RTC_DRV_MAX6902 is not set
1547 +# CONFIG_RTC_DRV_R9701 is not set
1548 +# CONFIG_RTC_DRV_RS5C348 is not set
1549 +# CONFIG_RTC_DRV_DS3234 is not set
1552 +# Platform RTC drivers
1554 +# CONFIG_RTC_DRV_CMOS is not set
1555 +# CONFIG_RTC_DRV_DS1286 is not set
1556 +# CONFIG_RTC_DRV_DS1511 is not set
1557 +# CONFIG_RTC_DRV_DS1553 is not set
1558 +# CONFIG_RTC_DRV_DS1742 is not set
1559 +# CONFIG_RTC_DRV_STK17TA8 is not set
1560 +# CONFIG_RTC_DRV_M48T86 is not set
1561 +# CONFIG_RTC_DRV_M48T35 is not set
1562 +# CONFIG_RTC_DRV_M48T59 is not set
1563 +# CONFIG_RTC_DRV_BQ4802 is not set
1564 +# CONFIG_RTC_DRV_V3020 is not set
1567 +# on-CPU RTC drivers
1569 +CONFIG_RTC_DRV_S3C=y
1570 +CONFIG_DMADEVICES=y
1573 +# DMA Devices
1575 +# CONFIG_REGULATOR is not set
1576 +# CONFIG_UIO is not set
1577 +# CONFIG_STAGING is not set
1580 +# File systems
1582 +CONFIG_EXT2_FS=m
1583 +CONFIG_EXT2_FS_XATTR=y
1584 +CONFIG_EXT2_FS_POSIX_ACL=y
1585 +CONFIG_EXT2_FS_SECURITY=y
1586 +# CONFIG_EXT2_FS_XIP is not set
1587 +CONFIG_EXT3_FS=y
1588 +CONFIG_EXT3_FS_XATTR=y
1589 +CONFIG_EXT3_FS_POSIX_ACL=y
1590 +CONFIG_EXT3_FS_SECURITY=y
1591 +# CONFIG_EXT4_FS is not set
1592 +CONFIG_JBD=y
1593 +# CONFIG_JBD_DEBUG is not set
1594 +CONFIG_FS_MBCACHE=y
1595 +# CONFIG_REISERFS_FS is not set
1596 +# CONFIG_JFS_FS is not set
1597 +CONFIG_FS_POSIX_ACL=y
1598 +CONFIG_FILE_LOCKING=y
1599 +# CONFIG_XFS_FS is not set
1600 +# CONFIG_GFS2_FS is not set
1601 +# CONFIG_OCFS2_FS is not set
1602 +# CONFIG_BTRFS_FS is not set
1603 +CONFIG_DNOTIFY=y
1604 +CONFIG_INOTIFY=y
1605 +CONFIG_INOTIFY_USER=y
1606 +# CONFIG_QUOTA is not set
1607 +CONFIG_AUTOFS_FS=y
1608 +CONFIG_AUTOFS4_FS=y
1609 +# CONFIG_FUSE_FS is not set
1610 +CONFIG_GENERIC_ACL=y
1613 +# CD-ROM/DVD Filesystems
1615 +# CONFIG_ISO9660_FS is not set
1616 +# CONFIG_UDF_FS is not set
1619 +# DOS/FAT/NT Filesystems
1621 +CONFIG_FAT_FS=y
1622 +CONFIG_MSDOS_FS=y
1623 +CONFIG_VFAT_FS=y
1624 +CONFIG_FAT_DEFAULT_CODEPAGE=437
1625 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1626 +# CONFIG_NTFS_FS is not set
1629 +# Pseudo filesystems
1631 +CONFIG_PROC_FS=y
1632 +CONFIG_PROC_SYSCTL=y
1633 +CONFIG_PROC_PAGE_MONITOR=y
1634 +CONFIG_SYSFS=y
1635 +CONFIG_TMPFS=y
1636 +CONFIG_TMPFS_POSIX_ACL=y
1637 +# CONFIG_HUGETLB_PAGE is not set
1638 +CONFIG_CONFIGFS_FS=m
1639 +CONFIG_MISC_FILESYSTEMS=y
1640 +# CONFIG_ADFS_FS is not set
1641 +# CONFIG_AFFS_FS is not set
1642 +# CONFIG_ECRYPT_FS is not set
1643 +# CONFIG_HFS_FS is not set
1644 +# CONFIG_HFSPLUS_FS is not set
1645 +# CONFIG_BEFS_FS is not set
1646 +# CONFIG_BFS_FS is not set
1647 +# CONFIG_EFS_FS is not set
1648 +CONFIG_JFFS2_FS=y
1649 +CONFIG_JFFS2_FS_DEBUG=0
1650 +CONFIG_JFFS2_FS_WRITEBUFFER=y
1651 +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1652 +# CONFIG_JFFS2_SUMMARY is not set
1653 +# CONFIG_JFFS2_FS_XATTR is not set
1654 +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1655 +CONFIG_JFFS2_ZLIB=y
1656 +# CONFIG_JFFS2_LZO is not set
1657 +CONFIG_JFFS2_RTIME=y
1658 +# CONFIG_JFFS2_RUBIN is not set
1659 +CONFIG_CRAMFS=y
1660 +# CONFIG_SQUASHFS is not set
1661 +# CONFIG_VXFS_FS is not set
1662 +# CONFIG_MINIX_FS is not set
1663 +# CONFIG_OMFS_FS is not set
1664 +# CONFIG_HPFS_FS is not set
1665 +# CONFIG_QNX4FS_FS is not set
1666 +CONFIG_ROMFS_FS=y
1667 +# CONFIG_SYSV_FS is not set
1668 +# CONFIG_UFS_FS is not set
1669 +CONFIG_NETWORK_FILESYSTEMS=y
1670 +CONFIG_NFS_FS=y
1671 +CONFIG_NFS_V3=y
1672 +CONFIG_NFS_V3_ACL=y
1673 +CONFIG_NFS_V4=y
1674 +CONFIG_ROOT_NFS=y
1675 +# CONFIG_NFSD is not set
1676 +CONFIG_LOCKD=y
1677 +CONFIG_LOCKD_V4=y
1678 +CONFIG_NFS_ACL_SUPPORT=y
1679 +CONFIG_NFS_COMMON=y
1680 +CONFIG_SUNRPC=y
1681 +CONFIG_SUNRPC_GSS=y
1682 +# CONFIG_SUNRPC_REGISTER_V4 is not set
1683 +CONFIG_RPCSEC_GSS_KRB5=y
1684 +# CONFIG_RPCSEC_GSS_SPKM3 is not set
1685 +# CONFIG_SMB_FS is not set
1686 +# CONFIG_CIFS is not set
1687 +# CONFIG_NCP_FS is not set
1688 +# CONFIG_CODA_FS is not set
1689 +# CONFIG_AFS_FS is not set
1692 +# Partition Types
1694 +CONFIG_PARTITION_ADVANCED=y
1695 +# CONFIG_ACORN_PARTITION is not set
1696 +# CONFIG_OSF_PARTITION is not set
1697 +# CONFIG_AMIGA_PARTITION is not set
1698 +# CONFIG_ATARI_PARTITION is not set
1699 +# CONFIG_MAC_PARTITION is not set
1700 +CONFIG_MSDOS_PARTITION=y
1701 +CONFIG_BSD_DISKLABEL=y
1702 +CONFIG_MINIX_SUBPARTITION=y
1703 +CONFIG_SOLARIS_X86_PARTITION=y
1704 +CONFIG_UNIXWARE_DISKLABEL=y
1705 +CONFIG_LDM_PARTITION=y
1706 +# CONFIG_LDM_DEBUG is not set
1707 +# CONFIG_SGI_PARTITION is not set
1708 +# CONFIG_ULTRIX_PARTITION is not set
1709 +# CONFIG_SUN_PARTITION is not set
1710 +# CONFIG_KARMA_PARTITION is not set
1711 +CONFIG_EFI_PARTITION=y
1712 +# CONFIG_SYSV68_PARTITION is not set
1713 +CONFIG_NLS=y
1714 +CONFIG_NLS_DEFAULT="cp437"
1715 +CONFIG_NLS_CODEPAGE_437=m
1716 +CONFIG_NLS_CODEPAGE_737=m
1717 +CONFIG_NLS_CODEPAGE_775=m
1718 +CONFIG_NLS_CODEPAGE_850=m
1719 +CONFIG_NLS_CODEPAGE_852=m
1720 +CONFIG_NLS_CODEPAGE_855=m
1721 +CONFIG_NLS_CODEPAGE_857=m
1722 +CONFIG_NLS_CODEPAGE_860=m
1723 +CONFIG_NLS_CODEPAGE_861=m
1724 +CONFIG_NLS_CODEPAGE_862=m
1725 +CONFIG_NLS_CODEPAGE_863=m
1726 +CONFIG_NLS_CODEPAGE_864=m
1727 +CONFIG_NLS_CODEPAGE_865=m
1728 +CONFIG_NLS_CODEPAGE_866=m
1729 +CONFIG_NLS_CODEPAGE_869=m
1730 +CONFIG_NLS_CODEPAGE_936=m
1731 +CONFIG_NLS_CODEPAGE_950=m
1732 +CONFIG_NLS_CODEPAGE_932=m
1733 +CONFIG_NLS_CODEPAGE_949=m
1734 +CONFIG_NLS_CODEPAGE_874=m
1735 +CONFIG_NLS_ISO8859_8=m
1736 +CONFIG_NLS_CODEPAGE_1250=m
1737 +CONFIG_NLS_CODEPAGE_1251=m
1738 +CONFIG_NLS_ASCII=m
1739 +CONFIG_NLS_ISO8859_1=m
1740 +CONFIG_NLS_ISO8859_2=m
1741 +CONFIG_NLS_ISO8859_3=m
1742 +CONFIG_NLS_ISO8859_4=m
1743 +CONFIG_NLS_ISO8859_5=m
1744 +CONFIG_NLS_ISO8859_6=m
1745 +CONFIG_NLS_ISO8859_7=m
1746 +CONFIG_NLS_ISO8859_9=m
1747 +CONFIG_NLS_ISO8859_13=m
1748 +CONFIG_NLS_ISO8859_14=m
1749 +CONFIG_NLS_ISO8859_15=m
1750 +CONFIG_NLS_KOI8_R=m
1751 +CONFIG_NLS_KOI8_U=m
1752 +CONFIG_NLS_UTF8=m
1753 +# CONFIG_DLM is not set
1756 +# Kernel hacking
1758 +# CONFIG_PRINTK_TIME is not set
1759 +# CONFIG_ENABLE_WARN_DEPRECATED is not set
1760 +# CONFIG_ENABLE_MUST_CHECK is not set
1761 +CONFIG_FRAME_WARN=1024
1762 +# CONFIG_MAGIC_SYSRQ is not set
1763 +# CONFIG_UNUSED_SYMBOLS is not set
1764 +CONFIG_DEBUG_FS=y
1765 +# CONFIG_HEADERS_CHECK is not set
1766 +# CONFIG_DEBUG_KERNEL is not set
1767 +# CONFIG_SLUB_DEBUG_ON is not set
1768 +# CONFIG_SLUB_STATS is not set
1769 +CONFIG_STACKTRACE=y
1770 +CONFIG_DEBUG_BUGVERBOSE=y
1771 +CONFIG_DEBUG_MEMORY_INIT=y
1772 +CONFIG_FRAME_POINTER=y
1773 +# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1774 +# CONFIG_LATENCYTOP is not set
1775 +CONFIG_SYSCTL_SYSCALL_CHECK=y
1776 +CONFIG_NOP_TRACER=y
1777 +CONFIG_HAVE_FUNCTION_TRACER=y
1778 +CONFIG_RING_BUFFER=y
1779 +CONFIG_TRACING=y
1782 +# Tracers
1784 +# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1785 +# CONFIG_SAMPLES is not set
1786 +CONFIG_HAVE_ARCH_KGDB=y
1787 +CONFIG_DEBUG_USER=y
1788 +CONFIG_DEBUG_S3C_UART=0
1791 +# Security options
1793 +CONFIG_KEYS=y
1794 +# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
1795 +# CONFIG_SECURITY is not set
1796 +# CONFIG_SECURITYFS is not set
1797 +CONFIG_SECURITY_FILE_CAPABILITIES=y
1798 +CONFIG_CRYPTO=y
1801 +# Crypto core or helper
1803 +CONFIG_CRYPTO_FIPS=y
1804 +CONFIG_CRYPTO_ALGAPI=y
1805 +CONFIG_CRYPTO_ALGAPI2=y
1806 +CONFIG_CRYPTO_AEAD=m
1807 +CONFIG_CRYPTO_AEAD2=y
1808 +CONFIG_CRYPTO_BLKCIPHER=y
1809 +CONFIG_CRYPTO_BLKCIPHER2=y
1810 +CONFIG_CRYPTO_HASH=y
1811 +CONFIG_CRYPTO_HASH2=y
1812 +CONFIG_CRYPTO_RNG=m
1813 +CONFIG_CRYPTO_RNG2=y
1814 +CONFIG_CRYPTO_MANAGER=y
1815 +CONFIG_CRYPTO_MANAGER2=y
1816 +CONFIG_CRYPTO_GF128MUL=m
1817 +CONFIG_CRYPTO_NULL=m
1818 +CONFIG_CRYPTO_CRYPTD=m
1819 +CONFIG_CRYPTO_AUTHENC=m
1820 +CONFIG_CRYPTO_TEST=m
1823 +# Authenticated Encryption with Associated Data
1825 +CONFIG_CRYPTO_CCM=m
1826 +CONFIG_CRYPTO_GCM=m
1827 +CONFIG_CRYPTO_SEQIV=m
1830 +# Block modes
1832 +CONFIG_CRYPTO_CBC=y
1833 +CONFIG_CRYPTO_CTR=m
1834 +CONFIG_CRYPTO_CTS=m
1835 +CONFIG_CRYPTO_ECB=m
1836 +CONFIG_CRYPTO_LRW=m
1837 +CONFIG_CRYPTO_PCBC=m
1838 +CONFIG_CRYPTO_XTS=m
1841 +# Hash modes
1843 +CONFIG_CRYPTO_HMAC=y
1844 +CONFIG_CRYPTO_XCBC=m
1847 +# Digest
1849 +CONFIG_CRYPTO_CRC32C=m
1850 +CONFIG_CRYPTO_MD4=m
1851 +CONFIG_CRYPTO_MD5=y
1852 +CONFIG_CRYPTO_MICHAEL_MIC=m
1853 +CONFIG_CRYPTO_RMD128=m
1854 +CONFIG_CRYPTO_RMD160=m
1855 +CONFIG_CRYPTO_RMD256=m
1856 +CONFIG_CRYPTO_RMD320=m
1857 +CONFIG_CRYPTO_SHA1=m
1858 +CONFIG_CRYPTO_SHA256=m
1859 +CONFIG_CRYPTO_SHA512=m
1860 +CONFIG_CRYPTO_TGR192=m
1861 +CONFIG_CRYPTO_WP512=m
1864 +# Ciphers
1866 +CONFIG_CRYPTO_AES=m
1867 +CONFIG_CRYPTO_ANUBIS=m
1868 +CONFIG_CRYPTO_ARC4=m
1869 +CONFIG_CRYPTO_BLOWFISH=m
1870 +CONFIG_CRYPTO_CAMELLIA=m
1871 +CONFIG_CRYPTO_CAST5=m
1872 +CONFIG_CRYPTO_CAST6=m
1873 +CONFIG_CRYPTO_DES=y
1874 +CONFIG_CRYPTO_FCRYPT=m
1875 +CONFIG_CRYPTO_KHAZAD=m
1876 +CONFIG_CRYPTO_SALSA20=m
1877 +CONFIG_CRYPTO_SEED=m
1878 +CONFIG_CRYPTO_SERPENT=m
1879 +CONFIG_CRYPTO_TEA=m
1880 +CONFIG_CRYPTO_TWOFISH=m
1881 +CONFIG_CRYPTO_TWOFISH_COMMON=m
1884 +# Compression
1886 +CONFIG_CRYPTO_DEFLATE=m
1887 +CONFIG_CRYPTO_LZO=m
1890 +# Random Number Generation
1892 +CONFIG_CRYPTO_ANSI_CPRNG=m
1893 +CONFIG_CRYPTO_HW=y
1896 +# Library routines
1898 +CONFIG_BITREVERSE=y
1899 +CONFIG_GENERIC_FIND_LAST_BIT=y
1900 +CONFIG_CRC_CCITT=m
1901 +CONFIG_CRC16=m
1902 +CONFIG_CRC_T10DIF=y
1903 +CONFIG_CRC_ITU_T=m
1904 +CONFIG_CRC32=y
1905 +CONFIG_CRC7=m
1906 +CONFIG_LIBCRC32C=m
1907 +CONFIG_AUDIT_GENERIC=y
1908 +CONFIG_ZLIB_INFLATE=y
1909 +CONFIG_ZLIB_DEFLATE=y
1910 +CONFIG_LZO_COMPRESS=m
1911 +CONFIG_LZO_DECOMPRESS=m
1912 +CONFIG_TEXTSEARCH=y
1913 +CONFIG_TEXTSEARCH_KMP=m
1914 +CONFIG_TEXTSEARCH_BM=m
1915 +CONFIG_TEXTSEARCH_FSM=m
1916 +CONFIG_PLIST=y
1917 +CONFIG_HAS_IOMEM=y
1918 +CONFIG_HAS_DMA=y
1919 diff --git a/arch/arm/include/asm/elf.h b/arch/arm/include/asm/elf.h
1920 index a58378c..ce3b36e 100644
1921 --- a/arch/arm/include/asm/elf.h
1922 +++ b/arch/arm/include/asm/elf.h
1923 @@ -50,6 +50,7 @@ typedef struct user_fp elf_fpregset_t;
1924 #define R_ARM_ABS32 2
1925 #define R_ARM_CALL 28
1926 #define R_ARM_JUMP24 29
1927 +#define R_ARM_V4BX 40
1930 * These are used to set parameters in the core dumps.
1931 diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c
1932 index dab48f2..fa03392 100644
1933 --- a/arch/arm/kernel/module.c
1934 +++ b/arch/arm/kernel/module.c
1935 @@ -132,6 +132,13 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex,
1936 *(u32 *)loc |= offset & 0x00ffffff;
1937 break;
1939 +#ifdef CONFIG_CPU_ARM920T
1940 + /* modern toolchain generate V4BX for the modules, and there is no
1941 + * way to skip them being generated in the .ko, so in our case, we just
1942 + * can ignore them */
1943 + case R_ARM_V4BX: /* Ignore these sections */
1944 + break;
1945 +#endif
1946 default:
1947 printk(KERN_ERR "%s: unknown relocation: %u\n",
1948 module->name, ELF32_R_TYPE(rel->r_info));
1949 diff --git a/arch/arm/mach-s3c2410/include/mach/ts.h b/arch/arm/mach-s3c2410/include/mach/ts.h
1950 new file mode 100644
1951 index 0000000..1b451ea
1952 --- /dev/null
1953 +++ b/arch/arm/mach-s3c2410/include/mach/ts.h
1954 @@ -0,0 +1,35 @@
1955 +/* arch/arm/mach-s3c2410/include/mach/ts.h
1957 + * Copyright (c) 2005 Arnaud Patard <arnaud.patard@rtp-net.org>
1960 + * This program is free software; you can redistribute it and/or modify
1961 + * it under the terms of the GNU General Public License version 2 as
1962 + * published by the Free Software Foundation.
1965 + * Changelog:
1966 + * 24-Mar-2005 RTP Created file
1967 + * 03-Aug-2005 RTP Renamed to ts.h
1968 + */
1970 +#ifndef __ASM_ARM_TS_H
1971 +#define __ASM_ARM_TS_H
1973 +#include <../drivers/input/touchscreen/ts_filter.h>
1975 +struct s3c2410_ts_mach_info {
1976 + int delay;
1977 + int presc;
1978 + /* array of pointers to filter APIs we want to use, in order
1979 + * ends on first NULL, all NULL is OK
1980 + */
1981 + struct ts_filter_api *filter_sequence[MAX_TS_FILTER_CHAIN];
1982 + /* array of configuration ints, one for each filter above */
1983 + void *filter_config[MAX_TS_FILTER_CHAIN];
1986 +void set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info);
1988 +#endif /* __ASM_ARM_TS_H */
1990 diff --git a/arch/arm/mach-s3c2440/Kconfig b/arch/arm/mach-s3c2440/Kconfig
1991 index cde5ae9..7953c22 100644
1992 --- a/arch/arm/mach-s3c2440/Kconfig
1993 +++ b/arch/arm/mach-s3c2440/Kconfig
1994 @@ -79,5 +79,15 @@ config MACH_AT2440EVB
1995 help
1996 Say Y here if you are using the AT2440EVB development board
1998 +config MACH_MINI2440
1999 + bool "MINI2440 development board"
2000 + select CPU_S3C2440
2001 + select EEPROM_AT24
2002 + select BACKLIGHT_PWM
2003 + select SND_S3C24XX_SOC_S3C24XX_UDA134X
2004 + help
2005 + Say Y here to select support for the MINI2440. Is a 10cm x 10cm board
2006 + available via various sources. It can come with a 3.5" or 7" touch LCD.
2008 endmenu
2010 diff --git a/arch/arm/mach-s3c2440/Makefile b/arch/arm/mach-s3c2440/Makefile
2011 index 0b4440e..bfadcf6 100644
2012 --- a/arch/arm/mach-s3c2440/Makefile
2013 +++ b/arch/arm/mach-s3c2440/Makefile
2014 @@ -22,3 +22,4 @@ obj-$(CONFIG_MACH_RX3715) += mach-rx3715.o
2015 obj-$(CONFIG_ARCH_S3C2440) += mach-smdk2440.o
2016 obj-$(CONFIG_MACH_NEXCODER_2440) += mach-nexcoder.o
2017 obj-$(CONFIG_MACH_AT2440EVB) += mach-at2440evb.o
2018 +obj-$(CONFIG_MACH_MINI2440) += mach-mini2440.o
2019 diff --git a/arch/arm/mach-s3c2440/mach-mini2440.c b/arch/arm/mach-s3c2440/mach-mini2440.c
2020 new file mode 100644
2021 index 0000000..5ff1457
2022 --- /dev/null
2023 +++ b/arch/arm/mach-s3c2440/mach-mini2440.c
2024 @@ -0,0 +1,654 @@
2025 +/* linux/arch/arm/mach-s3c2440/mach-mini2440.c
2027 + * Copyright (c) 2008 Ramax Lo <ramaxlo@gmail.com>
2028 + * Based on mach-anubis.c by Ben Dooks <ben@simtec.co.uk>
2029 + * and modifications by SBZ <sbz@spgui.org> and
2030 + * Weibing <http://weibing.blogbus.com>
2031 + * Michel Pollet <buserror@gmail.com>
2033 + * For product information, visit http://www.arm9e.com/
2035 + * This program is free software; you can redistribute it and/or modify
2036 + * it under the terms of the GNU General Public License version 2 as
2037 + * published by the Free Software Foundation.
2040 +#include <linux/kernel.h>
2041 +#include <linux/types.h>
2042 +#include <linux/interrupt.h>
2043 +#include <linux/list.h>
2044 +#include <linux/timer.h>
2045 +#include <linux/init.h>
2046 +#include <linux/io.h>
2047 +#include <linux/serial_core.h>
2048 +#include <linux/dm9000.h>
2049 +#include <linux/i2c/at24.h>
2050 +#include <linux/platform_device.h>
2051 +#include <linux/gpio_keys.h>
2052 +#include <linux/i2c.h>
2053 +#include <linux/mmc/host.h>
2054 +#include <linux/pwm_backlight.h>
2056 +#include <asm/mach/arch.h>
2057 +#include <asm/mach/map.h>
2059 +#include <mach/hardware.h>
2060 +#include <mach/fb.h>
2061 +#include <asm/mach-types.h>
2063 +#include <plat/regs-serial.h>
2064 +#include <mach/regs-gpio.h>
2065 +#include <mach/leds-gpio.h>
2066 +#include <mach/regs-mem.h>
2067 +#include <mach/regs-lcd.h>
2068 +#include <plat/nand.h>
2069 +#include <plat/iic.h>
2070 +#include <plat/mci.h>
2071 +#include <mach/ts.h>
2072 +#include <mach/irqs.h>
2074 +#include <plat/regs-serial.h>
2075 +#include <mach/regs-gpio.h>
2076 +#include <mach/regs-mem.h>
2077 +#include <mach/regs-lcd.h>
2079 +#include <linux/mtd/mtd.h>
2080 +#include <linux/mtd/nand.h>
2081 +#include <linux/mtd/nand_ecc.h>
2082 +#include <linux/mtd/partitions.h>
2084 +#include <plat/clock.h>
2085 +#include <plat/devs.h>
2086 +#include <plat/cpu.h>
2088 +#include <sound/s3c24xx_uda134x.h>
2090 +#ifdef CONFIG_TOUCHSCREEN_FILTER
2091 +#include <../drivers/input/touchscreen/ts_filter_linear.h>
2092 +#include <../drivers/input/touchscreen/ts_filter_mean.h>
2093 +#include <../drivers/input/touchscreen/ts_filter_median.h>
2094 +#include <../drivers/input/touchscreen/ts_filter_group.h>
2095 +#endif
2097 +#define MACH_MINI2440_DM9K_BASE (S3C2410_CS4 + 0x300)
2099 +static struct map_desc mini2440_iodesc[] __initdata = {
2100 + /* nothing to declare, move along */
2103 +#define UCON S3C2410_UCON_DEFAULT
2104 +#define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB
2105 +#define UFCON S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE
2108 +static struct s3c2410_uartcfg mini2440_uartcfgs[] __initdata = {
2109 + [0] = {
2110 + .hwport = 0,
2111 + .flags = 0,
2112 + .ucon = UCON,
2113 + .ulcon = ULCON,
2114 + .ufcon = UFCON,
2115 + },
2116 + [1] = {
2117 + .hwport = 1,
2118 + .flags = 0,
2119 + .ucon = UCON,
2120 + .ulcon = ULCON,
2121 + .ufcon = UFCON,
2122 + },
2123 + [2] = {
2124 + .hwport = 2,
2125 + .flags = 0,
2126 + .ucon = UCON,
2127 + .ulcon = ULCON,
2128 + .ufcon = UFCON,
2129 + },
2132 +/* touchscreen configuration */
2133 +#ifdef CONFIG_TOUCHSCREEN_FILTER
2134 +static struct ts_filter_linear_configuration mini2440_ts_linear_config = {
2135 + .constants = {
2136 + 0, /* x factor */
2137 + 1, /* y proportion */
2138 + 0, /* x offset */
2140 + 1, /* x factor */
2141 + 0, /* y factor */
2142 + 0, /* y offset */
2144 + 1 /* common divisor */
2145 + },
2146 + .coord0 = 0,
2147 + .coord1 = 1,
2150 +static struct ts_filter_group_configuration mini2440_ts_group_config = {
2151 + .extent = 12,
2152 + .close_enough = 10,
2153 + .threshold = 6, /* at least half of the points in a group */
2154 + .attempts = 10,
2157 +static struct ts_filter_median_configuration mini2440_ts_median_config = {
2158 + .extent = 20,
2159 + .decimation_below = 3,
2160 + .decimation_threshold = 8 * 3,
2161 + .decimation_above = 4,
2164 +static struct ts_filter_mean_configuration mini2440_ts_mean_config = {
2165 + .bits_filter_length = 2, /* 4 points */
2168 +static struct s3c2410_ts_mach_info mini2440_ts_cfg = {
2169 + .delay = 10000,
2170 + .presc = 0xff, /* slow as we can go */
2171 + .filter_sequence = {
2172 + [0] = &ts_filter_group_api,
2173 + [1] = &ts_filter_median_api,
2174 + [2] = &ts_filter_mean_api,
2175 + [3] = &ts_filter_linear_api,
2176 + },
2177 + .filter_config = {
2178 + [0] = &mini2440_ts_group_config,
2179 + [1] = &mini2440_ts_median_config,
2180 + [2] = &mini2440_ts_mean_config,
2181 + [3] = &mini2440_ts_linear_config,
2182 + },
2184 +#else /* !CONFIG_TOUCHSCREEN_FILTER */
2185 +static struct s3c2410_ts_mach_info mini2440_ts_cfg = {
2186 + .delay = 10000,
2187 + .presc = 0xff, /* slow as we can go */
2189 +#endif
2191 +/* LCD driver info */
2193 +/* LCD timing and setup */
2195 +#define _LCD_DECLARE(_xres,margin_left,margin_right,hsync, _yres,margin_top,margin_bottom,vsync, refresh) \
2196 + .width = _xres, \
2197 + .xres = _xres, \
2198 + .height = _yres, \
2199 + .yres = _yres, \
2200 + .left_margin = margin_left, \
2201 + .right_margin = margin_right, \
2202 + .upper_margin = margin_top, \
2203 + .lower_margin = margin_bottom, \
2204 + .hsync_len = hsync, \
2205 + .vsync_len = vsync, \
2206 + .pixclock = (1000000000000LL / \
2207 + ((refresh) * \
2208 + (hsync + margin_left + _xres + margin_right) * \
2209 + (vsync + margin_top + _yres + margin_bottom))), \
2210 + .bpp = 16,\
2211 + .type = (S3C2410_LCDCON1_TFT16BPP |\
2212 + S3C2410_LCDCON1_TFT),
2214 +struct s3c2410fb_display mini2440_lcd_cfg[] __initdata = {
2215 + [0] = { // mini2440 + 3.5" TFT + touchscreen
2216 + _LCD_DECLARE(
2217 + 240, 21, 38, 6, // x timing
2218 + 320, 2, 6, 2, // y timing
2219 + 60) // refresh rate
2220 + .lcdcon5 = (S3C2410_LCDCON5_FRM565 |\
2221 + S3C2410_LCDCON5_INVVLINE |\
2222 + S3C2410_LCDCON5_INVVFRAME |\
2223 + S3C2410_LCDCON5_INVVDEN |\
2224 + S3C2410_LCDCON5_PWREN),
2225 + },
2226 + [1] = { // mini2440 + 7" TFT + touchscreen
2227 + _LCD_DECLARE(
2228 + 800, 41, 68, 32, // x timing
2229 + 480, 26, 6, 2, // y timing
2230 + 40) // refresh rate
2231 + .lcdcon5 = (S3C2410_LCDCON5_FRM565 |\
2232 + S3C2410_LCDCON5_INVVLINE |\
2233 + S3C2410_LCDCON5_INVVFRAME |\
2234 + S3C2410_LCDCON5_INVVDEN |\
2235 + S3C2410_LCDCON5_PWREN),
2236 + },
2237 + /* VGA all share the timings
2238 + * NOTE: The VGA board seems to always output at 1024x768
2239 + * unless you add the dip-switch block. The smaller resolution
2240 + * WILL work, but be displayed in the top/left corner on the VGA screen
2241 + */
2242 + [2] = {
2243 + _LCD_DECLARE(
2244 + 1024, 1, 2, 2, // y timing
2245 + 768, 200, 16, 16, // x timing
2246 + 24) // refresh rate, maximum stable, tested with the FPGA shield
2247 + .lcdcon5 = (S3C2410_LCDCON5_FRM565 |\
2248 + S3C2410_LCDCON5_HWSWP),
2249 + },
2250 + [3] = {
2251 + _LCD_DECLARE(
2252 + 800, 1, 2, 2, // y timing
2253 + 600, 200, 16, 16, // x timing
2254 + 24) // refresh rate, maximum stable, tested with the FPGA shield
2255 + .lcdcon5 = (S3C2410_LCDCON5_FRM565 |\
2256 + S3C2410_LCDCON5_HWSWP),
2257 + },
2258 + [4] = {
2259 + _LCD_DECLARE(
2260 + 640, 1, 2, 2, // y timing
2261 + 480, 200, 16, 16, // x timing
2262 + 24) // refresh rate, maximum stable, tested with the FPGA shield
2263 + .lcdcon5 = (S3C2410_LCDCON5_FRM565 |\
2264 + S3C2410_LCDCON5_HWSWP),
2265 + },
2268 +/* todo - put into gpio header */
2270 +#define S3C2410_GPCCON_MASK(x) (3 << ((x) * 2))
2271 +#define S3C2410_GPDCON_MASK(x) (3 << ((x) * 2))
2273 +struct s3c2410fb_mach_info mini2440_fb_info __initdata = {
2274 + .displays = &mini2440_lcd_cfg[0],
2275 + .num_displays = 1,
2276 + .default_display = 0,
2278 + /* Enable VD[2..7], VD[10..15], VD[18..23] and VCLK, syncs, VDEN
2279 + * and disable the pull down resistors on pins we are using for LCD
2280 + * data. */
2282 + .gpcup = (0xf << 1) | (0x3f << 10),
2284 + .gpccon = (S3C2410_GPC1_VCLK | S3C2410_GPC2_VLINE |
2285 + S3C2410_GPC3_VFRAME | S3C2410_GPC4_VM |
2286 + S3C2410_GPC10_VD2 | S3C2410_GPC11_VD3 |
2287 + S3C2410_GPC12_VD4 | S3C2410_GPC13_VD5 |
2288 + S3C2410_GPC14_VD6 | S3C2410_GPC15_VD7),
2290 + .gpccon_mask = (S3C2410_GPCCON_MASK(1) | S3C2410_GPCCON_MASK(2) |
2291 + S3C2410_GPCCON_MASK(3) | S3C2410_GPCCON_MASK(4) |
2292 + S3C2410_GPCCON_MASK(10) | S3C2410_GPCCON_MASK(11) |
2293 + S3C2410_GPCCON_MASK(12) | S3C2410_GPCCON_MASK(13) |
2294 + S3C2410_GPCCON_MASK(14) | S3C2410_GPCCON_MASK(15)),
2296 + .gpdup = (0x3f << 2) | (0x3f << 10),
2298 + .gpdcon = (S3C2410_GPD2_VD10 | S3C2410_GPD3_VD11 |
2299 + S3C2410_GPD4_VD12 | S3C2410_GPD5_VD13 |
2300 + S3C2410_GPD6_VD14 | S3C2410_GPD7_VD15 |
2301 + S3C2410_GPD10_VD18 | S3C2410_GPD11_VD19 |
2302 + S3C2410_GPD12_VD20 | S3C2410_GPD13_VD21 |
2303 + S3C2410_GPD14_VD22 | S3C2410_GPD15_VD23),
2305 + .gpdcon_mask = (S3C2410_GPDCON_MASK(2) | S3C2410_GPDCON_MASK(3) |
2306 + S3C2410_GPDCON_MASK(4) | S3C2410_GPDCON_MASK(5) |
2307 + S3C2410_GPDCON_MASK(6) | S3C2410_GPDCON_MASK(7) |
2308 + S3C2410_GPDCON_MASK(10) | S3C2410_GPDCON_MASK(11)|
2309 + S3C2410_GPDCON_MASK(12) | S3C2410_GPDCON_MASK(13)|
2310 + S3C2410_GPDCON_MASK(14) | S3C2410_GPDCON_MASK(15)),
2313 +/* MMC/SD */
2315 +static struct s3c24xx_mci_pdata mini2440_mmc_cfg = {
2316 + .gpio_detect = S3C2410_GPG8,
2317 + .set_power = NULL,
2318 + .ocr_avail = MMC_VDD_32_33|MMC_VDD_33_34,
2321 +/* NAND Flash on MINI2440 board */
2323 +static struct mtd_partition mini2440_default_nand_part[] = {
2324 + [0] = {
2325 + .name = "u-boot",
2326 + .size = SZ_256K,
2327 + .offset = 0,
2328 + },
2329 + [1] = {
2330 + .name = "u-boot-env",
2331 + .size = SZ_128K,
2332 + .offset = SZ_256K,
2333 + },
2334 + [2] = {
2335 + .name = "kernel",
2336 + .size = 0x00500000, /* 5 megabytes, for a kernel with no modules */
2337 + .offset = SZ_256K + SZ_128K,
2338 + },
2339 + [3] = {
2340 + .name = "root",
2341 + .offset = SZ_256K + SZ_128K + 0x00500000,
2342 + .size = MTDPART_SIZ_FULL,
2343 + },
2346 +static struct s3c2410_nand_set mini2440_nand_sets[] = {
2347 + [0] = {
2348 + .name = "nand",
2349 + .nr_chips = 1,
2350 + .nr_partitions = ARRAY_SIZE(mini2440_default_nand_part),
2351 + .partitions = mini2440_default_nand_part,
2352 + },
2355 +static struct s3c2410_platform_nand mini2440_nand_info = {
2356 + .tacls = 0, // was 25,
2357 + .twrph0 = 25, // 55,
2358 + .twrph1 = 15, // 40,
2359 + .nr_sets = ARRAY_SIZE(mini2440_nand_sets),
2360 + .sets = mini2440_nand_sets,
2363 +/* DM9000AEP 10/100 ethernet controller */
2365 +static struct resource mini2440_dm9k_resource[] = {
2366 + [0] = {
2367 + .start = MACH_MINI2440_DM9K_BASE,
2368 + .end = MACH_MINI2440_DM9K_BASE + 3,
2369 + .flags = IORESOURCE_MEM
2370 + },
2371 + [1] = {
2372 + .start = MACH_MINI2440_DM9K_BASE + 4,
2373 + .end = MACH_MINI2440_DM9K_BASE + 7,
2374 + .flags = IORESOURCE_MEM
2375 + },
2376 + [2] = {
2377 + .start = IRQ_EINT7,
2378 + .end = IRQ_EINT7,
2379 + .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
2383 +static struct dm9000_plat_data mini2440_dm9k_pdata = {
2384 + .flags = (DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM),
2387 +static struct platform_device mini2440_device_eth = {
2388 + .name = "dm9000",
2389 + .id = -1,
2390 + .num_resources = ARRAY_SIZE(mini2440_dm9k_resource),
2391 + .resource = mini2440_dm9k_resource,
2392 + .dev = {
2393 + .platform_data = &mini2440_dm9k_pdata,
2394 + },
2397 +/* backlight */
2399 +static int mini2440_backlight_init(struct device *dev)
2401 + return 0;
2404 + * Cut the power to the LCD if brightness reaches 0
2405 + */
2406 +static int mini2440_backlight_notify(int brightness)
2408 + if (brightness) {
2409 + s3c2410_gpio_setpin(S3C2410_GPB1, 1);
2410 + s3c2410_gpio_cfgpin(S3C2410_GPB1, S3C2410_GPB1_TOUT1); // pwm backlight
2411 +// s3c2410_gpio_cfgpin(S3C2410_GPB1, S3C2410_GPB1_OUTP); // pwm backlight
2412 + s3c2410_gpio_setpin(S3C2410_GPG4, 1);
2413 + s3c2410_gpio_cfgpin(S3C2410_GPG4, S3C2410_GPG4_LCDPWREN);
2414 + } else {
2415 + s3c2410_gpio_setpin(S3C2410_GPB1, 0);
2416 + s3c2410_gpio_cfgpin(S3C2410_GPB1, S3C2410_GPB1_OUTP);
2417 + s3c2410_gpio_setpin(S3C2410_GPG4, 0);
2418 + s3c2410_gpio_cfgpin(S3C2410_GPG4, S3C2410_GPG4_OUTP);
2420 + return brightness;
2423 +static struct platform_pwm_backlight_data mini2440_backlight_data = {
2424 + .pwm_id = 1,
2425 + .max_brightness = 1023,
2426 + .dft_brightness = 900,
2427 + .pwm_period_ns = 4000000, /* Fl = 250Hz PWM */
2428 + .init = mini2440_backlight_init,
2429 + .notify = mini2440_backlight_notify,
2432 +static struct platform_device mini2440_backlight_device = {
2433 + .name = "pwm-backlight",
2434 + .dev = {
2435 + .platform_data = &mini2440_backlight_data,
2436 + },
2439 +/* LEDS */
2441 +static struct s3c24xx_led_platdata mini2440_led1_pdata = {
2442 + .name = "led1",
2443 + .gpio = S3C2410_GPB5,
2444 + .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE,
2445 + .def_trigger = "heartbeat",
2448 +static struct s3c24xx_led_platdata mini2440_led2_pdata = {
2449 + .name = "led2",
2450 + .gpio = S3C2410_GPB6,
2451 + .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE,
2452 + .def_trigger = "nand-disk",
2455 +static struct s3c24xx_led_platdata mini2440_led3_pdata = {
2456 + .name = "led3",
2457 + .gpio = S3C2410_GPB7,
2458 + .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE,
2459 + .def_trigger = "mmc0",
2462 +static struct s3c24xx_led_platdata mini2440_led4_pdata = {
2463 + .name = "led4",
2464 + .gpio = S3C2410_GPB8,
2465 + .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE,
2466 + .def_trigger = "",
2469 +static struct platform_device mini2440_led1 = {
2470 + .name = "s3c24xx_led",
2471 + .id = 1,
2472 + .dev = {
2473 + .platform_data = &mini2440_led1_pdata,
2474 + },
2477 +static struct platform_device mini2440_led2 = {
2478 + .name = "s3c24xx_led",
2479 + .id = 2,
2480 + .dev = {
2481 + .platform_data = &mini2440_led2_pdata,
2482 + },
2485 +static struct platform_device mini2440_led3 = {
2486 + .name = "s3c24xx_led",
2487 + .id = 3,
2488 + .dev = {
2489 + .platform_data = &mini2440_led3_pdata,
2490 + },
2493 +static struct platform_device mini2440_led4 = {
2494 + .name = "s3c24xx_led",
2495 + .id = 4,
2496 + .dev = {
2497 + .platform_data = &mini2440_led4_pdata,
2498 + },
2501 +/* AUDIO */
2503 +static struct s3c24xx_uda134x_platform_data mini2440_audio_pins __initdata = {
2504 + .l3_clk = S3C2410_GPB4,
2505 + .l3_mode = S3C2410_GPB2,
2506 + .l3_data = S3C2410_GPB3,
2507 + .model = UDA134X_UDA1341
2510 +static struct platform_device mini2440_audio = {
2511 + .name = "s3c24xx_uda134x",
2512 + .id = 0,
2513 + .dev = {
2514 + .platform_data = &mini2440_audio_pins,
2515 + },
2518 +/* I2C devices. */
2521 + * I2C devices
2522 + */
2523 +static struct at24_platform_data at24c08 = {
2524 + .byte_len = (8*1024) / 8,
2525 + .page_size = 16,
2526 + .flags = AT24_FLAG_ADDR16,
2529 +static struct i2c_board_info mini2440_i2c_devs[] __initdata = {
2531 + I2C_BOARD_INFO("at24c08", 0x50),
2532 + .platform_data = &at24c08,
2533 + },
2537 + * mini2440_features string
2538 + *
2539 + * t = Touchscreen present
2540 + * b = PWM backlight control
2541 + * c = camera
2542 + * 0-9 LCD configuration
2543 + *
2544 + */
2545 +static char mini2440_features_str[12] __initdata = "0tb";
2547 +static int __init mini2440_features_setup(char *str)
2549 + if (str)
2550 + strlcpy(mini2440_features_str, str, sizeof(mini2440_features_str));
2551 + return 1;
2554 +__setup("mini2440=", mini2440_features_setup);
2556 +static struct platform_device *mini2440_devices[] __initdata = {
2557 + &s3c_device_usb,
2558 + &s3c_device_wdt,
2559 +// &s3c_device_adc, // ADC doesn't like living with touchscreen !
2560 + &s3c_device_i2c0,
2561 + &s3c_device_rtc,
2562 + &mini2440_device_eth,
2563 + &mini2440_led1,
2564 + &mini2440_led2,
2565 + &mini2440_led3,
2566 + &mini2440_led4,
2567 + &s3c_device_nand,
2568 + &s3c_device_sdi,
2569 + &s3c_device_iis,
2570 + &mini2440_audio,
2571 +// &s3c_device_timer[0], // buzzer pwm, no API for it
2572 + /* remaining devices are optional */
2575 +static void __init mini2440_map_io(void)
2577 + s3c24xx_init_io(mini2440_iodesc, ARRAY_SIZE(mini2440_iodesc));
2578 + s3c24xx_init_clocks(12000000);
2579 + s3c24xx_init_uarts(mini2440_uartcfgs, ARRAY_SIZE(mini2440_uartcfgs));
2581 + s3c_device_nand.dev.platform_data = &mini2440_nand_info;
2582 + s3c_device_sdi.dev.platform_data = &mini2440_mmc_cfg;
2585 +static void __init mini2440_init(void)
2587 + struct platform_device *optionals[8];
2588 + int count = 0;
2589 + int lcd_index = -1;
2591 + // turn LCD on
2592 + s3c2410_gpio_cfgpin(S3C2410_GPC0, S3C2410_GPC0_LEND);
2594 + s3c2410_gpio_pullup(S3C2410_GPB1, 0); // remove pullup on PWM backlight
2595 + s3c2410_gpio_setpin(S3C2410_GPB1, 0);
2596 + s3c2410_gpio_cfgpin(S3C2410_GPB1, S3C2410_GPB1_TOUT1);
2598 + printk(KERN_INFO "MINI2440: Option string mini2440=%s\n", mini2440_features_str);
2601 + int done = 0;
2602 + char * fp = mini2440_features_str;
2603 + while (*fp) {
2604 + char f = *fp++;
2605 + switch (f) {
2606 + case '0'...'9': /* tft screen */
2607 + if (done & (1 << 0))
2608 + printk(KERN_INFO "MINI2440: '%c' ignored, screen type already set\n", f);
2609 + else {
2610 + int li = f - '0';
2611 + if (li >= ARRAY_SIZE(mini2440_lcd_cfg))
2612 + printk(KERN_INFO "MINI2440: '%c' out of range for LCD mode\n", f);
2613 + else {
2614 + optionals[count++] = &s3c_device_lcd;
2615 + lcd_index = li;
2618 + done |= 1 << 0;
2619 + break;
2620 + case 'b':
2621 + if (done & (1 << 1))
2622 + printk(KERN_INFO "MINI2440: '%c' ignored, backlight already set\n", f);
2623 + else {
2624 + optionals[count++] = &s3c_device_timer[1]; // need this timer for the backlight
2625 + optionals[count++] = &mini2440_backlight_device;
2627 + done |= 1 << 1;
2628 + break;
2629 + case 't':
2630 + if (done & (1 << 2))
2631 + printk(KERN_INFO "MINI2440: '%c' ignored, touchscreen already set\n", f);
2632 + else
2633 + optionals[count++] = &s3c_device_ts;
2634 + done |= 1 << 2;
2635 + break;
2636 + case 'c':
2637 + if (done & (1 << 2))
2638 + printk(KERN_INFO "MINI2440: '%c' ignored, camera already registered\n", f);
2639 + else
2640 + optionals[count++] = &s3c_device_camif;
2641 + done |= 1 << 2;
2642 + break;
2646 + if (lcd_index != -1) {
2647 + int li;
2648 + mini2440_fb_info.displays = &mini2440_lcd_cfg[lcd_index];
2649 + printk(KERN_INFO "MINI2440: LCD");
2650 + for (li = 0; li < ARRAY_SIZE(mini2440_lcd_cfg); li++)
2651 + if (li == lcd_index)
2652 + printk(" [%d:%dx%d]", li, mini2440_lcd_cfg[li].width, mini2440_lcd_cfg[li].height);
2653 + else
2654 + printk(" %d:%dx%d", li, mini2440_lcd_cfg[li].width, mini2440_lcd_cfg[li].height);
2655 + printk("\n");
2656 + s3c24xx_fb_set_platdata(&mini2440_fb_info);
2658 + s3c_i2c0_set_platdata(NULL);
2660 + set_s3c2410ts_info(&mini2440_ts_cfg);
2662 + platform_add_devices(mini2440_devices, ARRAY_SIZE(mini2440_devices));
2663 + if (count) /* the optional features */
2664 + platform_add_devices(optionals, count);
2666 + i2c_register_board_info(0, mini2440_i2c_devs, ARRAY_SIZE(mini2440_i2c_devs));
2670 +MACHINE_START(MINI2440, "MINI2440")
2671 + .phys_io = S3C2410_PA_UART,
2672 + .io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
2673 + .boot_params = S3C2410_SDRAM_PA + 0x100,
2674 + .map_io = mini2440_map_io,
2675 + .init_machine = mini2440_init,
2676 + .init_irq = s3c24xx_init_irq,
2677 + .timer = &s3c24xx_timer,
2678 +MACHINE_END
2679 diff --git a/arch/arm/plat-s3c/include/plat/devs.h b/arch/arm/plat-s3c/include/plat/devs.h
2680 index 6b1b523..cf160ab 100644
2681 --- a/arch/arm/plat-s3c/include/plat/devs.h
2682 +++ b/arch/arm/plat-s3c/include/plat/devs.h
2683 @@ -45,10 +45,11 @@ extern struct platform_device s3c_device_nand;
2685 extern struct platform_device s3c_device_usbgadget;
2687 +extern struct platform_device s3c_device_ts;
2689 /* s3c2440 specific devices */
2691 #ifdef CONFIG_CPU_S3C2440
2693 extern struct platform_device s3c_device_camif;
2695 #endif
2696 diff --git a/arch/arm/plat-s3c24xx/devs.c b/arch/arm/plat-s3c24xx/devs.c
2697 index 16ac01d..a3f8102 100644
2698 --- a/arch/arm/plat-s3c24xx/devs.c
2699 +++ b/arch/arm/plat-s3c24xx/devs.c
2700 @@ -26,6 +26,8 @@
2701 #include <asm/mach/irq.h>
2702 #include <mach/fb.h>
2703 #include <mach/hardware.h>
2704 +#include <mach/ts.h>
2705 +#include <asm/io.h>
2706 #include <asm/irq.h>
2708 #include <plat/regs-serial.h>
2709 @@ -229,6 +231,23 @@ struct platform_device s3c_device_nand = {
2711 EXPORT_SYMBOL(s3c_device_nand);
2713 +/* Touchscreen */
2714 +struct platform_device s3c_device_ts = {
2715 + .name = "s3c2410-ts",
2716 + .id = -1,
2719 +EXPORT_SYMBOL(s3c_device_ts);
2721 +static struct s3c2410_ts_mach_info s3c2410ts_info;
2723 +void set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info)
2725 + memcpy(&s3c2410ts_info,hard_s3c2410ts_info,sizeof(struct s3c2410_ts_mach_info));
2726 + s3c_device_ts.dev.platform_data = &s3c2410ts_info;
2728 +EXPORT_SYMBOL(set_s3c2410ts_info);
2730 /* USB Device (Gadget)*/
2732 static struct resource s3c_usbgadget_resource[] = {
2733 diff --git a/arch/arm/plat-s3c24xx/s3c244x.c b/arch/arm/plat-s3c24xx/s3c244x.c
2734 index c1de6bb..df78a15 100644
2735 --- a/arch/arm/plat-s3c24xx/s3c244x.c
2736 +++ b/arch/arm/plat-s3c24xx/s3c244x.c
2737 @@ -59,6 +59,8 @@ void __init s3c244x_init_uarts(struct s3c2410_uartcfg *cfg, int no)
2738 s3c24xx_init_uartdevs("s3c2440-uart", s3c2410_uart_resources, cfg, no);
2741 +extern struct platform_device s3c_device_ts;
2743 void __init s3c244x_map_io(void)
2745 /* register our io-tables */
2746 @@ -70,6 +72,7 @@ void __init s3c244x_map_io(void)
2747 s3c_device_sdi.name = "s3c2440-sdi";
2748 s3c_device_i2c0.name = "s3c2440-i2c";
2749 s3c_device_nand.name = "s3c2440-nand";
2750 + s3c_device_ts.name = "s3c2440-ts";
2751 s3c_device_usbgadget.name = "s3c2440-usbgadget";
2754 diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig
2755 index bb6486a..75ff0a8 100644
2756 --- a/drivers/input/touchscreen/Kconfig
2757 +++ b/drivers/input/touchscreen/Kconfig
2758 @@ -11,6 +11,54 @@ menuconfig INPUT_TOUCHSCREEN
2760 if INPUT_TOUCHSCREEN
2762 +menuconfig TOUCHSCREEN_FILTER
2763 + boolean "Touchscreen Filtering"
2764 + depends on INPUT_TOUCHSCREEN
2765 + select TOUCHSCREEN_FILTER_GROUP
2766 + select TOUCHSCREEN_FILTER_MEDIAN
2767 + select TOUCHSCREEN_FILTER_MEAN
2768 + select TOUCHSCREEN_FILTER_LINEAR
2769 + help
2770 + Select this to include kernel touchscreen filter support. The filters
2771 + can be combined in any order in your machine init and the parameters
2772 + for them can also be set there.
2774 +if TOUCHSCREEN_FILTER
2776 +config TOUCHSCREEN_FILTER_GROUP
2777 + bool "Group Touchscreen Filter"
2778 + depends on INPUT_TOUCHSCREEN && TOUCHSCREEN_FILTER
2779 + default Y
2780 + help
2781 + Say Y here if you want to use the Group touchscreen filter, it
2782 + avoids using atypical samples.
2784 +config TOUCHSCREEN_FILTER_MEDIAN
2785 + bool "Median Average Touchscreen Filter"
2786 + depends on INPUT_TOUCHSCREEN && TOUCHSCREEN_FILTER
2787 + default Y
2788 + help
2789 + Say Y here if you want to use the Median touchscreen filter, it's
2790 + highly effective if you data is noisy with occasional excursions.
2792 +config TOUCHSCREEN_FILTER_MEAN
2793 + bool "Mean Average Touchscreen Filter"
2794 + depends on INPUT_TOUCHSCREEN && TOUCHSCREEN_FILTER
2795 + default Y
2796 + help
2797 + Say Y here if you want to use the Mean touchscreen filter, it
2798 + can further improve decent quality data by removing jitter
2800 +config TOUCHSCREEN_FILTER_LINEAR
2801 + bool "Linear Touchscreen Filter"
2802 + depends on INPUT_TOUCHSCREEN && TOUCHSCREEN_FILTER
2803 + default Y
2804 + help
2805 + Say Y here if you want to use the Linear touchscreen filter, it
2806 + enables the use of calibration data for the touchscreen.
2808 +endif
2810 config TOUCHSCREEN_ADS7846
2811 tristate "ADS7846/TSC2046 and ADS7843 based touchscreens"
2812 depends on SPI_MASTER
2813 @@ -79,6 +127,24 @@ config TOUCHSCREEN_FUJITSU
2814 To compile this driver as a module, choose M here: the
2815 module will be called fujitsu-ts.
2817 +config TOUCHSCREEN_S3C2410
2818 + tristate "Samsung S3C2410 touchscreen input driver"
2819 + depends on ARCH_S3C2410 && INPUT && INPUT_TOUCHSCREEN
2820 + select SERIO
2821 + help
2822 + Say Y here if you have the s3c2410 touchscreen.
2824 + If unsure, say N.
2826 + To compile this driver as a module, choose M here: the
2827 + module will be called s3c2410_ts.
2829 +config TOUCHSCREEN_S3C2410_DEBUG
2830 + boolean "Samsung S3C2410 touchscreen debug messages"
2831 + depends on TOUCHSCREEN_S3C2410
2832 + help
2833 + Select this if you want debug messages
2835 config TOUCHSCREEN_GUNZE
2836 tristate "Gunze AHL-51S touchscreen"
2837 select SERIO
2838 diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile
2839 index d3375af..4b0a03e 100644
2840 --- a/drivers/input/touchscreen/Makefile
2841 +++ b/drivers/input/touchscreen/Makefile
2842 @@ -34,3 +34,9 @@ wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9705) += wm9705.o
2843 wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9712) += wm9712.o
2844 wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9713) += wm9713.o
2845 obj-$(CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE) += mainstone-wm97xx.o
2846 +obj-$(CONFIG_TOUCHSCREEN_S3C2410) += s3c2410_ts.o
2847 +obj-$(CONFIG_TOUCHSCREEN_FILTER) += ts_filter.o
2848 +obj-$(CONFIG_TOUCHSCREEN_FILTER_GROUP) += ts_filter_group.o
2849 +obj-$(CONFIG_TOUCHSCREEN_FILTER_LINEAR) += ts_filter_linear.o
2850 +obj-$(CONFIG_TOUCHSCREEN_FILTER_MEDIAN) += ts_filter_median.o
2851 +obj-$(CONFIG_TOUCHSCREEN_FILTER_MEAN) += ts_filter_mean.o
2852 diff --git a/drivers/input/touchscreen/s3c2410_ts.c b/drivers/input/touchscreen/s3c2410_ts.c
2853 new file mode 100644
2854 index 0000000..ea0777c
2855 --- /dev/null
2856 +++ b/drivers/input/touchscreen/s3c2410_ts.c
2857 @@ -0,0 +1,609 @@
2859 + * This program is free software; you can redistribute it and/or modify
2860 + * it under the terms of the GNU General Public License as published by
2861 + * the Free Software Foundation; either version 2 of the License, or
2862 + * (at your option) any later version.
2864 + * This program is distributed in the hope that it will be useful,
2865 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
2866 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2867 + * GNU General Public License for more details.
2869 + * You should have received a copy of the GNU General Public License
2870 + * along with this program; if not, write to the Free Software
2871 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
2873 + * Copyright (c) 2004 Arnaud Patard <arnaud.patard@rtp-net.org>
2874 + * iPAQ H1940 touchscreen support
2876 + * ChangeLog
2878 + * 2004-09-05: Herbert Pötzl <herbert@13thfloor.at>
2879 + * - added clock (de-)allocation code
2881 + * 2005-03-06: Arnaud Patard <arnaud.patard@rtp-net.org>
2882 + * - h1940_ -> s3c2410 (this driver is now also used on the n30
2883 + * machines :P)
2884 + * - Debug messages are now enabled with the config option
2885 + * TOUCHSCREEN_S3C2410_DEBUG
2886 + * - Changed the way the value are read
2887 + * - Input subsystem should now work
2888 + * - Use ioremap and readl/writel
2890 + * 2005-03-23: Arnaud Patard <arnaud.patard@rtp-net.org>
2891 + * - Make use of some undocumented features of the touchscreen
2892 + * controller
2894 + * 2007-05-23: Harald Welte <laforge@openmoko.org>
2895 + * - Add proper support for S32440
2897 + * 2008-06-23: Andy Green <andy@openmoko.com>
2898 + * - removed averaging system
2899 + * - added generic Touchscreen filter stuff
2901 + * 2008-11-27: Nelson Castillo <arhuaco@freaks-unidos.net>
2902 + * - improve interrupt handling
2903 + */
2905 +#include <linux/errno.h>
2906 +#include <linux/kernel.h>
2907 +#include <linux/module.h>
2908 +#include <linux/slab.h>
2909 +#include <linux/input.h>
2910 +#include <linux/init.h>
2911 +#include <linux/serio.h>
2912 +#include <linux/timer.h>
2913 +#include <linux/kfifo.h>
2914 +#include <linux/delay.h>
2915 +#include <linux/platform_device.h>
2916 +#include <linux/clk.h>
2917 +#include <asm/io.h>
2918 +#include <asm/irq.h>
2920 +#include <mach/regs-gpio.h>
2921 +#include <mach/ts.h>
2923 +#include <plat/regs-adc.h>
2925 +#include "ts_filter.h"
2927 +/* For ts.dev.id.version */
2928 +#define S3C2410TSVERSION 0x0101
2930 +#define TSC_SLEEP (S3C2410_ADCTSC_PULL_UP_DISABLE | S3C2410_ADCTSC_XY_PST(0))
2932 +#define WAIT4INT(x) (((x)<<8) | \
2933 + S3C2410_ADCTSC_YM_SEN | \
2934 + S3C2410_ADCTSC_YP_SEN | \
2935 + S3C2410_ADCTSC_XP_SEN | \
2936 + S3C2410_ADCTSC_XY_PST(3))
2938 +#define AUTOPST (S3C2410_ADCTSC_YM_SEN | \
2939 + S3C2410_ADCTSC_YP_SEN | \
2940 + S3C2410_ADCTSC_XP_SEN | \
2941 + S3C2410_ADCTSC_AUTO_PST | \
2942 + S3C2410_ADCTSC_XY_PST(0))
2944 +#define DEBUG_LVL KERN_DEBUG
2946 +MODULE_AUTHOR("Arnaud Patard <arnaud.patard@rtp-net.org>");
2947 +MODULE_DESCRIPTION("s3c2410 touchscreen driver");
2948 +MODULE_LICENSE("GPL");
2951 + * Definitions & global arrays.
2952 + */
2954 +static char *s3c2410ts_name = "s3c2410 TouchScreen";
2956 +#define TS_RELEASE_TIMEOUT (HZ >> 7 ? HZ >> 7 : 1) /* 8ms (5ms if HZ is 200) */
2957 +#define TS_EVENT_FIFO_SIZE (2 << 6) /* must be a power of 2 */
2959 +#define TS_STATE_STANDBY 0 /* initial state */
2960 +#define TS_STATE_PRESSED 1
2961 +#define TS_STATE_RELEASE_PENDING 2
2962 +#define TS_STATE_RELEASE 3
2965 + * Per-touchscreen data.
2966 + */
2968 +struct s3c2410ts {
2969 + struct input_dev *dev;
2970 + struct ts_filter *tsf[MAX_TS_FILTER_CHAIN];
2971 + int coords[2]; /* just X and Y for us */
2972 + int is_down;
2973 + int state;
2974 + struct kfifo *event_fifo;
2977 +static struct s3c2410ts ts;
2979 +static void __iomem *base_addr;
2982 + * A few low level functions.
2983 + */
2985 +static inline void s3c2410_ts_connect(void)
2987 + s3c2410_gpio_cfgpin(S3C2410_GPG12, S3C2410_GPG12_XMON);
2988 + s3c2410_gpio_cfgpin(S3C2410_GPG13, S3C2410_GPG13_nXPON);
2989 + s3c2410_gpio_cfgpin(S3C2410_GPG14, S3C2410_GPG14_YMON);
2990 + s3c2410_gpio_cfgpin(S3C2410_GPG15, S3C2410_GPG15_nYPON);
2993 +static void s3c2410_ts_start_adc_conversion(void)
2995 + writel(S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST,
2996 + base_addr + S3C2410_ADCTSC);
2997 + writel(readl(base_addr + S3C2410_ADCCON) | S3C2410_ADCCON_ENABLE_START,
2998 + base_addr + S3C2410_ADCCON);
3002 + * Just send the input events.
3003 + */
3005 +enum ts_input_event {IE_DOWN = 0, IE_UP};
3007 +static void ts_input_report(int event, int coords[])
3009 +#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG
3010 + static char *s[] = {"down", "up"};
3011 + struct timeval tv;
3013 + do_gettimeofday(&tv);
3014 +#endif
3016 + if (event == IE_DOWN) {
3017 + input_report_abs(ts.dev, ABS_X, coords[0]);
3018 + input_report_abs(ts.dev, ABS_Y, coords[1]);
3019 + input_report_key(ts.dev, BTN_TOUCH, 1);
3020 + input_report_abs(ts.dev, ABS_PRESSURE, 1);
3022 +#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG
3023 + printk(DEBUG_LVL "T:%06d %6s (X:%03d, Y:%03d)\n",
3024 + (int)tv.tv_usec, s[event], coords[0], coords[1]);
3025 +#endif
3026 + } else {
3027 + input_report_key(ts.dev, BTN_TOUCH, 0);
3028 + input_report_abs(ts.dev, ABS_PRESSURE, 0);
3030 +#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG
3031 + printk(DEBUG_LVL "T:%06d %6s\n",
3032 + (int)tv.tv_usec, s[event]);
3033 +#endif
3036 + input_sync(ts.dev);
3040 + * Manage the state of the touchscreen.
3041 + */
3043 +static void event_send_timer_f(unsigned long data);
3045 +static struct timer_list event_send_timer =
3046 + TIMER_INITIALIZER(event_send_timer_f, 0, 0);
3048 +static void event_send_timer_f(unsigned long data)
3050 + static int noop_counter;
3051 + int event_type;
3053 + while (__kfifo_get(ts.event_fifo, (unsigned char *)&event_type,
3054 + sizeof(int))) {
3055 + int buf[2];
3057 + switch (event_type) {
3058 + case 'D':
3059 + if (ts.state == TS_STATE_RELEASE_PENDING)
3060 + /* Ignore short UP event */
3061 + ts.state = TS_STATE_PRESSED;
3062 + break;
3064 + case 'U':
3065 + ts.state = TS_STATE_RELEASE_PENDING;
3066 + break;
3068 + case 'P':
3069 + if (ts.is_down) /* stylus_action needs a conversion */
3070 + s3c2410_ts_start_adc_conversion();
3072 + if (unlikely(__kfifo_get(ts.event_fifo,
3073 + (unsigned char *)buf,
3074 + sizeof(int) * 2)
3075 + != sizeof(int) * 2))
3076 + goto ts_exit_error;
3078 + ts_input_report(IE_DOWN, buf);
3079 + ts.state = TS_STATE_PRESSED;
3080 + break;
3082 + default:
3083 + goto ts_exit_error;
3086 + noop_counter = 0;
3089 + if (noop_counter++ >= 1) {
3090 + noop_counter = 0;
3091 + if (ts.state == TS_STATE_RELEASE_PENDING) {
3092 + /* We delay the UP event for a
3093 + * while to avoid jitter. If we get a DOWN
3094 + * event we do not send it. */
3096 + ts_input_report(IE_UP, NULL);
3097 + ts.state = TS_STATE_STANDBY;
3099 + if (ts.tsf[0])
3100 + (ts.tsf[0]->api->clear)(ts.tsf[0]);
3102 + } else {
3103 + mod_timer(&event_send_timer, jiffies + TS_RELEASE_TIMEOUT);
3106 + return;
3108 +ts_exit_error: /* should not happen unless we have a bug */
3109 + printk(KERN_ERR __FILE__ ": event_send_timer_f failed\n");
3113 + * Manage interrupts.
3114 + */
3116 +static irqreturn_t stylus_updown(int irq, void *dev_id)
3118 + unsigned long data0;
3119 + unsigned long data1;
3120 + int event_type;
3122 + data0 = readl(base_addr+S3C2410_ADCDAT0);
3123 + data1 = readl(base_addr+S3C2410_ADCDAT1);
3125 + ts.is_down = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) &&
3126 + (!(data1 & S3C2410_ADCDAT0_UPDOWN));
3128 + event_type = ts.is_down ? 'D' : 'U';
3130 + if (unlikely(__kfifo_put(ts.event_fifo, (unsigned char *)&event_type,
3131 + sizeof(int)) != sizeof(int))) /* should not happen */
3132 + printk(KERN_ERR __FILE__": stylus_updown lost event!\n");
3134 + if (ts.is_down)
3135 + s3c2410_ts_start_adc_conversion();
3136 + else
3137 + writel(WAIT4INT(0), base_addr+S3C2410_ADCTSC);
3139 + mod_timer(&event_send_timer, jiffies + 1);
3141 + return IRQ_HANDLED;
3144 +static irqreturn_t stylus_action(int irq, void *dev_id)
3146 + int buf[3];
3148 + /* grab the ADC results */
3149 + ts.coords[0] = readl(base_addr + S3C2410_ADCDAT0) &
3150 + S3C2410_ADCDAT0_XPDATA_MASK;
3151 + ts.coords[1] = readl(base_addr + S3C2410_ADCDAT1) &
3152 + S3C2410_ADCDAT1_YPDATA_MASK;
3154 + if (ts.tsf[0]) { /* filtering is enabled, don't use raw directly */
3155 + switch ((ts.tsf[0]->api->process)(ts.tsf[0], &ts.coords[0])) {
3156 + case 0: /*
3157 + * no real sample came out of processing yet,
3158 + * get another raw result to feed it
3159 + */
3160 + s3c2410_ts_start_adc_conversion();
3161 + return IRQ_HANDLED;
3162 + case 1: /* filters are ready to deliver a sample */
3163 + (ts.tsf[0]->api->scale)(ts.tsf[0], &ts.coords[0]);
3164 + break;
3165 + case -1:
3166 + /* error in filters, ignore the event */
3167 + (ts.tsf[0]->api->clear)(ts.tsf[0]);
3168 + writel(WAIT4INT(1), base_addr + S3C2410_ADCTSC);
3169 + return IRQ_HANDLED;
3170 + default:
3171 + printk(KERN_ERR":stylus_action error\n");
3175 + /* We use a buffer because want an atomic operation */
3176 + buf[0] = 'P';
3177 + buf[1] = ts.coords[0];
3178 + buf[2] = ts.coords[1];
3180 + if (unlikely(__kfifo_put(ts.event_fifo, (unsigned char *)buf,
3181 + sizeof(int) * 3) != sizeof(int) * 3))
3182 + /* should not happen */
3183 + printk(KERN_ERR":stylus_action error\n");
3185 + writel(WAIT4INT(1), base_addr + S3C2410_ADCTSC);
3186 + mod_timer(&event_send_timer, jiffies + 1);
3188 + return IRQ_HANDLED;
3191 +static struct clk *adc_clock;
3194 + * The functions for inserting/removing us as a module.
3195 + */
3197 +static int __init s3c2410ts_probe(struct platform_device *pdev)
3199 + int rc;
3200 + struct s3c2410_ts_mach_info *info;
3201 + struct input_dev *input_dev;
3202 + int ret = 0;
3204 + dev_info(&pdev->dev, "Starting\n");
3206 + info = (struct s3c2410_ts_mach_info *)pdev->dev.platform_data;
3208 + if (!info)
3210 + dev_err(&pdev->dev, "Hm... too bad: no platform data for ts\n");
3211 + return -EINVAL;
3214 +#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG
3215 + printk(DEBUG_LVL "Entering s3c2410ts_init\n");
3216 +#endif
3218 + adc_clock = clk_get(NULL, "adc");
3219 + if (!adc_clock) {
3220 + dev_err(&pdev->dev, "failed to get adc clock source\n");
3221 + return -ENOENT;
3223 + clk_enable(adc_clock);
3225 +#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG
3226 + printk(DEBUG_LVL "got and enabled clock\n");
3227 +#endif
3229 + base_addr = ioremap(S3C2410_PA_ADC,0x20);
3230 + if (base_addr == NULL) {
3231 + dev_err(&pdev->dev, "Failed to remap register block\n");
3232 + ret = -ENOMEM;
3233 + goto bail0;
3237 + /* If we acutally are a S3C2410: Configure GPIOs */
3238 + if (!strcmp(pdev->name, "s3c2410-ts"))
3239 + s3c2410_ts_connect();
3241 + if ((info->presc & 0xff) > 0)
3242 + writel(S3C2410_ADCCON_PRSCEN |
3243 + S3C2410_ADCCON_PRSCVL(info->presc&0xFF),
3244 + base_addr + S3C2410_ADCCON);
3245 + else
3246 + writel(0, base_addr+S3C2410_ADCCON);
3248 + /* Initialise registers */
3249 + if ((info->delay & 0xffff) > 0)
3250 + writel(info->delay & 0xffff, base_addr + S3C2410_ADCDLY);
3252 + writel(WAIT4INT(0), base_addr + S3C2410_ADCTSC);
3254 + /* Initialise input stuff */
3255 + memset(&ts, 0, sizeof(struct s3c2410ts));
3256 + input_dev = input_allocate_device();
3258 + if (!input_dev) {
3259 + dev_err(&pdev->dev, "Unable to allocate the input device\n");
3260 + ret = -ENOMEM;
3261 + goto bail1;
3264 + ts.dev = input_dev;
3265 + ts.dev->evbit[0] = BIT_MASK(EV_SYN) | BIT_MASK(EV_KEY) |
3266 + BIT_MASK(EV_ABS);
3267 + ts.dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
3268 + input_set_abs_params(ts.dev, ABS_X, 0, 0x3FF, 0, 0);
3269 + input_set_abs_params(ts.dev, ABS_Y, 0, 0x3FF, 0, 0);
3270 + input_set_abs_params(ts.dev, ABS_PRESSURE, 0, 1, 0, 0);
3272 + ts.dev->name = s3c2410ts_name;
3273 + ts.dev->id.bustype = BUS_RS232;
3274 + ts.dev->id.vendor = 0xDEAD;
3275 + ts.dev->id.product = 0xBEEF;
3276 + ts.dev->id.version = S3C2410TSVERSION;
3277 + ts.state = TS_STATE_STANDBY;
3278 + ts.event_fifo = kfifo_alloc(TS_EVENT_FIFO_SIZE, GFP_KERNEL, NULL);
3279 + if (IS_ERR(ts.event_fifo)) {
3280 + ret = -EIO;
3281 + goto bail2;
3284 + /* create the filter chain set up for the 2 coordinates we produce */
3285 + ret = ts_filter_create_chain(
3286 + pdev, (struct ts_filter_api **)&info->filter_sequence,
3287 + (void *)&info->filter_config, ts.tsf, ARRAY_SIZE(ts.coords));
3288 + if (ret)
3289 + dev_info(&pdev->dev, "%d filter(s) initialized\n", ret);
3290 + else /* this is OK, just means there won't be any filtering */
3291 + dev_info(&pdev->dev, "Unfiltered output selected\n");
3293 + if (ts.tsf[0])
3294 + (ts.tsf[0]->api->clear)(ts.tsf[0]);
3295 + else
3296 + dev_info(&pdev->dev, "No filtering\n");
3298 + /* Get irqs */
3299 + if (request_irq(IRQ_ADC, stylus_action, IRQF_SAMPLE_RANDOM,
3300 + "s3c2410_action", ts.dev)) {
3301 + dev_err(&pdev->dev, "Could not allocate ts IRQ_ADC !\n");
3302 + iounmap(base_addr);
3303 + ret = -EIO;
3304 + goto bail3;
3306 + if (request_irq(IRQ_TC, stylus_updown, IRQF_SAMPLE_RANDOM,
3307 + "s3c2410_action", ts.dev)) {
3308 + dev_err(&pdev->dev, "Could not allocate ts IRQ_TC !\n");
3309 + free_irq(IRQ_ADC, ts.dev);
3310 + iounmap(base_addr);
3311 + ret = -EIO;
3312 + goto bail4;
3315 + dev_info(&pdev->dev, "successfully loaded\n");
3317 + /* All went ok, so register to the input system */
3318 + rc = input_register_device(ts.dev);
3319 + if (rc) {
3320 + ret = -EIO;
3321 + goto bail5;
3324 + return 0;
3326 +bail5:
3327 + free_irq(IRQ_TC, ts.dev);
3328 + free_irq(IRQ_ADC, ts.dev);
3329 + clk_disable(adc_clock);
3330 + iounmap(base_addr);
3331 + disable_irq(IRQ_TC);
3332 +bail4:
3333 + disable_irq(IRQ_ADC);
3334 +bail3:
3335 + ts_filter_destroy_chain(pdev, ts.tsf);
3336 + kfifo_free(ts.event_fifo);
3337 +bail2:
3338 + input_unregister_device(ts.dev);
3339 +bail1:
3340 + iounmap(base_addr);
3341 +bail0:
3343 + return ret;
3346 +static int s3c2410ts_remove(struct platform_device *pdev)
3348 + disable_irq(IRQ_ADC);
3349 + disable_irq(IRQ_TC);
3350 + free_irq(IRQ_TC,ts.dev);
3351 + free_irq(IRQ_ADC,ts.dev);
3353 + if (adc_clock) {
3354 + clk_disable(adc_clock);
3355 + clk_put(adc_clock);
3356 + adc_clock = NULL;
3359 + input_unregister_device(ts.dev);
3360 + iounmap(base_addr);
3362 + ts_filter_destroy_chain(pdev, ts.tsf);
3364 + kfifo_free(ts.event_fifo);
3366 + return 0;
3369 +#ifdef CONFIG_PM
3370 +static int s3c2410ts_suspend(struct platform_device *pdev, pm_message_t state)
3372 + writel(TSC_SLEEP, base_addr+S3C2410_ADCTSC);
3373 + writel(readl(base_addr+S3C2410_ADCCON) | S3C2410_ADCCON_STDBM,
3374 + base_addr+S3C2410_ADCCON);
3376 + disable_irq(IRQ_ADC);
3377 + disable_irq(IRQ_TC);
3379 + clk_disable(adc_clock);
3381 + return 0;
3384 +static int s3c2410ts_resume(struct platform_device *pdev)
3386 + struct s3c2410_ts_mach_info *info =
3387 + ( struct s3c2410_ts_mach_info *)pdev->dev.platform_data;
3389 + clk_enable(adc_clock);
3390 + mdelay(1);
3392 + if (ts.tsf[0])
3393 + (ts.tsf[0]->api->clear)(ts.tsf[0]);
3395 + enable_irq(IRQ_ADC);
3396 + enable_irq(IRQ_TC);
3398 + if ((info->presc&0xff) > 0)
3399 + writel(S3C2410_ADCCON_PRSCEN |
3400 + S3C2410_ADCCON_PRSCVL(info->presc&0xFF),
3401 + base_addr+S3C2410_ADCCON);
3402 + else
3403 + writel(0,base_addr+S3C2410_ADCCON);
3405 + /* Initialise registers */
3406 + if ((info->delay & 0xffff) > 0)
3407 + writel(info->delay & 0xffff, base_addr+S3C2410_ADCDLY);
3409 + writel(WAIT4INT(0), base_addr+S3C2410_ADCTSC);
3411 + return 0;
3414 +#else
3415 +#define s3c2410ts_suspend NULL
3416 +#define s3c2410ts_resume NULL
3417 +#endif
3419 +static struct platform_driver s3c2410ts_driver = {
3420 + .driver = {
3421 + .name = "s3c2410-ts",
3422 + .owner = THIS_MODULE,
3423 + },
3424 + .probe = s3c2410ts_probe,
3425 + .remove = s3c2410ts_remove,
3426 + .suspend = s3c2410ts_suspend,
3427 + .resume = s3c2410ts_resume,
3431 +static struct platform_driver s3c2440ts_driver = {
3432 + .driver = {
3433 + .name = "s3c2440-ts",
3434 + .owner = THIS_MODULE,
3435 + },
3436 + .probe = s3c2410ts_probe,
3437 + .remove = s3c2410ts_remove,
3438 + .suspend = s3c2410ts_suspend,
3439 + .resume = s3c2410ts_resume,
3443 +static int __init s3c2410ts_init(void)
3445 + int rc;
3447 + rc = platform_driver_register(&s3c2410ts_driver);
3448 + if (rc < 0)
3449 + return rc;
3451 + rc = platform_driver_register(&s3c2440ts_driver);
3452 + if (rc < 0)
3453 + platform_driver_unregister(&s3c2410ts_driver);
3455 + return rc;
3458 +static void __exit s3c2410ts_exit(void)
3460 + platform_driver_unregister(&s3c2440ts_driver);
3461 + platform_driver_unregister(&s3c2410ts_driver);
3464 +module_init(s3c2410ts_init);
3465 +module_exit(s3c2410ts_exit);
3467 diff --git a/drivers/input/touchscreen/ts_filter.c b/drivers/input/touchscreen/ts_filter.c
3468 new file mode 100644
3469 index 0000000..832844d
3470 --- /dev/null
3471 +++ b/drivers/input/touchscreen/ts_filter.c
3472 @@ -0,0 +1,73 @@
3474 + * This program is free software; you can redistribute it and/or modify
3475 + * it under the terms of the GNU General Public License as published by
3476 + * the Free Software Foundation; either version 2 of the License, or
3477 + * (at your option) any later version.
3479 + * This program is distributed in the hope that it will be useful,
3480 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
3481 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3482 + * GNU General Public License for more details.
3484 + * You should have received a copy of the GNU General Public License
3485 + * along with this program; if not, write to the Free Software
3486 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
3488 + * Copyright (c) 2008 Andy Green <andy@openmoko.com>
3489 + */
3491 +#include <linux/kernel.h>
3492 +#include <linux/device.h>
3493 +#include "ts_filter.h"
3495 +static DEFINE_MUTEX(chain_mutex);
3497 +int ts_filter_create_chain(struct platform_device *pdev,
3498 + struct ts_filter_api **api, void **config,
3499 + struct ts_filter **arr, int count_coords)
3501 + int count = 0;
3502 + struct ts_filter *last = NULL;
3504 + if (!api)
3505 + return 0;
3507 + mutex_lock(&chain_mutex);
3509 + while (*api) {
3510 + *arr = ((*api)->create)(pdev, *config++, count_coords);
3511 + if (!*arr) {
3512 + printk(KERN_ERR "Filter %d failed init\n", count);
3513 + return count;
3515 + (*arr)->api = *api++;
3516 + if (last)
3517 + last->next = *arr;
3518 + last = *arr;
3519 + arr++;
3520 + count++;
3523 + mutex_unlock(&chain_mutex);
3525 + return count;
3527 +EXPORT_SYMBOL_GPL(ts_filter_create_chain);
3529 +void ts_filter_destroy_chain(struct platform_device *pdev,
3530 + struct ts_filter **arr)
3532 + struct ts_filter **first = arr;
3534 + mutex_lock(&chain_mutex);
3536 + while (*arr) {
3537 + ((*arr)->api->destroy)(pdev, *arr);
3538 + arr++;
3540 + *first = NULL;
3542 + mutex_unlock(&chain_mutex);
3544 +EXPORT_SYMBOL_GPL(ts_filter_destroy_chain);
3546 diff --git a/drivers/input/touchscreen/ts_filter.h b/drivers/input/touchscreen/ts_filter.h
3547 new file mode 100644
3548 index 0000000..3746e45
3549 --- /dev/null
3550 +++ b/drivers/input/touchscreen/ts_filter.h
3551 @@ -0,0 +1,62 @@
3552 +#ifndef __TS_FILTER_H__
3553 +#define __TS_FILTER_H__
3556 + * Touchscreen filter.
3558 + * (c) 2008 Andy Green <andy@openmoko.com>
3559 + */
3561 +#include <linux/platform_device.h>
3563 +#define MAX_TS_FILTER_CHAIN 8 /* Max. filters we can chain up. */
3564 +#define MAX_TS_FILTER_COORDS 3 /* X, Y and Z (pressure). */
3566 +struct ts_filter;
3568 +/* Operations that a filter can perform. */
3570 +struct ts_filter_api {
3571 + struct ts_filter * (*create)(struct platform_device *pdev, void *config,
3572 + int count_coords);
3573 + void (*destroy)(struct platform_device *pdev, struct ts_filter *filter);
3574 + void (*clear)(struct ts_filter *filter);
3575 + int (*process)(struct ts_filter *filter, int *coords);
3576 + void (*scale)(struct ts_filter *filter, int *coords);
3580 + * This is the common part of all filters.
3581 + * We use this type as an otherwise opaque handle on to
3582 + * the actual filter. Therefore you need one of these
3583 + * at the start of your actual filter struct.
3584 + */
3586 +struct ts_filter {
3587 + struct ts_filter *next; /* Next in chain. */
3588 + struct ts_filter_api *api; /* Operations to use for this object. */
3589 + int count_coords;
3590 + int coords[MAX_TS_FILTER_COORDS];
3594 + * Helper to create a filter chain from an array of API pointers and
3595 + * array of config ints. Leaves pointers to created filters in arr
3596 + * array and fills in ->next pointers to create the chain.
3597 + */
3599 +#ifdef CONFIG_TOUCHSCREEN_FILTER
3600 +extern int ts_filter_create_chain(struct platform_device *pdev,
3601 + struct ts_filter_api **api, void **config,
3602 + struct ts_filter **arr, int count_coords);
3604 +/* Helper to destroy a whole chain from the list of filter pointers. */
3606 +extern void ts_filter_destroy_chain(struct platform_device *pdev,
3607 + struct ts_filter **arr);
3608 +#else
3609 +#define ts_filter_create_chain(pdev, api, config, arr, count_coords) (0)
3610 +#define ts_filter_destroy_chain(pdev, arr) do { } while (0)
3611 +#endif
3613 +#endif
3614 diff --git a/drivers/input/touchscreen/ts_filter_group.c b/drivers/input/touchscreen/ts_filter_group.c
3615 new file mode 100644
3616 index 0000000..f2ecd92
3617 --- /dev/null
3618 +++ b/drivers/input/touchscreen/ts_filter_group.c
3619 @@ -0,0 +1,221 @@
3621 + * This program is free software; you can redistribute it and/or modify
3622 + * it under the terms of the GNU General Public License as published by
3623 + * the Free Software Foundation; either version 2 of the License, or
3624 + * (at your option) any later version.
3626 + * This program is distributed in the hope that it will be useful,
3627 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
3628 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3629 + * GNU General Public License for more details.
3631 + * You should have received a copy of the GNU General Public License
3632 + * along with this program; if not, write to the Free Software
3633 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
3635 + * Copyright (C) 2008 by Openmoko, Inc.
3636 + * Author: Nelson Castillo <arhuaco@freaks-unidos.net>
3637 + * All rights reserved.
3639 + * This filter is useful to reject samples that are not reliable. We consider
3640 + * that a sample is not reliable if it deviates form the Majority.
3642 + * 1) We collect S samples.
3644 + * 2) For each dimension:
3646 + * - We sort the points.
3647 + * - Points that are "close enough" are considered to be in the same set.
3648 + * - We choose the set with more elements. If more than "threshold"
3649 + * points are in this set we use the first and the last point of the set
3650 + * to define the valid range for this dimension [min, max], otherwise we
3651 + * discard all the points and go to step 1.
3653 + * 3) We consider the unsorted S samples and try to feed them to the next
3654 + * filter in the chain. If one of the points of each sample
3655 + * is not in the allowed range for its dimension, we discard the sample.
3657 + */
3659 +#include <linux/kernel.h>
3660 +#include <linux/slab.h>
3661 +#include <linux/sort.h>
3662 +#include "ts_filter_group.h"
3664 +static void ts_filter_group_clear_internal(struct ts_filter_group *tsfg,
3665 + int attempts)
3667 + tsfg->N = 0;
3668 + tsfg->tries_left = attempts;
3671 +static void ts_filter_group_clear(struct ts_filter *tsf)
3673 + struct ts_filter_group *tsfg = (struct ts_filter_group *)tsf;
3675 + ts_filter_group_clear_internal(tsfg, tsfg->config->attempts);
3677 + if (tsf->next) /* chain */
3678 + (tsf->next->api->clear)(tsf->next);
3681 +static struct ts_filter *ts_filter_group_create(struct platform_device *pdev,
3682 + void *conf, int count_coords)
3684 + struct ts_filter_group *tsfg;
3685 + int i;
3687 + BUG_ON((count_coords < 1) || (count_coords > MAX_TS_FILTER_COORDS));
3689 + tsfg = kzalloc(sizeof(struct ts_filter_group), GFP_KERNEL);
3690 + if (!tsfg)
3691 + return NULL;
3693 + tsfg->config = (struct ts_filter_group_configuration *)conf;
3694 + tsfg->tsf.count_coords = count_coords;
3696 + BUG_ON(tsfg->config->attempts <= 0);
3698 + tsfg->samples[0] = kmalloc((2 + count_coords) * sizeof(int) *
3699 + tsfg->config->extent, GFP_KERNEL);
3700 + if (!tsfg->samples[0]) {
3701 + kfree(tsfg);
3702 + return NULL;
3704 + for (i = 1; i < count_coords; ++i)
3705 + tsfg->samples[i] = tsfg->samples[0] + i * tsfg->config->extent;
3706 + tsfg->sorted_samples = tsfg->samples[0] + count_coords *
3707 + tsfg->config->extent;
3708 + tsfg->group_size = tsfg->samples[0] + (1 + count_coords) *
3709 + tsfg->config->extent;
3711 + ts_filter_group_clear_internal(tsfg, tsfg->config->attempts);
3713 + printk(KERN_INFO" Created group ts filter len %d depth %d close %d "
3714 + "thresh %d\n", tsfg->config->extent, count_coords,
3715 + tsfg->config->close_enough, tsfg->config->threshold);
3717 + return &tsfg->tsf;
3720 +static void ts_filter_group_destroy(struct platform_device *pdev,
3721 + struct ts_filter *tsf)
3723 + struct ts_filter_group *tsfg = (struct ts_filter_group *)tsf;
3725 + kfree(tsfg->samples[0]); /* first guy has pointer from kmalloc */
3726 + kfree(tsf);
3729 +static void ts_filter_group_scale(struct ts_filter *tsf, int *coords)
3731 + if (tsf->next)
3732 + (tsf->next->api->scale)(tsf->next, coords);
3735 +static int int_cmp(const void *_a, const void *_b)
3737 + const int *a = _a;
3738 + const int *b = _b;
3740 + if (*a > *b)
3741 + return 1;
3742 + if (*a < *b)
3743 + return -1;
3744 + return 0;
3747 +static int ts_filter_group_process(struct ts_filter *tsf, int *coords)
3749 + struct ts_filter_group *tsfg = (struct ts_filter_group *)tsf;
3750 + int n;
3751 + int i;
3752 + int ret = 0; /* ask for more samples by default */
3754 + BUG_ON(tsfg->N >= tsfg->config->extent);
3756 + for (n = 0; n < tsf->count_coords; n++)
3757 + tsfg->samples[n][tsfg->N] = coords[n];
3759 + if (++tsfg->N < tsfg->config->extent)
3760 + return 0; /* we meed more samples */
3762 + for (n = 0; n < tsfg->tsf.count_coords; n++) {
3763 + int *v = tsfg->sorted_samples;
3764 + int ngroups = 0;
3765 + int best_size;
3766 + int best_idx = 0;
3767 + int idx = 0;
3769 + memcpy(v, tsfg->samples[n], tsfg->N * sizeof(int));
3770 + sort(v, tsfg->N, sizeof(int), int_cmp, NULL);
3772 + tsfg->group_size[0] = 1;
3773 + for (i = 1; i < tsfg->N; ++i) {
3774 + if (v[i] - v[i - 1] <= tsfg->config->close_enough)
3775 + tsfg->group_size[ngroups]++;
3776 + else
3777 + tsfg->group_size[++ngroups] = 1;
3779 + ngroups++;
3781 + best_size = tsfg->group_size[0];
3782 + for (i = 1; i < ngroups; i++) {
3783 + idx += tsfg->group_size[i - 1];
3784 + if (best_size < tsfg->group_size[i]) {
3785 + best_size = tsfg->group_size[i];
3786 + best_idx = idx;
3790 + if (best_size < tsfg->config->threshold) {
3791 + /* this set is not good enough for us */
3792 + if (--tsfg->tries_left) {
3793 + ts_filter_group_clear_internal
3794 + (tsfg, tsfg->tries_left);
3795 + return 0; /* ask for more samples */
3797 + return -1; /* we give up */
3800 + tsfg->range_min[n] = v[best_idx];
3801 + tsfg->range_max[n] = v[best_idx + best_size - 1];
3804 + for (i = 0; i < tsfg->N; ++i) {
3805 + int r;
3807 + for (n = 0; n < tsfg->tsf.count_coords; ++n) {
3808 + coords[n] = tsfg->samples[n][i];
3809 + if (coords[n] < tsfg->range_min[n] ||
3810 + coords[n] > tsfg->range_max[n])
3811 + break;
3814 + if (n != tsfg->tsf.count_coords) /* sample not OK */
3815 + continue;
3817 + if (tsf->next) {
3818 + r = (tsf->next->api->process)(tsf->next, coords);
3819 + if (r) {
3820 + ret = r;
3821 + break;
3823 + } else if (i == tsfg->N - 1) {
3824 + ret = 1;
3828 + ts_filter_group_clear_internal(tsfg, tsfg->config->attempts);
3830 + return ret;
3833 +struct ts_filter_api ts_filter_group_api = {
3834 + .create = ts_filter_group_create,
3835 + .destroy = ts_filter_group_destroy,
3836 + .clear = ts_filter_group_clear,
3837 + .process = ts_filter_group_process,
3838 + .scale = ts_filter_group_scale,
3841 diff --git a/drivers/input/touchscreen/ts_filter_group.h b/drivers/input/touchscreen/ts_filter_group.h
3842 new file mode 100644
3843 index 0000000..c411080
3844 --- /dev/null
3845 +++ b/drivers/input/touchscreen/ts_filter_group.h
3846 @@ -0,0 +1,39 @@
3847 +#ifndef __TS_FILTER_GROUP_H__
3848 +#define __TS_FILTER_GROUP_H__
3850 +#include "ts_filter.h"
3853 + * Touchscreen group filter.
3855 + * Copyright (C) 2008 by Openmoko, Inc.
3856 + * Author: Nelson Castillo <arhuaco@freaks-unidos.net>
3858 + */
3860 +struct ts_filter_group_configuration {
3861 + int extent;
3862 + int close_enough;
3863 + int threshold;
3864 + int attempts;
3867 +struct ts_filter_group {
3868 + struct ts_filter tsf;
3869 + struct ts_filter_group_configuration *config;
3871 + int N; /* How many samples we have */
3872 + int *samples[MAX_TS_FILTER_COORDS]; /* the samples, our input */
3874 + int *group_size; /* used for temporal computations */
3875 + int *sorted_samples; /* used for temporal computations */
3877 + int range_max[MAX_TS_FILTER_COORDS]; /* max computed ranges */
3878 + int range_min[MAX_TS_FILTER_COORDS]; /* min computed ranges */
3880 + int tries_left; /* We finish if we don't get enough samples */
3883 +extern struct ts_filter_api ts_filter_group_api;
3885 +#endif
3886 diff --git a/drivers/input/touchscreen/ts_filter_linear.c b/drivers/input/touchscreen/ts_filter_linear.c
3887 new file mode 100644
3888 index 0000000..c336252
3889 --- /dev/null
3890 +++ b/drivers/input/touchscreen/ts_filter_linear.c
3891 @@ -0,0 +1,173 @@
3893 + * This program is free software; you can redistribute it and/or modify
3894 + * it under the terms of the GNU General Public License as published by
3895 + * the Free Software Foundation; version 2 of the License, or
3896 + * (at your option) any later version.
3898 + * This program is distributed in the hope that it will be useful,
3899 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
3900 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3901 + * GNU General Public License for more details.
3903 + * You should have received a copy of the GNU General Public License
3904 + * along with this program; if not, write to the Free Software
3905 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
3907 + * Copyright (C) 2008 by Openmoko, Inc.
3908 + * Author: Nelson Castillo <arhuaco@freaks-unidos.net>
3909 + * All rights reserved.
3911 + * Linearly scale touchscreen values.
3913 + * Expose the TS_FILTER_LINEAR_NCONSTANTS for the linear transformation
3914 + * using sysfs.
3916 + */
3918 +#include "ts_filter_linear.h"
3919 +#include <linux/kernel.h>
3920 +#include <linux/slab.h>
3921 +#include <linux/string.h>
3924 +/* sysfs functions */
3927 +static ssize_t const_attr_show(struct kobject *kobj,
3928 + struct attribute *attr,
3929 + char *buf)
3931 + struct const_attribute *a = to_const_attr(attr);
3933 + return a->show(to_const_obj(kobj), a, buf);
3936 +static ssize_t const_attr_store(struct kobject *kobj,
3937 + struct attribute *attr,
3938 + const char *buf, size_t len)
3940 + struct const_attribute *a = to_const_attr(attr);
3942 + return a->store(to_const_obj(kobj), a, buf, len);
3945 +static struct sysfs_ops const_sysfs_ops = {
3946 + .show = const_attr_show,
3947 + .store = const_attr_store,
3950 +static void const_release(struct kobject *kobj)
3952 + kfree(to_const_obj(kobj)->tsfl);
3955 +static ssize_t const_show(struct const_obj *obj, struct const_attribute *attr,
3956 + char *buf)
3958 + int who;
3960 + sscanf(attr->attr.name, "%d", &who);
3961 + return sprintf(buf, "%d\n", obj->tsfl->constants[who]);
3964 +static ssize_t const_store(struct const_obj *obj, struct const_attribute *attr,
3965 + const char *buf, size_t count)
3967 + int who;
3969 + sscanf(attr->attr.name, "%d", &who);
3970 + sscanf(buf, "%d", &obj->tsfl->constants[who]);
3971 + return count;
3974 +/* filter functions */
3976 +static struct ts_filter *ts_filter_linear_create(struct platform_device *pdev,
3977 + void *conf, int count_coords)
3979 + struct ts_filter_linear *tsfl;
3980 + int i;
3981 + int ret;
3983 + tsfl = kzalloc(sizeof(struct ts_filter_linear), GFP_KERNEL);
3984 + if (!tsfl)
3985 + return NULL;
3987 + tsfl->config = (struct ts_filter_linear_configuration *)conf;
3988 + tsfl->tsf.count_coords = count_coords;
3990 + for (i = 0; i < TS_FILTER_LINEAR_NCONSTANTS; ++i) {
3991 + tsfl->constants[i] = tsfl->config->constants[i];
3993 + /* sysfs */
3994 + sprintf(tsfl->attr_names[i], "%d", i);
3995 + tsfl->kattrs[i].attr.name = tsfl->attr_names[i];
3996 + tsfl->kattrs[i].attr.mode = 0666;
3997 + tsfl->kattrs[i].show = const_show;
3998 + tsfl->kattrs[i].store = const_store;
3999 + tsfl->attrs[i] = &tsfl->kattrs[i].attr;
4001 + tsfl->attrs[i] = NULL;
4003 + tsfl->const_ktype.sysfs_ops = &const_sysfs_ops;
4004 + tsfl->const_ktype.release = const_release;
4005 + tsfl->const_ktype.default_attrs = tsfl->attrs;
4006 + tsfl->c_obj.tsfl = tsfl; /* kernel frees tsfl in const_release */
4008 + ret = kobject_init_and_add(&tsfl->c_obj.kobj, &tsfl->const_ktype,
4009 + &pdev->dev.kobj, "calibration");
4010 + if (ret) {
4011 + kobject_put(&tsfl->c_obj.kobj);
4012 + return NULL;
4015 + printk(KERN_INFO" Created Linear ts filter depth %d\n", count_coords);
4017 + return &tsfl->tsf;
4020 +static void ts_filter_linear_destroy(struct platform_device *pdev,
4021 + struct ts_filter *tsf)
4023 + struct ts_filter_linear *tsfl = (struct ts_filter_linear *)tsf;
4025 + /* kernel frees tsfl in const_release */
4026 + kobject_put(&tsfl->c_obj.kobj);
4029 +static void ts_filter_linear_clear(struct ts_filter *tsf)
4031 + if (tsf->next) /* chain */
4032 + (tsf->next->api->clear)(tsf->next);
4036 +static void ts_filter_linear_scale(struct ts_filter *tsf, int *coords)
4038 + struct ts_filter_linear *tsfl = (struct ts_filter_linear *)tsf;
4039 + int *k = tsfl->constants;
4040 + int c0 = coords[tsfl->config->coord0];
4041 + int c1 = coords[tsfl->config->coord1];
4043 + coords[tsfl->config->coord0] = (k[2] + k[0] * c0 + k[1] * c1) / k[6];
4044 + coords[tsfl->config->coord1] = (k[5] + k[3] * c0 + k[4] * c1) / k[6];
4046 + if (tsf->next)
4047 + (tsf->next->api->scale)(tsf->next, coords);
4050 +static int ts_filter_linear_process(struct ts_filter *tsf, int *coords)
4052 + if (tsf->next)
4053 + return (tsf->next->api->process)(tsf->next, coords);
4055 + return 1;
4058 +struct ts_filter_api ts_filter_linear_api = {
4059 + .create = ts_filter_linear_create,
4060 + .destroy = ts_filter_linear_destroy,
4061 + .clear = ts_filter_linear_clear,
4062 + .process = ts_filter_linear_process,
4063 + .scale = ts_filter_linear_scale,
4065 diff --git a/drivers/input/touchscreen/ts_filter_linear.h b/drivers/input/touchscreen/ts_filter_linear.h
4066 new file mode 100644
4067 index 0000000..fc27cf7
4068 --- /dev/null
4069 +++ b/drivers/input/touchscreen/ts_filter_linear.h
4070 @@ -0,0 +1,64 @@
4071 +#ifndef __TS_FILTER_LINEAR_H__
4072 +#define __TS_FILTER_LINEAR_H__
4074 +#include "ts_filter.h"
4075 +#include <linux/kobject.h>
4078 + * Touchscreen linear filter.
4080 + * Copyright (C) 2008 by Openmoko, Inc.
4081 + * Author: Nelson Castillo <arhuaco@freaks-unidos.net>
4083 + */
4085 +#define TS_FILTER_LINEAR_NCONSTANTS 7
4087 +/* sysfs */
4089 +struct ts_filter_linear;
4091 +struct const_obj {
4092 + struct ts_filter_linear *tsfl;
4093 + struct kobject kobj;
4096 +#define to_const_obj(x) container_of(x, struct const_obj, kobj)
4098 +struct const_attribute {
4099 + struct attribute attr;
4100 + ssize_t (*show)(struct const_obj *const, struct const_attribute *attr,
4101 + char *buf);
4102 + ssize_t (*store)(struct const_obj *const, struct const_attribute *attr,
4103 + const char *buf, size_t count);
4106 +#define to_const_attr(x) container_of(x, struct const_attribute, attr)
4108 +/* filter configuration */
4110 +struct ts_filter_linear_configuration {
4111 + int constants[TS_FILTER_LINEAR_NCONSTANTS];
4112 + int coord0;
4113 + int coord1;
4116 +/* the filter */
4118 +struct ts_filter_linear {
4119 + struct ts_filter tsf;
4120 + struct ts_filter_linear_configuration *config;
4122 + int constants[TS_FILTER_LINEAR_NCONSTANTS];
4124 + /* sysfs */
4125 + struct const_obj c_obj;
4126 + struct kobj_type const_ktype;
4127 + struct const_attribute kattrs[TS_FILTER_LINEAR_NCONSTANTS];
4128 + struct attribute *attrs[TS_FILTER_LINEAR_NCONSTANTS + 1];
4129 + char attr_names[TS_FILTER_LINEAR_NCONSTANTS][2];
4132 +extern struct ts_filter_api ts_filter_linear_api;
4134 +#endif
4135 diff --git a/drivers/input/touchscreen/ts_filter_mean.c b/drivers/input/touchscreen/ts_filter_mean.c
4136 new file mode 100644
4137 index 0000000..e4e0f2a
4138 --- /dev/null
4139 +++ b/drivers/input/touchscreen/ts_filter_mean.c
4140 @@ -0,0 +1,174 @@
4142 + * This program is free software; you can redistribute it and/or modify
4143 + * it under the terms of the GNU General Public License as published by
4144 + * the Free Software Foundation; either version 2 of the License, or
4145 + * (at your option) any later version.
4147 + * This program is distributed in the hope that it will be useful,
4148 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
4149 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4150 + * GNU General Public License for more details.
4152 + * You should have received a copy of the GNU General Public License
4153 + * along with this program; if not, write to the Free Software
4154 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
4156 + * Copyright (c) 2008 Andy Green <andy@openmoko.com>
4159 + * Mean has no effect if the samples are changing by more that the
4160 + * threshold set by averaging_threshold in the configuration.
4162 + * However while samples come in that don't go outside this threshold from
4163 + * the last reported sample, Mean replaces the samples with a simple mean
4164 + * of a configurable number of samples (set by bits_filter_length in config,
4165 + * which is 2^n, so 5 there makes 32 sample averaging).
4167 + * Mean works well if the input data is already good quality, reducing + / - 1
4168 + * sample jitter when the stylus is still, or moving very slowly, without
4169 + * introducing abrupt transitions or reducing ability to follow larger
4170 + * movements. If you set the threshold higher than the dynamic range of the
4171 + * coordinates, you can just use it as a simple mean average.
4172 + */
4174 +#include <linux/errno.h>
4175 +#include <linux/kernel.h>
4176 +#include <linux/slab.h>
4177 +#include "ts_filter_mean.h"
4179 +static void ts_filter_mean_clear_internal(struct ts_filter *tsf)
4181 + struct ts_filter_mean *tsfs = (struct ts_filter_mean *)tsf;
4182 + int n;
4184 + for (n = 0; n < tsfs->tsf.count_coords; n++) {
4185 + tsfs->fhead[n] = 0;
4186 + tsfs->ftail[n] = 0;
4187 + tsfs->lowpass[n] = 0;
4191 +static void ts_filter_mean_clear(struct ts_filter *tsf)
4193 + ts_filter_mean_clear_internal(tsf);
4195 + if (tsf->next) /* chain */
4196 + (tsf->next->api->clear)(tsf->next);
4199 +static struct ts_filter *ts_filter_mean_create(struct platform_device *pdev,
4200 + void *config, int count_coords)
4202 + int *p;
4203 + int n;
4204 + struct ts_filter_mean *tsfs = kzalloc(
4205 + sizeof(struct ts_filter_mean), GFP_KERNEL);
4207 + if (!tsfs)
4208 + return NULL;
4210 + BUG_ON((count_coords < 1) || (count_coords > MAX_TS_FILTER_COORDS));
4211 + tsfs->tsf.count_coords = count_coords;
4213 + tsfs->config = (struct ts_filter_mean_configuration *)config;
4215 + tsfs->config->extent = 1 << tsfs->config->bits_filter_length;
4216 + BUG_ON((tsfs->config->extent > 256) || (!tsfs->config->extent));
4218 + p = kmalloc(tsfs->config->extent * sizeof(int) * count_coords,
4219 + GFP_KERNEL);
4220 + if (!p)
4221 + return NULL;
4223 + for (n = 0; n < count_coords; n++) {
4224 + tsfs->fifo[n] = p;
4225 + p += tsfs->config->extent;
4228 + if (!tsfs->config->averaging_threshold)
4229 + tsfs->config->averaging_threshold = 0xffff; /* always active */
4231 + ts_filter_mean_clear_internal(&tsfs->tsf);
4233 + printk(KERN_INFO" Created Mean ts filter len %d depth %d thresh %d\n",
4234 + tsfs->config->extent, count_coords,
4235 + tsfs->config->averaging_threshold);
4237 + return &tsfs->tsf;
4240 +static void ts_filter_mean_destroy(struct platform_device *pdev,
4241 + struct ts_filter *tsf)
4243 + struct ts_filter_mean *tsfs = (struct ts_filter_mean *)tsf;
4245 + kfree(tsfs->fifo[0]); /* first guy has pointer from kmalloc */
4246 + kfree(tsf);
4249 +static void ts_filter_mean_scale(struct ts_filter *tsf, int *coords)
4251 + if (tsf->next) /* chain */
4252 + (tsf->next->api->scale)(tsf->next, coords);
4256 + * Give us the raw sample data in x and y, and if we return 1 then you can
4257 + * get a filtered coordinate from tsm->x and tsm->y. If we return 0 you didn't
4258 + * fill the filter with samples yet.
4259 + */
4261 +static int ts_filter_mean_process(struct ts_filter *tsf, int *coords)
4263 + struct ts_filter_mean *tsfs = (struct ts_filter_mean *)tsf;
4264 + int n;
4265 + int len;
4267 + for (n = 0; n < tsf->count_coords; n++) {
4269 + /*
4270 + * Has he moved far enough away that we should abandon current
4271 + * low pass filtering state?
4272 + */
4273 + if ((coords[n] < (tsfs->reported[n] -
4274 + tsfs->config->averaging_threshold)) ||
4275 + (coords[n] > (tsfs->reported[n] +
4276 + tsfs->config->averaging_threshold))) {
4277 + tsfs->fhead[n] = 0;
4278 + tsfs->ftail[n] = 0;
4279 + tsfs->lowpass[n] = 0;
4282 + /* capture this sample into fifo and sum */
4283 + tsfs->fifo[n][tsfs->fhead[n]++] = coords[n];
4284 + if (tsfs->fhead[n] == tsfs->config->extent)
4285 + tsfs->fhead[n] = 0;
4286 + tsfs->lowpass[n] += coords[n];
4288 + /* adjust the sum into an average and use that*/
4289 + len = (tsfs->fhead[n] - tsfs->ftail[n]) &
4290 + (tsfs->config->extent - 1);
4291 + coords[n] = (tsfs->lowpass[n] + (len >> 1)) / len;
4292 + tsfs->reported[n] = coords[n];
4294 + /* remove oldest sample if we are full */
4295 + if (len == (tsfs->config->extent - 1)) {
4296 + tsfs->lowpass[n] -= tsfs->fifo[n][tsfs->ftail[n]++];
4297 + if (tsfs->ftail[n] == tsfs->config->extent)
4298 + tsfs->ftail[n] = 0;
4302 + if (tsf->next) /* chain */
4303 + return (tsf->next->api->process)(tsf->next, coords);
4305 + return 1;
4308 +struct ts_filter_api ts_filter_mean_api = {
4309 + .create = ts_filter_mean_create,
4310 + .destroy = ts_filter_mean_destroy,
4311 + .clear = ts_filter_mean_clear,
4312 + .process = ts_filter_mean_process,
4313 + .scale = ts_filter_mean_scale,
4315 diff --git a/drivers/input/touchscreen/ts_filter_mean.h b/drivers/input/touchscreen/ts_filter_mean.h
4316 new file mode 100644
4317 index 0000000..44c506c
4318 --- /dev/null
4319 +++ b/drivers/input/touchscreen/ts_filter_mean.h
4320 @@ -0,0 +1,34 @@
4321 +#ifndef __TS_FILTER_MEAN_H__
4322 +#define __TS_FILTER_MEAN_H__
4324 +#include "ts_filter.h"
4327 + * Touchscreen filter.
4329 + * mean
4331 + * (c) 2008 Andy Green <andy@openmoko.com>
4332 + */
4334 +struct ts_filter_mean_configuration {
4335 + int bits_filter_length;
4336 + int averaging_threshold;
4338 + int extent;
4341 +struct ts_filter_mean {
4342 + struct ts_filter tsf;
4343 + struct ts_filter_mean_configuration *config;
4345 + int reported[MAX_TS_FILTER_COORDS];
4346 + int lowpass[MAX_TS_FILTER_COORDS];
4347 + int *fifo[MAX_TS_FILTER_COORDS];
4348 + int fhead[MAX_TS_FILTER_COORDS];
4349 + int ftail[MAX_TS_FILTER_COORDS];
4352 +extern struct ts_filter_api ts_filter_mean_api;
4354 +#endif
4355 diff --git a/drivers/input/touchscreen/ts_filter_median.c b/drivers/input/touchscreen/ts_filter_median.c
4356 new file mode 100644
4357 index 0000000..b3b6a9c
4358 --- /dev/null
4359 +++ b/drivers/input/touchscreen/ts_filter_median.c
4360 @@ -0,0 +1,217 @@
4362 + * This program is free software; you can redistribute it and/or modify
4363 + * it under the terms of the GNU General Public License as published by
4364 + * the Free Software Foundation; either version 2 of the License, or
4365 + * (at your option) any later version.
4367 + * This program is distributed in the hope that it will be useful,
4368 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
4369 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4370 + * GNU General Public License for more details.
4372 + * You should have received a copy of the GNU General Public License
4373 + * along with this program; if not, write to the Free Software
4374 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
4376 + * Copyright (c) 2008 Andy Green <andy@openmoko.com>
4379 + * Median averaging stuff. We sort incoming raw samples into an array of
4380 + * MEDIAN_SIZE length, discarding the oldest sample each time once we are full.
4381 + * We then return the sum of the middle three samples for X and Y. It means
4382 + * the final result must be divided by (3 * scaling factor) to correct for
4383 + * avoiding the repeated /3.
4385 + * This strongly rejects brief excursions away from a central point that is
4386 + * sticky in time compared to the excursion duration.
4388 + * Thanks to Dale Schumacher (who wrote some example code) and Carl-Daniel
4389 + * Halifinger who pointed out this would be a good method.
4390 + */
4392 +#include <linux/errno.h>
4393 +#include <linux/kernel.h>
4394 +#include <linux/slab.h>
4395 +#include "ts_filter_median.h"
4397 +static void ts_filter_median_insert(int *p, int sample, int count)
4399 + int n;
4401 + /* search through what we got so far to find where to put sample */
4402 + for (n = 0; n < count; n++)
4403 + /* we met somebody bigger than us? */
4404 + if (sample < p[n]) {
4405 + /* starting from the end, push bigger guys down one */
4406 + for (count--; count >= n; count--)
4407 + p[count + 1] = p[count];
4408 + p[n] = sample; /* and put us in place of first bigger */
4409 + return;
4412 + p[count] = sample; /* nobody was bigger than us, add us on the end */
4415 +static void ts_filter_median_del(int *p, int value, int count)
4417 + int index;
4419 + for (index = 0; index < count; index++)
4420 + if (p[index] == value) {
4421 + for (; index < count; index++)
4422 + p[index] = p[index + 1];
4423 + return;
4428 +static void ts_filter_median_clear_internal(struct ts_filter *tsf)
4430 + struct ts_filter_median *tsfm = (struct ts_filter_median *)tsf;
4432 + tsfm->pos = 0;
4433 + tsfm->valid = 0;
4436 +static void ts_filter_median_clear(struct ts_filter *tsf)
4438 + ts_filter_median_clear_internal(tsf);
4440 + if (tsf->next) /* chain */
4441 + (tsf->next->api->clear)(tsf->next);
4444 +static struct ts_filter *ts_filter_median_create(struct platform_device *pdev,
4445 + void *conf, int count_coords)
4447 + int *p;
4448 + int n;
4449 + struct ts_filter_median *tsfm = kzalloc(sizeof(struct ts_filter_median),
4450 + GFP_KERNEL);
4452 + if (!tsfm)
4453 + return NULL;
4455 + tsfm->config = (struct ts_filter_median_configuration *)conf;
4456 + BUG_ON((count_coords < 1) || (count_coords > MAX_TS_FILTER_COORDS));
4457 + tsfm->tsf.count_coords = count_coords;
4459 + tsfm->config->midpoint = (tsfm->config->extent >> 1) + 1;
4461 + p = kmalloc(2 * count_coords * sizeof(int) * (tsfm->config->extent + 1),
4462 + GFP_KERNEL);
4463 + if (!p) {
4464 + kfree(tsfm);
4465 + return NULL;
4468 + for (n = 0; n < count_coords; n++) {
4469 + tsfm->sort[n] = p;
4470 + p += tsfm->config->extent + 1;
4471 + tsfm->fifo[n] = p;
4472 + p += tsfm->config->extent + 1;
4475 + ts_filter_median_clear_internal(&tsfm->tsf);
4477 + printk(KERN_INFO" Created Median ts filter len %d depth %d dec %d\n",
4478 + tsfm->config->extent, count_coords,
4479 + tsfm->config->decimation_threshold);
4481 + return &tsfm->tsf;
4484 +static void ts_filter_median_destroy(struct platform_device *pdev,
4485 + struct ts_filter *tsf)
4487 + struct ts_filter_median *tsfm = (struct ts_filter_median *)tsf;
4489 + kfree(tsfm->sort[0]); /* first guy has pointer from kmalloc */
4490 + kfree(tsf);
4493 +static void ts_filter_median_scale(struct ts_filter *tsf, int *coords)
4495 + int n;
4497 + for (n = 0; n < tsf->count_coords; n++)
4498 + coords[n] = (coords[n] + 2) / 3;
4500 + if (tsf->next) /* chain */
4501 + (tsf->next->api->scale)(tsf->next, coords);
4505 + * Give us the raw sample data coords, and if we return 1 then you can
4506 + * get a filtered coordinate from coords. If we return 0 you didn't
4507 + * fill all the filters with samples yet.
4508 + */
4510 +static int ts_filter_median_process(struct ts_filter *tsf, int *coords)
4512 + struct ts_filter_median *tsfm = (struct ts_filter_median *)tsf;
4513 + int n;
4514 + int movement = 1;
4516 + for (n = 0; n < tsf->count_coords; n++) {
4517 + /* grab copy in insertion order to remove when oldest */
4518 + tsfm->fifo[n][tsfm->pos] = coords[n];
4519 + /* insert these samples in sorted order in the median arrays */
4520 + ts_filter_median_insert(tsfm->sort[n], coords[n], tsfm->valid);
4522 + /* move us on in the fifo */
4523 + if (++tsfm->pos == (tsfm->config->extent + 1))
4524 + tsfm->pos = 0;
4526 + /* we have finished a median sampling? */
4527 + if (++tsfm->valid != tsfm->config->extent)
4528 + return 0; /* no valid sample to use */
4530 + /* discard the oldest sample in median sorted array */
4531 + tsfm->valid--;
4533 + /*
4534 + * Sum the middle 3 in the median sorted arrays. We don't divide back
4535 + * down which increases the sum resolution by a factor of 3 until the
4536 + * scale API is called.
4537 + */
4538 + for (n = 0; n < tsfm->tsf.count_coords; n++)
4539 + /* perform the deletion of the oldest sample */
4540 + ts_filter_median_del(tsfm->sort[n], tsfm->fifo[n][tsfm->pos],
4541 + tsfm->valid);
4543 + tsfm->decimation_count--;
4544 + if (tsfm->decimation_count >= 0)
4545 + return 0;
4547 + for (n = 0; n < tsfm->tsf.count_coords; n++) {
4548 + /* give the coordinate result from summing median 3 */
4549 + coords[n] = tsfm->sort[n][tsfm->config->midpoint - 1] +
4550 + tsfm->sort[n][tsfm->config->midpoint] +
4551 + tsfm->sort[n][tsfm->config->midpoint + 1]
4554 + movement += abs(tsfm->last_issued[n] - coords[n]);
4557 + if (movement > tsfm->config->decimation_threshold) /* fast */
4558 + tsfm->decimation_count = tsfm->config->decimation_above;
4559 + else
4560 + tsfm->decimation_count = tsfm->config->decimation_below;
4562 + memcpy(&tsfm->last_issued[0], coords,
4563 + tsfm->tsf.count_coords * sizeof(int));
4565 + if (tsf->next) /* chain */
4566 + return (tsf->next->api->process)(tsf->next, coords);
4568 + return 1;
4571 +struct ts_filter_api ts_filter_median_api = {
4572 + .create = ts_filter_median_create,
4573 + .destroy = ts_filter_median_destroy,
4574 + .clear = ts_filter_median_clear,
4575 + .process = ts_filter_median_process,
4576 + .scale = ts_filter_median_scale,
4578 diff --git a/drivers/input/touchscreen/ts_filter_median.h b/drivers/input/touchscreen/ts_filter_median.h
4579 new file mode 100644
4580 index 0000000..8f25e27
4581 --- /dev/null
4582 +++ b/drivers/input/touchscreen/ts_filter_median.h
4583 @@ -0,0 +1,36 @@
4584 +#ifndef __TS_FILTER_MEDIAN_H__
4585 +#define __TS_FILTER_MEDIAN_H__
4587 +#include "ts_filter.h"
4590 + * Touchscreen filter.
4592 + * median
4594 + * (c) 2008 Andy Green <andy@openmoko.com>
4595 + */
4597 +struct ts_filter_median_configuration {
4598 + int extent;
4599 + int midpoint;
4600 + int decimation_threshold;
4601 + int decimation_above;
4602 + int decimation_below;
4605 +struct ts_filter_median {
4606 + struct ts_filter tsf;
4607 + struct ts_filter_median_configuration *config;
4609 + int decimation_count;
4610 + int last_issued[MAX_TS_FILTER_COORDS];
4611 + int valid; /* how many samples in the sort buffer are valid */
4612 + int *sort[MAX_TS_FILTER_COORDS]; /* samples taken for median */
4613 + int *fifo[MAX_TS_FILTER_COORDS]; /* samples taken for median */
4614 + int pos; /* where we are in the fifo sample memory */
4617 +extern struct ts_filter_api ts_filter_median_api;
4619 +#endif
4620 diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c
4621 index 26fc098..2449230 100644
4622 --- a/drivers/mmc/core/sd.c
4623 +++ b/drivers/mmc/core/sd.c
4624 @@ -449,6 +449,11 @@ static int mmc_sd_init_card(struct mmc_host *host, u32 ocr,
4625 if (err < 0)
4626 goto free_card;
4628 +#ifdef CONFIG_MACH_MINI2440
4629 + /* Prevents the -110 error at startup/insertion */
4630 + mdelay(10);
4631 +#endif
4634 * Fetch switch information from card.
4636 diff --git a/drivers/video/logo/Kconfig b/drivers/video/logo/Kconfig
4637 index 39ac49e..34834ed 100644
4638 --- a/drivers/video/logo/Kconfig
4639 +++ b/drivers/video/logo/Kconfig
4640 @@ -82,4 +82,9 @@ config LOGO_M32R_CLUT224
4641 depends on M32R
4642 default y
4644 +config LOGO_ARMWORKS_CLUT224
4645 + bool "Armworks 224-color logo"
4646 + depends on MACH_MINI2440
4647 + default y
4649 endif # LOGO
4650 diff --git a/drivers/video/logo/Makefile b/drivers/video/logo/Makefile
4651 index b91251d..4d0423f 100644
4652 --- a/drivers/video/logo/Makefile
4653 +++ b/drivers/video/logo/Makefile
4654 @@ -15,6 +15,7 @@ obj-$(CONFIG_LOGO_SUPERH_MONO) += logo_superh_mono.o
4655 obj-$(CONFIG_LOGO_SUPERH_VGA16) += logo_superh_vga16.o
4656 obj-$(CONFIG_LOGO_SUPERH_CLUT224) += logo_superh_clut224.o
4657 obj-$(CONFIG_LOGO_M32R_CLUT224) += logo_m32r_clut224.o
4658 +obj-$(CONFIG_LOGO_ARMWORKS_CLUT224) += logo_armworks_clut224.o
4660 obj-$(CONFIG_SPU_BASE) += logo_spe_clut224.o
4662 diff --git a/drivers/video/logo/logo.c b/drivers/video/logo/logo.c
4663 index 2e85a2b..40b5e31 100644
4664 --- a/drivers/video/logo/logo.c
4665 +++ b/drivers/video/logo/logo.c
4666 @@ -35,6 +35,7 @@ extern const struct linux_logo logo_superh_mono;
4667 extern const struct linux_logo logo_superh_vga16;
4668 extern const struct linux_logo logo_superh_clut224;
4669 extern const struct linux_logo logo_m32r_clut224;
4670 +extern const struct linux_logo logo_armworks_clut224;
4672 static int nologo;
4673 module_param(nologo, bool, 0);
4674 @@ -115,6 +116,10 @@ const struct linux_logo * __init_refok fb_find_logo(int depth)
4675 /* M32R Linux logo */
4676 logo = &logo_m32r_clut224;
4677 #endif
4678 +#ifdef CONFIG_LOGO_ARMWORKS_CLUT224
4679 + /* ARMWorks Linux logo */
4680 + logo = &logo_armworks_clut224;
4681 +#endif
4683 return logo;
4685 diff --git a/drivers/video/logo/logo_armworks_clut224.ppm b/drivers/video/logo/logo_armworks_clut224.ppm
4686 new file mode 100644
4687 index 0000000..a632167
4688 --- /dev/null
4689 +++ b/drivers/video/logo/logo_armworks_clut224.ppm
4690 @@ -0,0 +1,12004 @@
4692 +# CREATOR: GIMP PNM Filter Version 1.1
4693 +160 25
4694 +255
4695 +254
4696 +255
4697 +252
4698 +254
4699 +255
4700 +252
4701 +254
4702 +255
4703 +252
4704 +254
4705 +255
4706 +252
4707 +254
4708 +255
4709 +252
4710 +254
4711 +255
4712 +252
4713 +254
4714 +255
4715 +252
4716 +254
4717 +255
4718 +252
4719 +254
4720 +255
4721 +252
4722 +254
4723 +255
4724 +252
4725 +254
4726 +255
4727 +252
4728 +254
4729 +255
4730 +252
4731 +254
4732 +255
4733 +252
4734 +254
4735 +255
4736 +252
4737 +254
4738 +255
4739 +252
4740 +254
4741 +255
4742 +252
4743 +254
4744 +255
4745 +252
4746 +254
4747 +255
4748 +252
4749 +254
4750 +255
4751 +252
4752 +254
4753 +255
4754 +252
4755 +254
4756 +255
4757 +252
4758 +254
4759 +255
4760 +252
4761 +254
4762 +255
4763 +252
4764 +254
4765 +255
4766 +252
4767 +254
4768 +255
4769 +252
4770 +254
4771 +255
4772 +252
4773 +254
4774 +255
4775 +252
4776 +254
4777 +255
4778 +252
4779 +254
4780 +255
4781 +252
4782 +254
4783 +255
4784 +252
4785 +254
4786 +255
4787 +252
4788 +254
4789 +255
4790 +252
4791 +254
4792 +255
4793 +252
4794 +254
4795 +255
4796 +252
4797 +254
4798 +255
4799 +252
4800 +254
4801 +255
4802 +252
4803 +254
4804 +255
4805 +252
4806 +254
4807 +255
4808 +252
4809 +254
4810 +255
4811 +252
4812 +254
4813 +255
4814 +252
4815 +254
4816 +255
4817 +252
4818 +254
4819 +255
4820 +252
4821 +254
4822 +255
4823 +252
4824 +254
4825 +255
4826 +252
4827 +254
4828 +255
4829 +252
4830 +254
4831 +255
4832 +252
4833 +254
4834 +255
4835 +252
4836 +254
4837 +255
4838 +252
4839 +254
4840 +255
4841 +252
4842 +254
4843 +255
4844 +252
4845 +254
4846 +255
4847 +252
4848 +254
4849 +255
4850 +252
4851 +254
4852 +255
4853 +252
4854 +254
4855 +255
4856 +252
4857 +254
4858 +255
4859 +252
4860 +254
4861 +255
4862 +252
4863 +254
4864 +255
4865 +252
4866 +254
4867 +255
4868 +252
4869 +254
4870 +255
4871 +252
4872 +254
4873 +255
4874 +252
4875 +254
4876 +255
4877 +252
4878 +254
4879 +255
4880 +252
4881 +254
4882 +255
4883 +252
4884 +254
4885 +255
4886 +252
4887 +254
4888 +255
4889 +252
4890 +254
4891 +255
4892 +252
4893 +254
4894 +255
4895 +252
4896 +254
4897 +255
4898 +252
4899 +254
4900 +255
4901 +252
4902 +254
4903 +255
4904 +252
4905 +254
4906 +255
4907 +252
4908 +254
4909 +255
4910 +252
4911 +254
4912 +255
4913 +252
4914 +254
4915 +255
4916 +252
4917 +254
4918 +255
4919 +252
4920 +254
4921 +255
4922 +252
4923 +254
4924 +255
4925 +252
4926 +254
4927 +255
4928 +252
4929 +254
4930 +255
4931 +252
4932 +254
4933 +255
4934 +252
4935 +254
4936 +255
4937 +252
4938 +254
4939 +255
4940 +252
4941 +254
4942 +255
4943 +252
4944 +254
4945 +255
4946 +252
4947 +254
4948 +255
4949 +252
4950 +254
4951 +255
4952 +252
4953 +254
4954 +255
4955 +252
4956 +254
4957 +255
4958 +252
4959 +254
4960 +255
4961 +252
4962 +254
4963 +255
4964 +252
4965 +254
4966 +255
4967 +252
4968 +254
4969 +255
4970 +252
4971 +254
4972 +255
4973 +252
4974 +254
4975 +255
4976 +252
4977 +254
4978 +255
4979 +252
4980 +254
4981 +255
4982 +252
4983 +254
4984 +255
4985 +252
4986 +254
4987 +255
4988 +252
4989 +254
4990 +255
4991 +252
4992 +254
4993 +255
4994 +252
4995 +254
4996 +255
4997 +252
4998 +254
4999 +255
5000 +252
5001 +254
5002 +255
5003 +252
5004 +254
5005 +255
5006 +252
5007 +254
5008 +255
5009 +252
5010 +254
5011 +255
5012 +252
5013 +254
5014 +255
5015 +252
5016 +254
5017 +255
5018 +252
5019 +254
5020 +255
5021 +252
5022 +254
5023 +255
5024 +252
5025 +254
5026 +255
5027 +252
5028 +254
5029 +255
5030 +252
5031 +254
5032 +255
5033 +252
5034 +254
5035 +255
5036 +252
5037 +254
5038 +255
5039 +252
5040 +254
5041 +255
5042 +252
5043 +254
5044 +255
5045 +252
5046 +254
5047 +255
5048 +252
5049 +254
5050 +255
5051 +252
5052 +254
5053 +255
5054 +252
5055 +254
5056 +255
5057 +252
5058 +254
5059 +255
5060 +252
5061 +254
5062 +255
5063 +252
5064 +254
5065 +255
5066 +252
5067 +254
5068 +255
5069 +252
5070 +254
5071 +255
5072 +252
5073 +254
5074 +255
5075 +252
5076 +254
5077 +255
5078 +252
5079 +254
5080 +255
5081 +252
5082 +254
5083 +255
5084 +252
5085 +254
5086 +255
5087 +252
5088 +254
5089 +255
5090 +252
5091 +254
5092 +255
5093 +252
5094 +254
5095 +255
5096 +252
5097 +254
5098 +255
5099 +252
5100 +254
5101 +255
5102 +252
5103 +254
5104 +255
5105 +252
5106 +254
5107 +255
5108 +252
5109 +254
5110 +255
5111 +252
5112 +254
5113 +255
5114 +252
5115 +254
5116 +255
5117 +252
5118 +254
5119 +255
5120 +252
5121 +254
5122 +255
5123 +252
5124 +254
5125 +255
5126 +252
5127 +254
5128 +255
5129 +252
5130 +254
5131 +255
5132 +252
5133 +254
5134 +255
5135 +252
5136 +254
5137 +255
5138 +252
5139 +254
5140 +255
5141 +252
5142 +254
5143 +255
5144 +252
5145 +254
5146 +255
5147 +252
5148 +254
5149 +255
5150 +252
5151 +254
5152 +255
5153 +252
5154 +254
5155 +255
5156 +252
5157 +254
5158 +255
5159 +252
5160 +254
5161 +255
5162 +252
5163 +254
5164 +255
5165 +252
5166 +254
5167 +255
5168 +252
5169 +254
5170 +255
5171 +252
5172 +254
5173 +255
5174 +252
5175 +254
5176 +255
5177 +252
5178 +254
5179 +255
5180 +252
5181 +254
5182 +255
5183 +252
5184 +254
5185 +255
5186 +252
5187 +254
5188 +255
5189 +252
5190 +254
5191 +255
5192 +252
5193 +254
5194 +255
5195 +252
5196 +254
5197 +255
5198 +252
5199 +254
5200 +255
5201 +252
5202 +254
5203 +255
5204 +252
5205 +254
5206 +255
5207 +252
5208 +254
5209 +255
5210 +252
5211 +254
5212 +255
5213 +252
5214 +254
5215 +255
5216 +252
5217 +254
5218 +255
5219 +252
5220 +254
5221 +255
5222 +252
5223 +254
5224 +255
5225 +252
5226 +254
5227 +255
5228 +252
5229 +254
5230 +255
5231 +252
5232 +254
5233 +255
5234 +252
5235 +254
5236 +255
5237 +252
5238 +254
5239 +255
5240 +252
5241 +254
5242 +255
5243 +252
5244 +254
5245 +255
5246 +252
5247 +254
5248 +255
5249 +252
5250 +254
5251 +255
5252 +252
5253 +254
5254 +255
5255 +252
5256 +254
5257 +255
5258 +252
5259 +254
5260 +255
5261 +252
5262 +254
5263 +255
5264 +252
5265 +254
5266 +255
5267 +252
5268 +254
5269 +255
5270 +252
5271 +254
5272 +255
5273 +252
5274 +254
5275 +255
5276 +252
5277 +254
5278 +255
5279 +252
5280 +254
5281 +255
5282 +252
5283 +254
5284 +255
5285 +252
5286 +254
5287 +255
5288 +252
5289 +254
5290 +255
5291 +252
5292 +254
5293 +255
5294 +252
5295 +254
5296 +255
5297 +252
5298 +254
5299 +255
5300 +252
5301 +254
5302 +255
5303 +252
5304 +254
5305 +255
5306 +252
5307 +254
5308 +255
5309 +252
5310 +254
5311 +255
5312 +252
5313 +254
5314 +255
5315 +252
5316 +254
5317 +255
5318 +252
5319 +254
5320 +255
5321 +252
5322 +254
5323 +255
5324 +252
5325 +254
5326 +255
5327 +252
5328 +254
5329 +255
5330 +252
5331 +254
5332 +255
5333 +252
5334 +254
5335 +255
5336 +252
5337 +254
5338 +255
5339 +252
5340 +254
5341 +255
5342 +252
5343 +254
5344 +255
5345 +252
5346 +254
5347 +255
5348 +252
5349 +254
5350 +255
5351 +252
5352 +254
5353 +255
5354 +252
5355 +254
5356 +255
5357 +252
5358 +254
5359 +255
5360 +252
5361 +254
5362 +255
5363 +252
5364 +254
5365 +255
5366 +252
5367 +254
5368 +255
5369 +252
5370 +254
5371 +255
5372 +252
5373 +254
5374 +255
5375 +252
5376 +254
5377 +255
5378 +252
5379 +254
5380 +255
5381 +252
5382 +248
5383 +253
5384 +255
5385 +254
5386 +255
5387 +252
5388 +254
5389 +255
5390 +252
5391 +254
5392 +255
5393 +252
5394 +254
5395 +255
5396 +252
5397 +254
5398 +255
5399 +252
5400 +254
5401 +255
5402 +252
5403 +254
5404 +255
5405 +252
5406 +254
5407 +255
5408 +252
5409 +254
5410 +255
5411 +252
5412 +254
5413 +255
5414 +252
5415 +254
5416 +255
5417 +252
5418 +254
5419 +255
5420 +252
5421 +254
5422 +255
5423 +252
5424 +254
5425 +255
5426 +252
5427 +254
5428 +255
5429 +252
5430 +254
5431 +255
5432 +252
5433 +254
5434 +255
5435 +252
5436 +254
5437 +255
5438 +252
5439 +254
5440 +255
5441 +252
5442 +254
5443 +255
5444 +252
5445 +254
5446 +255
5447 +252
5448 +254
5449 +255
5450 +252
5451 +254
5452 +255
5453 +252
5454 +254
5455 +255
5456 +252
5457 +254
5458 +255
5459 +252
5460 +254
5461 +255
5462 +252
5463 +254
5464 +255
5465 +252
5466 +254
5467 +255
5468 +252
5469 +254
5470 +255
5471 +252
5472 +254
5473 +255
5474 +252
5475 +254
5476 +255
5477 +252
5478 +254
5479 +255
5480 +252
5481 +254
5482 +255
5483 +252
5484 +254
5485 +255
5486 +252
5487 +254
5488 +255
5489 +252
5490 +254
5491 +255
5492 +252
5493 +254
5494 +255
5495 +252
5496 +254
5497 +255
5498 +252
5499 +254
5500 +255
5501 +252
5502 +254
5503 +255
5504 +252
5505 +254
5506 +255
5507 +252
5508 +254
5509 +255
5510 +252
5511 +254
5512 +255
5513 +252
5514 +254
5515 +255
5516 +252
5517 +254
5518 +255
5519 +252
5520 +254
5521 +255
5522 +252
5523 +254
5524 +255
5525 +252
5526 +254
5527 +255
5528 +252
5529 +254
5530 +255
5531 +252
5532 +254
5533 +255
5534 +252
5535 +254
5536 +255
5537 +252
5538 +254
5539 +255
5540 +252
5541 +254
5542 +255
5543 +252
5544 +254
5545 +255
5546 +252
5547 +254
5548 +255
5549 +252
5550 +254
5551 +255
5552 +252
5553 +254
5554 +255
5555 +252
5556 +254
5557 +255
5558 +252
5559 +254
5560 +255
5561 +252
5562 +254
5563 +255
5564 +252
5565 +254
5566 +255
5567 +252
5568 +254
5569 +255
5570 +252
5571 +254
5572 +255
5573 +252
5574 +254
5575 +255
5576 +252
5577 +254
5578 +255
5579 +252
5580 +254
5581 +255
5582 +252
5583 +254
5584 +255
5585 +252
5586 +254
5587 +255
5588 +252
5589 +254
5590 +255
5591 +252
5592 +254
5593 +255
5594 +252
5595 +254
5596 +255
5597 +252
5598 +254
5599 +255
5600 +252
5601 +254
5602 +255
5603 +252
5604 +254
5605 +255
5606 +252
5607 +254
5608 +255
5609 +252
5610 +254
5611 +255
5612 +252
5613 +254
5614 +255
5615 +252
5616 +254
5617 +255
5618 +252
5619 +254
5620 +255
5621 +252
5622 +254
5623 +255
5624 +252
5625 +254
5626 +255
5627 +252
5628 +254
5629 +255
5630 +252
5631 +254
5632 +255
5633 +252
5634 +254
5635 +255
5636 +252
5637 +254
5638 +255
5639 +252
5640 +254
5641 +255
5642 +252
5643 +254
5644 +255
5645 +252
5646 +254
5647 +255
5648 +252
5649 +254
5650 +255
5651 +252
5652 +254
5653 +255
5654 +252
5655 +254
5656 +255
5657 +252
5658 +254
5659 +255
5660 +252
5661 +254
5662 +255
5663 +252
5664 +254
5665 +255
5666 +252
5667 +254
5668 +255
5669 +252
5670 +254
5671 +255
5672 +252
5673 +255
5674 +252
5675 +251
5676 +254
5677 +255
5678 +252
5679 +254
5680 +255
5681 +252
5682 +254
5683 +255
5684 +252
5685 +254
5686 +255
5687 +252
5688 +254
5689 +255
5690 +252
5691 +254
5692 +255
5693 +252
5694 +254
5695 +255
5696 +252
5697 +254
5698 +255
5699 +252
5700 +254
5701 +255
5702 +252
5703 +254
5704 +255
5705 +252
5706 +254
5707 +255
5708 +252
5709 +254
5710 +255
5711 +252
5712 +254
5713 +255
5714 +252
5715 +254
5716 +255
5717 +252
5718 +254
5719 +255
5720 +252
5721 +252
5722 +250
5723 +254
5724 +254
5725 +255
5726 +252
5727 +254
5728 +255
5729 +252
5730 +237
5731 +229
5732 +255
5733 +254
5734 +255
5735 +252
5736 +254
5737 +255
5738 +252
5739 +254
5740 +255
5741 +252
5742 +254
5743 +255
5744 +252
5745 +254
5746 +255
5747 +252
5748 +254
5749 +255
5750 +252
5751 +254
5752 +255
5753 +252
5754 +254
5755 +255
5756 +252
5757 +254
5758 +255
5759 +252
5760 +254
5761 +255
5762 +252
5763 +254
5764 +255
5765 +252
5766 +254
5767 +255
5768 +252
5769 +254
5770 +255
5771 +252
5772 +254
5773 +255
5774 +252
5775 +254
5776 +255
5777 +252
5778 +254
5779 +255
5780 +252
5781 +254
5782 +255
5783 +252
5784 +254
5785 +255
5786 +252
5787 +254
5788 +255
5789 +252
5790 +254
5791 +255
5792 +252
5793 +254
5794 +255
5795 +252
5796 +254
5797 +255
5798 +252
5799 +254
5800 +255
5801 +252
5802 +254
5803 +255
5804 +252
5805 +254
5806 +255
5807 +252
5808 +254
5809 +255
5810 +252
5811 +254
5812 +255
5813 +252
5814 +254
5815 +255
5816 +252
5817 +254
5818 +255
5819 +252
5820 +254
5821 +255
5822 +252
5823 +254
5824 +255
5825 +252
5826 +254
5827 +255
5828 +252
5829 +254
5830 +255
5831 +252
5832 +254
5833 +255
5834 +252
5835 +254
5836 +255
5837 +252
5838 +254
5839 +255
5840 +252
5841 +254
5842 +255
5843 +252
5844 +254
5845 +255
5846 +252
5847 +254
5848 +255
5849 +252
5850 +254
5851 +255
5852 +252
5853 +254
5854 +255
5855 +252
5856 +254
5857 +255
5858 +252
5859 +255
5860 +252
5861 +251
5862 +254
5863 +255
5864 +252
5865 +254
5866 +255
5867 +252
5868 +222
5869 +222
5870 +254
5871 +254
5872 +255
5873 +252
5874 +254
5875 +255
5876 +252
5877 +254
5878 +255
5879 +252
5880 +254
5881 +255
5882 +252
5883 +254
5884 +255
5885 +252
5886 +254
5887 +255
5888 +252
5889 +254
5890 +255
5891 +252
5892 +254
5893 +255
5894 +252
5895 +248
5896 +253
5897 +255
5898 +254
5899 +255
5900 +252
5901 +254
5902 +255
5903 +252
5904 +254
5905 +255
5906 +252
5907 +254
5908 +255
5909 +252
5910 +254
5911 +255
5912 +252
5913 +254
5914 +255
5915 +252
5916 +254
5917 +255
5918 +252
5919 +254
5920 +255
5921 +252
5922 +254
5923 +255
5924 +252
5925 +254
5926 +255
5927 +252
5928 +254
5929 +255
5930 +252
5931 +254
5932 +255
5933 +252
5934 +254
5935 +255
5936 +252
5937 +254
5938 +255
5939 +252
5940 +254
5941 +255
5942 +252
5943 +254
5944 +255
5945 +252
5946 +254
5947 +255
5948 +252
5949 +254
5950 +255
5951 +252
5952 +254
5953 +255
5954 +252
5955 +254
5956 +255
5957 +252
5958 +254
5959 +255
5960 +252
5961 +254
5962 +255
5963 +252
5964 +254
5965 +255
5966 +252
5967 +254
5968 +255
5969 +252
5970 +254
5971 +255
5972 +252
5973 +254
5974 +255
5975 +252
5976 +254
5977 +255
5978 +252
5979 +254
5980 +255
5981 +252
5982 +254
5983 +255
5984 +252
5985 +254
5986 +255
5987 +252
5988 +254
5989 +255
5990 +252
5991 +254
5992 +255
5993 +252
5994 +254
5995 +255
5996 +252
5997 +254
5998 +255
5999 +252
6000 +254
6001 +255
6002 +252
6003 +254
6004 +255
6005 +252
6006 +254
6007 +255
6008 +252
6009 +254
6010 +255
6011 +252
6012 +254
6013 +255
6014 +252
6015 +254
6016 +255
6017 +252
6018 +252
6019 +250
6020 +254
6021 +254
6022 +255
6023 +252
6024 +254
6025 +255
6026 +252
6027 +254
6028 +255
6029 +252
6030 +254
6031 +255
6032 +252
6033 +254
6034 +255
6035 +252
6036 +254
6037 +255
6038 +252
6039 +254
6040 +255
6041 +252
6042 +254
6043 +255
6044 +252
6045 +254
6046 +255
6047 +252
6048 +254
6049 +255
6050 +252
6051 +254
6052 +255
6053 +252
6054 +254
6055 +255
6056 +252
6057 +254
6058 +255
6059 +252
6060 +254
6061 +255
6062 +252
6063 +254
6064 +255
6065 +252
6066 +254
6067 +255
6068 +252
6069 +254
6070 +255
6071 +252
6072 +254
6073 +255
6074 +252
6075 +254
6076 +255
6077 +252
6078 +252
6079 +250
6080 +254
6081 +254
6082 +255
6083 +252
6084 +239
6085 +236
6086 +254
6087 +249
6088 +242
6089 +255
6090 +254
6091 +255
6092 +252
6093 +254
6094 +255
6095 +252
6096 +254
6097 +255
6098 +252
6099 +254
6100 +255
6101 +252
6102 +254
6103 +255
6104 +252
6105 +254
6106 +255
6107 +252
6108 +254
6109 +255
6110 +252
6111 +254
6112 +255
6113 +252
6114 +254
6115 +255
6116 +252
6117 +254
6118 +255
6119 +252
6120 +254
6121 +255
6122 +252
6123 +254
6124 +255
6125 +252
6126 +254
6127 +255
6128 +252
6129 +254
6130 +255
6131 +252
6132 +254
6133 +255
6134 +252
6135 +254
6136 +255
6137 +252
6138 +254
6139 +255
6140 +252
6141 +252
6142 +250
6143 +254
6144 +219
6145 +190
6146 +253
6148 +115
6149 +253
6151 +115
6152 +253
6153 +248
6154 +253
6155 +255
6156 +252
6157 +250
6158 +254
6159 +254
6160 +255
6161 +252
6162 +254
6163 +255
6164 +252
6165 +254
6166 +255
6167 +252
6168 +254
6169 +255
6170 +252
6171 +254
6172 +255
6173 +252
6174 +254
6175 +255
6176 +252
6177 +254
6178 +255
6179 +252
6180 +254
6181 +255
6182 +252
6183 +254
6184 +255
6185 +252
6186 +254
6187 +255
6188 +252
6189 +254
6190 +255
6191 +252
6192 +254
6193 +255
6194 +252
6195 +254
6196 +255
6197 +252
6198 +254
6199 +255
6200 +252
6201 +254
6202 +255
6203 +252
6204 +107
6206 +252
6209 +254
6210 +105
6211 +154
6212 +254
6213 +254
6214 +255
6215 +252
6216 +254
6217 +255
6218 +252
6219 +254
6220 +255
6221 +252
6222 +254
6223 +255
6224 +252
6225 +254
6226 +255
6227 +252
6228 +254
6229 +255
6230 +252
6231 +254
6232 +255
6233 +252
6234 +254
6235 +255
6236 +252
6237 +254
6238 +255
6239 +252
6240 +254
6241 +255
6242 +252
6243 +254
6244 +255
6245 +252
6246 +254
6247 +255
6248 +252
6249 +254
6250 +255
6251 +252
6252 +254
6253 +255
6254 +252
6255 +254
6256 +255
6257 +252
6258 +254
6259 +255
6260 +252
6261 +254
6262 +255
6263 +252
6264 +254
6265 +255
6266 +252
6267 +254
6268 +255
6269 +252
6270 +254
6271 +255
6272 +252
6273 +254
6274 +255
6275 +252
6276 +254
6277 +255
6278 +252
6279 +254
6280 +255
6281 +252
6282 +254
6283 +255
6284 +252
6285 +254
6286 +255
6287 +252
6288 +254
6289 +255
6290 +252
6291 +254
6292 +255
6293 +252
6294 +254
6295 +255
6296 +252
6297 +254
6298 +255
6299 +252
6300 +252
6301 +250
6302 +254
6303 +245
6304 +233
6305 +253
6308 +251
6310 +102
6311 +253
6312 +252
6313 +250
6314 +254
6315 +252
6316 +250
6317 +254
6318 +254
6319 +255
6320 +252
6321 +254
6322 +255
6323 +252
6324 +254
6325 +255
6326 +252
6327 +254
6328 +255
6329 +252
6330 +254
6331 +255
6332 +252
6333 +254
6334 +255
6335 +252
6336 +254
6337 +255
6338 +252
6339 +254
6340 +255
6341 +252
6342 +194
6343 +181
6344 +253
6347 +254
6350 +250
6351 +254
6352 +255
6353 +252
6354 +254
6355 +255
6356 +252
6357 +254
6358 +255
6359 +252
6360 +254
6361 +255
6362 +252
6363 +254
6364 +255
6365 +252
6366 +254
6367 +255
6368 +252
6369 +254
6370 +255
6371 +252
6372 +254
6373 +255
6374 +252
6375 +255
6376 +252
6377 +251
6378 +252
6379 +250
6380 +254
6383 +250
6385 +142
6386 +252
6387 +252
6388 +250
6389 +254
6390 +254
6391 +255
6392 +252
6393 +254
6394 +255
6395 +252
6396 +252
6397 +250
6398 +254
6399 +255
6400 +246
6401 +253
6402 +107
6403 +108
6404 +252
6406 +102
6407 +253
6410 +252
6413 +253
6416 +252
6418 +132
6419 +253
6420 +196
6421 +207
6422 +254
6423 +252
6424 +250
6425 +254
6426 +254
6427 +255
6428 +252
6429 +248
6430 +253
6431 +255
6432 +252
6433 +250
6434 +254
6435 +146
6436 +155
6437 +253
6438 +113
6439 +137
6440 +251
6441 +252
6442 +250
6443 +254
6444 +254
6445 +255
6446 +252
6447 +254
6448 +255
6449 +252
6450 +252
6451 +250
6452 +254
6453 +255
6454 +246
6455 +253
6457 +102
6458 +253
6459 +206
6460 +211
6461 +254
6462 +252
6463 +250
6464 +254
6466 +105
6467 +254
6469 +119
6470 +252
6471 +146
6472 +172
6473 +254
6474 +252
6475 +250
6476 +254
6477 +248
6478 +253
6479 +255
6480 +254
6481 +255
6482 +252
6483 +252
6484 +250
6485 +254
6486 +120
6487 +126
6488 +252
6489 +168
6490 +190
6491 +254
6492 +252
6493 +250
6494 +254
6495 +254
6496 +255
6497 +252
6498 +254
6499 +255
6500 +252
6501 +254
6502 +255
6503 +252
6504 +105
6505 +113
6506 +251
6508 +119
6509 +252
6510 +121
6511 +164
6512 +254
6513 +252
6514 +250
6515 +254
6516 +254
6517 +255
6518 +252
6519 +254
6520 +255
6521 +252
6522 +254
6523 +255
6524 +252
6525 +254
6526 +255
6527 +252
6528 +254
6529 +255
6530 +252
6531 +254
6532 +255
6533 +252
6534 +254
6535 +255
6536 +252
6537 +254
6538 +255
6539 +252
6540 +254
6541 +255
6542 +252
6543 +254
6544 +255
6545 +252
6546 +254
6547 +255
6548 +252
6549 +254
6550 +255
6551 +252
6552 +254
6553 +255
6554 +252
6555 +252
6556 +250
6557 +254
6558 +255
6559 +240
6560 +254
6563 +251
6566 +251
6567 +214
6568 +226
6569 +253
6570 +254
6571 +255
6572 +252
6573 +254
6574 +255
6575 +252
6576 +254
6577 +255
6578 +252
6579 +254
6580 +255
6581 +252
6582 +254
6583 +255
6584 +252
6585 +254
6586 +255
6587 +252
6588 +254
6589 +255
6590 +252
6591 +254
6592 +255
6593 +252
6594 +254
6595 +255
6596 +252
6597 +254
6598 +255
6599 +252
6600 +254
6601 +255
6602 +252
6603 +254
6604 +255
6605 +252
6606 +254
6607 +255
6608 +252
6609 +254
6610 +255
6611 +252
6612 +254
6613 +255
6614 +252
6615 +254
6616 +255
6617 +252
6618 +254
6619 +255
6620 +252
6621 +248
6622 +253
6623 +255
6624 +201
6625 +165
6626 +255
6629 +250
6632 +254
6633 +254
6634 +255
6635 +252
6636 +254
6637 +255
6638 +252
6639 +254
6640 +255
6641 +252
6642 +254
6643 +255
6644 +252
6645 +254
6646 +255
6647 +252
6648 +254
6649 +255
6650 +252
6651 +254
6652 +255
6653 +252
6654 +254
6655 +255
6656 +252
6657 +254
6658 +255
6659 +252
6660 +254
6661 +255
6662 +252
6663 +254
6664 +255
6665 +252
6666 +254
6667 +255
6668 +252
6669 +254
6670 +255
6671 +252
6672 +254
6673 +255
6674 +252
6675 +254
6676 +255
6677 +252
6678 +254
6679 +255
6680 +252
6681 +248
6682 +253
6683 +255
6686 +250
6689 +251
6690 +121
6691 +164
6692 +254
6693 +254
6694 +255
6695 +252
6696 +254
6697 +255
6698 +252
6699 +254
6700 +255
6701 +252
6702 +254
6703 +255
6704 +252
6705 +254
6706 +255
6707 +252
6708 +254
6709 +255
6710 +252
6711 +254
6712 +255
6713 +252
6714 +254
6715 +255
6716 +252
6717 +254
6718 +255
6719 +252
6720 +254
6721 +255
6722 +252
6723 +254
6724 +255
6725 +252
6726 +254
6727 +255
6728 +252
6729 +254
6730 +255
6731 +252
6732 +254
6733 +255
6734 +252
6735 +254
6736 +255
6737 +252
6738 +252
6739 +250
6740 +254
6741 +254
6742 +255
6743 +252
6744 +234
6745 +219
6746 +253
6747 +120
6748 +126
6749 +252
6751 +102
6752 +253
6753 +254
6754 +255
6755 +252
6756 +254
6757 +255
6758 +252
6759 +254
6760 +255
6761 +252
6762 +254
6763 +255
6764 +252
6765 +254
6766 +255
6767 +252
6768 +254
6769 +255
6770 +252
6771 +254
6772 +255
6773 +252
6774 +254
6775 +255
6776 +252
6777 +254
6778 +255
6779 +252
6780 +255
6781 +252
6782 +251
6783 +172
6784 +152
6785 +253
6788 +250
6791 +254
6792 +213
6793 +233
6794 +255
6795 +255
6796 +252
6797 +251
6798 +254
6799 +255
6800 +252
6801 +254
6802 +255
6803 +252
6804 +254
6805 +255
6806 +252
6807 +254
6808 +255
6809 +252
6810 +254
6811 +255
6812 +252
6813 +254
6814 +255
6815 +252
6816 +254
6817 +255
6818 +252
6819 +255
6820 +252
6821 +251
6822 +181
6823 +166
6824 +251
6827 +250
6830 +252
6831 +254
6832 +255
6833 +252
6834 +254
6835 +255
6836 +252
6837 +254
6838 +255
6839 +252
6840 +254
6841 +255
6842 +252
6843 +254
6844 +255
6845 +252
6846 +254
6847 +255
6848 +252
6849 +254
6850 +255
6851 +252
6852 +254
6853 +255
6854 +252
6855 +254
6856 +255
6857 +252
6858 +250
6859 +226
6860 +255
6863 +250
6866 +251
6867 +248
6868 +253
6869 +255
6870 +254
6871 +255
6872 +252
6873 +254
6874 +255
6875 +252
6876 +254
6877 +255
6878 +252
6879 +252
6880 +250
6881 +254
6884 +250
6887 +251
6890 +251
6893 +251
6896 +250
6899 +254
6902 +251
6904 +132
6905 +253
6906 +254
6907 +255
6908 +252
6909 +254
6910 +255
6911 +252
6912 +252
6913 +250
6914 +254
6917 +250
6920 +254
6921 +241
6922 +254
6923 +255
6924 +254
6925 +255
6926 +252
6927 +254
6928 +255
6929 +252
6930 +248
6931 +253
6932 +255
6933 +194
6934 +166
6935 +255
6938 +254
6939 +117
6940 +152
6941 +253
6942 +254
6943 +255
6944 +252
6945 +107
6946 +108
6947 +252
6950 +251
6953 +252
6954 +255
6955 +252
6956 +251
6957 +255
6958 +252
6959 +251
6960 +254
6961 +255
6962 +252
6963 +252
6964 +231
6965 +254
6968 +250
6971 +253
6972 +254
6973 +255
6974 +252
6975 +254
6976 +255
6977 +252
6978 +254
6979 +255
6980 +252
6981 +241
6982 +214
6983 +253
6986 +251
6989 +250
6990 +176
6991 +178
6992 +253
6993 +254
6994 +255
6995 +252
6996 +254
6997 +255
6998 +252
6999 +254
7000 +255
7001 +252
7002 +254
7003 +255
7004 +252
7005 +254
7006 +255
7007 +252
7008 +254
7009 +255
7010 +252
7011 +254
7012 +255
7013 +252
7014 +254
7015 +255
7016 +252
7017 +254
7018 +255
7019 +252
7020 +254
7021 +255
7022 +252
7023 +254
7024 +255
7025 +252
7026 +254
7027 +255
7028 +252
7029 +254
7030 +255
7031 +252
7032 +254
7033 +255
7034 +252
7035 +254
7036 +255
7037 +252
7038 +252
7039 +231
7040 +254
7043 +251
7046 +251
7047 +223
7048 +230
7049 +252
7050 +254
7051 +255
7052 +252
7053 +254
7054 +255
7055 +252
7056 +254
7057 +255
7058 +252
7059 +254
7060 +255
7061 +252
7062 +254
7063 +255
7064 +252
7065 +254
7066 +255
7067 +252
7068 +254
7069 +255
7070 +252
7071 +254
7072 +255
7073 +252
7074 +254
7075 +255
7076 +252
7077 +254
7078 +255
7079 +252
7080 +254
7081 +255
7082 +252
7083 +254
7084 +255
7085 +252
7086 +254
7087 +255
7088 +252
7089 +254
7090 +255
7091 +252
7092 +254
7093 +255
7094 +252
7095 +254
7096 +255
7097 +252
7098 +254
7099 +255
7100 +252
7101 +254
7102 +255
7103 +252
7104 +201
7105 +170
7106 +252
7109 +251
7112 +251
7113 +254
7114 +255
7115 +252
7116 +254
7117 +255
7118 +252
7119 +254
7120 +255
7121 +252
7122 +254
7123 +255
7124 +252
7125 +254
7126 +255
7127 +252
7128 +254
7129 +255
7130 +252
7131 +254
7132 +255
7133 +252
7134 +254
7135 +255
7136 +252
7137 +254
7138 +255
7139 +252
7140 +254
7141 +255
7142 +252
7143 +254
7144 +255
7145 +252
7146 +254
7147 +255
7148 +252
7149 +254
7150 +255
7151 +252
7152 +254
7153 +255
7154 +252
7155 +254
7156 +255
7157 +252
7158 +254
7159 +255
7160 +252
7161 +254
7162 +255
7163 +252
7166 +250
7169 +251
7170 +129
7171 +161
7172 +253
7173 +254
7174 +255
7175 +252
7176 +254
7177 +255
7178 +252
7179 +254
7180 +255
7181 +252
7182 +254
7183 +255
7184 +252
7185 +254
7186 +255
7187 +252
7188 +254
7189 +255
7190 +252
7191 +254
7192 +255
7193 +252
7194 +254
7195 +255
7196 +252
7197 +254
7198 +255
7199 +252
7200 +254
7201 +255
7202 +252
7203 +254
7204 +255
7205 +252
7206 +254
7207 +255
7208 +252
7209 +254
7210 +255
7211 +252
7212 +254
7213 +255
7214 +252
7215 +254
7216 +255
7217 +252
7218 +254
7219 +255
7220 +252
7221 +248
7222 +253
7223 +255
7224 +120
7225 +126
7226 +252
7229 +250
7231 +115
7232 +253
7233 +254
7234 +255
7235 +252
7236 +254
7237 +255
7238 +252
7239 +254
7240 +255
7241 +252
7242 +254
7243 +255
7244 +252
7245 +254
7246 +255
7247 +252
7248 +254
7249 +255
7250 +252
7251 +254
7252 +255
7253 +252
7254 +254
7255 +255
7256 +252
7257 +254
7258 +255
7259 +252
7260 +254
7261 +255
7262 +252
7263 +255
7264 +240
7265 +254
7268 +253
7270 +115
7271 +253
7272 +252
7273 +250
7274 +254
7275 +254
7276 +255
7277 +252
7278 +254
7279 +255
7280 +252
7281 +254
7282 +255
7283 +252
7284 +254
7285 +255
7286 +252
7287 +254
7288 +255
7289 +252
7290 +254
7291 +255
7292 +252
7293 +254
7294 +255
7295 +252
7296 +254
7297 +255
7298 +252
7299 +254
7300 +255
7301 +252
7302 +178
7303 +163
7304 +255
7307 +251
7310 +252
7311 +254
7312 +255
7313 +252
7314 +254
7315 +255
7316 +252
7317 +254
7318 +255
7319 +252
7320 +254
7321 +255
7322 +252
7323 +254
7324 +255
7325 +252
7326 +254
7327 +255
7328 +252
7329 +254
7330 +255
7331 +252
7332 +254
7333 +255
7334 +252
7335 +255
7336 +252
7337 +251
7338 +132
7339 +122
7340 +252
7343 +251
7346 +251
7347 +155
7348 +174
7349 +251
7350 +254
7351 +255
7352 +252
7353 +254
7354 +255
7355 +252
7356 +254
7357 +255
7358 +252
7359 +255
7360 +246
7361 +253
7364 +250
7367 +250
7368 +113
7369 +137
7370 +251
7371 +197
7372 +177
7373 +253
7374 +146
7375 +155
7376 +253
7379 +251
7382 +251
7385 +250
7386 +214
7387 +226
7388 +253
7389 +254
7390 +255
7391 +252
7392 +255
7393 +246
7394 +253
7397 +251
7400 +251
7401 +155
7402 +174
7403 +251
7404 +254
7405 +255
7406 +252
7407 +254
7408 +255
7409 +252
7410 +254
7411 +255
7412 +252
7415 +254
7418 +251
7420 +102
7421 +253
7422 +254
7423 +255
7424 +252
7425 +215
7426 +182
7427 +254
7430 +250
7433 +251
7434 +227
7435 +239
7436 +254
7437 +248
7438 +253
7439 +255
7440 +254
7441 +255
7442 +252
7443 +186
7444 +158
7445 +253
7448 +251
7451 +251
7452 +227
7453 +239
7454 +254
7455 +252
7456 +250
7457 +254
7458 +254
7459 +255
7460 +252
7461 +172
7462 +152
7463 +253
7466 +251
7469 +251
7470 +254
7471 +255
7472 +252
7473 +254
7474 +255
7475 +252
7476 +254
7477 +255
7478 +252
7479 +254
7480 +255
7481 +252
7482 +254
7483 +255
7484 +252
7485 +254
7486 +255
7487 +252
7488 +254
7489 +255
7490 +252
7491 +254
7492 +255
7493 +252
7494 +254
7495 +255
7496 +252
7497 +254
7498 +255
7499 +252
7500 +254
7501 +255
7502 +252
7503 +254
7504 +255
7505 +252
7506 +254
7507 +255
7508 +252
7509 +254
7510 +255
7511 +252
7512 +254
7513 +255
7514 +252
7515 +254
7516 +255
7517 +252
7518 +252
7519 +231
7520 +254
7523 +254
7526 +254
7527 +222
7528 +222
7529 +254
7530 +254
7531 +255
7532 +252
7533 +254
7534 +255
7535 +252
7536 +254
7537 +255
7538 +252
7539 +254
7540 +255
7541 +252
7542 +254
7543 +255
7544 +252
7545 +254
7546 +255
7547 +252
7548 +254
7549 +255
7550 +252
7551 +254
7552 +255
7553 +252
7554 +254
7555 +255
7556 +252
7557 +254
7558 +255
7559 +252
7560 +254
7561 +255
7562 +252
7563 +254
7564 +255
7565 +252
7566 +254
7567 +255
7568 +252
7569 +254
7570 +255
7571 +252
7572 +254
7573 +255
7574 +252
7575 +254
7576 +255
7577 +252
7578 +254
7579 +255
7580 +252
7581 +248
7582 +253
7583 +255
7584 +201
7585 +170
7586 +252
7589 +250
7592 +251
7593 +254
7594 +255
7595 +252
7596 +249
7597 +242
7598 +255
7599 +212
7600 +203
7601 +255
7602 +249
7603 +242
7604 +255
7605 +252
7606 +250
7607 +254
7608 +171
7609 +171
7610 +253
7611 +159
7612 +159
7613 +253
7614 +188
7615 +197
7616 +251
7617 +252
7618 +250
7619 +254
7620 +254
7621 +255
7622 +252
7623 +254
7624 +255
7625 +252
7626 +252
7627 +250
7628 +254
7629 +254
7630 +255
7631 +252
7632 +255
7633 +246
7634 +253
7635 +168
7636 +164
7637 +253
7638 +159
7639 +159
7640 +253
7641 +206
7642 +211
7643 +254
7646 +252
7649 +251
7650 +129
7651 +161
7652 +253
7653 +254
7654 +255
7655 +252
7656 +211
7657 +207
7658 +253
7659 +211
7660 +207
7661 +253
7662 +255
7663 +246
7664 +253
7665 +248
7666 +253
7667 +255
7668 +254
7669 +255
7670 +252
7671 +252
7672 +250
7673 +254
7674 +220
7675 +206
7676 +252
7677 +211
7678 +207
7679 +253
7680 +248
7681 +253
7682 +255
7683 +254
7684 +255
7685 +252
7686 +245
7687 +233
7688 +253
7689 +168
7690 +164
7691 +253
7692 +159
7693 +159
7694 +253
7695 +191
7696 +191
7697 +253
7698 +255
7699 +252
7700 +251
7701 +222
7702 +222
7703 +254
7704 +105
7705 +113
7706 +251
7709 +250
7712 +252
7713 +237
7714 +229
7715 +255
7716 +220
7717 +206
7718 +252
7719 +248
7720 +253
7721 +255
7722 +239
7723 +236
7724 +254
7725 +211
7726 +207
7727 +253
7728 +222
7729 +222
7730 +254
7731 +254
7732 +255
7733 +252
7734 +168
7735 +164
7736 +253
7737 +159
7738 +159
7739 +253
7740 +191
7741 +191
7742 +253
7743 +222
7744 +222
7745 +254
7746 +237
7747 +229
7748 +255
7749 +234
7750 +219
7751 +253
7752 +254
7753 +255
7754 +252
7755 +254
7756 +255
7757 +252
7758 +255
7759 +246
7760 +253
7761 +194
7762 +181
7763 +253
7764 +159
7765 +159
7766 +253
7767 +168
7768 +164
7769 +253
7770 +206
7771 +211
7772 +254
7773 +252
7774 +250
7775 +254
7776 +254
7777 +255
7778 +252
7779 +254
7780 +255
7781 +252
7782 +178
7783 +163
7784 +255
7787 +250
7790 +252
7791 +254
7792 +255
7793 +252
7794 +254
7795 +255
7796 +252
7797 +254
7798 +255
7799 +252
7800 +254
7801 +255
7802 +252
7803 +254
7804 +255
7805 +252
7806 +254
7807 +255
7808 +252
7809 +252
7810 +250
7811 +254
7812 +248
7813 +253
7814 +255
7815 +255
7816 +252
7817 +251
7820 +254
7823 +251
7826 +255
7829 +253
7830 +254
7831 +255
7832 +252
7833 +254
7834 +255
7835 +252
7836 +254
7837 +255
7838 +252
7839 +252
7840 +250
7841 +254
7844 +250
7847 +250
7848 +168
7849 +190
7850 +254
7851 +255
7852 +252
7853 +251
7854 +248
7855 +253
7856 +255
7857 +255
7858 +235
7859 +252
7862 +254
7865 +251
7866 +176
7867 +178
7868 +253
7869 +254
7870 +255
7871 +252
7872 +219
7873 +190
7874 +253
7877 +250
7880 +254
7882 +102
7883 +253
7884 +252
7885 +250
7886 +254
7887 +254
7888 +255
7889 +252
7890 +255
7891 +252
7892 +251
7895 +251
7898 +251
7901 +254
7902 +248
7903 +253
7904 +255
7905 +252
7906 +255
7907 +251
7910 +251
7913 +250
7914 +121
7915 +164
7916 +254
7917 +254
7918 +255
7919 +252
7920 +254
7921 +255
7922 +252
7925 +252
7928 +251
7931 +250
7932 +146
7933 +172
7934 +254
7935 +248
7936 +253
7937 +255
7938 +255
7939 +252
7940 +251
7943 +250
7946 +250
7948 +116
7949 +253
7950 +254
7951 +255
7952 +252
7953 +254
7954 +255
7955 +252
7956 +254
7957 +255
7958 +252
7959 +203
7960 +186
7961 +253
7962 +159
7963 +159
7964 +253
7965 +171
7966 +171
7967 +253
7968 +239
7969 +236
7970 +254
7971 +252
7972 +250
7973 +254
7974 +248
7975 +253
7976 +255
7977 +255
7978 +252
7979 +251
7980 +211
7981 +207
7982 +253
7983 +211
7984 +207
7985 +253
7986 +254
7987 +255
7988 +252
7989 +206
7990 +193
7991 +253
7992 +159
7993 +159
7994 +253
7995 +171
7996 +171
7997 +253
7998 +245
7999 +233
8000 +253
8003 +250
8006 +254
8007 +223
8008 +230
8009 +252
8010 +252
8011 +250
8012 +254
8013 +254
8014 +255
8015 +252
8016 +220
8017 +206
8018 +252
8019 +223
8020 +212
8021 +252
8022 +188
8023 +197
8024 +251
8025 +254
8026 +255
8027 +252
8028 +254
8029 +255
8030 +252
8031 +171
8032 +171
8033 +253
8034 +159
8035 +159
8036 +253
8037 +176
8038 +178
8039 +253
8040 +249
8041 +242
8042 +255
8043 +254
8044 +255
8045 +252
8046 +254
8047 +255
8048 +252
8049 +254
8050 +255
8051 +252
8052 +254
8053 +255
8054 +252
8055 +254
8056 +255
8057 +252
8058 +254
8059 +255
8060 +252
8061 +255
8062 +252
8063 +251
8064 +201
8065 +165
8066 +255
8069 +251
8072 +250
8073 +248
8074 +253
8075 +255
8076 +197
8077 +177
8078 +253
8081 +251
8084 +252
8087 +251
8090 +251
8093 +254
8096 +251
8099 +253
8100 +254
8101 +255
8102 +252
8103 +252
8104 +250
8105 +254
8106 +248
8107 +253
8108 +255
8109 +197
8110 +177
8111 +253
8114 +254
8117 +251
8120 +251
8123 +254
8126 +251
8129 +250
8130 +121
8131 +164
8132 +254
8133 +252
8134 +231
8135 +254
8138 +254
8141 +254
8142 +214
8143 +226
8144 +253
8145 +255
8146 +252
8147 +251
8148 +254
8149 +255
8150 +252
8151 +240
8152 +208
8153 +253
8156 +254
8159 +251
8160 +230
8161 +244
8162 +251
8163 +172
8164 +152
8165 +253
8168 +251
8171 +250
8174 +250
8177 +254
8180 +252
8181 +105
8182 +113
8183 +251
8186 +251
8189 +251
8192 +251
8195 +251
8198 +254
8199 +214
8200 +226
8201 +253
8202 +178
8203 +163
8204 +255
8207 +251
8210 +251
8213 +251
8216 +254
8219 +250
8222 +251
8225 +251
8228 +250
8231 +254
8232 +232
8233 +249
8234 +255
8235 +254
8236 +255
8237 +252
8240 +250
8243 +254
8246 +250
8249 +251
8252 +250
8255 +252
8256 +252
8257 +250
8258 +254
8259 +254
8260 +255
8261 +252
8262 +181
8263 +166
8264 +251
8267 +251
8270 +252
8271 +254
8272 +255
8273 +252
8274 +254
8275 +255
8276 +252
8277 +254
8278 +255
8279 +252
8280 +254
8281 +255
8282 +252
8283 +254
8284 +255
8285 +252
8286 +254
8287 +255
8288 +252
8289 +254
8290 +255
8291 +252
8292 +254
8293 +255
8294 +252
8295 +201
8296 +170
8297 +252
8300 +251
8303 +251
8306 +251
8309 +251
8310 +222
8311 +222
8312 +254
8313 +252
8314 +250
8315 +254
8316 +254
8317 +255
8318 +252
8319 +255
8320 +246
8321 +253
8324 +251
8327 +254
8328 +170
8329 +195
8330 +252
8331 +255
8332 +252
8333 +251
8334 +255
8335 +252
8336 +251
8337 +255
8338 +240
8339 +254
8342 +251
8345 +250
8346 +176
8347 +178
8348 +253
8349 +254
8350 +255
8351 +252
8352 +186
8353 +158
8354 +253
8357 +251
8360 +251
8363 +251
8364 +254
8365 +255
8366 +252
8367 +254
8368 +255
8369 +252
8370 +215
8371 +182
8372 +254
8375 +250
8378 +251
8381 +251
8382 +223
8383 +230
8384 +252
8385 +252
8386 +250
8387 +254
8388 +107
8390 +252
8393 +251
8396 +254
8397 +254
8398 +255
8399 +252
8400 +242
8401 +226
8402 +254
8405 +251
8408 +251
8411 +251
8414 +253
8415 +255
8416 +252
8417 +251
8418 +255
8419 +240
8420 +254
8423 +251
8426 +251
8427 +151
8428 +183
8429 +252
8430 +255
8431 +252
8432 +251
8433 +220
8434 +206
8435 +252
8438 +251
8441 +254
8444 +250
8447 +251
8450 +254
8452 +132
8453 +253
8454 +254
8455 +255
8456 +252
8457 +249
8458 +242
8459 +255
8462 +251
8465 +251
8468 +251
8471 +251
8474 +251
8477 +250
8478 +222
8479 +222
8480 +254
8483 +254
8486 +254
8487 +214
8488 +226
8489 +253
8490 +254
8491 +255
8492 +252
8493 +139
8494 +132
8495 +253
8498 +251
8501 +251
8502 +168
8503 +190
8504 +254
8505 +220
8506 +206
8507 +252
8510 +250
8513 +250
8516 +250
8519 +250
8522 +251
8523 +232
8524 +237
8525 +253
8526 +252
8527 +250
8528 +254
8529 +254
8530 +255
8531 +252
8532 +254
8533 +255
8534 +252
8535 +254
8536 +255
8537 +252
8538 +254
8539 +255
8540 +252
8541 +254
8542 +255
8543 +252
8544 +201
8545 +170
8546 +252
8549 +251
8552 +250
8553 +252
8554 +250
8555 +254
8556 +197
8557 +177
8558 +253
8561 +251
8564 +254
8567 +251
8568 +159
8569 +159
8570 +253
8571 +105
8572 +113
8573 +251
8576 +254
8579 +250
8581 +136
8582 +253
8583 +254
8584 +255
8585 +252
8586 +210
8587 +185
8588 +254
8591 +251
8594 +251
8597 +251
8598 +159
8599 +159
8600 +253
8602 +107
8603 +251
8606 +251
8609 +251
8610 +121
8611 +164
8612 +254
8613 +255
8614 +235
8615 +252
8618 +251
8621 +251
8622 +223
8623 +230
8624 +252
8625 +254
8626 +255
8627 +252
8628 +254
8629 +255
8630 +252
8631 +234
8632 +219
8633 +253
8636 +250
8639 +251
8640 +248
8641 +253
8642 +255
8645 +254
8648 +251
8650 +102
8651 +253
8652 +181
8653 +166
8654 +251
8655 +105
8656 +113
8657 +251
8659 +142
8660 +252
8661 +176
8662 +178
8663 +253
8666 +253
8669 +251
8672 +251
8673 +137
8674 +146
8675 +254
8677 +119
8678 +252
8679 +230
8680 +244
8681 +251
8682 +181
8683 +166
8684 +251
8687 +251
8690 +251
8693 +251
8694 +146
8695 +155
8696 +253
8699 +251
8700 +145
8701 +140
8702 +253
8705 +252
8708 +251
8711 +254
8712 +241
8713 +254
8714 +255
8715 +254
8716 +255
8717 +252
8718 +145
8719 +140
8720 +253
8722 +119
8723 +252
8724 +159
8725 +159
8726 +253
8727 +120
8728 +126
8729 +252
8732 +254
8735 +250
8737 +136
8738 +253
8739 +254
8740 +255
8741 +252
8742 +181
8743 +166
8744 +251
8747 +250
8750 +252
8751 +254
8752 +255
8753 +252
8754 +254
8755 +255
8756 +252
8757 +254
8758 +255
8759 +252
8760 +254
8761 +255
8762 +252
8763 +254
8764 +255
8765 +252
8766 +254
8767 +255
8768 +252
8769 +254
8770 +255
8771 +252
8772 +254
8773 +255
8774 +252
8777 +252
8780 +251
8781 +113
8782 +167
8783 +252
8784 +105
8785 +113
8786 +251
8789 +251
8791 +142
8792 +252
8793 +248
8794 +253
8795 +255
8796 +254
8797 +255
8798 +252
8799 +255
8800 +246
8801 +253
8804 +250
8807 +250
8808 +146
8809 +172
8810 +254
8811 +252
8812 +231
8813 +254
8814 +220
8815 +206
8816 +252
8819 +254
8822 +251
8825 +254
8826 +230
8827 +244
8828 +251
8829 +254
8830 +255
8831 +252
8833 +105
8834 +254
8837 +251
8840 +251
8843 +254
8844 +173
8845 +186
8846 +252
8847 +255
8848 +252
8849 +251
8850 +105
8851 +113
8852 +251
8855 +251
8858 +251
8861 +250
8862 +191
8863 +191
8864 +253
8865 +254
8866 +255
8867 +252
8868 +197
8869 +177
8870 +253
8873 +251
8876 +251
8877 +248
8878 +253
8879 +249
8880 +186
8881 +158
8882 +253
8885 +251
8888 +250
8891 +251
8894 +251
8895 +230
8896 +244
8897 +251
8898 +181
8899 +166
8900 +251
8903 +250
8906 +254
8907 +241
8908 +254
8909 +255
8910 +252
8911 +231
8912 +254
8915 +251
8918 +251
8921 +251
8922 +171
8923 +171
8924 +253
8925 +105
8926 +113
8927 +251
8930 +254
8933 +254
8934 +146
8935 +172
8936 +254
8937 +255
8938 +252
8939 +251
8942 +251
8945 +251
8948 +250
8950 +102
8951 +253
8952 +145
8953 +140
8954 +253
8956 +122
8957 +252
8958 +255
8959 +240
8960 +254
8963 +251
8966 +251
8967 +232
8968 +237
8969 +253
8970 +186
8971 +158
8972 +253
8975 +254
8978 +251
8979 +146
8980 +172
8981 +254
8982 +252
8983 +250
8984 +254
8987 +253
8990 +251
8993 +252
8994 +171
8995 +171
8996 +253
8997 +145
8998 +140
8999 +253
9002 +251
9003 +254
9004 +255
9005 +252
9006 +255
9007 +252
9008 +251
9009 +254
9010 +255
9011 +252
9012 +254
9013 +255
9014 +252
9015 +254
9016 +255
9017 +252
9018 +254
9019 +255
9020 +252
9021 +248
9022 +253
9023 +255
9024 +201
9025 +165
9026 +255
9029 +251
9032 +251
9033 +254
9034 +255
9035 +252
9036 +197
9037 +177
9038 +253
9041 +250
9044 +250
9045 +252
9046 +255
9047 +251
9048 +248
9049 +253
9050 +255
9051 +254
9052 +255
9053 +252
9054 +132
9055 +122
9056 +252
9059 +251
9062 +252
9063 +254
9064 +255
9065 +252
9068 +251
9071 +251
9074 +253
9075 +252
9076 +255
9077 +251
9078 +254
9079 +255
9080 +252
9081 +255
9082 +252
9083 +251
9086 +250
9089 +250
9090 +129
9091 +161
9092 +253
9093 +255
9094 +235
9095 +252
9098 +254
9101 +254
9102 +222
9103 +222
9104 +254
9105 +254
9106 +255
9107 +252
9108 +255
9109 +252
9110 +251
9111 +241
9112 +214
9113 +253
9116 +254
9119 +251
9120 +252
9121 +250
9122 +254
9125 +251
9128 +251
9129 +155
9130 +174
9131 +251
9132 +254
9133 +255
9134 +252
9135 +254
9136 +255
9137 +252
9138 +254
9139 +255
9140 +252
9141 +255
9142 +252
9143 +251
9144 +113
9145 +137
9146 +251
9149 +250
9151 +116
9152 +253
9153 +248
9154 +253
9155 +255
9156 +254
9157 +255
9158 +252
9159 +252
9160 +250
9161 +254
9162 +186
9163 +158
9164 +253
9167 +251
9170 +254
9171 +206
9172 +211
9173 +254
9174 +254
9175 +255
9176 +252
9177 +252
9178 +255
9179 +251
9180 +255
9181 +252
9182 +251
9183 +229
9184 +192
9185 +251
9188 +251
9191 +251
9192 +241
9193 +254
9194 +255
9195 +255
9196 +252
9197 +251
9198 +248
9199 +253
9200 +255
9201 +254
9202 +255
9203 +252
9204 +252
9205 +250
9206 +254
9207 +252
9208 +250
9209 +254
9210 +186
9211 +158
9212 +253
9215 +251
9218 +252
9219 +252
9220 +250
9221 +254
9222 +181
9223 +166
9224 +251
9227 +251
9230 +251
9231 +254
9232 +255
9233 +252
9234 +254
9235 +255
9236 +252
9237 +254
9238 +255
9239 +252
9240 +254
9241 +255
9242 +252
9243 +254
9244 +255
9245 +252
9246 +254
9247 +255
9248 +252
9249 +252
9250 +250
9251 +254
9252 +250
9253 +226
9254 +255
9257 +254
9260 +251
9261 +214
9262 +226
9263 +253
9264 +194
9265 +166
9266 +255
9269 +251
9272 +254
9273 +255
9274 +252
9275 +251
9276 +254
9277 +255
9278 +252
9279 +255
9280 +252
9281 +251
9284 +250
9287 +251
9290 +250
9293 +254
9296 +250
9299 +251
9302 +251
9303 +144
9304 +180
9305 +254
9306 +248
9307 +253
9308 +255
9309 +254
9310 +255
9311 +252
9314 +251
9317 +251
9320 +250
9323 +251
9325 +116
9326 +253
9327 +252
9328 +250
9329 +254
9332 +251
9335 +251
9338 +251
9341 +251
9343 +142
9344 +252
9345 +248
9346 +253
9347 +255
9348 +252
9349 +250
9350 +254
9353 +254
9356 +251
9357 +170
9358 +195
9359 +252
9362 +252
9365 +251
9366 +144
9367 +180
9368 +254
9371 +252
9374 +250
9375 +144
9376 +180
9377 +254
9378 +107
9380 +252
9383 +251
9385 +102
9386 +253
9387 +254
9388 +255
9389 +252
9390 +132
9391 +122
9392 +252
9395 +251
9398 +251
9399 +254
9400 +255
9401 +252
9402 +248
9403 +253
9404 +255
9405 +255
9406 +252
9407 +251
9408 +105
9409 +113
9410 +251
9413 +251
9416 +251
9417 +254
9418 +255
9419 +252
9422 +251
9425 +251
9427 +116
9428 +253
9429 +255
9430 +252
9431 +251
9432 +254
9433 +255
9434 +252
9435 +255
9436 +252
9437 +251
9438 +252
9439 +231
9440 +254
9443 +254
9446 +250
9447 +206
9448 +193
9449 +253
9452 +251
9455 +251
9456 +114
9457 +145
9458 +251
9459 +254
9460 +255
9461 +252
9462 +254
9463 +255
9464 +252
9467 +251
9470 +251
9472 +122
9473 +252
9474 +254
9475 +255
9476 +252
9477 +254
9478 +255
9479 +252
9480 +248
9481 +253
9482 +255
9483 +254
9484 +255
9485 +252
9486 +248
9487 +253
9488 +255
9489 +254
9490 +255
9491 +252
9492 +254
9493 +255
9494 +252
9495 +254
9496 +255
9497 +252
9498 +255
9499 +252
9500 +251
9501 +254
9502 +255
9503 +252
9504 +194
9505 +166
9506 +255
9509 +250
9512 +251
9513 +252
9514 +255
9515 +251
9516 +197
9517 +177
9518 +253
9521 +251
9524 +251
9525 +254
9526 +255
9527 +252
9528 +254
9529 +255
9530 +252
9531 +254
9532 +255
9533 +252
9534 +201
9535 +170
9536 +252
9539 +250
9542 +252
9543 +254
9544 +255
9545 +252
9548 +251
9551 +250
9552 +188
9553 +197
9554 +251
9555 +248
9556 +253
9557 +255
9558 +255
9559 +252
9560 +251
9561 +255
9562 +252
9563 +251
9566 +250
9569 +251
9570 +121
9571 +164
9572 +254
9573 +255
9574 +240
9575 +254
9578 +254
9581 +254
9582 +223
9583 +230
9584 +252
9585 +248
9586 +253
9587 +255
9588 +255
9589 +252
9590 +251
9591 +241
9592 +214
9593 +253
9596 +254
9599 +251
9600 +248
9601 +253
9602 +249
9605 +252
9608 +251
9611 +254
9614 +252
9615 +191
9616 +191
9617 +253
9618 +254
9619 +255
9620 +252
9621 +255
9622 +252
9623 +251
9624 +120
9625 +126
9626 +252
9629 +251
9631 +107
9632 +251
9633 +254
9634 +255
9635 +252
9636 +254
9637 +255
9638 +252
9639 +254
9640 +255
9641 +252
9642 +181
9643 +166
9644 +251
9647 +251
9650 +254
9651 +248
9652 +253
9653 +255
9654 +255
9655 +252
9656 +251
9657 +252
9658 +255
9659 +251
9660 +252
9661 +250
9662 +254
9663 +215
9664 +182
9665 +254
9668 +251
9671 +251
9672 +241
9673 +254
9674 +255
9675 +255
9676 +252
9677 +251
9678 +203
9679 +186
9680 +253
9683 +252
9686 +254
9689 +250
9692 +254
9695 +251
9698 +251
9699 +252
9700 +250
9701 +254
9702 +181
9703 +166
9704 +251
9707 +251
9710 +252
9711 +254
9712 +255
9713 +252
9714 +254
9715 +255
9716 +252
9717 +254
9718 +255
9719 +252
9720 +254
9721 +255
9722 +252
9723 +254
9724 +255
9725 +252
9726 +254
9727 +255
9728 +252
9729 +255
9730 +252
9731 +251
9732 +145
9733 +140
9734 +253
9737 +251
9740 +251
9741 +255
9742 +252
9743 +251
9744 +255
9745 +246
9746 +253
9749 +251
9752 +250
9753 +151
9754 +183
9755 +252
9756 +255
9757 +252
9758 +251
9759 +255
9760 +252
9761 +251
9764 +251
9767 +251
9770 +251
9773 +251
9776 +251
9779 +254
9780 +176
9781 +178
9782 +253
9783 +254
9784 +255
9785 +252
9786 +252
9787 +250
9788 +254
9789 +255
9790 +235
9791 +252
9794 +254
9797 +250
9798 +206
9799 +193
9800 +253
9803 +251
9806 +254
9807 +240
9808 +208
9809 +253
9812 +254
9815 +251
9816 +186
9817 +158
9818 +253
9821 +251
9823 +115
9824 +253
9825 +255
9826 +252
9827 +251
9828 +254
9829 +255
9830 +252
9833 +254
9836 +251
9839 +252
9842 +251
9845 +251
9846 +227
9847 +239
9848 +254
9849 +173
9850 +144
9851 +251
9854 +251
9857 +253
9860 +251
9863 +251
9864 +155
9865 +174
9866 +251
9867 +254
9868 +255
9869 +252
9872 +252
9875 +251
9877 +136
9878 +253
9879 +255
9880 +252
9881 +251
9882 +252
9883 +250
9884 +254
9885 +255
9886 +252
9887 +251
9888 +229
9889 +192
9890 +251
9893 +254
9896 +251
9897 +252
9898 +255
9899 +251
9902 +251
9905 +250
9906 +206
9907 +193
9908 +253
9909 +248
9910 +253
9911 +255
9912 +255
9913 +252
9914 +251
9915 +254
9916 +255
9917 +252
9918 +252
9919 +231
9920 +254
9923 +251
9926 +251
9929 +254
9932 +251
9935 +251
9936 +248
9937 +253
9938 +255
9939 +254
9940 +255
9941 +252
9942 +255
9943 +252
9944 +251
9945 +163
9946 +139
9947 +252
9950 +251
9953 +251
9956 +252
9957 +146
9958 +172
9959 +254
9960 +252
9961 +250
9962 +254
9963 +254
9964 +255
9965 +252
9966 +254
9967 +255
9968 +252
9969 +254
9970 +255
9971 +252
9972 +254
9973 +255
9974 +252
9975 +254
9976 +255
9977 +252
9978 +248
9979 +253
9980 +255
9981 +248
9982 +253
9983 +255
9984 +201
9985 +165
9986 +255
9989 +251
9992 +250
9993 +255
9994 +252
9995 +251
9996 +197
9997 +177
9998 +253
10001 +254
10004 +251
10005 +252
10006 +250
10007 +254
10008 +254
10009 +255
10010 +252
10011 +252
10012 +250
10013 +254
10014 +201
10015 +170
10016 +252
10019 +251
10022 +252
10023 +255
10024 +246
10025 +253
10028 +251
10031 +254
10032 +196
10033 +207
10034 +254
10035 +255
10036 +252
10037 +251
10038 +254
10039 +255
10040 +252
10041 +254
10042 +255
10043 +252
10046 +250
10049 +251
10050 +121
10051 +164
10052 +254
10053 +252
10054 +231
10055 +254
10058 +251
10061 +254
10062 +214
10063 +226
10064 +253
10065 +254
10066 +255
10067 +252
10068 +254
10069 +255
10070 +252
10071 +241
10072 +214
10073 +253
10076 +250
10079 +254
10080 +219
10081 +245
10082 +255
10083 +252
10084 +255
10085 +251
10086 +107
10087 +108
10088 +252
10091 +251
10094 +251
10097 +254
10100 +252
10101 +254
10102 +255
10103 +252
10104 +120
10105 +126
10106 +252
10109 +250
10111 +107
10112 +251
10113 +248
10114 +253
10115 +255
10116 +254
10117 +255
10118 +252
10119 +252
10120 +255
10121 +251
10122 +178
10123 +163
10124 +255
10127 +251
10130 +252
10131 +254
10132 +255
10133 +252
10134 +248
10135 +253
10136 +255
10137 +252
10138 +250
10139 +254
10140 +254
10141 +255
10142 +252
10143 +223
10144 +186
10145 +252
10148 +254
10151 +254
10152 +248
10153 +253
10154 +249
10155 +197
10156 +177
10157 +253
10160 +250
10163 +251
10166 +251
10168 +132
10169 +253
10172 +251
10175 +251
10178 +252
10179 +254
10180 +255
10181 +252
10182 +181
10183 +166
10184 +251
10187 +251
10190 +251
10191 +252
10192 +250
10193 +254
10194 +254
10195 +255
10196 +252
10197 +254
10198 +255
10199 +252
10200 +254
10201 +255
10202 +252
10203 +254
10204 +255
10205 +252
10206 +254
10207 +255
10208 +252
10209 +252
10210 +250
10211 +254
10214 +250
10217 +251
10219 +122
10220 +252
10221 +220
10222 +206
10223 +252
10224 +223
10225 +212
10226 +252
10229 +252
10232 +251
10235 +253
10236 +248
10237 +253
10238 +255
10239 +255
10240 +246
10241 +253
10244 +251
10247 +250
10248 +176
10249 +205
10250 +255
10251 +254
10252 +255
10253 +252
10256 +251
10259 +251
10262 +252
10263 +254
10264 +255
10265 +252
10266 +254
10267 +255
10268 +252
10269 +230
10270 +202
10271 +255
10274 +254
10277 +254
10278 +254
10279 +255
10280 +252
10283 +251
10286 +251
10289 +252
10292 +251
10294 +142
10295 +252
10296 +219
10297 +190
10298 +253
10301 +254
10304 +251
10305 +252
10306 +250
10307 +254
10308 +248
10309 +253
10310 +249
10311 +181
10312 +166
10313 +251
10316 +251
10319 +251
10322 +251
10325 +253
10326 +252
10327 +255
10328 +251
10329 +242
10330 +226
10331 +254
10334 +250
10337 +251
10340 +251
10343 +251
10344 +238
10345 +247
10346 +255
10347 +248
10348 +253
10349 +255
10352 +252
10355 +250
10356 +121
10357 +164
10358 +254
10359 +255
10360 +252
10361 +251
10362 +254
10363 +255
10364 +252
10365 +254
10366 +255
10367 +252
10368 +240
10369 +208
10370 +253
10373 +254
10376 +251
10377 +239
10378 +236
10379 +254
10382 +251
10385 +251
10386 +222
10387 +222
10388 +254
10389 +254
10390 +255
10391 +252
10392 +254
10393 +255
10394 +252
10395 +248
10396 +253
10397 +255
10398 +252
10399 +231
10400 +254
10403 +254
10406 +251
10409 +251
10412 +251
10415 +251
10417 +132
10418 +253
10419 +248
10420 +253
10421 +255
10422 +248
10423 +253
10424 +255
10425 +254
10426 +255
10427 +252
10428 +155
10429 +151
10430 +252
10433 +254
10436 +250
10439 +250
10442 +255
10443 +252
10444 +250
10445 +254
10446 +252
10447 +250
10448 +254
10449 +254
10450 +255
10451 +252
10452 +254
10453 +255
10454 +252
10455 +254
10456 +255
10457 +252
10458 +255
10459 +252
10460 +251
10461 +254
10462 +255
10463 +252
10464 +194
10465 +166
10466 +255
10469 +251
10472 +250
10473 +254
10474 +255
10475 +252
10476 +197
10477 +177
10478 +253
10481 +250
10484 +251
10485 +254
10486 +255
10487 +252
10488 +254
10489 +255
10490 +252
10491 +252
10492 +250
10493 +254
10494 +201
10495 +170
10496 +252
10499 +251
10502 +252
10503 +255
10504 +252
10505 +251
10508 +251
10511 +250
10512 +188
10513 +197
10514 +251
10515 +254
10516 +255
10517 +252
10518 +248
10519 +253
10520 +255
10521 +254
10522 +255
10523 +252
10526 +250
10529 +250
10530 +121
10531 +164
10532 +254
10533 +245
10534 +233
10535 +253
10538 +251
10541 +251
10542 +223
10543 +230
10544 +252
10545 +252
10546 +250
10547 +254
10548 +254
10549 +255
10550 +252
10551 +250
10552 +226
10553 +255
10556 +251
10559 +251
10560 +227
10561 +239
10562 +254
10563 +254
10564 +255
10565 +252
10566 +254
10567 +255
10568 +252
10569 +255
10570 +240
10571 +254
10573 +105
10574 +254
10577 +251
10580 +254
10581 +168
10582 +190
10583 +254
10584 +145
10585 +140
10586 +253
10589 +251
10591 +107
10592 +251
10593 +248
10594 +253
10595 +255
10596 +252
10597 +250
10598 +254
10599 +254
10600 +255
10601 +252
10602 +181
10603 +166
10604 +251
10607 +250
10610 +252
10611 +255
10612 +252
10613 +251
10614 +254
10615 +255
10616 +252
10617 +248
10618 +253
10619 +255
10620 +248
10621 +253
10622 +255
10623 +223
10624 +186
10625 +252
10628 +250
10631 +251
10632 +248
10633 +253
10634 +249
10637 +253
10640 +251
10642 +116
10643 +253
10644 +255
10645 +252
10646 +251
10647 +248
10648 +253
10649 +255
10650 +220
10651 +206
10652 +252
10655 +251
10658 +252
10659 +252
10660 +250
10661 +254
10662 +181
10663 +166
10664 +251
10667 +251
10670 +252
10671 +254
10672 +255
10673 +252
10674 +254
10675 +255
10676 +252
10677 +254
10678 +255
10679 +252
10680 +254
10681 +255
10682 +252
10683 +254
10684 +255
10685 +252
10686 +254
10687 +255
10688 +252
10689 +215
10690 +182
10691 +254
10694 +254
10697 +251
10700 +251
10703 +254
10706 +254
10709 +251
10712 +251
10715 +251
10716 +213
10717 +233
10718 +255
10719 +255
10720 +252
10721 +251
10724 +250
10727 +250
10728 +168
10729 +190
10730 +254
10731 +255
10732 +252
10733 +251
10734 +230
10735 +202
10736 +255
10739 +251
10742 +250
10743 +114
10744 +145
10745 +251
10746 +254
10747 +255
10748 +252
10749 +173
10750 +144
10751 +251
10754 +251
10757 +252
10758 +248
10759 +253
10760 +249
10761 +172
10762 +152
10763 +253
10766 +251
10769 +251
10772 +254
10773 +195
10774 +216
10775 +245
10776 +252
10777 +231
10778 +254
10781 +254
10784 +251
10785 +227
10786 +239
10787 +254
10788 +255
10789 +252
10790 +251
10791 +255
10792 +240
10793 +254
10796 +251
10799 +251
10802 +250
10803 +121
10804 +164
10805 +254
10806 +243
10807 +245
10808 +242
10809 +254
10810 +255
10811 +252
10814 +252
10817 +251
10820 +251
10823 +253
10824 +255
10825 +252
10826 +251
10827 +255
10828 +252
10829 +251
10832 +253
10835 +251
10837 +132
10838 +253
10839 +254
10840 +255
10841 +252
10842 +248
10843 +253
10844 +255
10845 +254
10846 +255
10847 +252
10848 +210
10849 +185
10850 +254
10853 +251
10856 +251
10857 +248
10858 +253
10859 +249
10862 +254
10865 +254
10866 +196
10867 +207
10868 +254
10869 +254
10870 +255
10871 +252
10872 +255
10873 +252
10874 +251
10875 +254
10876 +255
10877 +252
10878 +252
10879 +231
10880 +254
10883 +254
10886 +251
10888 +122
10889 +252
10890 +132
10891 +122
10892 +252
10895 +251
10898 +250
10899 +222
10900 +222
10901 +254
10902 +254
10903 +255
10904 +252
10905 +255
10906 +252
10907 +251
10908 +252
10909 +255
10910 +251
10911 +254
10912 +255
10913 +252
10914 +145
10915 +140
10916 +253
10919 +251
10922 +254
10924 +122
10925 +252
10926 +254
10927 +255
10928 +252
10929 +254
10930 +255
10931 +252
10932 +254
10933 +255
10934 +252
10935 +254
10936 +255
10937 +252
10938 +254
10939 +255
10940 +252
10941 +252
10942 +255
10943 +251
10944 +201
10945 +170
10946 +252
10949 +251
10952 +251
10953 +254
10954 +255
10955 +252
10956 +197
10957 +177
10958 +253
10961 +251
10964 +251
10965 +254
10966 +255
10967 +252
10968 +254
10969 +255
10970 +252
10971 +254
10972 +255
10973 +252
10974 +201
10975 +165
10976 +255
10979 +250
10982 +252
10983 +252
10984 +250
10985 +254
10988 +251
10991 +251
10994 +252
10995 +254
10996 +255
10997 +252
10998 +255
10999 +252
11000 +251
11001 +243
11002 +245
11003 +242
11006 +250
11009 +251
11010 +129
11011 +161
11012 +253
11013 +255
11014 +246
11015 +253
11018 +251
11021 +250
11022 +168
11023 +190
11024 +254
11025 +254
11026 +255
11027 +252
11028 +252
11029 +255
11030 +251
11031 +163
11032 +139
11033 +252
11036 +251
11039 +251
11040 +230
11041 +244
11042 +251
11043 +237
11044 +229
11045 +255
11046 +248
11047 +253
11048 +255
11049 +254
11050 +255
11051 +252
11052 +255
11053 +252
11054 +251
11057 +250
11060 +251
11061 +121
11062 +164
11063 +254
11064 +113
11065 +137
11066 +251
11069 +251
11072 +253
11073 +254
11074 +255
11075 +252
11076 +254
11077 +255
11078 +252
11079 +248
11080 +253
11081 +249
11082 +178
11083 +163
11084 +255
11087 +251
11090 +251
11091 +255
11092 +252
11093 +251
11094 +254
11095 +255
11096 +252
11097 +255
11098 +252
11099 +251
11100 +255
11101 +252
11102 +251
11103 +210
11104 +185
11105 +254
11108 +251
11111 +254
11112 +254
11113 +255
11114 +252
11117 +251
11120 +250
11121 +144
11122 +180
11123 +254
11124 +254
11125 +255
11126 +252
11127 +252
11128 +250
11129 +254
11130 +163
11131 +139
11132 +252
11135 +251
11138 +254
11139 +254
11140 +255
11141 +252
11142 +186
11143 +158
11144 +253
11147 +250
11150 +252
11151 +254
11152 +255
11153 +252
11154 +254
11155 +255
11156 +252
11157 +254
11158 +255
11159 +252
11160 +254
11161 +255
11162 +252
11163 +254
11164 +255
11165 +252
11166 +254
11167 +255
11168 +252
11171 +252
11174 +251
11177 +251
11178 +146
11179 +155
11180 +253
11181 +137
11182 +146
11183 +254
11184 +137
11185 +146
11186 +254
11187 +155
11188 +151
11189 +252
11192 +254
11195 +251
11196 +113
11197 +137
11198 +251
11199 +255
11200 +252
11201 +251
11204 +250
11207 +251
11208 +170
11209 +195
11210 +252
11211 +252
11212 +255
11213 +251
11214 +255
11215 +252
11216 +251
11217 +120
11218 +113
11219 +253
11222 +251
11225 +250
11226 +227
11227 +239
11228 +254
11229 +105
11230 +113
11231 +251
11234 +250
11236 +122
11237 +252
11238 +252
11239 +250
11240 +254
11241 +250
11242 +226
11243 +255
11246 +250
11249 +251
11252 +251
11253 +255
11254 +252
11255 +251
11256 +252
11257 +255
11258 +251
11261 +251
11264 +250
11265 +176
11266 +178
11267 +253
11268 +255
11269 +252
11270 +251
11271 +248
11272 +253
11273 +249
11276 +253
11279 +251
11282 +251
11283 +223
11284 +230
11285 +252
11286 +255
11287 +252
11288 +251
11289 +252
11290 +250
11291 +254
11292 +186
11293 +158
11294 +253
11297 +251
11300 +254
11301 +129
11302 +161
11303 +253
11304 +255
11305 +252
11306 +251
11307 +252
11308 +250
11309 +254
11310 +139
11311 +132
11312 +253
11315 +251
11318 +251
11319 +252
11320 +250
11321 +254
11322 +255
11323 +252
11324 +251
11325 +248
11326 +253
11327 +255
11330 +250
11333 +251
11336 +252
11337 +255
11338 +252
11339 +251
11342 +254
11345 +254
11346 +206
11347 +211
11348 +254
11349 +252
11350 +250
11351 +254
11352 +254
11353 +255
11354 +252
11355 +243
11356 +245
11357 +242
11358 +252
11359 +231
11360 +254
11363 +254
11366 +251
11367 +232
11368 +233
11369 +243
11370 +248
11371 +253
11372 +249
11375 +250
11378 +251
11381 +252
11382 +248
11383 +253
11384 +255
11385 +249
11386 +242
11387 +255
11388 +232
11389 +237
11390 +253
11391 +254
11392 +255
11393 +252
11394 +254
11395 +255
11396 +252
11397 +132
11398 +122
11399 +252
11402 +251
11404 +102
11405 +253
11406 +254
11407 +255
11408 +252
11409 +254
11410 +255
11411 +252
11412 +254
11413 +255
11414 +252
11415 +252
11416 +250
11417 +254
11418 +252
11419 +250
11420 +254
11421 +252
11422 +250
11423 +254
11424 +201
11425 +165
11426 +255
11429 +251
11432 +250
11433 +255
11434 +252
11435 +251
11436 +197
11437 +177
11438 +253
11441 +250
11444 +251
11445 +254
11446 +255
11447 +252
11448 +254
11449 +255
11450 +252
11451 +248
11452 +253
11453 +255
11454 +194
11455 +166
11456 +255
11459 +250
11462 +252
11463 +252
11464 +250
11465 +254
11466 +172
11467 +152
11468 +253
11471 +254
11474 +251
11477 +254
11478 +105
11479 +113
11480 +251
11483 +252
11486 +251
11489 +251
11490 +129
11491 +161
11492 +253
11493 +252
11494 +255
11495 +251
11498 +251
11501 +251
11504 +254
11506 +107
11507 +251
11510 +252
11513 +250
11516 +251
11519 +251
11520 +248
11521 +253
11522 +249
11523 +107
11525 +252
11528 +251
11529 +113
11530 +137
11531 +251
11532 +107
11533 +108
11534 +252
11537 +251
11540 +254
11541 +191
11542 +191
11543 +253
11544 +186
11545 +158
11546 +253
11549 +250
11552 +251
11555 +253
11558 +253
11559 +117
11560 +152
11561 +253
11562 +197
11563 +177
11564 +253
11567 +251
11570 +252
11571 +254
11572 +255
11573 +252
11574 +255
11575 +252
11576 +251
11577 +254
11578 +255
11579 +252
11580 +255
11581 +252
11582 +251
11583 +215
11584 +182
11585 +254
11588 +254
11591 +254
11592 +252
11593 +255
11594 +251
11597 +251
11600 +251
11603 +251
11604 +113
11605 +137
11606 +251
11608 +105
11609 +254
11612 +254
11615 +251
11618 +251
11619 +248
11620 +253
11621 +249
11622 +181
11623 +166
11624 +251
11627 +251
11630 +251
11631 +223
11632 +230
11633 +252
11634 +254
11635 +255
11636 +252
11637 +254
11638 +255
11639 +252
11640 +252
11641 +250
11642 +254
11643 +254
11644 +255
11645 +252
11646 +252
11647 +231
11648 +254
11651 +250
11654 +251
11655 +117
11656 +152
11657 +253
11658 +255
11659 +252
11660 +251
11661 +255
11662 +252
11663 +251
11664 +243
11665 +245
11666 +242
11667 +252
11668 +255
11669 +251
11670 +105
11671 +113
11672 +251
11675 +251
11678 +251
11679 +254
11680 +255
11681 +252
11684 +251
11687 +254
11688 +168
11689 +190
11690 +254
11691 +248
11692 +253
11693 +255
11694 +255
11695 +252
11696 +251
11697 +248
11698 +253
11699 +255
11702 +254
11705 +251
11707 +102
11708 +253
11711 +252
11714 +251
11715 +146
11716 +172
11717 +254
11718 +252
11719 +255
11720 +251
11721 +255
11722 +252
11723 +251
11726 +252
11729 +251
11730 +129
11731 +161
11732 +253
11733 +252
11734 +250
11735 +254
11736 +254
11737 +255
11738 +252
11741 +252
11744 +251
11745 +105
11746 +154
11747 +254
11748 +252
11749 +250
11750 +254
11751 +254
11752 +255
11753 +252
11754 +186
11755 +158
11756 +253
11759 +251
11762 +253
11763 +254
11764 +255
11765 +252
11766 +252
11767 +255
11768 +251
11769 +252
11770 +255
11771 +251
11772 +255
11773 +235
11774 +252
11777 +254
11780 +251
11781 +227
11782 +239
11783 +254
11784 +254
11785 +255
11786 +252
11787 +254
11788 +255
11789 +252
11790 +255
11791 +246
11792 +253
11795 +254
11798 +251
11801 +251
11802 +113
11803 +137
11804 +251
11807 +252
11810 +251
11813 +251
11814 +170
11815 +195
11816 +252
11817 +255
11818 +252
11819 +251
11822 +251
11825 +250
11826 +206
11827 +211
11828 +254
11829 +254
11830 +255
11831 +252
11832 +248
11833 +253
11834 +255
11835 +252
11836 +255
11837 +251
11838 +252
11839 +231
11840 +254
11843 +254
11846 +251
11847 +237
11848 +229
11849 +255
11850 +252
11851 +255
11852 +251
11853 +230
11854 +202
11855 +255
11858 +251
11861 +250
11862 +105
11863 +154
11864 +254
11865 +194
11866 +166
11867 +255
11870 +251
11872 +122
11873 +252
11874 +113
11875 +137
11876 +251
11879 +250
11882 +251
11884 +136
11885 +253
11886 +254
11887 +255
11888 +252
11889 +254
11890 +255
11891 +252
11892 +254
11893 +255
11894 +252
11895 +254
11896 +255
11897 +252
11898 +254
11899 +255
11900 +252
11901 +254
11902 +255
11903 +252
11904 +186
11905 +158
11906 +253
11909 +250
11912 +254
11913 +254
11914 +255
11915 +252
11916 +201
11917 +170
11918 +252
11921 +250
11924 +254
11925 +254
11926 +255
11927 +252
11928 +254
11929 +255
11930 +252
11931 +255
11932 +252
11933 +251
11934 +201
11935 +165
11936 +255
11939 +251
11942 +250
11943 +254
11944 +255
11945 +252
11946 +252
11947 +255
11948 +251
11949 +139
11950 +132
11951 +253
11954 +251
11957 +251
11960 +251
11963 +254
11966 +250
11969 +254
11970 +105
11971 +154
11972 +254
11973 +255
11974 +252
11975 +251
11976 +223
11977 +212
11978 +252
11981 +251
11984 +254
11987 +254
11990 +251
11993 +251
11996 +251
11999 +251
12000 +241
12001 +254
12002 +255
12005 +251
12008 +251
12011 +251
12014 +254
12017 +251
12019 +132
12020 +253
12021 +252
12022 +255
12023 +251
12024 +254
12025 +255
12026 +252
12029 +252
12032 +251
12035 +250
12038 +251
12039 +129
12040 +161
12041 +253
12042 +168
12043 +164
12044 +253
12047 +250
12050 +250
12051 +252
12052 +250
12053 +254
12054 +254
12055 +255
12056 +252
12057 +252
12058 +250
12059 +254
12060 +254
12061 +255
12062 +252
12063 +201
12064 +170
12065 +252
12068 +251
12071 +251
12072 +241
12073 +254
12074 +255
12075 +255
12076 +240
12077 +254
12080 +251
12083 +254
12086 +254
12089 +254
12091 +122
12092 +252
12095 +251
12098 +254
12100 +122
12101 +252
12102 +241
12103 +214
12104 +253
12107 +254
12110 +254
12113 +253
12114 +254
12115 +255
12116 +252
12117 +254
12118 +255
12119 +252
12120 +254
12121 +255
12122 +252
12123 +248
12124 +253
12125 +249
12126 +139
12127 +132
12128 +253
12131 +250
12134 +250
12135 +227
12136 +239
12137 +254
12138 +255
12139 +252
12140 +251
12141 +255
12142 +252
12143 +251
12144 +248
12145 +253
12146 +255
12147 +255
12148 +252
12149 +251
12150 +229
12151 +192
12152 +251
12155 +250
12158 +251
12159 +151
12160 +183
12161 +252
12164 +250
12167 +250
12168 +151
12169 +183
12170 +252
12171 +255
12172 +252
12173 +251
12174 +252
12175 +250
12176 +254
12177 +255
12178 +252
12179 +251
12180 +210
12181 +185
12182 +254
12185 +250
12188 +251
12191 +251
12194 +251
12195 +196
12196 +207
12197 +254
12198 +252
12199 +250
12200 +254
12201 +248
12202 +253
12203 +255
12204 +201
12205 +170
12206 +252
12209 +249
12210 +227
12211 +239
12212 +254
12213 +254
12214 +255
12215 +252
12216 +254
12217 +255
12218 +252
12219 +120
12220 +126
12221 +252
12224 +254
12227 +251
12228 +254
12229 +255
12230 +252
12231 +252
12232 +250
12233 +254
12234 +255
12235 +235
12236 +252
12239 +251
12240 +105
12241 +154
12242 +254
12243 +254
12244 +255
12245 +252
12246 +252
12247 +250
12248 +254
12249 +248
12250 +253
12251 +255
12252 +248
12253 +253
12254 +255
12257 +250
12260 +251
12261 +252
12262 +250
12263 +254
12264 +252
12265 +250
12266 +254
12267 +248
12268 +253
12269 +255
12270 +255
12271 +252
12272 +251
12273 +250
12274 +226
12275 +255
12278 +251
12281 +251
12284 +254
12287 +251
12290 +254
12291 +155
12292 +174
12293 +251
12294 +252
12295 +250
12296 +254
12297 +255
12298 +240
12299 +254
12302 +251
12305 +254
12306 +196
12307 +207
12308 +254
12309 +254
12310 +255
12311 +252
12312 +254
12313 +255
12314 +252
12315 +248
12316 +253
12317 +255
12318 +252
12319 +231
12320 +254
12323 +251
12326 +254
12327 +214
12328 +226
12329 +253
12330 +248
12331 +253
12332 +255
12333 +254
12334 +255
12335 +252
12336 +120
12337 +113
12338 +253
12341 +251
12344 +250
12347 +252
12350 +251
12353 +250
12356 +251
12359 +251
12362 +252
12363 +254
12364 +255
12365 +252
12366 +252
12367 +250
12368 +254
12369 +254
12370 +255
12371 +252
12372 +254
12373 +255
12374 +252
12375 +254
12376 +255
12377 +252
12378 +254
12379 +255
12380 +252
12381 +254
12382 +255
12383 +252
12384 +248
12385 +253
12386 +255
12387 +245
12388 +233
12389 +253
12390 +245
12391 +233
12392 +253
12393 +248
12394 +253
12395 +255
12396 +248
12397 +253
12398 +255
12399 +245
12400 +233
12401 +253
12402 +245
12403 +233
12404 +253
12405 +254
12406 +255
12407 +252
12408 +252
12409 +250
12410 +254
12411 +248
12412 +253
12413 +255
12414 +252
12415 +250
12416 +254
12417 +237
12418 +229
12419 +255
12420 +245
12421 +233
12422 +253
12423 +255
12424 +252
12425 +251
12426 +252
12427 +255
12428 +251
12429 +254
12430 +255
12431 +252
12432 +249
12433 +242
12434 +255
12435 +211
12436 +207
12437 +253
12438 +211
12439 +207
12440 +253
12441 +243
12442 +245
12443 +242
12444 +255
12445 +246
12446 +253
12447 +245
12448 +233
12449 +253
12450 +249
12451 +242
12452 +255
12453 +255
12454 +252
12455 +251
12456 +254
12457 +255
12458 +252
12459 +254
12460 +255
12461 +252
12462 +220
12463 +206
12464 +252
12465 +211
12466 +207
12467 +253
12468 +232
12469 +233
12470 +243
12471 +252
12472 +255
12473 +251
12474 +237
12475 +229
12476 +255
12477 +245
12478 +233
12479 +253
12480 +248
12481 +253
12482 +255
12483 +255
12484 +252
12485 +251
12486 +237
12487 +229
12488 +255
12489 +220
12490 +206
12491 +252
12492 +211
12493 +207
12494 +253
12495 +234
12496 +239
12497 +242
12498 +252
12499 +250
12500 +254
12501 +248
12502 +253
12503 +255
12504 +254
12505 +255
12506 +252
12507 +254
12508 +255
12509 +252
12510 +220
12511 +206
12512 +252
12513 +220
12514 +206
12515 +252
12516 +223
12517 +212
12518 +252
12519 +249
12520 +242
12521 +255
12522 +252
12523 +250
12524 +254
12525 +237
12526 +229
12527 +255
12528 +239
12529 +236
12530 +254
12531 +254
12532 +255
12533 +252
12534 +254
12535 +255
12536 +252
12537 +254
12538 +255
12539 +252
12540 +254
12541 +255
12542 +252
12543 +252
12544 +250
12545 +254
12546 +242
12547 +226
12548 +254
12549 +237
12550 +229
12551 +255
12552 +252
12553 +255
12554 +251
12555 +254
12556 +255
12557 +252
12558 +254
12559 +255
12560 +252
12561 +223
12562 +212
12563 +252
12564 +211
12565 +207
12566 +253
12567 +245
12568 +233
12569 +253
12570 +248
12571 +253
12572 +255
12573 +255
12574 +246
12575 +253
12576 +211
12577 +207
12578 +253
12579 +240
12580 +235
12581 +233
12582 +254
12583 +255
12584 +252
12585 +242
12586 +226
12587 +254
12588 +211
12589 +207
12590 +253
12591 +254
12592 +255
12593 +252
12594 +254
12595 +255
12596 +252
12597 +254
12598 +255
12599 +252
12600 +252
12601 +250
12602 +254
12603 +252
12604 +250
12605 +254
12606 +239
12607 +236
12608 +254
12609 +242
12610 +226
12611 +254
12612 +237
12613 +229
12614 +255
12615 +252
12616 +255
12617 +251
12618 +248
12619 +253
12620 +255
12621 +254
12622 +255
12623 +252
12624 +252
12625 +250
12626 +254
12627 +248
12628 +253
12629 +255
12630 +252
12631 +255
12632 +251
12633 +245
12634 +233
12635 +253
12636 +242
12637 +226
12638 +254
12639 +249
12640 +242
12641 +255
12642 +245
12643 +233
12644 +253
12645 +242
12646 +226
12647 +254
12648 +252
12649 +250
12650 +254
12651 +254
12652 +255
12653 +252
12654 +255
12655 +252
12656 +251
12657 +252
12658 +255
12659 +251
12660 +248
12661 +253
12662 +249
12663 +252
12664 +231
12665 +254
12666 +245
12667 +233
12668 +253
12669 +245
12670 +233
12671 +253
12672 +237
12673 +229
12674 +255
12675 +254
12676 +255
12677 +252
12678 +255
12679 +252
12680 +251
12681 +248
12682 +253
12683 +255
12684 +248
12685 +253
12686 +249
12687 +211
12688 +207
12689 +253
12690 +252
12691 +250
12692 +254
12693 +248
12694 +253
12695 +255
12696 +254
12697 +255
12698 +252
12699 +249
12700 +242
12701 +255
12702 +237
12703 +229
12704 +255
12705 +239
12706 +236
12707 +254
12708 +254
12709 +255
12710 +252
12711 +255
12712 +252
12713 +251
12714 +252
12715 +255
12716 +251
12717 +220
12718 +206
12719 +252
12720 +252
12721 +250
12722 +254
12723 +254
12724 +255
12725 +252
12726 +255
12727 +252
12728 +251
12729 +254
12730 +255
12731 +252
12732 +252
12733 +255
12734 +251
12735 +237
12736 +229
12737 +255
12738 +237
12739 +229
12740 +255
12741 +254
12742 +255
12743 +252
12744 +255
12745 +252
12746 +251
12747 +252
12748 +250
12749 +254
12750 +248
12751 +253
12752 +255
12753 +252
12754 +255
12755 +251
12756 +252
12757 +255
12758 +251
12759 +234
12760 +219
12761 +253
12762 +211
12763 +207
12764 +253
12765 +223
12766 +212
12767 +252
12768 +243
12769 +245
12770 +242
12771 +254
12772 +255
12773 +252
12774 +252
12775 +255
12776 +251
12777 +252
12778 +255
12779 +251
12780 +245
12781 +233
12782 +253
12783 +237
12784 +229
12785 +255
12786 +248
12787 +253
12788 +255
12789 +252
12790 +250
12791 +254
12792 +255
12793 +252
12794 +251
12795 +248
12796 +253
12797 +255
12798 +248
12799 +253
12800 +249
12801 +242
12802 +226
12803 +254
12804 +237
12805 +229
12806 +255
12807 +255
12808 +252
12809 +251
12810 +254
12811 +255
12812 +252
12813 +254
12814 +255
12815 +252
12816 +254
12817 +255
12818 +252
12819 +237
12820 +229
12821 +255
12822 +245
12823 +233
12824 +253
12825 +255
12826 +252
12827 +251
12828 +249
12829 +242
12830 +255
12831 +220
12832 +206
12833 +252
12834 +211
12835 +207
12836 +253
12837 +239
12838 +236
12839 +254
12840 +252
12841 +250
12842 +254
12843 +254
12844 +255
12845 +252
12846 +254
12847 +255
12848 +252
12849 +254
12850 +255
12851 +252
12852 +254
12853 +255
12854 +252
12855 +254
12856 +255
12857 +252
12858 +254
12859 +255
12860 +252
12861 +255
12862 +252
12863 +251
12864 +255
12865 +252
12866 +251
12867 +252
12868 +250
12869 +254
12870 +252
12871 +255
12872 +251
12873 +252
12874 +255
12875 +251
12876 +252
12877 +250
12878 +254
12879 +252
12880 +250
12881 +254
12882 +248
12883 +253
12884 +255
12885 +252
12886 +250
12887 +254
12888 +254
12889 +255
12890 +252
12891 +255
12892 +252
12893 +251
12894 +248
12895 +253
12896 +255
12897 +255
12898 +252
12899 +251
12900 +248
12901 +253
12902 +255
12903 +252
12904 +250
12905 +254
12906 +252
12907 +250
12908 +254
12909 +255
12910 +252
12911 +251
12912 +255
12913 +252
12914 +251
12915 +254
12916 +255
12917 +252
12918 +255
12919 +252
12920 +251
12921 +254
12922 +255
12923 +252
12924 +252
12925 +255
12926 +251
12927 +248
12928 +253
12929 +255
12930 +254
12931 +255
12932 +252
12933 +254
12934 +255
12935 +252
12936 +254
12937 +255
12938 +252
12939 +255
12940 +252
12941 +251
12942 +248
12943 +253
12944 +255
12945 +254
12946 +255
12947 +252
12948 +255
12949 +252
12950 +251
12951 +248
12952 +253
12953 +255
12954 +255
12955 +252
12956 +251
12957 +248
12958 +253
12959 +255
12960 +255
12961 +252
12962 +251
12963 +248
12964 +253
12965 +255
12966 +255
12967 +252
12968 +251
12969 +252
12970 +255
12971 +251
12972 +255
12973 +252
12974 +251
12975 +252
12976 +250
12977 +254
12978 +254
12979 +255
12980 +252
12981 +255
12982 +252
12983 +251
12984 +254
12985 +255
12986 +252
12987 +254
12988 +255
12989 +252
12990 +255
12991 +252
12992 +251
12993 +248
12994 +253
12995 +255
12996 +248
12997 +253
12998 +255
12999 +252
13000 +255
13001 +251
13002 +248
13003 +253
13004 +255
13005 +255
13006 +252
13007 +251
13008 +254
13009 +255
13010 +252
13011 +254
13012 +255
13013 +252
13014 +254
13015 +255
13016 +252
13017 +254
13018 +255
13019 +252
13020 +254
13021 +255
13022 +252
13023 +255
13024 +252
13025 +251
13026 +254
13027 +255
13028 +252
13029 +254
13030 +255
13031 +252
13032 +252
13033 +250
13034 +254
13035 +252
13036 +255
13037 +251
13038 +248
13039 +253
13040 +249
13041 +255
13042 +252
13043 +251
13044 +255
13045 +252
13046 +251
13047 +248
13048 +253
13049 +255
13050 +255
13051 +252
13052 +251
13053 +252
13054 +250
13055 +254
13056 +248
13057 +253
13058 +255
13059 +252
13060 +250
13061 +254
13062 +254
13063 +255
13064 +252
13065 +254
13066 +255
13067 +252
13068 +252
13069 +250
13070 +254
13071 +254
13072 +255
13073 +252
13074 +252
13075 +250
13076 +254
13077 +254
13078 +255
13079 +252
13080 +254
13081 +255
13082 +252
13083 +254
13084 +255
13085 +252
13086 +255
13087 +252
13088 +251
13089 +252
13090 +255
13091 +251
13092 +254
13093 +255
13094 +252
13095 +252
13096 +250
13097 +254
13098 +255
13099 +252
13100 +251
13101 +254
13102 +255
13103 +252
13104 +254
13105 +255
13106 +252
13107 +254
13108 +255
13109 +252
13110 +248
13111 +253
13112 +255
13113 +248
13114 +253
13115 +255
13116 +254
13117 +255
13118 +252
13119 +252
13120 +255
13121 +251
13122 +248
13123 +253
13124 +255
13125 +254
13126 +255
13127 +252
13128 +248
13129 +253
13130 +255
13131 +248
13132 +253
13133 +255
13134 +248
13135 +253
13136 +255
13137 +252
13138 +250
13139 +254
13140 +252
13141 +250
13142 +254
13143 +248
13144 +253
13145 +255
13146 +248
13147 +253
13148 +255
13149 +248
13150 +253
13151 +255
13152 +255
13153 +252
13154 +251
13155 +248
13156 +253
13157 +255
13158 +255
13159 +252
13160 +251
13161 +254
13162 +255
13163 +252
13164 +252
13165 +250
13166 +254
13167 +252
13168 +250
13169 +254
13170 +254
13171 +255
13172 +252
13173 +255
13174 +252
13175 +251
13176 +254
13177 +255
13178 +252
13179 +254
13180 +255
13181 +252
13182 +255
13183 +252
13184 +251
13185 +255
13186 +252
13187 +251
13188 +248
13189 +253
13190 +255
13191 +248
13192 +253
13193 +255
13194 +255
13195 +252
13196 +251
13197 +248
13198 +253
13199 +255
13200 +254
13201 +255
13202 +252
13203 +254
13204 +255
13205 +252
13206 +248
13207 +253
13208 +255
13209 +248
13210 +253
13211 +255
13212 +252
13213 +255
13214 +251
13215 +252
13216 +255
13217 +251
13218 +248
13219 +253
13220 +255
13221 +254
13222 +255
13223 +252
13224 +255
13225 +252
13226 +251
13227 +254
13228 +255
13229 +252
13230 +255
13231 +252
13232 +251
13233 +252
13234 +250
13235 +254
13236 +255
13237 +252
13238 +251
13239 +248
13240 +253
13241 +249
13242 +252
13243 +255
13244 +251
13245 +248
13246 +253
13247 +255
13248 +255
13249 +252
13250 +251
13251 +252
13252 +250
13253 +254
13254 +252
13255 +250
13256 +254
13257 +248
13258 +253
13259 +249
13260 +248
13261 +253
13262 +255
13263 +255
13264 +252
13265 +251
13266 +255
13267 +252
13268 +251
13269 +254
13270 +255
13271 +252
13272 +255
13273 +252
13274 +251
13275 +255
13276 +252
13277 +251
13278 +255
13279 +252
13280 +251
13281 +252
13282 +255
13283 +251
13284 +255
13285 +252
13286 +251
13287 +254
13288 +255
13289 +252
13290 +254
13291 +255
13292 +252
13293 +252
13294 +250
13295 +254
13296 +248
13297 +253
13298 +255
13299 +254
13300 +255
13301 +252
13302 +248
13303 +253
13304 +255
13305 +254
13306 +255
13307 +252
13308 +252
13309 +255
13310 +251
13311 +252
13312 +255
13313 +251
13314 +255
13315 +252
13316 +251
13317 +252
13318 +250
13319 +254
13320 +252
13321 +255
13322 +251
13323 +254
13324 +255
13325 +252
13326 +252
13327 +250
13328 +254
13329 +254
13330 +255
13331 +252
13332 +254
13333 +255
13334 +252
13335 +254
13336 +255
13337 +252
13338 +248
13339 +253
13340 +255
13341 +255
13342 +252
13343 +251
13344 +254
13345 +255
13346 +252
13347 +248
13348 +253
13349 +255
13350 +252
13351 +250
13352 +254
13353 +254
13354 +255
13355 +252
13356 +254
13357 +255
13358 +252
13359 +254
13360 +255
13361 +252
13362 +254
13363 +255
13364 +252
13365 +254
13366 +255
13367 +252
13368 +252
13369 +250
13370 +254
13371 +255
13372 +252
13373 +251
13374 +255
13375 +252
13376 +251
13377 +254
13378 +255
13379 +252
13380 +254
13381 +255
13382 +252
13383 +254
13384 +255
13385 +252
13386 +248
13387 +253
13388 +255
13389 +254
13390 +255
13391 +252
13392 +252
13393 +250
13394 +254
13395 +254
13396 +255
13397 +252
13398 +252
13399 +250
13400 +254
13401 +252
13402 +250
13403 +254
13404 +255
13405 +252
13406 +251
13407 +254
13408 +255
13409 +252
13410 +252
13411 +250
13412 +254
13413 +252
13414 +250
13415 +254
13416 +254
13417 +255
13418 +252
13419 +255
13420 +252
13421 +251
13422 +255
13423 +252
13424 +251
13425 +254
13426 +255
13427 +252
13428 +255
13429 +252
13430 +251
13431 +254
13432 +255
13433 +252
13434 +255
13435 +252
13436 +251
13437 +254
13438 +255
13439 +252
13440 +255
13441 +252
13442 +251
13443 +255
13444 +252
13445 +251
13446 +248
13447 +253
13448 +255
13449 +254
13450 +255
13451 +252
13452 +254
13453 +255
13454 +252
13455 +252
13456 +250
13457 +254
13458 +252
13459 +250
13460 +254
13461 +248
13462 +253
13463 +255
13464 +230
13465 +227
13466 +225
13467 +248
13468 +253
13469 +255
13470 +234
13471 +239
13472 +242
13473 +201
13474 +189
13475 +179
13476 +238
13477 +247
13478 +255
13479 +255
13480 +252
13481 +251
13482 +254
13483 +255
13484 +252
13485 +207
13486 +202
13487 +200
13488 +252
13489 +250
13490 +254
13491 +252
13492 +250
13493 +254
13494 +254
13495 +255
13496 +252
13497 +230
13498 +227
13499 +225
13500 +219
13501 +225
13502 +231
13503 +254
13504 +255
13505 +252
13506 +254
13507 +255
13508 +252
13509 +254
13510 +255
13511 +252
13512 +252
13513 +250
13514 +254
13515 +252
13516 +250
13517 +254
13518 +250
13519 +242
13520 +234
13521 +182
13522 +177
13523 +176
13524 +248
13525 +253
13526 +255
13527 +254
13528 +255
13529 +252
13530 +254
13531 +255
13532 +252
13533 +255
13534 +252
13535 +251
13536 +254
13537 +255
13538 +252
13539 +252
13540 +250
13541 +254
13542 +248
13543 +253
13544 +255
13545 +254
13546 +255
13547 +252
13548 +254
13549 +255
13550 +252
13551 +254
13552 +255
13553 +252
13554 +254
13555 +255
13556 +252
13557 +254
13558 +255
13559 +252
13560 +248
13561 +253
13562 +255
13563 +252
13564 +250
13565 +254
13566 +255
13567 +252
13568 +251
13569 +255
13570 +252
13571 +251
13572 +254
13573 +255
13574 +252
13575 +254
13576 +255
13577 +252
13578 +254
13579 +255
13580 +252
13581 +243
13582 +245
13583 +242
13584 +234
13585 +239
13586 +242
13587 +255
13588 +252
13589 +251
13590 +255
13591 +252
13592 +251
13593 +254
13594 +255
13595 +252
13596 +252
13597 +250
13598 +254
13599 +254
13600 +255
13601 +252
13602 +248
13603 +253
13604 +255
13605 +255
13606 +252
13607 +251
13608 +255
13609 +252
13610 +251
13611 +254
13612 +255
13613 +252
13614 +234
13615 +226
13616 +218
13617 +211
13618 +217
13619 +219
13620 +254
13621 +255
13622 +252
13623 +255
13624 +252
13625 +251
13626 +255
13627 +252
13628 +251
13629 +254
13630 +255
13631 +252
13632 +255
13633 +252
13634 +251
13635 +243
13636 +245
13637 +242
13638 +254
13639 +255
13640 +252
13641 +254
13642 +255
13643 +252
13644 +240
13645 +235
13646 +233
13647 +230
13648 +227
13649 +225
13650 +234
13651 +239
13652 +242
13653 +248
13654 +253
13655 +255
13656 +254
13657 +255
13658 +252
13659 +254
13660 +255
13661 +252
13662 +250
13663 +242
13664 +234
13665 +205
13666 +213
13667 +222
13668 +255
13669 +252
13670 +251
13671 +252
13672 +250
13673 +254
13674 +254
13675 +255
13676 +252
13677 +248
13678 +253
13679 +255
13680 +254
13681 +255
13682 +252
13683 +223
13684 +214
13685 +206
13686 +234
13687 +239
13688 +242
13689 +252
13690 +250
13691 +254
13692 +197
13693 +193
13694 +191
13695 +254
13696 +255
13697 +252
13698 +252
13699 +250
13700 +254
13701 +248
13702 +253
13703 +255
13704 +254
13705 +255
13706 +252
13707 +210
13708 +205
13709 +197
13710 +248
13711 +253
13712 +255
13713 +255
13714 +252
13715 +251
13716 +232
13717 +233
13718 +243
13719 +243
13720 +245
13721 +242
13722 +252
13723 +250
13724 +254
13725 +252
13726 +255
13727 +251
13728 +254
13729 +255
13730 +252
13731 +255
13732 +252
13733 +251
13734 +252
13735 +250
13736 +254
13737 +255
13738 +252
13739 +251
13740 +250
13741 +242
13742 +234
13743 +205
13744 +213
13745 +222
13746 +254
13747 +255
13748 +252
13749 +254
13750 +255
13751 +252
13752 +255
13753 +252
13754 +251
13755 +248
13756 +253
13757 +255
13758 +248
13759 +253
13760 +255
13761 +252
13762 +250
13763 +254
13764 +252
13765 +250
13766 +254
13767 +252
13768 +250
13769 +254
13770 +254
13771 +255
13772 +252
13773 +255
13774 +252
13775 +251
13776 +255
13777 +252
13778 +251
13779 +255
13780 +252
13781 +251
13782 +252
13783 +250
13784 +254
13785 +252
13786 +250
13787 +254
13788 +252
13789 +250
13790 +254
13791 +248
13792 +253
13793 +255
13794 +254
13795 +255
13796 +252
13797 +252
13798 +250
13799 +254
13800 +254
13801 +255
13802 +252
13803 +254
13804 +255
13805 +252
13806 +254
13807 +255
13808 +252
13809 +254
13810 +255
13811 +252
13812 +254
13813 +255
13814 +252
13815 +254
13816 +255
13817 +252
13818 +255
13819 +252
13820 +251
13821 +248
13822 +253
13823 +255
13824 +254
13825 +255
13826 +252
13827 +255
13828 +252
13829 +251
13830 +254
13831 +255
13832 +252
13833 +254
13834 +255
13835 +252
13836 +254
13837 +255
13838 +252
13839 +254
13840 +255
13841 +252
13842 +254
13843 +255
13844 +252
13845 +254
13846 +255
13847 +252
13848 +254
13849 +255
13850 +252
13851 +254
13852 +255
13853 +252
13854 +248
13855 +253
13856 +255
13857 +254
13858 +255
13859 +252
13860 +254
13861 +255
13862 +252
13863 +254
13864 +255
13865 +252
13866 +255
13867 +252
13868 +251
13869 +254
13870 +255
13871 +252
13872 +254
13873 +255
13874 +252
13875 +254
13876 +255
13877 +252
13878 +254
13879 +255
13880 +252
13881 +254
13882 +255
13883 +252
13884 +254
13885 +255
13886 +252
13887 +248
13888 +253
13889 +255
13890 +254
13891 +255
13892 +252
13893 +254
13894 +255
13895 +252
13896 +254
13897 +255
13898 +252
13899 +254
13900 +255
13901 +252
13902 +248
13903 +253
13904 +255
13905 +254
13906 +255
13907 +252
13908 +248
13909 +253
13910 +255
13911 +252
13912 +250
13913 +254
13914 +254
13915 +255
13916 +252
13917 +254
13918 +255
13919 +252
13920 +255
13921 +252
13922 +251
13923 +254
13924 +255
13925 +252
13926 +255
13927 +252
13928 +251
13929 +254
13930 +255
13931 +252
13932 +254
13933 +255
13934 +252
13935 +254
13936 +255
13937 +252
13938 +254
13939 +255
13940 +252
13941 +252
13942 +250
13943 +254
13944 +101
13947 +254
13948 +255
13949 +252
13952 +106
13953 +223
13954 +214
13955 +206
13956 +248
13957 +253
13958 +255
13959 +182
13960 +177
13961 +176
13962 +234
13963 +239
13964 +242
13965 +133
13966 +131
13967 +123
13968 +191
13969 +195
13970 +199
13971 +248
13972 +253
13973 +255
13974 +248
13975 +253
13976 +255
13977 +114
13980 +133
13981 +131
13982 +123
13983 +133
13984 +153
13985 +169
13986 +223
13987 +214
13988 +206
13989 +205
13990 +213
13991 +222
13992 +250
13993 +242
13994 +234
13995 +211
13996 +217
13997 +219
13998 +127
13999 +119
14000 +113
14001 +168
14002 +191
14003 +209
14004 +223
14005 +214
14006 +206
14007 +191
14008 +206
14009 +219
14010 +250
14011 +242
14012 +234
14013 +217
14014 +211
14015 +210
14016 +219
14017 +225
14018 +231
14019 +191
14020 +195
14021 +199
14022 +234
14023 +226
14024 +218
14025 +205
14026 +213
14027 +222
14028 +234
14029 +226
14030 +218
14031 +191
14032 +195
14033 +199
14034 +254
14035 +255
14036 +252
14037 +217
14038 +211
14039 +210
14040 +191
14041 +195
14042 +199
14043 +254
14044 +255
14045 +252
14046 +197
14047 +193
14048 +191
14049 +205
14050 +213
14051 +222
14052 +223
14053 +214
14054 +206
14055 +197
14056 +217
14057 +223
14058 +254
14059 +255
14060 +252
14061 +218
14062 +199
14063 +188
14064 +133
14065 +153
14066 +169
14067 +254
14068 +255
14069 +252
14070 +223
14071 +214
14072 +206
14073 +191
14074 +206
14075 +219
14076 +234
14077 +226
14078 +218
14079 +248
14080 +253
14081 +255
14082 +219
14083 +225
14084 +231
14085 +230
14086 +227
14087 +225
14088 +248
14089 +253
14090 +255
14091 +233
14092 +220
14093 +201
14097 +135
14098 +121
14099 +116
14100 +230
14101 +244
14102 +251
14103 +182
14104 +177
14105 +176
14106 +238
14107 +247
14108 +255
14109 +234
14110 +226
14111 +218
14112 +200
14113 +207
14114 +211
14118 +191
14119 +206
14120 +219
14121 +254
14122 +255
14123 +252
14124 +131
14125 +111
14127 +110
14128 +114
14129 +118
14130 +211
14131 +217
14132 +219
14133 +217
14134 +211
14135 +210
14136 +200
14137 +207
14138 +211
14139 +207
14140 +202
14141 +200
14142 +253
14143 +243
14144 +227
14145 +109
14146 +128
14147 +145
14148 +191
14149 +195
14150 +199
14151 +254
14152 +255
14153 +252
14154 +197
14155 +193
14156 +191
14157 +238
14158 +247
14159 +255
14160 +233
14161 +220
14162 +201
14163 +127
14164 +119
14165 +113
14166 +214
14167 +226
14168 +253
14169 +210
14170 +205
14171 +197
14174 +106
14175 +254
14176 +255
14177 +252
14178 +191
14179 +195
14180 +199
14181 +248
14182 +253
14183 +255
14184 +223
14185 +214
14186 +206
14187 +116
14190 +219
14191 +245
14192 +255
14193 +241
14194 +216
14195 +191
14196 +103
14197 +132
14198 +168
14199 +233
14200 +200
14201 +174
14202 +127
14203 +173
14204 +205
14205 +218
14206 +199
14207 +188
14208 +205
14209 +213
14210 +222
14211 +250
14212 +242
14213 +234
14214 +211
14215 +217
14216 +219
14217 +243
14218 +245
14219 +242
14220 +165
14221 +156
14222 +151
14223 +144
14224 +145
14225 +154
14226 +219
14227 +225
14228 +231
14229 +234
14230 +226
14231 +218
14232 +255
14233 +252
14234 +251
14235 +211
14236 +217
14237 +219
14238 +201
14239 +189
14240 +179
14241 +219
14242 +225
14243 +231
14244 +250
14245 +242
14246 +234
14247 +211
14248 +217
14249 +219
14250 +243
14251 +245
14252 +242
14253 +191
14254 +195
14255 +199
14256 +248
14257 +253
14258 +255
14259 +254
14260 +255
14261 +252
14262 +254
14263 +255
14264 +252
14265 +254
14266 +255
14267 +252
14268 +254
14269 +255
14270 +252
14271 +255
14272 +252
14273 +251
14274 +254
14275 +255
14276 +252
14277 +254
14278 +255
14279 +252
14280 +254
14281 +255
14282 +252
14283 +254
14284 +255
14285 +252
14286 +254
14287 +255
14288 +252
14289 +254
14290 +255
14291 +252
14292 +254
14293 +255
14294 +252
14295 +254
14296 +255
14297 +252
14298 +254
14299 +255
14300 +252
14301 +254
14302 +255
14303 +252
14304 +254
14305 +255
14306 +252
14307 +254
14308 +255
14309 +252
14310 +254
14311 +255
14312 +252
14313 +254
14314 +255
14315 +252
14316 +254
14317 +255
14318 +252
14319 +254
14320 +255
14321 +252
14322 +254
14323 +255
14324 +252
14325 +254
14326 +255
14327 +252
14328 +254
14329 +255
14330 +252
14331 +254
14332 +255
14333 +252
14334 +254
14335 +255
14336 +252
14337 +254
14338 +255
14339 +252
14340 +254
14341 +255
14342 +252
14343 +254
14344 +255
14345 +252
14346 +254
14347 +255
14348 +252
14349 +254
14350 +255
14351 +252
14352 +254
14353 +255
14354 +252
14355 +254
14356 +255
14357 +252
14358 +254
14359 +255
14360 +252
14361 +254
14362 +255
14363 +252
14364 +255
14365 +252
14366 +251
14367 +254
14368 +255
14369 +252
14370 +254
14371 +255
14372 +252
14373 +254
14374 +255
14375 +252
14376 +254
14377 +255
14378 +252
14379 +254
14380 +255
14381 +252
14382 +254
14383 +255
14384 +252
14385 +254
14386 +255
14387 +252
14388 +254
14389 +255
14390 +252
14391 +254
14392 +255
14393 +252
14394 +254
14395 +255
14396 +252
14397 +254
14398 +255
14399 +252
14400 +254
14401 +255
14402 +252
14403 +254
14404 +255
14405 +252
14406 +254
14407 +255
14408 +252
14409 +254
14410 +255
14411 +252
14412 +254
14413 +255
14414 +252
14415 +254
14416 +255
14417 +252
14418 +254
14419 +255
14420 +252
14421 +254
14422 +255
14423 +252
14424 +128
14425 +106
14427 +136
14428 +138
14429 +135
14430 +116
14431 +128
14432 +152
14433 +175
14434 +164
14435 +146
14436 +140
14437 +125
14438 +114
14439 +191
14440 +206
14441 +219
14442 +114
14443 +126
14444 +132
14445 +152
14446 +151
14447 +143
14448 +190
14449 +169
14450 +150
14451 +144
14452 +172
14453 +189
14454 +252
14455 +250
14456 +254
14457 +143
14458 +119
14459 +115
14460 +136
14461 +138
14462 +135
14463 +163
14464 +169
14465 +165
14467 +101
14468 +107
14469 +110
14470 +114
14471 +118
14472 +175
14473 +164
14474 +146
14475 +149
14476 +165
14477 +177
14478 +135
14479 +121
14480 +116
14481 +201
14482 +189
14483 +179
14484 +123
14485 +140
14486 +148
14487 +159
14488 +140
14489 +125
14490 +158
14491 +152
14492 +139
14493 +133
14494 +153
14495 +169
14496 +168
14497 +130
14498 +120
14499 +182
14500 +180
14501 +166
14502 +116
14503 +128
14504 +152
14505 +122
14506 +122
14507 +119
14508 +210
14509 +205
14510 +197
14511 +114
14512 +111
14513 +108
14514 +166
14515 +173
14516 +180
14517 +136
14518 +125
14519 +125
14520 +117
14521 +106
14522 +105
14523 +174
14524 +167
14525 +156
14526 +149
14527 +165
14528 +177
14529 +201
14530 +189
14531 +179
14533 +101
14534 +107
14536 +101
14537 +107
14538 +241
14539 +254
14540 +255
14541 +218
14542 +199
14543 +188
14544 +144
14545 +172
14546 +189
14547 +253
14548 +243
14549 +227
14550 +104
14551 +107
14552 +127
14553 +165
14554 +156
14555 +151
14556 +152
14557 +151
14558 +143
14559 +144
14560 +145
14561 +154
14564 +106
14565 +114
14566 +111
14567 +108
14568 +252
14569 +250
14570 +254
14571 +189
14572 +172
14573 +142
14574 +171
14575 +197
14576 +224
14577 +248
14578 +253
14579 +255
14580 +157
14581 +123
14582 +106
14583 +197
14584 +217
14585 +223
14586 +114
14587 +111
14588 +108
14589 +117
14590 +106
14591 +105
14592 +166
14593 +173
14594 +180
14595 +114
14596 +111
14597 +108
14598 +219
14599 +225
14600 +231
14601 +248
14602 +253
14603 +255
14604 +140
14605 +125
14606 +114
14607 +142
14608 +155
14609 +162
14610 +240
14611 +235
14612 +233
14613 +119
14614 +121
14615 +124
14616 +114
14617 +111
14618 +108
14619 +175
14620 +164
14621 +146
14622 +149
14623 +165
14624 +177
14625 +142
14626 +155
14627 +162
14628 +158
14629 +152
14630 +139
14631 +135
14632 +121
14633 +116
14634 +123
14635 +140
14636 +148
14637 +133
14638 +131
14639 +123
14641 +109
14642 +136
14643 +152
14644 +151
14645 +143
14646 +174
14647 +167
14648 +156
14649 +135
14650 +154
14651 +178
14652 +122
14653 +124
14654 +136
14655 +146
14656 +125
14657 +108
14658 +152
14659 +151
14660 +143
14661 +122
14662 +124
14663 +136
14664 +130
14665 +146
14666 +146
14667 +146
14668 +125
14669 +108
14670 +232
14671 +249
14672 +255
14673 +253
14674 +243
14675 +227
14679 +117
14680 +106
14681 +105
14682 +171
14683 +197
14684 +224
14685 +174
14686 +167
14687 +156
14691 +182
14692 +180
14693 +166
14694 +135
14695 +154
14696 +178
14697 +117
14698 +106
14699 +105
14700 +210
14701 +205
14702 +197
14703 +152
14704 +156
14705 +171
14706 +122
14707 +122
14708 +119
14709 +116
14712 +149
14713 +143
14714 +139
14715 +167
14716 +182
14717 +195
14718 +149
14719 +143
14720 +139
14722 +107
14723 +119
14724 +165
14725 +156
14726 +151
14727 +167
14728 +182
14729 +195
14730 +101
14733 +133
14734 +131
14735 +123
14736 +176
14737 +200
14738 +211
14739 +254
14740 +255
14741 +252
14742 +254
14743 +255
14744 +252
14745 +254
14746 +255
14747 +252
14748 +254
14749 +255
14750 +252
14751 +254
14752 +255
14753 +252
14754 +254
14755 +255
14756 +252
14757 +254
14758 +255
14759 +252
14760 +254
14761 +255
14762 +252
14763 +254
14764 +255
14765 +252
14766 +254
14767 +255
14768 +252
14769 +254
14770 +255
14771 +252
14772 +254
14773 +255
14774 +252
14775 +254
14776 +255
14777 +252
14778 +254
14779 +255
14780 +252
14781 +254
14782 +255
14783 +252
14784 +254
14785 +255
14786 +252
14787 +254
14788 +255
14789 +252
14790 +254
14791 +255
14792 +252
14793 +254
14794 +255
14795 +252
14796 +254
14797 +255
14798 +252
14799 +254
14800 +255
14801 +252
14802 +254
14803 +255
14804 +252
14805 +254
14806 +255
14807 +252
14808 +254
14809 +255
14810 +252
14811 +254
14812 +255
14813 +252
14814 +254
14815 +255
14816 +252
14817 +254
14818 +255
14819 +252
14820 +254
14821 +255
14822 +252
14823 +254
14824 +255
14825 +252
14826 +254
14827 +255
14828 +252
14829 +254
14830 +255
14831 +252
14832 +254
14833 +255
14834 +252
14835 +254
14836 +255
14837 +252
14838 +254
14839 +255
14840 +252
14841 +254
14842 +255
14843 +252
14844 +254
14845 +255
14846 +252
14847 +254
14848 +255
14849 +252
14850 +254
14851 +255
14852 +252
14853 +254
14854 +255
14855 +252
14856 +254
14857 +255
14858 +252
14859 +254
14860 +255
14861 +252
14862 +254
14863 +255
14864 +252
14865 +254
14866 +255
14867 +252
14868 +254
14869 +255
14870 +252
14871 +254
14872 +255
14873 +252
14874 +254
14875 +255
14876 +252
14877 +254
14878 +255
14879 +252
14880 +254
14881 +255
14882 +252
14883 +254
14884 +255
14885 +252
14886 +254
14887 +255
14888 +252
14889 +254
14890 +255
14891 +252
14892 +254
14893 +255
14894 +252
14895 +254
14896 +255
14897 +252
14898 +254
14899 +255
14900 +252
14901 +252
14902 +250
14903 +254
14904 +114
14907 +254
14908 +255
14909 +252
14910 +104
14911 +107
14912 +127
14913 +175
14914 +164
14915 +146
14916 +210
14917 +205
14918 +197
14919 +119
14920 +121
14921 +124
14922 +114
14923 +126
14924 +132
14925 +136
14926 +138
14927 +135
14928 +233
14929 +220
14930 +201
14931 +128
14932 +158
14933 +189
14934 +248
14935 +253
14936 +255
14940 +248
14941 +253
14942 +255
14943 +248
14944 +253
14945 +255
14946 +117
14947 +106
14948 +105
14949 +142
14950 +155
14951 +162
14952 +174
14953 +157
14954 +146
14955 +204
14956 +224
14957 +243
14958 +146
14959 +125
14960 +108
14961 +227
14962 +239
14963 +254
14964 +110
14965 +114
14966 +118
14967 +110
14968 +114
14969 +118
14970 +190
14971 +169
14972 +150
14973 +204
14974 +224
14975 +243
14976 +168
14977 +130
14978 +120
14979 +230
14980 +228
14981 +206
14982 +128
14983 +158
14984 +189
14985 +158
14986 +152
14987 +139
14988 +140
14989 +125
14990 +114
14991 +133
14992 +131
14993 +123
14994 +167
14995 +182
14996 +195
14997 +144
14998 +145
14999 +154
15000 +162
15001 +139
15002 +130
15003 +217
15004 +211
15005 +210
15006 +122
15007 +124
15008 +136
15009 +142
15010 +155
15011 +162
15012 +135
15013 +121
15014 +116
15015 +143
15016 +146
15017 +145
15018 +248
15019 +253
15020 +255
15021 +223
15022 +214
15023 +206
15027 +123
15028 +140
15029 +148
15030 +136
15031 +125
15032 +125
15034 +101
15035 +107
15036 +248
15037 +253
15038 +249
15042 +216
15043 +201
15044 +179
15045 +103
15046 +132
15047 +168
15048 +254
15049 +255
15050 +252
15051 +250
15052 +242
15053 +234
15057 +119
15058 +121
15059 +124
15060 +201
15061 +189
15062 +179
15063 +110
15064 +114
15065 +118
15066 +142
15067 +155
15068 +162
15069 +165
15070 +156
15071 +151
15073 +107
15074 +119
15075 +158
15076 +152
15077 +139
15078 +135
15079 +154
15080 +178
15081 +254
15082 +255
15083 +252
15084 +146
15085 +125
15086 +108
15087 +119
15088 +121
15089 +124
15090 +211
15091 +217
15092 +219
15093 +142
15094 +155
15095 +162
15096 +136
15097 +125
15098 +125
15099 +230
15100 +228
15101 +206
15102 +144
15103 +172
15104 +189
15105 +110
15106 +114
15107 +118
15109 +107
15110 +119
15111 +216
15112 +201
15113 +179
15114 +122
15115 +124
15116 +136
15117 +182
15118 +177
15119 +176
15120 +122
15121 +122
15122 +119
15126 +217
15127 +211
15128 +210
15130 +101
15131 +107
15133 +107
15134 +119
15135 +201
15136 +189
15137 +179
15138 +130
15139 +146
15140 +146
15141 +166
15142 +173
15143 +180
15144 +127
15145 +119
15146 +113
15150 +219
15151 +245
15152 +255
15153 +250
15154 +233
15155 +208
15156 +103
15157 +132
15158 +168
15159 +233
15160 +200
15161 +174
15162 +144
15163 +172
15164 +189
15166 +101
15167 +107
15168 +110
15169 +114
15170 +118
15171 +190
15172 +169
15173 +150
15174 +195
15175 +216
15176 +245
15177 +175
15178 +152
15179 +137
15180 +114
15181 +111
15182 +108
15183 +144
15184 +172
15185 +189
15186 +174
15187 +139
15188 +122
15189 +176
15190 +200
15191 +211
15195 +230
15196 +228
15197 +206
15199 +107
15200 +119
15201 +110
15202 +114
15203 +118
15204 +165
15205 +156
15206 +151
15207 +230
15208 +244
15209 +251
15210 +159
15211 +140
15212 +125
15213 +144
15214 +145
15215 +154
15216 +200
15217 +207
15218 +211
15219 +254
15220 +255
15221 +252
15222 +254
15223 +255
15224 +252
15225 +254
15226 +255
15227 +252
15228 +254
15229 +255
15230 +252
15231 +254
15232 +255
15233 +252
15234 +254
15235 +255
15236 +252
15237 +254
15238 +255
15239 +252
15240 +254
15241 +255
15242 +252
15243 +254
15244 +255
15245 +252
15246 +254
15247 +255
15248 +252
15249 +254
15250 +255
15251 +252
15252 +254
15253 +255
15254 +252
15255 +254
15256 +255
15257 +252
15258 +254
15259 +255
15260 +252
15261 +254
15262 +255
15263 +252
15264 +254
15265 +255
15266 +252
15267 +254
15268 +255
15269 +252
15270 +254
15271 +255
15272 +252
15273 +254
15274 +255
15275 +252
15276 +254
15277 +255
15278 +252
15279 +254
15280 +255
15281 +252
15282 +254
15283 +255
15284 +252
15285 +254
15286 +255
15287 +252
15288 +254
15289 +255
15290 +252
15291 +254
15292 +255
15293 +252
15294 +254
15295 +255
15296 +252
15297 +254
15298 +255
15299 +252
15300 +254
15301 +255
15302 +252
15303 +254
15304 +255
15305 +252
15306 +254
15307 +255
15308 +252
15309 +254
15310 +255
15311 +252
15312 +254
15313 +255
15314 +252
15315 +254
15316 +255
15317 +252
15318 +254
15319 +255
15320 +252
15321 +254
15322 +255
15323 +252
15324 +254
15325 +255
15326 +252
15327 +254
15328 +255
15329 +252
15330 +254
15331 +255
15332 +252
15333 +254
15334 +255
15335 +252
15336 +254
15337 +255
15338 +252
15339 +254
15340 +255
15341 +252
15342 +254
15343 +255
15344 +252
15345 +254
15346 +255
15347 +252
15348 +254
15349 +255
15350 +252
15351 +254
15352 +255
15353 +252
15354 +254
15355 +255
15356 +252
15357 +254
15358 +255
15359 +252
15360 +254
15361 +255
15362 +252
15363 +254
15364 +255
15365 +252
15366 +254
15367 +255
15368 +252
15369 +254
15370 +255
15371 +252
15372 +254
15373 +255
15374 +252
15375 +254
15376 +255
15377 +252
15378 +254
15379 +255
15380 +252
15381 +248
15382 +253
15383 +255
15384 +254
15385 +255
15386 +252
15387 +255
15388 +252
15389 +251
15390 +255
15391 +252
15392 +251
15393 +254
15394 +255
15395 +252
15396 +234
15397 +226
15398 +218
15399 +136
15400 +125
15401 +125
15402 +176
15403 +200
15404 +211
15405 +252
15406 +250
15407 +254
15408 +248
15409 +253
15410 +255
15411 +254
15412 +255
15413 +252
15414 +252
15415 +250
15416 +254
15417 +255
15418 +252
15419 +251
15420 +255
15421 +252
15422 +251
15423 +248
15424 +253
15425 +255
15426 +255
15427 +252
15428 +251
15429 +248
15430 +253
15431 +255
15432 +248
15433 +253
15434 +255
15435 +255
15436 +252
15437 +251
15438 +254
15439 +255
15440 +252
15441 +255
15442 +252
15443 +251
15444 +248
15445 +253
15446 +255
15447 +248
15448 +253
15449 +255
15450 +254
15451 +255
15452 +252
15453 +248
15454 +253
15455 +255
15456 +248
15457 +253
15458 +255
15459 +252
15460 +250
15461 +254
15462 +248
15463 +253
15464 +255
15465 +254
15466 +255
15467 +252
15468 +252
15469 +250
15470 +254
15471 +254
15472 +255
15473 +252
15474 +252
15475 +250
15476 +254
15477 +248
15478 +253
15479 +255
15480 +254
15481 +255
15482 +252
15483 +254
15484 +255
15485 +252
15486 +254
15487 +255
15488 +252
15489 +252
15490 +250
15491 +254
15492 +252
15493 +250
15494 +254
15495 +254
15496 +255
15497 +252
15498 +255
15499 +252
15500 +251
15501 +255
15502 +252
15503 +251
15504 +255
15505 +252
15506 +251
15507 +248
15508 +253
15509 +255
15510 +254
15511 +255
15512 +252
15513 +248
15514 +253
15515 +255
15516 +248
15517 +253
15518 +255
15519 +248
15520 +253
15521 +255
15522 +252
15523 +255
15524 +251
15525 +254
15526 +255
15527 +252
15528 +252
15529 +250
15530 +254
15531 +254
15532 +255
15533 +252
15534 +254
15535 +255
15536 +252
15537 +248
15538 +253
15539 +255
15540 +254
15541 +255
15542 +252
15543 +255
15544 +252
15545 +251
15546 +248
15547 +253
15548 +255
15549 +252
15550 +250
15551 +254
15552 +252
15553 +250
15554 +254
15555 +254
15556 +255
15557 +252
15558 +254
15559 +255
15560 +252
15561 +255
15562 +252
15563 +251
15564 +248
15565 +253
15566 +255
15567 +254
15568 +255
15569 +252
15570 +254
15571 +255
15572 +252
15573 +255
15574 +252
15575 +251
15576 +254
15577 +255
15578 +252
15579 +255
15580 +252
15581 +251
15582 +254
15583 +255
15584 +252
15585 +255
15586 +252
15587 +251
15588 +252
15589 +250
15590 +254
15591 +248
15592 +253
15593 +255
15594 +248
15595 +253
15596 +255
15597 +255
15598 +252
15599 +251
15600 +248
15601 +253
15602 +255
15603 +248
15604 +253
15605 +255
15606 +255
15607 +252
15608 +251
15609 +252
15610 +250
15611 +254
15612 +255
15613 +252
15614 +251
15615 +255
15616 +252
15617 +251
15618 +248
15619 +253
15620 +255
15621 +254
15622 +255
15623 +252
15624 +248
15625 +253
15626 +255
15627 +255
15628 +252
15629 +251
15630 +255
15631 +252
15632 +251
15633 +252
15634 +250
15635 +254
15636 +254
15637 +255
15638 +252
15639 +254
15640 +255
15641 +252
15642 +255
15643 +252
15644 +251
15645 +255
15646 +252
15647 +251
15648 +248
15649 +253
15650 +255
15651 +254
15652 +255
15653 +252
15654 +248
15655 +253
15656 +255
15657 +248
15658 +253
15659 +255
15660 +254
15661 +255
15662 +252
15663 +254
15664 +255
15665 +252
15666 +252
15667 +250
15668 +254
15669 +255
15670 +252
15671 +251
15672 +252
15673 +250
15674 +254
15675 +252
15676 +250
15677 +254
15678 +248
15679 +253
15680 +255
15681 +255
15682 +252
15683 +251
15684 +248
15685 +253
15686 +255
15687 +254
15688 +255
15689 +252
15690 +254
15691 +255
15692 +252
15693 +248
15694 +253
15695 +255
15696 +248
15697 +253
15698 +255
15699 +254
15700 +255
15701 +252
15702 +254
15703 +255
15704 +252
15705 +254
15706 +255
15707 +252
15708 +254
15709 +255
15710 +252
15711 +254
15712 +255
15713 +252
15714 +254
15715 +255
15716 +252
15717 +254
15718 +255
15719 +252
15720 +254
15721 +255
15722 +252
15723 +254
15724 +255
15725 +252
15726 +254
15727 +255
15728 +252
15729 +254
15730 +255
15731 +252
15732 +254
15733 +255
15734 +252
15735 +254
15736 +255
15737 +252
15738 +254
15739 +255
15740 +252
15741 +254
15742 +255
15743 +252
15744 +254
15745 +255
15746 +252
15747 +254
15748 +255
15749 +252
15750 +254
15751 +255
15752 +252
15753 +254
15754 +255
15755 +252
15756 +254
15757 +255
15758 +252
15759 +254
15760 +255
15761 +252
15762 +254
15763 +255
15764 +252
15765 +254
15766 +255
15767 +252
15768 +254
15769 +255
15770 +252
15771 +254
15772 +255
15773 +252
15774 +254
15775 +255
15776 +252
15777 +254
15778 +255
15779 +252
15780 +254
15781 +255
15782 +252
15783 +254
15784 +255
15785 +252
15786 +254
15787 +255
15788 +252
15789 +254
15790 +255
15791 +252
15792 +254
15793 +255
15794 +252
15795 +254
15796 +255
15797 +252
15798 +254
15799 +255
15800 +252
15801 +254
15802 +255
15803 +252
15804 +254
15805 +255
15806 +252
15807 +254
15808 +255
15809 +252
15810 +254
15811 +255
15812 +252
15813 +254
15814 +255
15815 +252
15816 +254
15817 +255
15818 +252
15819 +254
15820 +255
15821 +252
15822 +254
15823 +255
15824 +252
15825 +254
15826 +255
15827 +252
15828 +254
15829 +255
15830 +252
15831 +254
15832 +255
15833 +252
15834 +254
15835 +255
15836 +252
15837 +254
15838 +255
15839 +252
15840 +254
15841 +255
15842 +252
15843 +254
15844 +255
15845 +252
15846 +254
15847 +255
15848 +252
15849 +254
15850 +255
15851 +252
15852 +254
15853 +255
15854 +252
15855 +254
15856 +255
15857 +252
15858 +254
15859 +255
15860 +252
15861 +254
15862 +255
15863 +252
15864 +254
15865 +255
15866 +252
15867 +254
15868 +255
15869 +252
15870 +252
15871 +250
15872 +254
15873 +254
15874 +255
15875 +252
15876 +254
15877 +255
15878 +252
15879 +248
15880 +253
15881 +255
15882 +248
15883 +253
15884 +255
15885 +254
15886 +255
15887 +252
15888 +255
15889 +252
15890 +251
15891 +254
15892 +255
15893 +252
15894 +254
15895 +255
15896 +252
15897 +254
15898 +255
15899 +252
15900 +248
15901 +253
15902 +255
15903 +255
15904 +252
15905 +251
15906 +252
15907 +250
15908 +254
15909 +254
15910 +255
15911 +252
15912 +254
15913 +255
15914 +252
15915 +254
15916 +255
15917 +252
15918 +254
15919 +255
15920 +252
15921 +255
15922 +252
15923 +251
15924 +254
15925 +255
15926 +252
15927 +254
15928 +255
15929 +252
15930 +254
15931 +255
15932 +252
15933 +254
15934 +255
15935 +252
15936 +254
15937 +255
15938 +252
15939 +254
15940 +255
15941 +252
15942 +254
15943 +255
15944 +252
15945 +254
15946 +255
15947 +252
15948 +254
15949 +255
15950 +252
15951 +248
15952 +253
15953 +255
15954 +254
15955 +255
15956 +252
15957 +254
15958 +255
15959 +252
15960 +254
15961 +255
15962 +252
15963 +254
15964 +255
15965 +252
15966 +254
15967 +255
15968 +252
15969 +255
15970 +252
15971 +251
15972 +254
15973 +255
15974 +252
15975 +248
15976 +253
15977 +255
15978 +254
15979 +255
15980 +252
15981 +254
15982 +255
15983 +252
15984 +254
15985 +255
15986 +252
15987 +255
15988 +252
15989 +251
15990 +248
15991 +253
15992 +255
15993 +254
15994 +255
15995 +252
15996 +252
15997 +255
15998 +251
15999 +254
16000 +255
16001 +252
16002 +248
16003 +253
16004 +255
16005 +254
16006 +255
16007 +252
16008 +254
16009 +255
16010 +252
16011 +255
16012 +252
16013 +251
16014 +248
16015 +253
16016 +255
16017 +254
16018 +255
16019 +252
16020 +254
16021 +255
16022 +252
16023 +255
16024 +252
16025 +251
16026 +255
16027 +252
16028 +251
16029 +254
16030 +255
16031 +252
16032 +255
16033 +252
16034 +251
16035 +248
16036 +253
16037 +255
16038 +254
16039 +255
16040 +252
16041 +254
16042 +255
16043 +252
16044 +254
16045 +255
16046 +252
16047 +248
16048 +253
16049 +255
16050 +254
16051 +255
16052 +252
16053 +255
16054 +252
16055 +251
16056 +248
16057 +253
16058 +255
16059 +254
16060 +255
16061 +252
16062 +254
16063 +255
16064 +252
16065 +254
16066 +255
16067 +252
16068 +254
16069 +255
16070 +252
16071 +254
16072 +255
16073 +252
16074 +254
16075 +255
16076 +252
16077 +254
16078 +255
16079 +252
16080 +254
16081 +255
16082 +252
16083 +255
16084 +252
16085 +251
16086 +254
16087 +255
16088 +252
16089 +254
16090 +255
16091 +252
16092 +255
16093 +252
16094 +251
16095 +255
16096 +252
16097 +251
16098 +255
16099 +252
16100 +251
16101 +248
16102 +253
16103 +255
16104 +254
16105 +255
16106 +252
16107 +254
16108 +255
16109 +252
16110 +254
16111 +255
16112 +252
16113 +254
16114 +255
16115 +252
16116 +254
16117 +255
16118 +252
16119 +254
16120 +255
16121 +252
16122 +254
16123 +255
16124 +252
16125 +255
16126 +252
16127 +251
16128 +254
16129 +255
16130 +252
16131 +254
16132 +255
16133 +252
16134 +254
16135 +255
16136 +252
16137 +254
16138 +255
16139 +252
16140 +254
16141 +255
16142 +252
16143 +254
16144 +255
16145 +252
16146 +254
16147 +255
16148 +252
16149 +254
16150 +255
16151 +252
16152 +254
16153 +255
16154 +252
16155 +254
16156 +255
16157 +252
16158 +255
16159 +252
16160 +251
16161 +252
16162 +250
16163 +254
16164 +255
16165 +252
16166 +251
16167 +254
16168 +255
16169 +252
16170 +252
16171 +255
16172 +251
16173 +254
16174 +255
16175 +252
16176 +255
16177 +252
16178 +251
16179 +252
16180 +250
16181 +254
16182 +254
16183 +255
16184 +252
16185 +254
16186 +255
16187 +252
16188 +254
16189 +255
16190 +252
16191 +254
16192 +255
16193 +252
16194 +254
16195 +255
16196 +252
16197 +254
16198 +255
16199 +252
16200 +254
16201 +255
16202 +252
16203 +254
16204 +255
16205 +252
16206 +254
16207 +255
16208 +252
16209 +254
16210 +255
16211 +252
16212 +254
16213 +255
16214 +252
16215 +254
16216 +255
16217 +252
16218 +254
16219 +255
16220 +252
16221 +254
16222 +255
16223 +252
16224 +254
16225 +255
16226 +252
16227 +254
16228 +255
16229 +252
16230 +254
16231 +255
16232 +252
16233 +254
16234 +255
16235 +252
16236 +254
16237 +255
16238 +252
16239 +254
16240 +255
16241 +252
16242 +254
16243 +255
16244 +252
16245 +254
16246 +255
16247 +252
16248 +254
16249 +255
16250 +252
16251 +254
16252 +255
16253 +252
16254 +254
16255 +255
16256 +252
16257 +254
16258 +255
16259 +252
16260 +254
16261 +255
16262 +252
16263 +254
16264 +255
16265 +252
16266 +254
16267 +255
16268 +252
16269 +254
16270 +255
16271 +252
16272 +254
16273 +255
16274 +252
16275 +254
16276 +255
16277 +252
16278 +254
16279 +255
16280 +252
16281 +254
16282 +255
16283 +252
16284 +254
16285 +255
16286 +252
16287 +254
16288 +255
16289 +252
16290 +254
16291 +255
16292 +252
16293 +254
16294 +255
16295 +252
16296 +254
16297 +255
16298 +252
16299 +254
16300 +255
16301 +252
16302 +254
16303 +255
16304 +252
16305 +254
16306 +255
16307 +252
16308 +254
16309 +255
16310 +252
16311 +254
16312 +255
16313 +252
16314 +254
16315 +255
16316 +252
16317 +254
16318 +255
16319 +252
16320 +254
16321 +255
16322 +252
16323 +254
16324 +255
16325 +252
16326 +254
16327 +255
16328 +252
16329 +254
16330 +255
16331 +252
16332 +254
16333 +255
16334 +252
16335 +254
16336 +255
16337 +252
16338 +254
16339 +255
16340 +252
16341 +254
16342 +255
16343 +252
16344 +254
16345 +255
16346 +252
16347 +254
16348 +255
16349 +252
16350 +252
16351 +250
16352 +254
16353 +248
16354 +253
16355 +255
16356 +254
16357 +255
16358 +252
16359 +255
16360 +252
16361 +251
16362 +252
16363 +250
16364 +254
16365 +254
16366 +255
16367 +252
16368 +254
16369 +255
16370 +252
16371 +254
16372 +255
16373 +252
16374 +254
16375 +255
16376 +252
16377 +254
16378 +255
16379 +252
16380 +254
16381 +255
16382 +252
16383 +254
16384 +255
16385 +252
16386 +254
16387 +255
16388 +252
16389 +252
16390 +250
16391 +254
16392 +254
16393 +255
16394 +252
16395 +248
16396 +253
16397 +255
16398 +254
16399 +255
16400 +252
16401 +254
16402 +255
16403 +252
16404 +254
16405 +255
16406 +252
16407 +252
16408 +250
16409 +254
16410 +254
16411 +255
16412 +252
16413 +254
16414 +255
16415 +252
16416 +254
16417 +255
16418 +252
16419 +254
16420 +255
16421 +252
16422 +254
16423 +255
16424 +252
16425 +252
16426 +250
16427 +254
16428 +255
16429 +252
16430 +251
16431 +252
16432 +250
16433 +254
16434 +254
16435 +255
16436 +252
16437 +254
16438 +255
16439 +252
16440 +248
16441 +253
16442 +255
16443 +254
16444 +255
16445 +252
16446 +248
16447 +253
16448 +255
16449 +254
16450 +255
16451 +252
16452 +255
16453 +252
16454 +251
16455 +252
16456 +250
16457 +254
16458 +254
16459 +255
16460 +252
16461 +254
16462 +255
16463 +252
16464 +248
16465 +253
16466 +255
16467 +255
16468 +252
16469 +251
16470 +254
16471 +255
16472 +252
16473 +252
16474 +250
16475 +254
16476 +252
16477 +250
16478 +254
16479 +255
16480 +252
16481 +251
16482 +254
16483 +255
16484 +252
16485 +254
16486 +255
16487 +252
16488 +248
16489 +253
16490 +255
16491 +255
16492 +252
16493 +251
16494 +254
16495 +255
16496 +252
16497 +252
16498 +250
16499 +254
16500 +254
16501 +255
16502 +252
16503 +254
16504 +255
16505 +252
16506 +254
16507 +255
16508 +252
16509 +248
16510 +253
16511 +255
16512 +255
16513 +252
16514 +251
16515 +254
16516 +255
16517 +252
16518 +252
16519 +250
16520 +254
16521 +254
16522 +255
16523 +252
16524 +255
16525 +252
16526 +251
16527 +254
16528 +255
16529 +252
16530 +254
16531 +255
16532 +252
16533 +255
16534 +252
16535 +251
16536 +254
16537 +255
16538 +252
16539 +254
16540 +255
16541 +252
16542 +254
16543 +255
16544 +252
16545 +254
16546 +255
16547 +252
16548 +252
16549 +250
16550 +254
16551 +254
16552 +255
16553 +252
16554 +252
16555 +250
16556 +254
16557 +254
16558 +255
16559 +252
16560 +254
16561 +255
16562 +252
16563 +252
16564 +250
16565 +254
16566 +254
16567 +255
16568 +252
16569 +254
16570 +255
16571 +252
16572 +254
16573 +255
16574 +252
16575 +252
16576 +250
16577 +254
16578 +255
16579 +252
16580 +251
16581 +254
16582 +255
16583 +252
16584 +252
16585 +250
16586 +254
16587 +254
16588 +255
16589 +252
16590 +254
16591 +255
16592 +252
16593 +254
16594 +255
16595 +252
16596 +254
16597 +255
16598 +252
16599 +252
16600 +250
16601 +254
16602 +254
16603 +255
16604 +252
16605 +252
16606 +250
16607 +254
16608 +248
16609 +253
16610 +255
16611 +252
16612 +250
16613 +254
16614 +254
16615 +255
16616 +252
16617 +254
16618 +255
16619 +252
16620 +252
16621 +250
16622 +254
16623 +254
16624 +255
16625 +252
16626 +254
16627 +255
16628 +252
16629 +254
16630 +255
16631 +252
16632 +252
16633 +250
16634 +254
16635 +254
16636 +255
16637 +252
16638 +254
16639 +255
16640 +252
16641 +254
16642 +255
16643 +252
16644 +254
16645 +255
16646 +252
16647 +252
16648 +250
16649 +254
16650 +254
16651 +255
16652 +252
16653 +254
16654 +255
16655 +252
16656 +254
16657 +255
16658 +252
16659 +254
16660 +255
16661 +252
16662 +254
16663 +255
16664 +252
16665 +254
16666 +255
16667 +252
16668 +254
16669 +255
16670 +252
16671 +254
16672 +255
16673 +252
16674 +254
16675 +255
16676 +252
16677 +254
16678 +255
16679 +252
16680 +254
16681 +255
16682 +252
16683 +254
16684 +255
16685 +252
16686 +254
16687 +255
16688 +252
16689 +254
16690 +255
16691 +252
16692 +254
16693 +255
16694 +252
16695 diff --git a/init/main.c b/init/main.c
16696 index 8442094..f991cbf 100644
16697 --- a/init/main.c
16698 +++ b/init/main.c
16699 @@ -795,8 +795,20 @@ static noinline int init_post(void)
16700 system_state = SYSTEM_RUNNING;
16701 numa_default_policy();
16703 - if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
16704 - printk(KERN_WARNING "Warning: unable to open an initial console.\n");
16705 + if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0) {
16706 + /* jal: try to create /dev/console as char device 5,1 */
16707 + int rc;
16708 + if ((rc=sys_mknod((const char __user *) "/dev/console", S_IFCHR|S_IRUSR|S_IWUSR, MKDEV(5,1))) < 0) {
16709 + printk(KERN_WARNING "Failed to create /dev/console (%d)\n",rc);
16710 + } else {
16711 + /* try again */
16712 + if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0) {
16713 + printk(KERN_WARNING "Created missing /dev/console, proceeding ...\n");
16714 + } else {
16715 + printk(KERN_WARNING "opened intial console on char dev 5,1\n");
16720 (void) sys_dup(0);
16721 (void) sys_dup(0);