diff options
58 files changed, 927 insertions, 1419 deletions
diff --git a/Documentation/DocBook/device-drivers.tmpl b/Documentation/DocBook/device-drivers.tmpl index c36892c072da..fca34192cf80 100644 --- a/Documentation/DocBook/device-drivers.tmpl +++ b/Documentation/DocBook/device-drivers.tmpl | |||
@@ -297,10 +297,10 @@ KAO --> | |||
297 | </sect1> | 297 | </sect1> |
298 | <sect1><title>Frame Buffer Fonts</title> | 298 | <sect1><title>Frame Buffer Fonts</title> |
299 | <para> | 299 | <para> |
300 | Refer to the file drivers/video/console/fonts.c for more information. | 300 | Refer to the file lib/fonts/fonts.c for more information. |
301 | </para> | 301 | </para> |
302 | <!-- FIXME: Removed for now since no structured comments in source | 302 | <!-- FIXME: Removed for now since no structured comments in source |
303 | X!Idrivers/video/console/fonts.c | 303 | X!Ilib/fonts/fonts.c |
304 | --> | 304 | --> |
305 | </sect1> | 305 | </sect1> |
306 | </chapter> | 306 | </chapter> |
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile index 120b83bfde20..48d0a44270bd 100644 --- a/arch/arm/boot/compressed/Makefile +++ b/arch/arm/boot/compressed/Makefile | |||
@@ -27,7 +27,7 @@ OBJS += misc.o decompress.o | |||
27 | ifeq ($(CONFIG_DEBUG_UNCOMPRESS),y) | 27 | ifeq ($(CONFIG_DEBUG_UNCOMPRESS),y) |
28 | OBJS += debug.o | 28 | OBJS += debug.o |
29 | endif | 29 | endif |
30 | FONTC = $(srctree)/drivers/video/console/font_acorn_8x8.c | 30 | FONTC = $(srctree)/lib/fonts/font_acorn_8x8.c |
31 | 31 | ||
32 | # string library code (-Os is enforced to keep it much smaller) | 32 | # string library code (-Os is enforced to keep it much smaller) |
33 | OBJS += string.o | 33 | OBJS += string.o |
diff --git a/arch/avr32/mach-at32ap/at32ap700x.c b/arch/avr32/mach-at32ap/at32ap700x.c index 7c2f6685bf43..7f8759a8a92a 100644 --- a/arch/avr32/mach-at32ap/at32ap700x.c +++ b/arch/avr32/mach-at32ap/at32ap700x.c | |||
@@ -1060,7 +1060,9 @@ struct platform_device *__init at32_add_device_usart(unsigned int id) | |||
1060 | 1060 | ||
1061 | void __init at32_setup_serial_console(unsigned int usart_id) | 1061 | void __init at32_setup_serial_console(unsigned int usart_id) |
1062 | { | 1062 | { |
1063 | #ifdef CONFIG_SERIAL_ATMEL | ||
1063 | atmel_default_console_device = at32_usarts[usart_id]; | 1064 | atmel_default_console_device = at32_usarts[usart_id]; |
1065 | #endif | ||
1064 | } | 1066 | } |
1065 | 1067 | ||
1066 | /* -------------------------------------------------------------------- | 1068 | /* -------------------------------------------------------------------- |
diff --git a/arch/c6x/include/asm/Kbuild b/arch/c6x/include/asm/Kbuild index 4258b088aa93..e49f918531ad 100644 --- a/arch/c6x/include/asm/Kbuild +++ b/arch/c6x/include/asm/Kbuild | |||
@@ -55,3 +55,4 @@ generic-y += types.h | |||
55 | generic-y += ucontext.h | 55 | generic-y += ucontext.h |
56 | generic-y += user.h | 56 | generic-y += user.h |
57 | generic-y += vga.h | 57 | generic-y += vga.h |
58 | generic-y += xor.h | ||
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig index 8769a9045a54..9f3c54360e78 100644 --- a/arch/cris/Kconfig +++ b/arch/cris/Kconfig | |||
@@ -637,40 +637,10 @@ endchoice | |||
637 | 637 | ||
638 | endmenu | 638 | endmenu |
639 | 639 | ||
640 | source "drivers/base/Kconfig" | 640 | source "drivers/Kconfig" |
641 | |||
642 | # standard linux drivers | ||
643 | source "drivers/mtd/Kconfig" | ||
644 | |||
645 | source "drivers/parport/Kconfig" | ||
646 | |||
647 | source "drivers/pnp/Kconfig" | ||
648 | |||
649 | source "drivers/block/Kconfig" | ||
650 | |||
651 | source "drivers/ide/Kconfig" | ||
652 | |||
653 | source "drivers/net/Kconfig" | ||
654 | |||
655 | source "drivers/i2c/Kconfig" | ||
656 | |||
657 | source "drivers/rtc/Kconfig" | ||
658 | |||
659 | # | ||
660 | # input before char - char/joystick depends on it. As does USB. | ||
661 | # | ||
662 | source "drivers/input/Kconfig" | ||
663 | |||
664 | source "drivers/char/Kconfig" | ||
665 | 641 | ||
666 | source "fs/Kconfig" | 642 | source "fs/Kconfig" |
667 | 643 | ||
668 | source "drivers/usb/Kconfig" | ||
669 | |||
670 | source "drivers/uwb/Kconfig" | ||
671 | |||
672 | source "drivers/staging/Kconfig" | ||
673 | |||
674 | source "arch/cris/Kconfig.debug" | 644 | source "arch/cris/Kconfig.debug" |
675 | 645 | ||
676 | source "security/Kconfig" | 646 | source "security/Kconfig" |
diff --git a/arch/cris/arch-v10/kernel/kgdb.c b/arch/cris/arch-v10/kernel/kgdb.c index 37e6d2c50b76..22d846bfc570 100644 --- a/arch/cris/arch-v10/kernel/kgdb.c +++ b/arch/cris/arch-v10/kernel/kgdb.c | |||
@@ -230,46 +230,6 @@ struct register_image | |||
230 | unsigned int usp; /* 0x66 User mode stack pointer */ | 230 | unsigned int usp; /* 0x66 User mode stack pointer */ |
231 | } registers; | 231 | } registers; |
232 | 232 | ||
233 | /************** Prototypes for local library functions ***********************/ | ||
234 | |||
235 | /* Copy of strcpy from libc. */ | ||
236 | static char *gdb_cris_strcpy (char *s1, const char *s2); | ||
237 | |||
238 | /* Copy of strlen from libc. */ | ||
239 | static int gdb_cris_strlen (const char *s); | ||
240 | |||
241 | /* Copy of memchr from libc. */ | ||
242 | static void *gdb_cris_memchr (const void *s, int c, int n); | ||
243 | |||
244 | /* Copy of strtol from libc. Does only support base 16. */ | ||
245 | static int gdb_cris_strtol (const char *s, char **endptr, int base); | ||
246 | |||
247 | /********************** Prototypes for local functions. **********************/ | ||
248 | /* Copy the content of a register image into another. The size n is | ||
249 | the size of the register image. Due to struct assignment generation of | ||
250 | memcpy in libc. */ | ||
251 | static void copy_registers (registers *dptr, registers *sptr, int n); | ||
252 | |||
253 | /* Copy the stored registers from the stack. Put the register contents | ||
254 | of thread thread_id in the struct reg. */ | ||
255 | static void copy_registers_from_stack (int thread_id, registers *reg); | ||
256 | |||
257 | /* Copy the registers to the stack. Put the register contents of thread | ||
258 | thread_id from struct reg to the stack. */ | ||
259 | static void copy_registers_to_stack (int thread_id, registers *reg); | ||
260 | |||
261 | /* Write a value to a specified register regno in the register image | ||
262 | of the current thread. */ | ||
263 | static int write_register (int regno, char *val); | ||
264 | |||
265 | /* Write a value to a specified register in the stack of a thread other | ||
266 | than the current thread. */ | ||
267 | static int write_stack_register(int thread_id, int regno, char *valptr); | ||
268 | |||
269 | /* Read a value from a specified register in the register image. Returns the | ||
270 | status of the read operation. The register value is returned in valptr. */ | ||
271 | static int read_register (char regno, unsigned int *valptr); | ||
272 | |||
273 | /* Serial port, reads one character. ETRAX 100 specific. from debugport.c */ | 233 | /* Serial port, reads one character. ETRAX 100 specific. from debugport.c */ |
274 | int getDebugChar (void); | 234 | int getDebugChar (void); |
275 | 235 | ||
@@ -278,42 +238,6 @@ void putDebugChar (int val); | |||
278 | 238 | ||
279 | void enableDebugIRQ (void); | 239 | void enableDebugIRQ (void); |
280 | 240 | ||
281 | /* Returns the integer equivalent of a hexadecimal character. */ | ||
282 | static int hex (char ch); | ||
283 | |||
284 | /* Convert the memory, pointed to by mem into hexadecimal representation. | ||
285 | Put the result in buf, and return a pointer to the last character | ||
286 | in buf (null). */ | ||
287 | static char *mem2hex (char *buf, unsigned char *mem, int count); | ||
288 | |||
289 | /* Convert the array, in hexadecimal representation, pointed to by buf into | ||
290 | binary representation. Put the result in mem, and return a pointer to | ||
291 | the character after the last byte written. */ | ||
292 | static unsigned char *hex2mem (unsigned char *mem, char *buf, int count); | ||
293 | |||
294 | /* Put the content of the array, in binary representation, pointed to by buf | ||
295 | into memory pointed to by mem, and return a pointer to | ||
296 | the character after the last byte written. */ | ||
297 | static unsigned char *bin2mem (unsigned char *mem, unsigned char *buf, int count); | ||
298 | |||
299 | /* Await the sequence $<data>#<checksum> and store <data> in the array buffer | ||
300 | returned. */ | ||
301 | static void getpacket (char *buffer); | ||
302 | |||
303 | /* Send $<data>#<checksum> from the <data> in the array buffer. */ | ||
304 | static void putpacket (char *buffer); | ||
305 | |||
306 | /* Build and send a response packet in order to inform the host the | ||
307 | stub is stopped. */ | ||
308 | static void stub_is_stopped (int sigval); | ||
309 | |||
310 | /* All expected commands are sent from remote.c. Send a response according | ||
311 | to the description in remote.c. */ | ||
312 | static void handle_exception (int sigval); | ||
313 | |||
314 | /* Performs a complete re-start from scratch. ETRAX specific. */ | ||
315 | static void kill_restart (void); | ||
316 | |||
317 | /******************** Prototypes for global functions. ***********************/ | 241 | /******************** Prototypes for global functions. ***********************/ |
318 | 242 | ||
319 | /* The string str is prepended with the GDB printout token and sent. */ | 243 | /* The string str is prepended with the GDB printout token and sent. */ |
@@ -336,10 +260,6 @@ extern unsigned char executing_task; | |||
336 | /* The number of characters used for a 64 bit thread identifier. */ | 260 | /* The number of characters used for a 64 bit thread identifier. */ |
337 | #define HEXCHARS_IN_THREAD_ID 16 | 261 | #define HEXCHARS_IN_THREAD_ID 16 |
338 | 262 | ||
339 | /* Avoid warning as the internal_stack is not used in the C-code. */ | ||
340 | #define USEDVAR(name) { if (name) { ; } } | ||
341 | #define USEDFUN(name) { void (*pf)(void) = (void *)name; USEDVAR(pf) } | ||
342 | |||
343 | /********************************** Packet I/O ******************************/ | 263 | /********************************** Packet I/O ******************************/ |
344 | /* BUFMAX defines the maximum number of characters in | 264 | /* BUFMAX defines the maximum number of characters in |
345 | inbound/outbound buffers */ | 265 | inbound/outbound buffers */ |
@@ -405,7 +325,7 @@ static int register_size[] = | |||
405 | 325 | ||
406 | /* Contains the register image of the executing thread in the assembler | 326 | /* Contains the register image of the executing thread in the assembler |
407 | part of the code in order to avoid horrible addressing modes. */ | 327 | part of the code in order to avoid horrible addressing modes. */ |
408 | static registers reg; | 328 | registers cris_reg; |
409 | 329 | ||
410 | /* FIXME: Should this be used? Delete otherwise. */ | 330 | /* FIXME: Should this be used? Delete otherwise. */ |
411 | /* Contains the assumed consistency state of the register image. Uses the | 331 | /* Contains the assumed consistency state of the register image. Uses the |
@@ -413,7 +333,7 @@ static registers reg; | |||
413 | static int consistency_status = SUCCESS; | 333 | static int consistency_status = SUCCESS; |
414 | 334 | ||
415 | /********************************** Handle exceptions ************************/ | 335 | /********************************** Handle exceptions ************************/ |
416 | /* The variable reg contains the register image associated with the | 336 | /* The variable cris_reg contains the register image associated with the |
417 | current_thread_c variable. It is a complete register image created at | 337 | current_thread_c variable. It is a complete register image created at |
418 | entry. The reg_g contains a register image of a task where the general | 338 | entry. The reg_g contains a register image of a task where the general |
419 | registers are taken from the stack and all special registers are taken | 339 | registers are taken from the stack and all special registers are taken |
@@ -421,18 +341,10 @@ static int consistency_status = SUCCESS; | |||
421 | in order to provide access mainly for 'g', 'G' and 'P'. | 341 | in order to provide access mainly for 'g', 'G' and 'P'. |
422 | */ | 342 | */ |
423 | 343 | ||
424 | /* Need two task id pointers in order to handle Hct and Hgt commands. */ | ||
425 | static int current_thread_c = 0; | ||
426 | static int current_thread_g = 0; | ||
427 | |||
428 | /* Need two register images in order to handle Hct and Hgt commands. The | ||
429 | variable reg_g is in addition to reg above. */ | ||
430 | static registers reg_g; | ||
431 | |||
432 | /********************************** Breakpoint *******************************/ | 344 | /********************************** Breakpoint *******************************/ |
433 | /* Use an internal stack in the breakpoint and interrupt response routines */ | 345 | /* Use an internal stack in the breakpoint and interrupt response routines */ |
434 | #define INTERNAL_STACK_SIZE 1024 | 346 | #define INTERNAL_STACK_SIZE 1024 |
435 | static char internal_stack[INTERNAL_STACK_SIZE]; | 347 | char internal_stack[INTERNAL_STACK_SIZE]; |
436 | 348 | ||
437 | /* Due to the breakpoint return pointer, a state variable is needed to keep | 349 | /* Due to the breakpoint return pointer, a state variable is needed to keep |
438 | track of whether it is a static (compiled) or dynamic (gdb-invoked) | 350 | track of whether it is a static (compiled) or dynamic (gdb-invoked) |
@@ -500,164 +412,6 @@ gdb_cris_strtol (const char *s, char **endptr, int base) | |||
500 | return x; | 412 | return x; |
501 | } | 413 | } |
502 | 414 | ||
503 | /********************************* Register image ****************************/ | ||
504 | /* Copy the content of a register image into another. The size n is | ||
505 | the size of the register image. Due to struct assignment generation of | ||
506 | memcpy in libc. */ | ||
507 | static void | ||
508 | copy_registers (registers *dptr, registers *sptr, int n) | ||
509 | { | ||
510 | unsigned char *dreg; | ||
511 | unsigned char *sreg; | ||
512 | |||
513 | for (dreg = (unsigned char*)dptr, sreg = (unsigned char*)sptr; n > 0; n--) | ||
514 | *dreg++ = *sreg++; | ||
515 | } | ||
516 | |||
517 | #ifdef PROCESS_SUPPORT | ||
518 | /* Copy the stored registers from the stack. Put the register contents | ||
519 | of thread thread_id in the struct reg. */ | ||
520 | static void | ||
521 | copy_registers_from_stack (int thread_id, registers *regptr) | ||
522 | { | ||
523 | int j; | ||
524 | stack_registers *s = (stack_registers *)stack_list[thread_id]; | ||
525 | unsigned int *d = (unsigned int *)regptr; | ||
526 | |||
527 | for (j = 13; j >= 0; j--) | ||
528 | *d++ = s->r[j]; | ||
529 | regptr->sp = (unsigned int)stack_list[thread_id]; | ||
530 | regptr->pc = s->pc; | ||
531 | regptr->dccr = s->dccr; | ||
532 | regptr->srp = s->srp; | ||
533 | } | ||
534 | |||
535 | /* Copy the registers to the stack. Put the register contents of thread | ||
536 | thread_id from struct reg to the stack. */ | ||
537 | static void | ||
538 | copy_registers_to_stack (int thread_id, registers *regptr) | ||
539 | { | ||
540 | int i; | ||
541 | stack_registers *d = (stack_registers *)stack_list[thread_id]; | ||
542 | unsigned int *s = (unsigned int *)regptr; | ||
543 | |||
544 | for (i = 0; i < 14; i++) { | ||
545 | d->r[i] = *s++; | ||
546 | } | ||
547 | d->pc = regptr->pc; | ||
548 | d->dccr = regptr->dccr; | ||
549 | d->srp = regptr->srp; | ||
550 | } | ||
551 | #endif | ||
552 | |||
553 | /* Write a value to a specified register in the register image of the current | ||
554 | thread. Returns status code SUCCESS, E02 or E05. */ | ||
555 | static int | ||
556 | write_register (int regno, char *val) | ||
557 | { | ||
558 | int status = SUCCESS; | ||
559 | registers *current_reg = ® | ||
560 | |||
561 | if (regno >= R0 && regno <= PC) { | ||
562 | /* 32-bit register with simple offset. */ | ||
563 | hex2mem ((unsigned char *)current_reg + regno * sizeof(unsigned int), | ||
564 | val, sizeof(unsigned int)); | ||
565 | } | ||
566 | else if (regno == P0 || regno == VR || regno == P4 || regno == P8) { | ||
567 | /* Do not support read-only registers. */ | ||
568 | status = E02; | ||
569 | } | ||
570 | else if (regno == CCR) { | ||
571 | /* 16 bit register with complex offset. (P4 is read-only, P6 is not implemented, | ||
572 | and P7 (MOF) is 32 bits in ETRAX 100LX. */ | ||
573 | hex2mem ((unsigned char *)&(current_reg->ccr) + (regno-CCR) * sizeof(unsigned short), | ||
574 | val, sizeof(unsigned short)); | ||
575 | } | ||
576 | else if (regno >= MOF && regno <= USP) { | ||
577 | /* 32 bit register with complex offset. (P8 has been taken care of.) */ | ||
578 | hex2mem ((unsigned char *)&(current_reg->ibr) + (regno-IBR) * sizeof(unsigned int), | ||
579 | val, sizeof(unsigned int)); | ||
580 | } | ||
581 | else { | ||
582 | /* Do not support nonexisting or unimplemented registers (P2, P3, and P6). */ | ||
583 | status = E05; | ||
584 | } | ||
585 | return status; | ||
586 | } | ||
587 | |||
588 | #ifdef PROCESS_SUPPORT | ||
589 | /* Write a value to a specified register in the stack of a thread other | ||
590 | than the current thread. Returns status code SUCCESS or E07. */ | ||
591 | static int | ||
592 | write_stack_register (int thread_id, int regno, char *valptr) | ||
593 | { | ||
594 | int status = SUCCESS; | ||
595 | stack_registers *d = (stack_registers *)stack_list[thread_id]; | ||
596 | unsigned int val; | ||
597 | |||
598 | hex2mem ((unsigned char *)&val, valptr, sizeof(unsigned int)); | ||
599 | if (regno >= R0 && regno < SP) { | ||
600 | d->r[regno] = val; | ||
601 | } | ||
602 | else if (regno == SP) { | ||
603 | stack_list[thread_id] = val; | ||
604 | } | ||
605 | else if (regno == PC) { | ||
606 | d->pc = val; | ||
607 | } | ||
608 | else if (regno == SRP) { | ||
609 | d->srp = val; | ||
610 | } | ||
611 | else if (regno == DCCR) { | ||
612 | d->dccr = val; | ||
613 | } | ||
614 | else { | ||
615 | /* Do not support registers in the current thread. */ | ||
616 | status = E07; | ||
617 | } | ||
618 | return status; | ||
619 | } | ||
620 | #endif | ||
621 | |||
622 | /* Read a value from a specified register in the register image. Returns the | ||
623 | value in the register or -1 for non-implemented registers. | ||
624 | Should check consistency_status after a call which may be E05 after changes | ||
625 | in the implementation. */ | ||
626 | static int | ||
627 | read_register (char regno, unsigned int *valptr) | ||
628 | { | ||
629 | registers *current_reg = ® | ||
630 | |||
631 | if (regno >= R0 && regno <= PC) { | ||
632 | /* 32-bit register with simple offset. */ | ||
633 | *valptr = *(unsigned int *)((char *)current_reg + regno * sizeof(unsigned int)); | ||
634 | return SUCCESS; | ||
635 | } | ||
636 | else if (regno == P0 || regno == VR) { | ||
637 | /* 8 bit register with complex offset. */ | ||
638 | *valptr = (unsigned int)(*(unsigned char *) | ||
639 | ((char *)&(current_reg->p0) + (regno-P0) * sizeof(char))); | ||
640 | return SUCCESS; | ||
641 | } | ||
642 | else if (regno == P4 || regno == CCR) { | ||
643 | /* 16 bit register with complex offset. */ | ||
644 | *valptr = (unsigned int)(*(unsigned short *) | ||
645 | ((char *)&(current_reg->p4) + (regno-P4) * sizeof(unsigned short))); | ||
646 | return SUCCESS; | ||
647 | } | ||
648 | else if (regno >= MOF && regno <= USP) { | ||
649 | /* 32 bit register with complex offset. */ | ||
650 | *valptr = *(unsigned int *)((char *)&(current_reg->p8) | ||
651 | + (regno-P8) * sizeof(unsigned int)); | ||
652 | return SUCCESS; | ||
653 | } | ||
654 | else { | ||
655 | /* Do not support nonexisting or unimplemented registers (P2, P3, and P6). */ | ||
656 | consistency_status = E05; | ||
657 | return E05; | ||
658 | } | ||
659 | } | ||
660 | |||
661 | /********************************** Packet I/O ******************************/ | 415 | /********************************** Packet I/O ******************************/ |
662 | /* Returns the integer equivalent of a hexadecimal character. */ | 416 | /* Returns the integer equivalent of a hexadecimal character. */ |
663 | static int | 417 | static int |
@@ -676,8 +430,6 @@ hex (char ch) | |||
676 | Put the result in buf, and return a pointer to the last character | 430 | Put the result in buf, and return a pointer to the last character |
677 | in buf (null). */ | 431 | in buf (null). */ |
678 | 432 | ||
679 | static int do_printk = 0; | ||
680 | |||
681 | static char * | 433 | static char * |
682 | mem2hex(char *buf, unsigned char *mem, int count) | 434 | mem2hex(char *buf, unsigned char *mem, int count) |
683 | { | 435 | { |
@@ -761,7 +513,7 @@ getpacket (char *buffer) | |||
761 | xmitcsum = -1; | 513 | xmitcsum = -1; |
762 | count = 0; | 514 | count = 0; |
763 | /* Read until a # or the end of the buffer is reached */ | 515 | /* Read until a # or the end of the buffer is reached */ |
764 | while (count < BUFMAX) { | 516 | while (count < BUFMAX - 1) { |
765 | ch = getDebugChar (); | 517 | ch = getDebugChar (); |
766 | if (ch == '#') | 518 | if (ch == '#') |
767 | break; | 519 | break; |
@@ -845,6 +597,81 @@ putDebugString (const unsigned char *str, int length) | |||
845 | putpacket(remcomOutBuffer); | 597 | putpacket(remcomOutBuffer); |
846 | } | 598 | } |
847 | 599 | ||
600 | /********************************* Register image ****************************/ | ||
601 | /* Write a value to a specified register in the register image of the current | ||
602 | thread. Returns status code SUCCESS, E02 or E05. */ | ||
603 | static int | ||
604 | write_register (int regno, char *val) | ||
605 | { | ||
606 | int status = SUCCESS; | ||
607 | registers *current_reg = &cris_reg; | ||
608 | |||
609 | if (regno >= R0 && regno <= PC) { | ||
610 | /* 32-bit register with simple offset. */ | ||
611 | hex2mem ((unsigned char *)current_reg + regno * sizeof(unsigned int), | ||
612 | val, sizeof(unsigned int)); | ||
613 | } | ||
614 | else if (regno == P0 || regno == VR || regno == P4 || regno == P8) { | ||
615 | /* Do not support read-only registers. */ | ||
616 | status = E02; | ||
617 | } | ||
618 | else if (regno == CCR) { | ||
619 | /* 16 bit register with complex offset. (P4 is read-only, P6 is not implemented, | ||
620 | and P7 (MOF) is 32 bits in ETRAX 100LX. */ | ||
621 | hex2mem ((unsigned char *)&(current_reg->ccr) + (regno-CCR) * sizeof(unsigned short), | ||
622 | val, sizeof(unsigned short)); | ||
623 | } | ||
624 | else if (regno >= MOF && regno <= USP) { | ||
625 | /* 32 bit register with complex offset. (P8 has been taken care of.) */ | ||
626 | hex2mem ((unsigned char *)&(current_reg->ibr) + (regno-IBR) * sizeof(unsigned int), | ||
627 | val, sizeof(unsigned int)); | ||
628 | } | ||
629 | else { | ||
630 | /* Do not support nonexisting or unimplemented registers (P2, P3, and P6). */ | ||
631 | status = E05; | ||
632 | } | ||
633 | return status; | ||
634 | } | ||
635 | |||
636 | /* Read a value from a specified register in the register image. Returns the | ||
637 | value in the register or -1 for non-implemented registers. | ||
638 | Should check consistency_status after a call which may be E05 after changes | ||
639 | in the implementation. */ | ||
640 | static int | ||
641 | read_register (char regno, unsigned int *valptr) | ||
642 | { | ||
643 | registers *current_reg = &cris_reg; | ||
644 | |||
645 | if (regno >= R0 && regno <= PC) { | ||
646 | /* 32-bit register with simple offset. */ | ||
647 | *valptr = *(unsigned int *)((char *)current_reg + regno * sizeof(unsigned int)); | ||
648 | return SUCCESS; | ||
649 | } | ||
650 | else if (regno == P0 || regno == VR) { | ||
651 | /* 8 bit register with complex offset. */ | ||
652 | *valptr = (unsigned int)(*(unsigned char *) | ||
653 | ((char *)&(current_reg->p0) + (regno-P0) * sizeof(char))); | ||
654 | return SUCCESS; | ||
655 | } | ||
656 | else if (regno == P4 || regno == CCR) { | ||
657 | /* 16 bit register with complex offset. */ | ||
658 | *valptr = (unsigned int)(*(unsigned short *) | ||
659 | ((char *)&(current_reg->p4) + (regno-P4) * sizeof(unsigned short))); | ||
660 | return SUCCESS; | ||
661 | } | ||
662 | else if (regno >= MOF && regno <= USP) { | ||
663 | /* 32 bit register with complex offset. */ | ||
664 | *valptr = *(unsigned int *)((char *)&(current_reg->p8) | ||
665 | + (regno-P8) * sizeof(unsigned int)); | ||
666 | return SUCCESS; | ||
667 | } | ||
668 | else { | ||
669 | /* Do not support nonexisting or unimplemented registers (P2, P3, and P6). */ | ||
670 | consistency_status = E05; | ||
671 | return E05; | ||
672 | } | ||
673 | } | ||
674 | |||
848 | /********************************** Handle exceptions ************************/ | 675 | /********************************** Handle exceptions ************************/ |
849 | /* Build and send a response packet in order to inform the host the | 676 | /* Build and send a response packet in order to inform the host the |
850 | stub is stopped. TAAn...:r...;n...:r...;n...:r...; | 677 | stub is stopped. TAAn...:r...;n...:r...;n...:r...; |
@@ -891,26 +718,6 @@ stub_is_stopped(int sigval) | |||
891 | 718 | ||
892 | } | 719 | } |
893 | 720 | ||
894 | #ifdef PROCESS_SUPPORT | ||
895 | /* Store the registers of the executing thread. Assume that both step, | ||
896 | continue, and register content requests are with respect to this | ||
897 | thread. The executing task is from the operating system scheduler. */ | ||
898 | |||
899 | current_thread_c = executing_task; | ||
900 | current_thread_g = executing_task; | ||
901 | |||
902 | /* A struct assignment translates into a libc memcpy call. Avoid | ||
903 | all libc functions in order to prevent recursive break points. */ | ||
904 | copy_registers (®_g, ®, sizeof(registers)); | ||
905 | |||
906 | /* Store thread:r...; with the executing task TID. */ | ||
907 | gdb_cris_strcpy (&remcomOutBuffer[pos], "thread:"); | ||
908 | pos += gdb_cris_strlen ("thread:"); | ||
909 | remcomOutBuffer[pos++] = hex_asc_hi(executing_task); | ||
910 | remcomOutBuffer[pos++] = hex_asc_lo(executing_task); | ||
911 | gdb_cris_strcpy (&remcomOutBuffer[pos], ";"); | ||
912 | #endif | ||
913 | |||
914 | /* null-terminate and send it off */ | 721 | /* null-terminate and send it off */ |
915 | 722 | ||
916 | *ptr = 0; | 723 | *ptr = 0; |
@@ -918,16 +725,18 @@ stub_is_stopped(int sigval) | |||
918 | putpacket (remcomOutBuffer); | 725 | putpacket (remcomOutBuffer); |
919 | } | 726 | } |
920 | 727 | ||
728 | /* Performs a complete re-start from scratch. */ | ||
729 | static void | ||
730 | kill_restart (void) | ||
731 | { | ||
732 | machine_restart(""); | ||
733 | } | ||
734 | |||
921 | /* All expected commands are sent from remote.c. Send a response according | 735 | /* All expected commands are sent from remote.c. Send a response according |
922 | to the description in remote.c. */ | 736 | to the description in remote.c. */ |
923 | static void | 737 | void |
924 | handle_exception (int sigval) | 738 | handle_exception (int sigval) |
925 | { | 739 | { |
926 | /* Avoid warning of not used. */ | ||
927 | |||
928 | USEDFUN(handle_exception); | ||
929 | USEDVAR(internal_stack[0]); | ||
930 | |||
931 | /* Send response. */ | 740 | /* Send response. */ |
932 | 741 | ||
933 | stub_is_stopped (sigval); | 742 | stub_is_stopped (sigval); |
@@ -943,19 +752,7 @@ handle_exception (int sigval) | |||
943 | in a register are in the same order the machine uses. | 752 | in a register are in the same order the machine uses. |
944 | Failure: void. */ | 753 | Failure: void. */ |
945 | 754 | ||
946 | { | 755 | mem2hex(remcomOutBuffer, (char *)&cris_reg, sizeof(registers)); |
947 | #ifdef PROCESS_SUPPORT | ||
948 | /* Use the special register content in the executing thread. */ | ||
949 | copy_registers (®_g, ®, sizeof(registers)); | ||
950 | /* Replace the content available on the stack. */ | ||
951 | if (current_thread_g != executing_task) { | ||
952 | copy_registers_from_stack (current_thread_g, ®_g); | ||
953 | } | ||
954 | mem2hex ((unsigned char *)remcomOutBuffer, (unsigned char *)®_g, sizeof(registers)); | ||
955 | #else | ||
956 | mem2hex(remcomOutBuffer, (char *)®, sizeof(registers)); | ||
957 | #endif | ||
958 | } | ||
959 | break; | 756 | break; |
960 | 757 | ||
961 | case 'G': | 758 | case 'G': |
@@ -963,17 +760,7 @@ handle_exception (int sigval) | |||
963 | Each byte of register data is described by two hex digits. | 760 | Each byte of register data is described by two hex digits. |
964 | Success: OK | 761 | Success: OK |
965 | Failure: void. */ | 762 | Failure: void. */ |
966 | #ifdef PROCESS_SUPPORT | 763 | hex2mem((char *)&cris_reg, &remcomInBuffer[1], sizeof(registers)); |
967 | hex2mem ((unsigned char *)®_g, &remcomInBuffer[1], sizeof(registers)); | ||
968 | if (current_thread_g == executing_task) { | ||
969 | copy_registers (®, ®_g, sizeof(registers)); | ||
970 | } | ||
971 | else { | ||
972 | copy_registers_to_stack(current_thread_g, ®_g); | ||
973 | } | ||
974 | #else | ||
975 | hex2mem((char *)®, &remcomInBuffer[1], sizeof(registers)); | ||
976 | #endif | ||
977 | gdb_cris_strcpy (remcomOutBuffer, "OK"); | 764 | gdb_cris_strcpy (remcomOutBuffer, "OK"); |
978 | break; | 765 | break; |
979 | 766 | ||
@@ -989,12 +776,7 @@ handle_exception (int sigval) | |||
989 | char *suffix; | 776 | char *suffix; |
990 | int regno = gdb_cris_strtol (&remcomInBuffer[1], &suffix, 16); | 777 | int regno = gdb_cris_strtol (&remcomInBuffer[1], &suffix, 16); |
991 | int status; | 778 | int status; |
992 | #ifdef PROCESS_SUPPORT | 779 | status = write_register (regno, suffix+1); |
993 | if (current_thread_g != executing_task) | ||
994 | status = write_stack_register (current_thread_g, regno, suffix+1); | ||
995 | else | ||
996 | #endif | ||
997 | status = write_register (regno, suffix+1); | ||
998 | 780 | ||
999 | switch (status) { | 781 | switch (status) { |
1000 | case E02: | 782 | case E02: |
@@ -1073,7 +855,7 @@ handle_exception (int sigval) | |||
1073 | Success: return to the executing thread. | 855 | Success: return to the executing thread. |
1074 | Failure: will never know. */ | 856 | Failure: will never know. */ |
1075 | if (remcomInBuffer[1] != '\0') { | 857 | if (remcomInBuffer[1] != '\0') { |
1076 | reg.pc = gdb_cris_strtol (&remcomInBuffer[1], 0, 16); | 858 | cris_reg.pc = gdb_cris_strtol (&remcomInBuffer[1], 0, 16); |
1077 | } | 859 | } |
1078 | enableDebugIRQ(); | 860 | enableDebugIRQ(); |
1079 | return; | 861 | return; |
@@ -1129,119 +911,6 @@ handle_exception (int sigval) | |||
1129 | Not supported: E04 */ | 911 | Not supported: E04 */ |
1130 | gdb_cris_strcpy (remcomOutBuffer, error_message[E04]); | 912 | gdb_cris_strcpy (remcomOutBuffer, error_message[E04]); |
1131 | break; | 913 | break; |
1132 | #ifdef PROCESS_SUPPORT | ||
1133 | |||
1134 | case 'T': | ||
1135 | /* Thread alive. TXX | ||
1136 | Is thread XX alive? | ||
1137 | Success: OK, thread XX is alive. | ||
1138 | Failure: E03, thread XX is dead. */ | ||
1139 | { | ||
1140 | int thread_id = (int)gdb_cris_strtol (&remcomInBuffer[1], 0, 16); | ||
1141 | /* Cannot tell whether it is alive or not. */ | ||
1142 | if (thread_id >= 0 && thread_id < number_of_tasks) | ||
1143 | gdb_cris_strcpy (remcomOutBuffer, "OK"); | ||
1144 | } | ||
1145 | break; | ||
1146 | |||
1147 | case 'H': | ||
1148 | /* Set thread for subsequent operations: Hct | ||
1149 | c = 'c' for thread used in step and continue; | ||
1150 | t can be -1 for all threads. | ||
1151 | c = 'g' for thread used in other operations. | ||
1152 | t = 0 means pick any thread. | ||
1153 | Success: OK | ||
1154 | Failure: E01 */ | ||
1155 | { | ||
1156 | int thread_id = gdb_cris_strtol (&remcomInBuffer[2], 0, 16); | ||
1157 | if (remcomInBuffer[1] == 'c') { | ||
1158 | /* c = 'c' for thread used in step and continue */ | ||
1159 | /* Do not change current_thread_c here. It would create a mess in | ||
1160 | the scheduler. */ | ||
1161 | gdb_cris_strcpy (remcomOutBuffer, "OK"); | ||
1162 | } | ||
1163 | else if (remcomInBuffer[1] == 'g') { | ||
1164 | /* c = 'g' for thread used in other operations. | ||
1165 | t = 0 means pick any thread. Impossible since the scheduler does | ||
1166 | not allow that. */ | ||
1167 | if (thread_id >= 0 && thread_id < number_of_tasks) { | ||
1168 | current_thread_g = thread_id; | ||
1169 | gdb_cris_strcpy (remcomOutBuffer, "OK"); | ||
1170 | } | ||
1171 | else { | ||
1172 | /* Not expected - send an error message. */ | ||
1173 | gdb_cris_strcpy (remcomOutBuffer, error_message[E01]); | ||
1174 | } | ||
1175 | } | ||
1176 | else { | ||
1177 | /* Not expected - send an error message. */ | ||
1178 | gdb_cris_strcpy (remcomOutBuffer, error_message[E01]); | ||
1179 | } | ||
1180 | } | ||
1181 | break; | ||
1182 | |||
1183 | case 'q': | ||
1184 | case 'Q': | ||
1185 | /* Query of general interest. qXXXX | ||
1186 | Set general value XXXX. QXXXX=yyyy */ | ||
1187 | { | ||
1188 | int pos; | ||
1189 | int nextpos; | ||
1190 | int thread_id; | ||
1191 | |||
1192 | switch (remcomInBuffer[1]) { | ||
1193 | case 'C': | ||
1194 | /* Identify the remote current thread. */ | ||
1195 | gdb_cris_strcpy (&remcomOutBuffer[0], "QC"); | ||
1196 | remcomOutBuffer[2] = hex_asc_hi(current_thread_c); | ||
1197 | remcomOutBuffer[3] = hex_asc_lo(current_thread_c); | ||
1198 | remcomOutBuffer[4] = '\0'; | ||
1199 | break; | ||
1200 | case 'L': | ||
1201 | gdb_cris_strcpy (&remcomOutBuffer[0], "QM"); | ||
1202 | /* Reply with number of threads. */ | ||
1203 | if (os_is_started()) { | ||
1204 | remcomOutBuffer[2] = hex_asc_hi(number_of_tasks); | ||
1205 | remcomOutBuffer[3] = hex_asc_lo(number_of_tasks); | ||
1206 | } | ||
1207 | else { | ||
1208 | remcomOutBuffer[2] = hex_asc_hi(0); | ||
1209 | remcomOutBuffer[3] = hex_asc_lo(1); | ||
1210 | } | ||
1211 | /* Done with the reply. */ | ||
1212 | remcomOutBuffer[4] = hex_asc_lo(1); | ||
1213 | pos = 5; | ||
1214 | /* Expects the argument thread id. */ | ||
1215 | for (; pos < (5 + HEXCHARS_IN_THREAD_ID); pos++) | ||
1216 | remcomOutBuffer[pos] = remcomInBuffer[pos]; | ||
1217 | /* Reply with the thread identifiers. */ | ||
1218 | if (os_is_started()) { | ||
1219 | /* Store the thread identifiers of all tasks. */ | ||
1220 | for (thread_id = 0; thread_id < number_of_tasks; thread_id++) { | ||
1221 | nextpos = pos + HEXCHARS_IN_THREAD_ID - 1; | ||
1222 | for (; pos < nextpos; pos ++) | ||
1223 | remcomOutBuffer[pos] = hex_asc_lo(0); | ||
1224 | remcomOutBuffer[pos++] = hex_asc_lo(thread_id); | ||
1225 | } | ||
1226 | } | ||
1227 | else { | ||
1228 | /* Store the thread identifier of the boot task. */ | ||
1229 | nextpos = pos + HEXCHARS_IN_THREAD_ID - 1; | ||
1230 | for (; pos < nextpos; pos ++) | ||
1231 | remcomOutBuffer[pos] = hex_asc_lo(0); | ||
1232 | remcomOutBuffer[pos++] = hex_asc_lo(current_thread_c); | ||
1233 | } | ||
1234 | remcomOutBuffer[pos] = '\0'; | ||
1235 | break; | ||
1236 | default: | ||
1237 | /* Not supported: "" */ | ||
1238 | /* Request information about section offsets: qOffsets. */ | ||
1239 | remcomOutBuffer[0] = 0; | ||
1240 | break; | ||
1241 | } | ||
1242 | } | ||
1243 | break; | ||
1244 | #endif /* PROCESS_SUPPORT */ | ||
1245 | 914 | ||
1246 | default: | 915 | default: |
1247 | /* The stub should ignore other request and send an empty | 916 | /* The stub should ignore other request and send an empty |
@@ -1254,13 +923,6 @@ handle_exception (int sigval) | |||
1254 | } | 923 | } |
1255 | } | 924 | } |
1256 | 925 | ||
1257 | /* Performs a complete re-start from scratch. */ | ||
1258 | static void | ||
1259 | kill_restart () | ||
1260 | { | ||
1261 | machine_restart(""); | ||
1262 | } | ||
1263 | |||
1264 | /********************************** Breakpoint *******************************/ | 926 | /********************************** Breakpoint *******************************/ |
1265 | /* The hook for both a static (compiled) and a dynamic breakpoint set by GDB. | 927 | /* The hook for both a static (compiled) and a dynamic breakpoint set by GDB. |
1266 | An internal stack is used by the stub. The register image of the caller is | 928 | An internal stack is used by the stub. The register image of the caller is |
@@ -1270,93 +932,93 @@ kill_restart () | |||
1270 | 932 | ||
1271 | void kgdb_handle_breakpoint(void); | 933 | void kgdb_handle_breakpoint(void); |
1272 | 934 | ||
1273 | asm (" | 935 | asm ("\n" |
1274 | .global kgdb_handle_breakpoint | 936 | " .global kgdb_handle_breakpoint\n" |
1275 | kgdb_handle_breakpoint: | 937 | "kgdb_handle_breakpoint:\n" |
1276 | ;; | 938 | ";;\n" |
1277 | ;; Response to the break-instruction | 939 | ";; Response to the break-instruction\n" |
1278 | ;; | 940 | ";;\n" |
1279 | ;; Create a register image of the caller | 941 | ";; Create a register image of the caller\n" |
1280 | ;; | 942 | ";;\n" |
1281 | move $dccr,[reg+0x5E] ; Save the flags in DCCR before disable interrupts | 943 | " move $dccr,[cris_reg+0x5E] ; Save the flags in DCCR before disable interrupts\n" |
1282 | di ; Disable interrupts | 944 | " di ; Disable interrupts\n" |
1283 | move.d $r0,[reg] ; Save R0 | 945 | " move.d $r0,[cris_reg] ; Save R0\n" |
1284 | move.d $r1,[reg+0x04] ; Save R1 | 946 | " move.d $r1,[cris_reg+0x04] ; Save R1\n" |
1285 | move.d $r2,[reg+0x08] ; Save R2 | 947 | " move.d $r2,[cris_reg+0x08] ; Save R2\n" |
1286 | move.d $r3,[reg+0x0C] ; Save R3 | 948 | " move.d $r3,[cris_reg+0x0C] ; Save R3\n" |
1287 | move.d $r4,[reg+0x10] ; Save R4 | 949 | " move.d $r4,[cris_reg+0x10] ; Save R4\n" |
1288 | move.d $r5,[reg+0x14] ; Save R5 | 950 | " move.d $r5,[cris_reg+0x14] ; Save R5\n" |
1289 | move.d $r6,[reg+0x18] ; Save R6 | 951 | " move.d $r6,[cris_reg+0x18] ; Save R6\n" |
1290 | move.d $r7,[reg+0x1C] ; Save R7 | 952 | " move.d $r7,[cris_reg+0x1C] ; Save R7\n" |
1291 | move.d $r8,[reg+0x20] ; Save R8 | 953 | " move.d $r8,[cris_reg+0x20] ; Save R8\n" |
1292 | move.d $r9,[reg+0x24] ; Save R9 | 954 | " move.d $r9,[cris_reg+0x24] ; Save R9\n" |
1293 | move.d $r10,[reg+0x28] ; Save R10 | 955 | " move.d $r10,[cris_reg+0x28] ; Save R10\n" |
1294 | move.d $r11,[reg+0x2C] ; Save R11 | 956 | " move.d $r11,[cris_reg+0x2C] ; Save R11\n" |
1295 | move.d $r12,[reg+0x30] ; Save R12 | 957 | " move.d $r12,[cris_reg+0x30] ; Save R12\n" |
1296 | move.d $r13,[reg+0x34] ; Save R13 | 958 | " move.d $r13,[cris_reg+0x34] ; Save R13\n" |
1297 | move.d $sp,[reg+0x38] ; Save SP (R14) | 959 | " move.d $sp,[cris_reg+0x38] ; Save SP (R14)\n" |
1298 | ;; Due to the old assembler-versions BRP might not be recognized | 960 | ";; Due to the old assembler-versions BRP might not be recognized\n" |
1299 | .word 0xE670 ; move brp,$r0 | 961 | " .word 0xE670 ; move brp,$r0\n" |
1300 | subq 2,$r0 ; Set to address of previous instruction. | 962 | " subq 2,$r0 ; Set to address of previous instruction.\n" |
1301 | move.d $r0,[reg+0x3c] ; Save the address in PC (R15) | 963 | " move.d $r0,[cris_reg+0x3c] ; Save the address in PC (R15)\n" |
1302 | clear.b [reg+0x40] ; Clear P0 | 964 | " clear.b [cris_reg+0x40] ; Clear P0\n" |
1303 | move $vr,[reg+0x41] ; Save special register P1 | 965 | " move $vr,[cris_reg+0x41] ; Save special register P1\n" |
1304 | clear.w [reg+0x42] ; Clear P4 | 966 | " clear.w [cris_reg+0x42] ; Clear P4\n" |
1305 | move $ccr,[reg+0x44] ; Save special register CCR | 967 | " move $ccr,[cris_reg+0x44] ; Save special register CCR\n" |
1306 | move $mof,[reg+0x46] ; P7 | 968 | " move $mof,[cris_reg+0x46] ; P7\n" |
1307 | clear.d [reg+0x4A] ; Clear P8 | 969 | " clear.d [cris_reg+0x4A] ; Clear P8\n" |
1308 | move $ibr,[reg+0x4E] ; P9, | 970 | " move $ibr,[cris_reg+0x4E] ; P9,\n" |
1309 | move $irp,[reg+0x52] ; P10, | 971 | " move $irp,[cris_reg+0x52] ; P10,\n" |
1310 | move $srp,[reg+0x56] ; P11, | 972 | " move $srp,[cris_reg+0x56] ; P11,\n" |
1311 | move $dtp0,[reg+0x5A] ; P12, register BAR, assembler might not know BAR | 973 | " move $dtp0,[cris_reg+0x5A] ; P12, register BAR, assembler might not know BAR\n" |
1312 | ; P13, register DCCR already saved | 974 | " ; P13, register DCCR already saved\n" |
1313 | ;; Due to the old assembler-versions BRP might not be recognized | 975 | ";; Due to the old assembler-versions BRP might not be recognized\n" |
1314 | .word 0xE670 ; move brp,r0 | 976 | " .word 0xE670 ; move brp,r0\n" |
1315 | ;; Static (compiled) breakpoints must return to the next instruction in order | 977 | ";; Static (compiled) breakpoints must return to the next instruction in order\n" |
1316 | ;; to avoid infinite loops. Dynamic (gdb-invoked) must restore the instruction | 978 | ";; to avoid infinite loops. Dynamic (gdb-invoked) must restore the instruction\n" |
1317 | ;; in order to execute it when execution is continued. | 979 | ";; in order to execute it when execution is continued.\n" |
1318 | test.b [is_dyn_brkp] ; Is this a dynamic breakpoint? | 980 | " test.b [is_dyn_brkp] ; Is this a dynamic breakpoint?\n" |
1319 | beq is_static ; No, a static breakpoint | 981 | " beq is_static ; No, a static breakpoint\n" |
1320 | nop | 982 | " nop\n" |
1321 | subq 2,$r0 ; rerun the instruction the break replaced | 983 | " subq 2,$r0 ; rerun the instruction the break replaced\n" |
1322 | is_static: | 984 | "is_static:\n" |
1323 | moveq 1,$r1 | 985 | " moveq 1,$r1\n" |
1324 | move.b $r1,[is_dyn_brkp] ; Set the state variable to dynamic breakpoint | 986 | " move.b $r1,[is_dyn_brkp] ; Set the state variable to dynamic breakpoint\n" |
1325 | move.d $r0,[reg+0x62] ; Save the return address in BRP | 987 | " move.d $r0,[cris_reg+0x62] ; Save the return address in BRP\n" |
1326 | move $usp,[reg+0x66] ; USP | 988 | " move $usp,[cris_reg+0x66] ; USP\n" |
1327 | ;; | 989 | ";;\n" |
1328 | ;; Handle the communication | 990 | ";; Handle the communication\n" |
1329 | ;; | 991 | ";;\n" |
1330 | move.d internal_stack+1020,$sp ; Use the internal stack which grows upward | 992 | " move.d internal_stack+1020,$sp ; Use the internal stack which grows upward\n" |
1331 | moveq 5,$r10 ; SIGTRAP | 993 | " moveq 5,$r10 ; SIGTRAP\n" |
1332 | jsr handle_exception ; Interactive routine | 994 | " jsr handle_exception ; Interactive routine\n" |
1333 | ;; | 995 | ";;\n" |
1334 | ;; Return to the caller | 996 | ";; Return to the caller\n" |
1335 | ;; | 997 | ";;\n" |
1336 | move.d [reg],$r0 ; Restore R0 | 998 | " move.d [cris_reg],$r0 ; Restore R0\n" |
1337 | move.d [reg+0x04],$r1 ; Restore R1 | 999 | " move.d [cris_reg+0x04],$r1 ; Restore R1\n" |
1338 | move.d [reg+0x08],$r2 ; Restore R2 | 1000 | " move.d [cris_reg+0x08],$r2 ; Restore R2\n" |
1339 | move.d [reg+0x0C],$r3 ; Restore R3 | 1001 | " move.d [cris_reg+0x0C],$r3 ; Restore R3\n" |
1340 | move.d [reg+0x10],$r4 ; Restore R4 | 1002 | " move.d [cris_reg+0x10],$r4 ; Restore R4\n" |
1341 | move.d [reg+0x14],$r5 ; Restore R5 | 1003 | " move.d [cris_reg+0x14],$r5 ; Restore R5\n" |
1342 | move.d [reg+0x18],$r6 ; Restore R6 | 1004 | " move.d [cris_reg+0x18],$r6 ; Restore R6\n" |
1343 | move.d [reg+0x1C],$r7 ; Restore R7 | 1005 | " move.d [cris_reg+0x1C],$r7 ; Restore R7\n" |
1344 | move.d [reg+0x20],$r8 ; Restore R8 | 1006 | " move.d [cris_reg+0x20],$r8 ; Restore R8\n" |
1345 | move.d [reg+0x24],$r9 ; Restore R9 | 1007 | " move.d [cris_reg+0x24],$r9 ; Restore R9\n" |
1346 | move.d [reg+0x28],$r10 ; Restore R10 | 1008 | " move.d [cris_reg+0x28],$r10 ; Restore R10\n" |
1347 | move.d [reg+0x2C],$r11 ; Restore R11 | 1009 | " move.d [cris_reg+0x2C],$r11 ; Restore R11\n" |
1348 | move.d [reg+0x30],$r12 ; Restore R12 | 1010 | " move.d [cris_reg+0x30],$r12 ; Restore R12\n" |
1349 | move.d [reg+0x34],$r13 ; Restore R13 | 1011 | " move.d [cris_reg+0x34],$r13 ; Restore R13\n" |
1350 | ;; | 1012 | ";;\n" |
1351 | ;; FIXME: Which registers should be restored? | 1013 | ";; FIXME: Which registers should be restored?\n" |
1352 | ;; | 1014 | ";;\n" |
1353 | move.d [reg+0x38],$sp ; Restore SP (R14) | 1015 | " move.d [cris_reg+0x38],$sp ; Restore SP (R14)\n" |
1354 | move [reg+0x56],$srp ; Restore the subroutine return pointer. | 1016 | " move [cris_reg+0x56],$srp ; Restore the subroutine return pointer.\n" |
1355 | move [reg+0x5E],$dccr ; Restore DCCR | 1017 | " move [cris_reg+0x5E],$dccr ; Restore DCCR\n" |
1356 | move [reg+0x66],$usp ; Restore USP | 1018 | " move [cris_reg+0x66],$usp ; Restore USP\n" |
1357 | jump [reg+0x62] ; A jump to the content in register BRP works. | 1019 | " jump [cris_reg+0x62] ; A jump to the content in register BRP works.\n" |
1358 | nop ; | 1020 | " nop ;\n" |
1359 | "); | 1021 | "\n"); |
1360 | 1022 | ||
1361 | /* The hook for an interrupt generated by GDB. An internal stack is used | 1023 | /* The hook for an interrupt generated by GDB. An internal stack is used |
1362 | by the stub. The register image of the caller is stored in the structure | 1024 | by the stub. The register image of the caller is stored in the structure |
@@ -1367,94 +1029,94 @@ is_static: | |||
1367 | 1029 | ||
1368 | void kgdb_handle_serial(void); | 1030 | void kgdb_handle_serial(void); |
1369 | 1031 | ||
1370 | asm (" | 1032 | asm ("\n" |
1371 | .global kgdb_handle_serial | 1033 | " .global kgdb_handle_serial\n" |
1372 | kgdb_handle_serial: | 1034 | "kgdb_handle_serial:\n" |
1373 | ;; | 1035 | ";;\n" |
1374 | ;; Response to a serial interrupt | 1036 | ";; Response to a serial interrupt\n" |
1375 | ;; | 1037 | ";;\n" |
1376 | 1038 | "\n" | |
1377 | move $dccr,[reg+0x5E] ; Save the flags in DCCR | 1039 | " move $dccr,[cris_reg+0x5E] ; Save the flags in DCCR\n" |
1378 | di ; Disable interrupts | 1040 | " di ; Disable interrupts\n" |
1379 | move.d $r0,[reg] ; Save R0 | 1041 | " move.d $r0,[cris_reg] ; Save R0\n" |
1380 | move.d $r1,[reg+0x04] ; Save R1 | 1042 | " move.d $r1,[cris_reg+0x04] ; Save R1\n" |
1381 | move.d $r2,[reg+0x08] ; Save R2 | 1043 | " move.d $r2,[cris_reg+0x08] ; Save R2\n" |
1382 | move.d $r3,[reg+0x0C] ; Save R3 | 1044 | " move.d $r3,[cris_reg+0x0C] ; Save R3\n" |
1383 | move.d $r4,[reg+0x10] ; Save R4 | 1045 | " move.d $r4,[cris_reg+0x10] ; Save R4\n" |
1384 | move.d $r5,[reg+0x14] ; Save R5 | 1046 | " move.d $r5,[cris_reg+0x14] ; Save R5\n" |
1385 | move.d $r6,[reg+0x18] ; Save R6 | 1047 | " move.d $r6,[cris_reg+0x18] ; Save R6\n" |
1386 | move.d $r7,[reg+0x1C] ; Save R7 | 1048 | " move.d $r7,[cris_reg+0x1C] ; Save R7\n" |
1387 | move.d $r8,[reg+0x20] ; Save R8 | 1049 | " move.d $r8,[cris_reg+0x20] ; Save R8\n" |
1388 | move.d $r9,[reg+0x24] ; Save R9 | 1050 | " move.d $r9,[cris_reg+0x24] ; Save R9\n" |
1389 | move.d $r10,[reg+0x28] ; Save R10 | 1051 | " move.d $r10,[cris_reg+0x28] ; Save R10\n" |
1390 | move.d $r11,[reg+0x2C] ; Save R11 | 1052 | " move.d $r11,[cris_reg+0x2C] ; Save R11\n" |
1391 | move.d $r12,[reg+0x30] ; Save R12 | 1053 | " move.d $r12,[cris_reg+0x30] ; Save R12\n" |
1392 | move.d $r13,[reg+0x34] ; Save R13 | 1054 | " move.d $r13,[cris_reg+0x34] ; Save R13\n" |
1393 | move.d $sp,[reg+0x38] ; Save SP (R14) | 1055 | " move.d $sp,[cris_reg+0x38] ; Save SP (R14)\n" |
1394 | move $irp,[reg+0x3c] ; Save the address in PC (R15) | 1056 | " move $irp,[cris_reg+0x3c] ; Save the address in PC (R15)\n" |
1395 | clear.b [reg+0x40] ; Clear P0 | 1057 | " clear.b [cris_reg+0x40] ; Clear P0\n" |
1396 | move $vr,[reg+0x41] ; Save special register P1, | 1058 | " move $vr,[cris_reg+0x41] ; Save special register P1,\n" |
1397 | clear.w [reg+0x42] ; Clear P4 | 1059 | " clear.w [cris_reg+0x42] ; Clear P4\n" |
1398 | move $ccr,[reg+0x44] ; Save special register CCR | 1060 | " move $ccr,[cris_reg+0x44] ; Save special register CCR\n" |
1399 | move $mof,[reg+0x46] ; P7 | 1061 | " move $mof,[cris_reg+0x46] ; P7\n" |
1400 | clear.d [reg+0x4A] ; Clear P8 | 1062 | " clear.d [cris_reg+0x4A] ; Clear P8\n" |
1401 | move $ibr,[reg+0x4E] ; P9, | 1063 | " move $ibr,[cris_reg+0x4E] ; P9,\n" |
1402 | move $irp,[reg+0x52] ; P10, | 1064 | " move $irp,[cris_reg+0x52] ; P10,\n" |
1403 | move $srp,[reg+0x56] ; P11, | 1065 | " move $srp,[cris_reg+0x56] ; P11,\n" |
1404 | move $dtp0,[reg+0x5A] ; P12, register BAR, assembler might not know BAR | 1066 | " move $dtp0,[cris_reg+0x5A] ; P12, register BAR, assembler might not know BAR\n" |
1405 | ; P13, register DCCR already saved | 1067 | " ; P13, register DCCR already saved\n" |
1406 | ;; Due to the old assembler-versions BRP might not be recognized | 1068 | ";; Due to the old assembler-versions BRP might not be recognized\n" |
1407 | .word 0xE670 ; move brp,r0 | 1069 | " .word 0xE670 ; move brp,r0\n" |
1408 | move.d $r0,[reg+0x62] ; Save the return address in BRP | 1070 | " move.d $r0,[cris_reg+0x62] ; Save the return address in BRP\n" |
1409 | move $usp,[reg+0x66] ; USP | 1071 | " move $usp,[cris_reg+0x66] ; USP\n" |
1410 | 1072 | "\n" | |
1411 | ;; get the serial character (from debugport.c) and check if it is a ctrl-c | 1073 | ";; get the serial character (from debugport.c) and check if it is a ctrl-c\n" |
1412 | 1074 | "\n" | |
1413 | jsr getDebugChar | 1075 | " jsr getDebugChar\n" |
1414 | cmp.b 3, $r10 | 1076 | " cmp.b 3, $r10\n" |
1415 | bne goback | 1077 | " bne goback\n" |
1416 | nop | 1078 | " nop\n" |
1417 | 1079 | "\n" | |
1418 | move.d [reg+0x5E], $r10 ; Get DCCR | 1080 | " move.d [cris_reg+0x5E], $r10 ; Get DCCR\n" |
1419 | btstq 8, $r10 ; Test the U-flag. | 1081 | " btstq 8, $r10 ; Test the U-flag.\n" |
1420 | bmi goback | 1082 | " bmi goback\n" |
1421 | nop | 1083 | " nop\n" |
1422 | 1084 | "\n" | |
1423 | ;; | 1085 | ";;\n" |
1424 | ;; Handle the communication | 1086 | ";; Handle the communication\n" |
1425 | ;; | 1087 | ";;\n" |
1426 | move.d internal_stack+1020,$sp ; Use the internal stack | 1088 | " move.d internal_stack+1020,$sp ; Use the internal stack\n" |
1427 | moveq 2,$r10 ; SIGINT | 1089 | " moveq 2,$r10 ; SIGINT\n" |
1428 | jsr handle_exception ; Interactive routine | 1090 | " jsr handle_exception ; Interactive routine\n" |
1429 | 1091 | "\n" | |
1430 | goback: | 1092 | "goback:\n" |
1431 | ;; | 1093 | ";;\n" |
1432 | ;; Return to the caller | 1094 | ";; Return to the caller\n" |
1433 | ;; | 1095 | ";;\n" |
1434 | move.d [reg],$r0 ; Restore R0 | 1096 | " move.d [cris_reg],$r0 ; Restore R0\n" |
1435 | move.d [reg+0x04],$r1 ; Restore R1 | 1097 | " move.d [cris_reg+0x04],$r1 ; Restore R1\n" |
1436 | move.d [reg+0x08],$r2 ; Restore R2 | 1098 | " move.d [cris_reg+0x08],$r2 ; Restore R2\n" |
1437 | move.d [reg+0x0C],$r3 ; Restore R3 | 1099 | " move.d [cris_reg+0x0C],$r3 ; Restore R3\n" |
1438 | move.d [reg+0x10],$r4 ; Restore R4 | 1100 | " move.d [cris_reg+0x10],$r4 ; Restore R4\n" |
1439 | move.d [reg+0x14],$r5 ; Restore R5 | 1101 | " move.d [cris_reg+0x14],$r5 ; Restore R5\n" |
1440 | move.d [reg+0x18],$r6 ; Restore R6 | 1102 | " move.d [cris_reg+0x18],$r6 ; Restore R6\n" |
1441 | move.d [reg+0x1C],$r7 ; Restore R7 | 1103 | " move.d [cris_reg+0x1C],$r7 ; Restore R7\n" |
1442 | move.d [reg+0x20],$r8 ; Restore R8 | 1104 | " move.d [cris_reg+0x20],$r8 ; Restore R8\n" |
1443 | move.d [reg+0x24],$r9 ; Restore R9 | 1105 | " move.d [cris_reg+0x24],$r9 ; Restore R9\n" |
1444 | move.d [reg+0x28],$r10 ; Restore R10 | 1106 | " move.d [cris_reg+0x28],$r10 ; Restore R10\n" |
1445 | move.d [reg+0x2C],$r11 ; Restore R11 | 1107 | " move.d [cris_reg+0x2C],$r11 ; Restore R11\n" |
1446 | move.d [reg+0x30],$r12 ; Restore R12 | 1108 | " move.d [cris_reg+0x30],$r12 ; Restore R12\n" |
1447 | move.d [reg+0x34],$r13 ; Restore R13 | 1109 | " move.d [cris_reg+0x34],$r13 ; Restore R13\n" |
1448 | ;; | 1110 | ";;\n" |
1449 | ;; FIXME: Which registers should be restored? | 1111 | ";; FIXME: Which registers should be restored?\n" |
1450 | ;; | 1112 | ";;\n" |
1451 | move.d [reg+0x38],$sp ; Restore SP (R14) | 1113 | " move.d [cris_reg+0x38],$sp ; Restore SP (R14)\n" |
1452 | move [reg+0x56],$srp ; Restore the subroutine return pointer. | 1114 | " move [cris_reg+0x56],$srp ; Restore the subroutine return pointer.\n" |
1453 | move [reg+0x5E],$dccr ; Restore DCCR | 1115 | " move [cris_reg+0x5E],$dccr ; Restore DCCR\n" |
1454 | move [reg+0x66],$usp ; Restore USP | 1116 | " move [cris_reg+0x66],$usp ; Restore USP\n" |
1455 | reti ; Return from the interrupt routine | 1117 | " reti ; Return from the interrupt routine\n" |
1456 | nop | 1118 | " nop\n" |
1457 | "); | 1119 | "\n"); |
1458 | 1120 | ||
1459 | /* Use this static breakpoint in the start-up only. */ | 1121 | /* Use this static breakpoint in the start-up only. */ |
1460 | 1122 | ||
diff --git a/arch/cris/arch-v32/drivers/Kconfig b/arch/cris/arch-v32/drivers/Kconfig index ab725edbc680..acff3df8c43f 100644 --- a/arch/cris/arch-v32/drivers/Kconfig +++ b/arch/cris/arch-v32/drivers/Kconfig | |||
@@ -640,8 +640,6 @@ config ETRAX_STREAMCOPROC | |||
640 | This option enables a driver for the stream co-processor | 640 | This option enables a driver for the stream co-processor |
641 | for cryptographic operations. | 641 | for cryptographic operations. |
642 | 642 | ||
643 | source drivers/mmc/Kconfig | ||
644 | |||
645 | config ETRAX_MMC_IOP | 643 | config ETRAX_MMC_IOP |
646 | tristate "MMC/SD host driver using IO-processor" | 644 | tristate "MMC/SD host driver using IO-processor" |
647 | depends on ETRAX_ARCH_V32 && MMC | 645 | depends on ETRAX_ARCH_V32 && MMC |
@@ -833,9 +831,4 @@ config ETRAX_SPI_MMC_WP_GPIO_PIN | |||
833 | The pin to use for the SD/MMC write-protect signal for a memory | 831 | The pin to use for the SD/MMC write-protect signal for a memory |
834 | card. If defined as " " (space), the card is considered writable. | 832 | card. If defined as " " (space), the card is considered writable. |
835 | 833 | ||
836 | # Avoid choices causing non-working configs by conditionalizing the inclusion. | ||
837 | if ETRAX_SPI_MMC | ||
838 | source drivers/spi/Kconfig | ||
839 | endif | ||
840 | |||
841 | endif | 834 | endif |
diff --git a/arch/cris/include/asm/Kbuild b/arch/cris/include/asm/Kbuild index f1e79edc9dd2..c8325455520e 100644 --- a/arch/cris/include/asm/Kbuild +++ b/arch/cris/include/asm/Kbuild | |||
@@ -5,5 +5,9 @@ header-y += arch-v32/ | |||
5 | 5 | ||
6 | generic-y += clkdev.h | 6 | generic-y += clkdev.h |
7 | generic-y += exec.h | 7 | generic-y += exec.h |
8 | generic-y += kvm_para.h | ||
9 | generic-y += linkage.h | ||
8 | generic-y += module.h | 10 | generic-y += module.h |
9 | generic-y += trace_clock.h | 11 | generic-y += trace_clock.h |
12 | generic-y += vga.h | ||
13 | generic-y += xor.h | ||
diff --git a/arch/cris/include/asm/io.h b/arch/cris/include/asm/io.h index ac12ae2b9286..5d3047e5563b 100644 --- a/arch/cris/include/asm/io.h +++ b/arch/cris/include/asm/io.h | |||
@@ -167,6 +167,9 @@ static inline void outsl(unsigned int port, const void *addr, | |||
167 | cris_iops->write_io(port, (void *)addr, 4, count); | 167 | cris_iops->write_io(port, (void *)addr, 4, count); |
168 | } | 168 | } |
169 | 169 | ||
170 | #define inb_p(port) inb(port) | ||
171 | #define outb_p(val, port) outb((val), (port)) | ||
172 | |||
170 | /* | 173 | /* |
171 | * Convert a physical pointer to a virtual kernel pointer for /dev/mem | 174 | * Convert a physical pointer to a virtual kernel pointer for /dev/mem |
172 | * access | 175 | * access |
diff --git a/arch/cris/include/asm/linkage.h b/arch/cris/include/asm/linkage.h deleted file mode 100644 index 291c2d01c44f..000000000000 --- a/arch/cris/include/asm/linkage.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __ASM_LINKAGE_H | ||
2 | #define __ASM_LINKAGE_H | ||
3 | |||
4 | /* Nothing to see here... */ | ||
5 | |||
6 | #endif | ||
diff --git a/arch/frv/kernel/head.S b/arch/frv/kernel/head.S index e9a8cc63ac94..a7d0bea9c036 100644 --- a/arch/frv/kernel/head.S +++ b/arch/frv/kernel/head.S | |||
@@ -479,11 +479,6 @@ __head_mmu_enabled: | |||
479 | 479 | ||
480 | LEDS 0x000c | 480 | LEDS 0x000c |
481 | 481 | ||
482 | # initialise the processor and the peripherals | ||
483 | #call SYMBOL_NAME(processor_init) | ||
484 | #call SYMBOL_NAME(unit_init) | ||
485 | #LEDS 0x0aff | ||
486 | |||
487 | sethi.p #0xe5e5,gr3 | 482 | sethi.p #0xe5e5,gr3 |
488 | setlo #0xe5e5,gr3 | 483 | setlo #0xe5e5,gr3 |
489 | or.p gr3,gr0,gr4 | 484 | or.p gr3,gr0,gr4 |
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig index 303e4f9a79d1..3d6759ee382f 100644 --- a/arch/h8300/Kconfig +++ b/arch/h8300/Kconfig | |||
@@ -94,126 +94,10 @@ endmenu | |||
94 | 94 | ||
95 | source "net/Kconfig" | 95 | source "net/Kconfig" |
96 | 96 | ||
97 | source "drivers/base/Kconfig" | 97 | source "drivers/Kconfig" |
98 | |||
99 | source "drivers/mtd/Kconfig" | ||
100 | |||
101 | source "drivers/block/Kconfig" | ||
102 | |||
103 | source "drivers/ide/Kconfig" | ||
104 | 98 | ||
105 | source "arch/h8300/Kconfig.ide" | 99 | source "arch/h8300/Kconfig.ide" |
106 | 100 | ||
107 | source "drivers/net/Kconfig" | ||
108 | |||
109 | # | ||
110 | # input - input/joystick depends on it. As does USB. | ||
111 | # | ||
112 | source "drivers/input/Kconfig" | ||
113 | |||
114 | menu "Character devices" | ||
115 | |||
116 | config VT | ||
117 | bool "Virtual terminal" | ||
118 | ---help--- | ||
119 | If you say Y here, you will get support for terminal devices with | ||
120 | display and keyboard devices. These are called "virtual" because you | ||
121 | can run several virtual terminals (also called virtual consoles) on | ||
122 | one physical terminal. This is rather useful, for example one | ||
123 | virtual terminal can collect system messages and warnings, another | ||
124 | one can be used for a text-mode user session, and a third could run | ||
125 | an X session, all in parallel. Switching between virtual terminals | ||
126 | is done with certain key combinations, usually Alt-<function key>. | ||
127 | |||
128 | The setterm command ("man setterm") can be used to change the | ||
129 | properties (such as colors or beeping) of a virtual terminal. The | ||
130 | man page console_codes(4) ("man console_codes") contains the special | ||
131 | character sequences that can be used to change those properties | ||
132 | directly. The fonts used on virtual terminals can be changed with | ||
133 | the setfont ("man setfont") command and the key bindings are defined | ||
134 | with the loadkeys ("man loadkeys") command. | ||
135 | |||
136 | You need at least one virtual terminal device in order to make use | ||
137 | of your keyboard and monitor. Therefore, only people configuring an | ||
138 | embedded system would want to say N here in order to save some | ||
139 | memory; the only way to log into such a system is then via a serial | ||
140 | or network connection. | ||
141 | |||
142 | If unsure, say Y, or else you won't be able to do much with your new | ||
143 | shiny Linux system :-) | ||
144 | |||
145 | config VT_CONSOLE | ||
146 | bool "Support for console on virtual terminal" | ||
147 | depends on VT | ||
148 | ---help--- | ||
149 | The system console is the device which receives all kernel messages | ||
150 | and warnings and which allows logins in single user mode. If you | ||
151 | answer Y here, a virtual terminal (the device used to interact with | ||
152 | a physical terminal) can be used as system console. This is the most | ||
153 | common mode of operations, so you should say Y here unless you want | ||
154 | the kernel messages be output only to a serial port (in which case | ||
155 | you should say Y to "Console on serial port", below). | ||
156 | |||
157 | If you do say Y here, by default the currently visible virtual | ||
158 | terminal (/dev/tty0) will be used as system console. You can change | ||
159 | that with a kernel command line option such as "console=tty3" which | ||
160 | would use the third virtual terminal as system console. (Try "man | ||
161 | bootparam" or see the documentation of your boot loader (lilo or | ||
162 | loadlin) about how to pass options to the kernel at boot time.) | ||
163 | |||
164 | If unsure, say Y. | ||
165 | |||
166 | config HW_CONSOLE | ||
167 | bool | ||
168 | depends on VT | ||
169 | default y | ||
170 | |||
171 | comment "Unix98 PTY support" | ||
172 | |||
173 | config UNIX98_PTYS | ||
174 | bool "Unix98 PTY support" | ||
175 | ---help--- | ||
176 | A pseudo terminal (PTY) is a software device consisting of two | ||
177 | halves: a master and a slave. The slave device behaves identical to | ||
178 | a physical terminal; the master device is used by a process to | ||
179 | read data from and write data to the slave, thereby emulating a | ||
180 | terminal. Typical programs for the master side are telnet servers | ||
181 | and xterms. | ||
182 | |||
183 | Linux has traditionally used the BSD-like names /dev/ptyxx for | ||
184 | masters and /dev/ttyxx for slaves of pseudo terminals. This scheme | ||
185 | has a number of problems. The GNU C library glibc 2.1 and later, | ||
186 | however, supports the Unix98 naming standard: in order to acquire a | ||
187 | pseudo terminal, a process opens /dev/ptmx; the number of the pseudo | ||
188 | terminal is then made available to the process and the pseudo | ||
189 | terminal slave can be accessed as /dev/pts/<number>. What was | ||
190 | traditionally /dev/ttyp2 will then be /dev/pts/2, for example. | ||
191 | |||
192 | The entries in /dev/pts/ are created on the fly by a virtual | ||
193 | file system; therefore, if you say Y here you should say Y to | ||
194 | "/dev/pts file system for Unix98 PTYs" as well. | ||
195 | |||
196 | If you want to say Y here, you need to have the C library glibc 2.1 | ||
197 | or later (equal to libc-6.1, check with "ls -l /lib/libc.so.*"). | ||
198 | Read the instructions in <file:Documentation/Changes> pertaining to | ||
199 | pseudo terminals. It's safe to say N. | ||
200 | |||
201 | source "drivers/char/pcmcia/Kconfig" | ||
202 | |||
203 | source "drivers/tty/serial/Kconfig" | ||
204 | |||
205 | source "drivers/i2c/Kconfig" | ||
206 | |||
207 | source "drivers/hwmon/Kconfig" | ||
208 | |||
209 | source "drivers/usb/Kconfig" | ||
210 | |||
211 | source "drivers/uwb/Kconfig" | ||
212 | |||
213 | endmenu | ||
214 | |||
215 | source "drivers/staging/Kconfig" | ||
216 | |||
217 | source "fs/Kconfig" | 101 | source "fs/Kconfig" |
218 | 102 | ||
219 | source "arch/h8300/Kconfig.debug" | 103 | source "arch/h8300/Kconfig.debug" |
diff --git a/arch/h8300/Kconfig.cpu b/arch/h8300/Kconfig.cpu index 321f3922728b..cdee771460ed 100644 --- a/arch/h8300/Kconfig.cpu +++ b/arch/h8300/Kconfig.cpu | |||
@@ -64,6 +64,7 @@ choice | |||
64 | 64 | ||
65 | config H83002 | 65 | config H83002 |
66 | bool "H8/3001,3002,3003" | 66 | bool "H8/3001,3002,3003" |
67 | depends on BROKEN | ||
67 | select CPU_H8300H | 68 | select CPU_H8300H |
68 | 69 | ||
69 | config H83007 | 70 | config H83007 |
@@ -72,6 +73,7 @@ config H83007 | |||
72 | 73 | ||
73 | config H83048 | 74 | config H83048 |
74 | bool "H8/3044,3045,3046,3047,3048,3052" | 75 | bool "H8/3044,3045,3046,3047,3048,3052" |
76 | depends on BROKEN | ||
75 | select CPU_H8300H | 77 | select CPU_H8300H |
76 | 78 | ||
77 | config H83068 | 79 | config H83068 |
@@ -155,10 +157,12 @@ config H8300_TIMER16_CH | |||
155 | config H8300_ITU_CH | 157 | config H8300_ITU_CH |
156 | int "ITU channel" | 158 | int "ITU channel" |
157 | depends on H8300_ITU | 159 | depends on H8300_ITU |
160 | range 0 4 | ||
158 | 161 | ||
159 | config H8300_TPU_CH | 162 | config H8300_TPU_CH |
160 | int "TPU channel" | 163 | int "TPU channel" |
161 | depends on H8300_TPU | 164 | depends on H8300_TPU |
165 | range 0 4 | ||
162 | 166 | ||
163 | source "kernel/Kconfig.preempt" | 167 | source "kernel/Kconfig.preempt" |
164 | 168 | ||
diff --git a/arch/h8300/boot/compressed/Makefile b/arch/h8300/boot/compressed/Makefile index 6745cb1ffb4f..a6c98fe3bbc3 100644 --- a/arch/h8300/boot/compressed/Makefile +++ b/arch/h8300/boot/compressed/Makefile | |||
@@ -16,7 +16,7 @@ OBJECTS = $(obj)/head.o $(obj)/misc.o | |||
16 | # | 16 | # |
17 | CONFIG_MEMORY_START ?= 0x00400000 | 17 | CONFIG_MEMORY_START ?= 0x00400000 |
18 | CONFIG_BOOT_LINK_OFFSET ?= 0x00140000 | 18 | CONFIG_BOOT_LINK_OFFSET ?= 0x00140000 |
19 | IMAGE_OFFSET := $(shell printf "0x%08x" $$[$(CONFIG_MEMORY_START)+$(CONFIG_BOOT_LINK_OFFSET)]) | 19 | IMAGE_OFFSET := $(shell printf "0x%08x" $$(($(CONFIG_MEMORY_START)+$(CONFIG_BOOT_LINK_OFFSET)))) |
20 | 20 | ||
21 | LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -estartup $(obj)/vmlinux.lds | 21 | LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -estartup $(obj)/vmlinux.lds |
22 | 22 | ||
diff --git a/arch/h8300/include/asm/Kbuild b/arch/h8300/include/asm/Kbuild index 995eb47e01bb..8ada3cf0c98d 100644 --- a/arch/h8300/include/asm/Kbuild +++ b/arch/h8300/include/asm/Kbuild | |||
@@ -1,6 +1,8 @@ | |||
1 | 1 | ||
2 | generic-y += clkdev.h | 2 | generic-y += clkdev.h |
3 | generic-y += exec.h | 3 | generic-y += exec.h |
4 | generic-y += linkage.h | ||
4 | generic-y += mmu.h | 5 | generic-y += mmu.h |
5 | generic-y += module.h | 6 | generic-y += module.h |
6 | generic-y += trace_clock.h | 7 | generic-y += trace_clock.h |
8 | generic-y += xor.h | ||
diff --git a/arch/h8300/include/asm/barrier.h b/arch/h8300/include/asm/barrier.h index c7283c343c55..9e0aa9fc195d 100644 --- a/arch/h8300/include/asm/barrier.h +++ b/arch/h8300/include/asm/barrier.h | |||
@@ -12,6 +12,8 @@ | |||
12 | #define wmb() asm volatile ("" : : :"memory") | 12 | #define wmb() asm volatile ("" : : :"memory") |
13 | #define set_mb(var, value) do { xchg(&var, value); } while (0) | 13 | #define set_mb(var, value) do { xchg(&var, value); } while (0) |
14 | 14 | ||
15 | #define read_barrier_depends() do { } while (0) | ||
16 | |||
15 | #ifdef CONFIG_SMP | 17 | #ifdef CONFIG_SMP |
16 | #define smp_mb() mb() | 18 | #define smp_mb() mb() |
17 | #define smp_rmb() rmb() | 19 | #define smp_rmb() rmb() |
diff --git a/arch/h8300/include/asm/linkage.h b/arch/h8300/include/asm/linkage.h deleted file mode 100644 index 1d81604fb0ad..000000000000 --- a/arch/h8300/include/asm/linkage.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef _H8300_LINKAGE_H | ||
2 | #define _H8300_LINKAGE_H | ||
3 | |||
4 | #undef SYMBOL_NAME_LABEL | ||
5 | #define SYMBOL_NAME_LABEL(_name_) _##_name_##: | ||
6 | #endif | ||
diff --git a/arch/h8300/include/asm/tlb.h b/arch/h8300/include/asm/tlb.h index 3dea80ad9e6f..7f0743051ad5 100644 --- a/arch/h8300/include/asm/tlb.h +++ b/arch/h8300/include/asm/tlb.h | |||
@@ -1,16 +1,3 @@ | |||
1 | /* | ||
2 | include/asm-h8300/tlb.h | ||
3 | */ | ||
4 | |||
5 | #ifndef __H8300_TLB_H__ | ||
6 | #define __H8300_TLB_H__ | ||
7 | |||
8 | #define tlb_flush(tlb) do { } while(0) | ||
9 | |||
10 | /* | ||
11 | include/asm-h8300/tlb.h | ||
12 | */ | ||
13 | |||
14 | #ifndef __H8300_TLB_H__ | 1 | #ifndef __H8300_TLB_H__ |
15 | #define __H8300_TLB_H__ | 2 | #define __H8300_TLB_H__ |
16 | 3 | ||
@@ -19,5 +6,3 @@ | |||
19 | #include <asm-generic/tlb.h> | 6 | #include <asm-generic/tlb.h> |
20 | 7 | ||
21 | #endif | 8 | #endif |
22 | |||
23 | #endif | ||
diff --git a/arch/h8300/kernel/entry.S b/arch/h8300/kernel/entry.S index 617a6878787f..94bd30f11df6 100644 --- a/arch/h8300/kernel/entry.S +++ b/arch/h8300/kernel/entry.S | |||
@@ -87,13 +87,13 @@ INTERRUPTS = 128 | |||
87 | bne 5f | 87 | bne 5f |
88 | 88 | ||
89 | /* user mode */ | 89 | /* user mode */ |
90 | mov.l sp,@SYMBOL_NAME(sw_usp) | 90 | mov.l sp,@_sw_usp |
91 | mov.l @sp,er0 /* restore saved er0 */ | 91 | mov.l @sp,er0 /* restore saved er0 */ |
92 | orc #0x10,ccr /* switch kernel stack */ | 92 | orc #0x10,ccr /* switch kernel stack */ |
93 | mov.l @SYMBOL_NAME(sw_ksp),sp | 93 | mov.l @_sw_ksp,sp |
94 | sub.l #(LRET-LORIG),sp /* allocate LORIG - LRET */ | 94 | sub.l #(LRET-LORIG),sp /* allocate LORIG - LRET */ |
95 | SAVEREGS | 95 | SAVEREGS |
96 | mov.l @SYMBOL_NAME(sw_usp),er0 | 96 | mov.l @_sw_usp,er0 |
97 | mov.l @(USERRET:16,er0),er1 /* copy the RET addr */ | 97 | mov.l @(USERRET:16,er0),er1 /* copy the RET addr */ |
98 | mov.l er1,@(LRET-LER3:16,sp) | 98 | mov.l er1,@(LRET-LER3:16,sp) |
99 | SAVEEXR | 99 | SAVEEXR |
@@ -128,7 +128,7 @@ INTERRUPTS = 128 | |||
128 | bne 7f | 128 | bne 7f |
129 | 129 | ||
130 | orc #0x80,ccr | 130 | orc #0x80,ccr |
131 | mov.l @SYMBOL_NAME(sw_usp),er0 | 131 | mov.l @_sw_usp,er0 |
132 | mov.l @(LER0-LER1:16,sp),er1 /* restore ER0 */ | 132 | mov.l @(LER0-LER1:16,sp),er1 /* restore ER0 */ |
133 | mov.l er1,@er0 | 133 | mov.l er1,@er0 |
134 | RESTOREEXR | 134 | RESTOREEXR |
@@ -141,7 +141,7 @@ INTERRUPTS = 128 | |||
141 | 141 | ||
142 | mov.l @sp+,er1 | 142 | mov.l @sp+,er1 |
143 | add.l #(LRET-LER1),sp /* remove LORIG - LRET */ | 143 | add.l #(LRET-LER1),sp /* remove LORIG - LRET */ |
144 | mov.l sp,@SYMBOL_NAME(sw_ksp) | 144 | mov.l sp,@_sw_ksp |
145 | andc #0xef,ccr /* switch to user mode */ | 145 | andc #0xef,ccr /* switch to user mode */ |
146 | mov.l er0,sp | 146 | mov.l er0,sp |
147 | bra 8f | 147 | bra 8f |
@@ -155,20 +155,20 @@ INTERRUPTS = 128 | |||
155 | rte | 155 | rte |
156 | .endm | 156 | .endm |
157 | 157 | ||
158 | .globl SYMBOL_NAME(system_call) | 158 | .globl _system_call |
159 | .globl SYMBOL_NAME(ret_from_exception) | 159 | .globl _ret_from_exception |
160 | .globl SYMBOL_NAME(ret_from_fork) | 160 | .globl _ret_from_fork |
161 | .globl SYMBOL_NAME(ret_from_kernel_thread) | 161 | .globl _ret_from_kernel_thread |
162 | .globl SYMBOL_NAME(ret_from_interrupt) | 162 | .globl _ret_from_interrupt |
163 | .globl SYMBOL_NAME(interrupt_redirect_table) | 163 | .globl _interrupt_redirect_table |
164 | .globl SYMBOL_NAME(sw_ksp),SYMBOL_NAME(sw_usp) | 164 | .globl _sw_ksp,_sw_usp |
165 | .globl SYMBOL_NAME(resume) | 165 | .globl _resume |
166 | .globl SYMBOL_NAME(interrupt_entry) | 166 | .globl _interrupt_entry |
167 | .globl SYMBOL_NAME(trace_break) | 167 | .globl _trace_break |
168 | 168 | ||
169 | #if defined(CONFIG_ROMKERNEL) | 169 | #if defined(CONFIG_ROMKERNEL) |
170 | .section .int_redirect,"ax" | 170 | .section .int_redirect,"ax" |
171 | SYMBOL_NAME_LABEL(interrupt_redirect_table) | 171 | _interrupt_redirect_table: |
172 | #if defined(CONFIG_CPU_H8300H) | 172 | #if defined(CONFIG_CPU_H8300H) |
173 | .rept 7 | 173 | .rept 7 |
174 | .long 0 | 174 | .long 0 |
@@ -178,54 +178,54 @@ SYMBOL_NAME_LABEL(interrupt_redirect_table) | |||
178 | .rept 5 | 178 | .rept 5 |
179 | .long 0 | 179 | .long 0 |
180 | .endr | 180 | .endr |
181 | jmp @SYMBOL_NAME(trace_break) | 181 | jmp @_trace_break |
182 | .long 0 | 182 | .long 0 |
183 | #endif | 183 | #endif |
184 | 184 | ||
185 | jsr @SYMBOL_NAME(interrupt_entry) /* NMI */ | 185 | jsr @_interrupt_entry /* NMI */ |
186 | jmp @SYMBOL_NAME(system_call) /* TRAPA #0 (System call) */ | 186 | jmp @_system_call /* TRAPA #0 (System call) */ |
187 | .long 0 | 187 | .long 0 |
188 | .long 0 | 188 | .long 0 |
189 | jmp @SYMBOL_NAME(trace_break) /* TRAPA #3 (breakpoint) */ | 189 | jmp @_trace_break /* TRAPA #3 (breakpoint) */ |
190 | .rept INTERRUPTS-12 | 190 | .rept INTERRUPTS-12 |
191 | jsr @SYMBOL_NAME(interrupt_entry) | 191 | jsr @_interrupt_entry |
192 | .endr | 192 | .endr |
193 | #endif | 193 | #endif |
194 | #if defined(CONFIG_RAMKERNEL) | 194 | #if defined(CONFIG_RAMKERNEL) |
195 | .globl SYMBOL_NAME(interrupt_redirect_table) | 195 | .globl _interrupt_redirect_table |
196 | .section .bss | 196 | .section .bss |
197 | SYMBOL_NAME_LABEL(interrupt_redirect_table) | 197 | _interrupt_redirect_table: |
198 | .space 4 | 198 | .space 4 |
199 | #endif | 199 | #endif |
200 | 200 | ||
201 | .section .text | 201 | .section .text |
202 | .align 2 | 202 | .align 2 |
203 | SYMBOL_NAME_LABEL(interrupt_entry) | 203 | _interrupt_entry: |
204 | SAVE_ALL | 204 | SAVE_ALL |
205 | mov.l sp,er0 | 205 | mov.l sp,er0 |
206 | add.l #LVEC,er0 | 206 | add.l #LVEC,er0 |
207 | btst #4,r1l | 207 | btst #4,r1l |
208 | bne 1f | 208 | bne 1f |
209 | /* user LVEC */ | 209 | /* user LVEC */ |
210 | mov.l @SYMBOL_NAME(sw_usp),er0 | 210 | mov.l @_sw_usp,er0 |
211 | adds #4,er0 | 211 | adds #4,er0 |
212 | 1: | 212 | 1: |
213 | mov.l @er0,er0 /* LVEC address */ | 213 | mov.l @er0,er0 /* LVEC address */ |
214 | #if defined(CONFIG_ROMKERNEL) | 214 | #if defined(CONFIG_ROMKERNEL) |
215 | sub.l #SYMBOL_NAME(interrupt_redirect_table),er0 | 215 | sub.l #_interrupt_redirect_table,er0 |
216 | #endif | 216 | #endif |
217 | #if defined(CONFIG_RAMKERNEL) | 217 | #if defined(CONFIG_RAMKERNEL) |
218 | mov.l @SYMBOL_NAME(interrupt_redirect_table),er1 | 218 | mov.l @_interrupt_redirect_table,er1 |
219 | sub.l er1,er0 | 219 | sub.l er1,er0 |
220 | #endif | 220 | #endif |
221 | SHLR2 er0 | 221 | SHLR2 er0 |
222 | dec.l #1,er0 | 222 | dec.l #1,er0 |
223 | mov.l sp,er1 | 223 | mov.l sp,er1 |
224 | subs #4,er1 /* adjust ret_pc */ | 224 | subs #4,er1 /* adjust ret_pc */ |
225 | jsr @SYMBOL_NAME(do_IRQ) | 225 | jsr @_do_IRQ |
226 | jmp @SYMBOL_NAME(ret_from_interrupt) | 226 | jmp @_ret_from_interrupt |
227 | 227 | ||
228 | SYMBOL_NAME_LABEL(system_call) | 228 | _system_call: |
229 | subs #4,sp /* dummy LVEC */ | 229 | subs #4,sp /* dummy LVEC */ |
230 | SAVE_ALL | 230 | SAVE_ALL |
231 | andc #0x7f,ccr | 231 | andc #0x7f,ccr |
@@ -233,21 +233,21 @@ SYMBOL_NAME_LABEL(system_call) | |||
233 | 233 | ||
234 | /* save top of frame */ | 234 | /* save top of frame */ |
235 | mov.l sp,er0 | 235 | mov.l sp,er0 |
236 | jsr @SYMBOL_NAME(set_esp0) | 236 | jsr @_set_esp0 |
237 | mov.l sp,er2 | 237 | mov.l sp,er2 |
238 | and.w #0xe000,r2 | 238 | and.w #0xe000,r2 |
239 | mov.b @((TI_FLAGS+3-(TIF_SYSCALL_TRACE >> 3)):16,er2),r2l | 239 | mov.b @((TI_FLAGS+3-(TIF_SYSCALL_TRACE >> 3)):16,er2),r2l |
240 | btst #(TIF_SYSCALL_TRACE & 7),r2l | 240 | btst #(TIF_SYSCALL_TRACE & 7),r2l |
241 | beq 1f | 241 | beq 1f |
242 | jsr @SYMBOL_NAME(do_syscall_trace) | 242 | jsr @_do_syscall_trace |
243 | 1: | 243 | 1: |
244 | cmp.l #NR_syscalls,er4 | 244 | cmp.l #NR_syscalls,er4 |
245 | bcc badsys | 245 | bcc badsys |
246 | SHLL2 er4 | 246 | SHLL2 er4 |
247 | mov.l #SYMBOL_NAME(sys_call_table),er0 | 247 | mov.l #_sys_call_table,er0 |
248 | add.l er4,er0 | 248 | add.l er4,er0 |
249 | mov.l @er0,er4 | 249 | mov.l @er0,er4 |
250 | beq SYMBOL_NAME(ret_from_exception):16 | 250 | beq _ret_from_exception:16 |
251 | mov.l @(LER1:16,sp),er0 | 251 | mov.l @(LER1:16,sp),er0 |
252 | mov.l @(LER2:16,sp),er1 | 252 | mov.l @(LER2:16,sp),er1 |
253 | mov.l @(LER3:16,sp),er2 | 253 | mov.l @(LER3:16,sp),er2 |
@@ -258,10 +258,10 @@ SYMBOL_NAME_LABEL(system_call) | |||
258 | mov.b @((TI_FLAGS+3-(TIF_SYSCALL_TRACE >> 3)):16,er2),r2l | 258 | mov.b @((TI_FLAGS+3-(TIF_SYSCALL_TRACE >> 3)):16,er2),r2l |
259 | btst #(TIF_SYSCALL_TRACE & 7),r2l | 259 | btst #(TIF_SYSCALL_TRACE & 7),r2l |
260 | beq 2f | 260 | beq 2f |
261 | jsr @SYMBOL_NAME(do_syscall_trace) | 261 | jsr @_do_syscall_trace |
262 | 2: | 262 | 2: |
263 | #if defined(CONFIG_SYSCALL_PRINT) | 263 | #if defined(CONFIG_SYSCALL_PRINT) |
264 | jsr @SYMBOL_NAME(syscall_print) | 264 | jsr @_syscall_print |
265 | #endif | 265 | #endif |
266 | orc #0x80,ccr | 266 | orc #0x80,ccr |
267 | bra resume_userspace | 267 | bra resume_userspace |
@@ -275,11 +275,11 @@ badsys: | |||
275 | #define resume_kernel restore_all | 275 | #define resume_kernel restore_all |
276 | #endif | 276 | #endif |
277 | 277 | ||
278 | SYMBOL_NAME_LABEL(ret_from_exception) | 278 | _ret_from_exception: |
279 | #if defined(CONFIG_PREEMPT) | 279 | #if defined(CONFIG_PREEMPT) |
280 | orc #0x80,ccr | 280 | orc #0x80,ccr |
281 | #endif | 281 | #endif |
282 | SYMBOL_NAME_LABEL(ret_from_interrupt) | 282 | _ret_from_interrupt: |
283 | mov.b @(LCCR+1:16,sp),r0l | 283 | mov.b @(LCCR+1:16,sp),r0l |
284 | btst #4,r0l | 284 | btst #4,r0l |
285 | bne resume_kernel:8 /* return from kernel */ | 285 | bne resume_kernel:8 /* return from kernel */ |
@@ -296,12 +296,12 @@ work_pending: | |||
296 | /* work notifysig */ | 296 | /* work notifysig */ |
297 | mov.l sp,er0 | 297 | mov.l sp,er0 |
298 | subs #4,er0 /* er0: pt_regs */ | 298 | subs #4,er0 /* er0: pt_regs */ |
299 | jsr @SYMBOL_NAME(do_notify_resume) | 299 | jsr @_do_notify_resume |
300 | bra restore_all:8 | 300 | bra restore_all:8 |
301 | work_resched: | 301 | work_resched: |
302 | mov.l sp,er0 | 302 | mov.l sp,er0 |
303 | jsr @SYMBOL_NAME(set_esp0) | 303 | jsr @_set_esp0 |
304 | jsr @SYMBOL_NAME(schedule) | 304 | jsr @_schedule |
305 | bra resume_userspace:8 | 305 | bra resume_userspace:8 |
306 | restore_all: | 306 | restore_all: |
307 | RESTORE_ALL /* Does RTE */ | 307 | RESTORE_ALL /* Does RTE */ |
@@ -320,26 +320,26 @@ need_resched: | |||
320 | mov.l er0,@(TI_PRE_COUNT:16,er4) | 320 | mov.l er0,@(TI_PRE_COUNT:16,er4) |
321 | andc #0x7f,ccr | 321 | andc #0x7f,ccr |
322 | mov.l sp,er0 | 322 | mov.l sp,er0 |
323 | jsr @SYMBOL_NAME(set_esp0) | 323 | jsr @_set_esp0 |
324 | jsr @SYMBOL_NAME(schedule) | 324 | jsr @_schedule |
325 | orc #0x80,ccr | 325 | orc #0x80,ccr |
326 | bra need_resched:8 | 326 | bra need_resched:8 |
327 | #endif | 327 | #endif |
328 | 328 | ||
329 | SYMBOL_NAME_LABEL(ret_from_fork) | 329 | _ret_from_fork: |
330 | mov.l er2,er0 | 330 | mov.l er2,er0 |
331 | jsr @SYMBOL_NAME(schedule_tail) | 331 | jsr @_schedule_tail |
332 | jmp @SYMBOL_NAME(ret_from_exception) | 332 | jmp @_ret_from_exception |
333 | 333 | ||
334 | SYMBOL_NAME_LABEL(ret_from_kernel_thread) | 334 | _ret_from_kernel_thread: |
335 | mov.l er2,er0 | 335 | mov.l er2,er0 |
336 | jsr @SYMBOL_NAME(schedule_tail) | 336 | jsr @_schedule_tail |
337 | mov.l @(LER4:16,sp),er0 | 337 | mov.l @(LER4:16,sp),er0 |
338 | mov.l @(LER5:16,sp),er1 | 338 | mov.l @(LER5:16,sp),er1 |
339 | jsr @er1 | 339 | jsr @er1 |
340 | jmp @SYMBOL_NAME(ret_from_exception) | 340 | jmp @_ret_from_exception |
341 | 341 | ||
342 | SYMBOL_NAME_LABEL(resume) | 342 | _resume: |
343 | /* | 343 | /* |
344 | * Beware - when entering resume, offset of tss is in d1, | 344 | * Beware - when entering resume, offset of tss is in d1, |
345 | * prev (the current task) is in a0, next (the new task) | 345 | * prev (the current task) is in a0, next (the new task) |
@@ -355,7 +355,7 @@ SYMBOL_NAME_LABEL(resume) | |||
355 | 355 | ||
356 | /* disable interrupts */ | 356 | /* disable interrupts */ |
357 | orc #0x80,ccr | 357 | orc #0x80,ccr |
358 | mov.l @SYMBOL_NAME(sw_usp),er3 | 358 | mov.l @_sw_usp,er3 |
359 | mov.l er3,@(THREAD_USP:16,er0) | 359 | mov.l er3,@(THREAD_USP:16,er0) |
360 | mov.l sp,@(THREAD_KSP:16,er0) | 360 | mov.l sp,@(THREAD_KSP:16,er0) |
361 | 361 | ||
@@ -363,7 +363,7 @@ SYMBOL_NAME_LABEL(resume) | |||
363 | /* FIXME: what did we hack out of here, this does nothing! */ | 363 | /* FIXME: what did we hack out of here, this does nothing! */ |
364 | 364 | ||
365 | mov.l @(THREAD_USP:16,er1),er0 | 365 | mov.l @(THREAD_USP:16,er1),er0 |
366 | mov.l er0,@SYMBOL_NAME(sw_usp) | 366 | mov.l er0,@_sw_usp |
367 | mov.l @(THREAD_KSP:16,er1),sp | 367 | mov.l @(THREAD_KSP:16,er1),sp |
368 | 368 | ||
369 | /* restore status register */ | 369 | /* restore status register */ |
@@ -372,15 +372,15 @@ SYMBOL_NAME_LABEL(resume) | |||
372 | ldc r3l,ccr | 372 | ldc r3l,ccr |
373 | rts | 373 | rts |
374 | 374 | ||
375 | SYMBOL_NAME_LABEL(trace_break) | 375 | _trace_break: |
376 | subs #4,sp | 376 | subs #4,sp |
377 | SAVE_ALL | 377 | SAVE_ALL |
378 | sub.l er1,er1 | 378 | sub.l er1,er1 |
379 | dec.l #1,er1 | 379 | dec.l #1,er1 |
380 | mov.l er1,@(LORIG,sp) | 380 | mov.l er1,@(LORIG,sp) |
381 | mov.l sp,er0 | 381 | mov.l sp,er0 |
382 | jsr @SYMBOL_NAME(set_esp0) | 382 | jsr @_set_esp0 |
383 | mov.l @SYMBOL_NAME(sw_usp),er0 | 383 | mov.l @_sw_usp,er0 |
384 | mov.l @er0,er1 | 384 | mov.l @er0,er1 |
385 | mov.w @(-2:16,er1),r2 | 385 | mov.w @(-2:16,er1),r2 |
386 | cmp.w #0x5730,r2 | 386 | cmp.w #0x5730,r2 |
@@ -390,13 +390,13 @@ SYMBOL_NAME_LABEL(trace_break) | |||
390 | 1: | 390 | 1: |
391 | and.w #0xff,e1 | 391 | and.w #0xff,e1 |
392 | mov.l er1,er0 | 392 | mov.l er1,er0 |
393 | jsr @SYMBOL_NAME(trace_trap) | 393 | jsr @_trace_trap |
394 | jmp @SYMBOL_NAME(ret_from_exception) | 394 | jmp @_ret_from_exception |
395 | 395 | ||
396 | .section .bss | 396 | .section .bss |
397 | SYMBOL_NAME_LABEL(sw_ksp) | 397 | _sw_ksp: |
398 | .space 4 | 398 | .space 4 |
399 | SYMBOL_NAME_LABEL(sw_usp) | 399 | _sw_usp: |
400 | .space 4 | 400 | .space 4 |
401 | 401 | ||
402 | .end | 402 | .end |
diff --git a/arch/h8300/kernel/syscalls.S b/arch/h8300/kernel/syscalls.S index 5c2168fb9b9e..c55e0ed270d5 100644 --- a/arch/h8300/kernel/syscalls.S +++ b/arch/h8300/kernel/syscalls.S | |||
@@ -2,8 +2,10 @@ | |||
2 | #include <linux/sys.h> | 2 | #include <linux/sys.h> |
3 | #include <asm/linkage.h> | 3 | #include <asm/linkage.h> |
4 | #include <asm/unistd.h> | 4 | #include <asm/unistd.h> |
5 | 5 | ||
6 | .globl SYMBOL_NAME(sys_call_table) | 6 | #define CALL(x) .long _ ## x |
7 | |||
8 | .globl _sys_call_table | ||
7 | 9 | ||
8 | #if defined(CONFIG_CPU_H8300H) | 10 | #if defined(CONFIG_CPU_H8300H) |
9 | .h8300h | 11 | .h8300h |
@@ -13,324 +15,324 @@ | |||
13 | #endif | 15 | #endif |
14 | .section .text | 16 | .section .text |
15 | .align 2 | 17 | .align 2 |
16 | SYMBOL_NAME_LABEL(sys_call_table) | 18 | _sys_call_table: |
17 | .long SYMBOL_NAME(sys_ni_syscall) /* 0 - old "setup()" system call*/ | 19 | CALL(sys_ni_syscall) /* 0 - old "setup()" system call*/ |
18 | .long SYMBOL_NAME(sys_exit) | 20 | CALL(sys_exit) |
19 | .long SYMBOL_NAME(sys_fork) | 21 | CALL(sys_fork) |
20 | .long SYMBOL_NAME(sys_read) | 22 | CALL(sys_read) |
21 | .long SYMBOL_NAME(sys_write) | 23 | CALL(sys_write) |
22 | .long SYMBOL_NAME(sys_open) /* 5 */ | 24 | CALL(sys_open) /* 5 */ |
23 | .long SYMBOL_NAME(sys_close) | 25 | CALL(sys_close) |
24 | .long SYMBOL_NAME(sys_waitpid) | 26 | CALL(sys_waitpid) |
25 | .long SYMBOL_NAME(sys_creat) | 27 | CALL(sys_creat) |
26 | .long SYMBOL_NAME(sys_link) | 28 | CALL(sys_link) |
27 | .long SYMBOL_NAME(sys_unlink) /* 10 */ | 29 | CALL(sys_unlink) /* 10 */ |
28 | .long SYMBOL_NAME(sys_execve) | 30 | CALL(sys_execve) |
29 | .long SYMBOL_NAME(sys_chdir) | 31 | CALL(sys_chdir) |
30 | .long SYMBOL_NAME(sys_time) | 32 | CALL(sys_time) |
31 | .long SYMBOL_NAME(sys_mknod) | 33 | CALL(sys_mknod) |
32 | .long SYMBOL_NAME(sys_chmod) /* 15 */ | 34 | CALL(sys_chmod) /* 15 */ |
33 | .long SYMBOL_NAME(sys_chown16) | 35 | CALL(sys_chown16) |
34 | .long SYMBOL_NAME(sys_ni_syscall) /* old break syscall holder */ | 36 | CALL(sys_ni_syscall) /* old break syscall holder */ |
35 | .long SYMBOL_NAME(sys_stat) | 37 | CALL(sys_stat) |
36 | .long SYMBOL_NAME(sys_lseek) | 38 | CALL(sys_lseek) |
37 | .long SYMBOL_NAME(sys_getpid) /* 20 */ | 39 | CALL(sys_getpid) /* 20 */ |
38 | .long SYMBOL_NAME(sys_mount) | 40 | CALL(sys_mount) |
39 | .long SYMBOL_NAME(sys_oldumount) | 41 | CALL(sys_oldumount) |
40 | .long SYMBOL_NAME(sys_setuid16) | 42 | CALL(sys_setuid16) |
41 | .long SYMBOL_NAME(sys_getuid16) | 43 | CALL(sys_getuid16) |
42 | .long SYMBOL_NAME(sys_stime) /* 25 */ | 44 | CALL(sys_stime) /* 25 */ |
43 | .long SYMBOL_NAME(sys_ptrace) | 45 | CALL(sys_ptrace) |
44 | .long SYMBOL_NAME(sys_alarm) | 46 | CALL(sys_alarm) |
45 | .long SYMBOL_NAME(sys_fstat) | 47 | CALL(sys_fstat) |
46 | .long SYMBOL_NAME(sys_pause) | 48 | CALL(sys_pause) |
47 | .long SYMBOL_NAME(sys_utime) /* 30 */ | 49 | CALL(sys_utime) /* 30 */ |
48 | .long SYMBOL_NAME(sys_ni_syscall) /* old stty syscall holder */ | 50 | CALL(sys_ni_syscall) /* old stty syscall holder */ |
49 | .long SYMBOL_NAME(sys_ni_syscall) /* old gtty syscall holder */ | 51 | CALL(sys_ni_syscall) /* old gtty syscall holder */ |
50 | .long SYMBOL_NAME(sys_access) | 52 | CALL(sys_access) |
51 | .long SYMBOL_NAME(sys_nice) | 53 | CALL(sys_nice) |
52 | .long SYMBOL_NAME(sys_ni_syscall) /* 35 old ftime syscall holder */ | 54 | CALL(sys_ni_syscall) /* 35 old ftime syscall holder */ |
53 | .long SYMBOL_NAME(sys_sync) | 55 | CALL(sys_sync) |
54 | .long SYMBOL_NAME(sys_kill) | 56 | CALL(sys_kill) |
55 | .long SYMBOL_NAME(sys_rename) | 57 | CALL(sys_rename) |
56 | .long SYMBOL_NAME(sys_mkdir) | 58 | CALL(sys_mkdir) |
57 | .long SYMBOL_NAME(sys_rmdir) /* 40 */ | 59 | CALL(sys_rmdir) /* 40 */ |
58 | .long SYMBOL_NAME(sys_dup) | 60 | CALL(sys_dup) |
59 | .long SYMBOL_NAME(sys_pipe) | 61 | CALL(sys_pipe) |
60 | .long SYMBOL_NAME(sys_times) | 62 | CALL(sys_times) |
61 | .long SYMBOL_NAME(sys_ni_syscall) /* old prof syscall holder */ | 63 | CALL(sys_ni_syscall) /* old prof syscall holder */ |
62 | .long SYMBOL_NAME(sys_brk) /* 45 */ | 64 | CALL(sys_brk) /* 45 */ |
63 | .long SYMBOL_NAME(sys_setgid16) | 65 | CALL(sys_setgid16) |
64 | .long SYMBOL_NAME(sys_getgid16) | 66 | CALL(sys_getgid16) |
65 | .long SYMBOL_NAME(sys_signal) | 67 | CALL(sys_signal) |
66 | .long SYMBOL_NAME(sys_geteuid16) | 68 | CALL(sys_geteuid16) |
67 | .long SYMBOL_NAME(sys_getegid16) /* 50 */ | 69 | CALL(sys_getegid16) /* 50 */ |
68 | .long SYMBOL_NAME(sys_acct) | 70 | CALL(sys_acct) |
69 | .long SYMBOL_NAME(sys_umount) /* recycled never used phys() */ | 71 | CALL(sys_umount) /* recycled never used phys() */ |
70 | .long SYMBOL_NAME(sys_ni_syscall) /* old lock syscall holder */ | 72 | CALL(sys_ni_syscall) /* old lock syscall holder */ |
71 | .long SYMBOL_NAME(sys_ioctl) | 73 | CALL(sys_ioctl) |
72 | .long SYMBOL_NAME(sys_fcntl) /* 55 */ | 74 | CALL(sys_fcntl) /* 55 */ |
73 | .long SYMBOL_NAME(sys_ni_syscall) /* old mpx syscall holder */ | 75 | CALL(sys_ni_syscall) /* old mpx syscall holder */ |
74 | .long SYMBOL_NAME(sys_setpgid) | 76 | CALL(sys_setpgid) |
75 | .long SYMBOL_NAME(sys_ni_syscall) /* old ulimit syscall holder */ | 77 | CALL(sys_ni_syscall) /* old ulimit syscall holder */ |
76 | .long SYMBOL_NAME(sys_ni_syscall) | 78 | CALL(sys_ni_syscall) |
77 | .long SYMBOL_NAME(sys_umask) /* 60 */ | 79 | CALL(sys_umask) /* 60 */ |
78 | .long SYMBOL_NAME(sys_chroot) | 80 | CALL(sys_chroot) |
79 | .long SYMBOL_NAME(sys_ustat) | 81 | CALL(sys_ustat) |
80 | .long SYMBOL_NAME(sys_dup2) | 82 | CALL(sys_dup2) |
81 | .long SYMBOL_NAME(sys_getppid) | 83 | CALL(sys_getppid) |
82 | .long SYMBOL_NAME(sys_getpgrp) /* 65 */ | 84 | CALL(sys_getpgrp) /* 65 */ |
83 | .long SYMBOL_NAME(sys_setsid) | 85 | CALL(sys_setsid) |
84 | .long SYMBOL_NAME(sys_sigaction) | 86 | CALL(sys_sigaction) |
85 | .long SYMBOL_NAME(sys_sgetmask) | 87 | CALL(sys_sgetmask) |
86 | .long SYMBOL_NAME(sys_ssetmask) | 88 | CALL(sys_ssetmask) |
87 | .long SYMBOL_NAME(sys_setreuid16) /* 70 */ | 89 | CALL(sys_setreuid16) /* 70 */ |
88 | .long SYMBOL_NAME(sys_setregid16) | 90 | CALL(sys_setregid16) |
89 | .long SYMBOL_NAME(sys_sigsuspend) | 91 | CALL(sys_sigsuspend) |
90 | .long SYMBOL_NAME(sys_sigpending) | 92 | CALL(sys_sigpending) |
91 | .long SYMBOL_NAME(sys_sethostname) | 93 | CALL(sys_sethostname) |
92 | .long SYMBOL_NAME(sys_setrlimit) /* 75 */ | 94 | CALL(sys_setrlimit) /* 75 */ |
93 | .long SYMBOL_NAME(sys_old_getrlimit) | 95 | CALL(sys_old_getrlimit) |
94 | .long SYMBOL_NAME(sys_getrusage) | 96 | CALL(sys_getrusage) |
95 | .long SYMBOL_NAME(sys_gettimeofday) | 97 | CALL(sys_gettimeofday) |
96 | .long SYMBOL_NAME(sys_settimeofday) | 98 | CALL(sys_settimeofday) |
97 | .long SYMBOL_NAME(sys_getgroups16) /* 80 */ | 99 | CALL(sys_getgroups16) /* 80 */ |
98 | .long SYMBOL_NAME(sys_setgroups16) | 100 | CALL(sys_setgroups16) |
99 | .long SYMBOL_NAME(sys_old_select) | 101 | CALL(sys_old_select) |
100 | .long SYMBOL_NAME(sys_symlink) | 102 | CALL(sys_symlink) |
101 | .long SYMBOL_NAME(sys_lstat) | 103 | CALL(sys_lstat) |
102 | .long SYMBOL_NAME(sys_readlink) /* 85 */ | 104 | CALL(sys_readlink) /* 85 */ |
103 | .long SYMBOL_NAME(sys_uselib) | 105 | CALL(sys_uselib) |
104 | .long SYMBOL_NAME(sys_swapon) | 106 | CALL(sys_swapon) |
105 | .long SYMBOL_NAME(sys_reboot) | 107 | CALL(sys_reboot) |
106 | .long SYMBOL_NAME(sys_old_readdir) | 108 | CALL(sys_old_readdir) |
107 | .long SYMBOL_NAME(sys_old_mmap) /* 90 */ | 109 | CALL(sys_old_mmap) /* 90 */ |
108 | .long SYMBOL_NAME(sys_munmap) | 110 | CALL(sys_munmap) |
109 | .long SYMBOL_NAME(sys_truncate) | 111 | CALL(sys_truncate) |
110 | .long SYMBOL_NAME(sys_ftruncate) | 112 | CALL(sys_ftruncate) |
111 | .long SYMBOL_NAME(sys_fchmod) | 113 | CALL(sys_fchmod) |
112 | .long SYMBOL_NAME(sys_fchown16) /* 95 */ | 114 | CALL(sys_fchown16) /* 95 */ |
113 | .long SYMBOL_NAME(sys_getpriority) | 115 | CALL(sys_getpriority) |
114 | .long SYMBOL_NAME(sys_setpriority) | 116 | CALL(sys_setpriority) |
115 | .long SYMBOL_NAME(sys_ni_syscall) /* old profil syscall holder */ | 117 | CALL(sys_ni_syscall) /* old profil syscall holder */ |
116 | .long SYMBOL_NAME(sys_statfs) | 118 | CALL(sys_statfs) |
117 | .long SYMBOL_NAME(sys_fstatfs) /* 100 */ | 119 | CALL(sys_fstatfs) /* 100 */ |
118 | .long SYMBOL_NAME(sys_ni_syscall) /* ioperm for i386 */ | 120 | CALL(sys_ni_syscall) /* ioperm for i386 */ |
119 | .long SYMBOL_NAME(sys_socketcall) | 121 | CALL(sys_socketcall) |
120 | .long SYMBOL_NAME(sys_syslog) | 122 | CALL(sys_syslog) |
121 | .long SYMBOL_NAME(sys_setitimer) | 123 | CALL(sys_setitimer) |
122 | .long SYMBOL_NAME(sys_getitimer) /* 105 */ | 124 | CALL(sys_getitimer) /* 105 */ |
123 | .long SYMBOL_NAME(sys_newstat) | 125 | CALL(sys_newstat) |
124 | .long SYMBOL_NAME(sys_newlstat) | 126 | CALL(sys_newlstat) |
125 | .long SYMBOL_NAME(sys_newfstat) | 127 | CALL(sys_newfstat) |
126 | .long SYMBOL_NAME(sys_ni_syscall) | 128 | CALL(sys_ni_syscall) |
127 | .long SYMBOL_NAME(sys_ni_syscall) /* iopl for i386 */ /* 110 */ | 129 | CALL(sys_ni_syscall) /* iopl for i386 */ /* 110 */ |
128 | .long SYMBOL_NAME(sys_vhangup) | 130 | CALL(sys_vhangup) |
129 | .long SYMBOL_NAME(sys_ni_syscall) /* obsolete idle() syscall */ | 131 | CALL(sys_ni_syscall) /* obsolete idle() syscall */ |
130 | .long SYMBOL_NAME(sys_ni_syscall) /* vm86old for i386 */ | 132 | CALL(sys_ni_syscall) /* vm86old for i386 */ |
131 | .long SYMBOL_NAME(sys_wait4) | 133 | CALL(sys_wait4) |
132 | .long SYMBOL_NAME(sys_swapoff) /* 115 */ | 134 | CALL(sys_swapoff) /* 115 */ |
133 | .long SYMBOL_NAME(sys_sysinfo) | 135 | CALL(sys_sysinfo) |
134 | .long SYMBOL_NAME(sys_ipc) | 136 | CALL(sys_ipc) |
135 | .long SYMBOL_NAME(sys_fsync) | 137 | CALL(sys_fsync) |
136 | .long SYMBOL_NAME(sys_sigreturn) | 138 | CALL(sys_sigreturn) |
137 | .long SYMBOL_NAME(sys_clone) /* 120 */ | 139 | CALL(sys_clone) /* 120 */ |
138 | .long SYMBOL_NAME(sys_setdomainname) | 140 | CALL(sys_setdomainname) |
139 | .long SYMBOL_NAME(sys_newuname) | 141 | CALL(sys_newuname) |
140 | .long SYMBOL_NAME(sys_cacheflush) /* modify_ldt for i386 */ | 142 | CALL(sys_cacheflush) /* modify_ldt for i386 */ |
141 | .long SYMBOL_NAME(sys_adjtimex) | 143 | CALL(sys_adjtimex) |
142 | .long SYMBOL_NAME(sys_ni_syscall) /* 125 sys_mprotect */ | 144 | CALL(sys_ni_syscall) /* 125 sys_mprotect */ |
143 | .long SYMBOL_NAME(sys_sigprocmask) | 145 | CALL(sys_sigprocmask) |
144 | .long SYMBOL_NAME(sys_ni_syscall) /* sys_create_module */ | 146 | CALL(sys_ni_syscall) /* sys_create_module */ |
145 | .long SYMBOL_NAME(sys_init_module) | 147 | CALL(sys_init_module) |
146 | .long SYMBOL_NAME(sys_delete_module) | 148 | CALL(sys_delete_module) |
147 | .long SYMBOL_NAME(sys_ni_syscall) /* 130 sys_get_kernel_syms */ | 149 | CALL(sys_ni_syscall) /* 130 sys_get_kernel_syms */ |
148 | .long SYMBOL_NAME(sys_quotactl) | 150 | CALL(sys_quotactl) |
149 | .long SYMBOL_NAME(sys_getpgid) | 151 | CALL(sys_getpgid) |
150 | .long SYMBOL_NAME(sys_fchdir) | 152 | CALL(sys_fchdir) |
151 | .long SYMBOL_NAME(sys_bdflush) | 153 | CALL(sys_bdflush) |
152 | .long SYMBOL_NAME(sys_sysfs) /* 135 */ | 154 | CALL(sys_sysfs) /* 135 */ |
153 | .long SYMBOL_NAME(sys_personality) | 155 | CALL(sys_personality) |
154 | .long SYMBOL_NAME(sys_ni_syscall) /* for afs_syscall */ | 156 | CALL(sys_ni_syscall) /* for afs_syscall */ |
155 | .long SYMBOL_NAME(sys_setfsuid16) | 157 | CALL(sys_setfsuid16) |
156 | .long SYMBOL_NAME(sys_setfsgid16) | 158 | CALL(sys_setfsgid16) |
157 | .long SYMBOL_NAME(sys_llseek) /* 140 */ | 159 | CALL(sys_llseek) /* 140 */ |
158 | .long SYMBOL_NAME(sys_getdents) | 160 | CALL(sys_getdents) |
159 | .long SYMBOL_NAME(sys_select) | 161 | CALL(sys_select) |
160 | .long SYMBOL_NAME(sys_flock) | 162 | CALL(sys_flock) |
161 | .long SYMBOL_NAME(sys_ni_syscall) /* sys_msync */ | 163 | CALL(sys_ni_syscall) /* sys_msync */ |
162 | .long SYMBOL_NAME(sys_readv) /* 145 */ | 164 | CALL(sys_readv) /* 145 */ |
163 | .long SYMBOL_NAME(sys_writev) | 165 | CALL(sys_writev) |
164 | .long SYMBOL_NAME(sys_getsid) | 166 | CALL(sys_getsid) |
165 | .long SYMBOL_NAME(sys_fdatasync) | 167 | CALL(sys_fdatasync) |
166 | .long SYMBOL_NAME(sys_sysctl) | 168 | CALL(sys_sysctl) |
167 | .long SYMBOL_NAME(sys_ni_syscall) /* 150 sys_mlock */ | 169 | CALL(sys_ni_syscall) /* 150 sys_mlock */ |
168 | .long SYMBOL_NAME(sys_ni_syscall) /* sys_munlock */ | 170 | CALL(sys_ni_syscall) /* sys_munlock */ |
169 | .long SYMBOL_NAME(sys_ni_syscall) /* sys_mlockall */ | 171 | CALL(sys_ni_syscall) /* sys_mlockall */ |
170 | .long SYMBOL_NAME(sys_ni_syscall) /* sys_munlockall */ | 172 | CALL(sys_ni_syscall) /* sys_munlockall */ |
171 | .long SYMBOL_NAME(sys_sched_setparam) | 173 | CALL(sys_sched_setparam) |
172 | .long SYMBOL_NAME(sys_sched_getparam) /* 155 */ | 174 | CALL(sys_sched_getparam) /* 155 */ |
173 | .long SYMBOL_NAME(sys_sched_setscheduler) | 175 | CALL(sys_sched_setscheduler) |
174 | .long SYMBOL_NAME(sys_sched_getscheduler) | 176 | CALL(sys_sched_getscheduler) |
175 | .long SYMBOL_NAME(sys_sched_yield) | 177 | CALL(sys_sched_yield) |
176 | .long SYMBOL_NAME(sys_sched_get_priority_max) | 178 | CALL(sys_sched_get_priority_max) |
177 | .long SYMBOL_NAME(sys_sched_get_priority_min) /* 160 */ | 179 | CALL(sys_sched_get_priority_min) /* 160 */ |
178 | .long SYMBOL_NAME(sys_sched_rr_get_interval) | 180 | CALL(sys_sched_rr_get_interval) |
179 | .long SYMBOL_NAME(sys_nanosleep) | 181 | CALL(sys_nanosleep) |
180 | .long SYMBOL_NAME(sys_ni_syscall) /* sys_mremap */ | 182 | CALL(sys_ni_syscall) /* sys_mremap */ |
181 | .long SYMBOL_NAME(sys_setresuid16) | 183 | CALL(sys_setresuid16) |
182 | .long SYMBOL_NAME(sys_getresuid16) /* 165 */ | 184 | CALL(sys_getresuid16) /* 165 */ |
183 | .long SYMBOL_NAME(sys_ni_syscall) /* for vm86 */ | 185 | CALL(sys_ni_syscall) /* for vm86 */ |
184 | .long SYMBOL_NAME(sys_ni_syscall) /* sys_query_module */ | 186 | CALL(sys_ni_syscall) /* sys_query_module */ |
185 | .long SYMBOL_NAME(sys_poll) | 187 | CALL(sys_poll) |
186 | .long SYMBOL_NAME(sys_ni_syscall) /* old nfsservctl */ | 188 | CALL(sys_ni_syscall) /* old nfsservctl */ |
187 | .long SYMBOL_NAME(sys_setresgid16) /* 170 */ | 189 | CALL(sys_setresgid16) /* 170 */ |
188 | .long SYMBOL_NAME(sys_getresgid16) | 190 | CALL(sys_getresgid16) |
189 | .long SYMBOL_NAME(sys_prctl) | 191 | CALL(sys_prctl) |
190 | .long SYMBOL_NAME(sys_rt_sigreturn) | 192 | CALL(sys_rt_sigreturn) |
191 | .long SYMBOL_NAME(sys_rt_sigaction) | 193 | CALL(sys_rt_sigaction) |
192 | .long SYMBOL_NAME(sys_rt_sigprocmask) /* 175 */ | 194 | CALL(sys_rt_sigprocmask) /* 175 */ |
193 | .long SYMBOL_NAME(sys_rt_sigpending) | 195 | CALL(sys_rt_sigpending) |
194 | .long SYMBOL_NAME(sys_rt_sigtimedwait) | 196 | CALL(sys_rt_sigtimedwait) |
195 | .long SYMBOL_NAME(sys_rt_sigqueueinfo) | 197 | CALL(sys_rt_sigqueueinfo) |
196 | .long SYMBOL_NAME(sys_rt_sigsuspend) | 198 | CALL(sys_rt_sigsuspend) |
197 | .long SYMBOL_NAME(sys_pread64) /* 180 */ | 199 | CALL(sys_pread64) /* 180 */ |
198 | .long SYMBOL_NAME(sys_pwrite64) | 200 | CALL(sys_pwrite64) |
199 | .long SYMBOL_NAME(sys_lchown16); | 201 | CALL(sys_lchown16); |
200 | .long SYMBOL_NAME(sys_getcwd) | 202 | CALL(sys_getcwd) |
201 | .long SYMBOL_NAME(sys_capget) | 203 | CALL(sys_capget) |
202 | .long SYMBOL_NAME(sys_capset) /* 185 */ | 204 | CALL(sys_capset) /* 185 */ |
203 | .long SYMBOL_NAME(sys_sigaltstack) | 205 | CALL(sys_sigaltstack) |
204 | .long SYMBOL_NAME(sys_sendfile) | 206 | CALL(sys_sendfile) |
205 | .long SYMBOL_NAME(sys_ni_syscall) /* streams1 */ | 207 | CALL(sys_ni_syscall) /* streams1 */ |
206 | .long SYMBOL_NAME(sys_ni_syscall) /* streams2 */ | 208 | CALL(sys_ni_syscall) /* streams2 */ |
207 | .long SYMBOL_NAME(sys_vfork) /* 190 */ | 209 | CALL(sys_vfork) /* 190 */ |
208 | .long SYMBOL_NAME(sys_getrlimit) | 210 | CALL(sys_getrlimit) |
209 | .long SYMBOL_NAME(sys_mmap_pgoff) | 211 | CALL(sys_mmap_pgoff) |
210 | .long SYMBOL_NAME(sys_truncate64) | 212 | CALL(sys_truncate64) |
211 | .long SYMBOL_NAME(sys_ftruncate64) | 213 | CALL(sys_ftruncate64) |
212 | .long SYMBOL_NAME(sys_stat64) /* 195 */ | 214 | CALL(sys_stat64) /* 195 */ |
213 | .long SYMBOL_NAME(sys_lstat64) | 215 | CALL(sys_lstat64) |
214 | .long SYMBOL_NAME(sys_fstat64) | 216 | CALL(sys_fstat64) |
215 | .long SYMBOL_NAME(sys_chown) | 217 | CALL(sys_chown) |
216 | .long SYMBOL_NAME(sys_getuid) | 218 | CALL(sys_getuid) |
217 | .long SYMBOL_NAME(sys_getgid) /* 200 */ | 219 | CALL(sys_getgid) /* 200 */ |
218 | .long SYMBOL_NAME(sys_geteuid) | 220 | CALL(sys_geteuid) |
219 | .long SYMBOL_NAME(sys_getegid) | 221 | CALL(sys_getegid) |
220 | .long SYMBOL_NAME(sys_setreuid) | 222 | CALL(sys_setreuid) |
221 | .long SYMBOL_NAME(sys_setregid) | 223 | CALL(sys_setregid) |
222 | .long SYMBOL_NAME(sys_getgroups) /* 205 */ | 224 | CALL(sys_getgroups) /* 205 */ |
223 | .long SYMBOL_NAME(sys_setgroups) | 225 | CALL(sys_setgroups) |
224 | .long SYMBOL_NAME(sys_fchown) | 226 | CALL(sys_fchown) |
225 | .long SYMBOL_NAME(sys_setresuid) | 227 | CALL(sys_setresuid) |
226 | .long SYMBOL_NAME(sys_getresuid) | 228 | CALL(sys_getresuid) |
227 | .long SYMBOL_NAME(sys_setresgid) /* 210 */ | 229 | CALL(sys_setresgid) /* 210 */ |
228 | .long SYMBOL_NAME(sys_getresgid) | 230 | CALL(sys_getresgid) |
229 | .long SYMBOL_NAME(sys_lchown) | 231 | CALL(sys_lchown) |
230 | .long SYMBOL_NAME(sys_setuid) | 232 | CALL(sys_setuid) |
231 | .long SYMBOL_NAME(sys_setgid) | 233 | CALL(sys_setgid) |
232 | .long SYMBOL_NAME(sys_setfsuid) /* 215 */ | 234 | CALL(sys_setfsuid) /* 215 */ |
233 | .long SYMBOL_NAME(sys_setfsgid) | 235 | CALL(sys_setfsgid) |
234 | .long SYMBOL_NAME(sys_pivot_root) | 236 | CALL(sys_pivot_root) |
235 | .long SYMBOL_NAME(sys_ni_syscall) | 237 | CALL(sys_ni_syscall) |
236 | .long SYMBOL_NAME(sys_ni_syscall) | 238 | CALL(sys_ni_syscall) |
237 | .long SYMBOL_NAME(sys_getdents64) /* 220 */ | 239 | CALL(sys_getdents64) /* 220 */ |
238 | .long SYMBOL_NAME(sys_fcntl64) | 240 | CALL(sys_fcntl64) |
239 | .long SYMBOL_NAME(sys_ni_syscall) /* reserved TUX */ | 241 | CALL(sys_ni_syscall) /* reserved TUX */ |
240 | .long SYMBOL_NAME(sys_ni_syscall) /* reserved Security */ | 242 | CALL(sys_ni_syscall) /* reserved Security */ |
241 | .long SYMBOL_NAME(sys_gettid) | 243 | CALL(sys_gettid) |
242 | .long SYMBOL_NAME(sys_readahead) /* 225 */ | 244 | CALL(sys_readahead) /* 225 */ |
243 | .long SYMBOL_NAME(sys_setxattr) | 245 | CALL(sys_setxattr) |
244 | .long SYMBOL_NAME(sys_lsetxattr) | 246 | CALL(sys_lsetxattr) |
245 | .long SYMBOL_NAME(sys_fsetxattr) | 247 | CALL(sys_fsetxattr) |
246 | .long SYMBOL_NAME(sys_getxattr) | 248 | CALL(sys_getxattr) |
247 | .long SYMBOL_NAME(sys_lgetxattr) /* 230 */ | 249 | CALL(sys_lgetxattr) /* 230 */ |
248 | .long SYMBOL_NAME(sys_fgetxattr) | 250 | CALL(sys_fgetxattr) |
249 | .long SYMBOL_NAME(sys_listxattr) | 251 | CALL(sys_listxattr) |
250 | .long SYMBOL_NAME(sys_llistxattr) | 252 | CALL(sys_llistxattr) |
251 | .long SYMBOL_NAME(sys_flistxattr) | 253 | CALL(sys_flistxattr) |
252 | .long SYMBOL_NAME(sys_removexattr) /* 235 */ | 254 | CALL(sys_removexattr) /* 235 */ |
253 | .long SYMBOL_NAME(sys_lremovexattr) | 255 | CALL(sys_lremovexattr) |
254 | .long SYMBOL_NAME(sys_fremovexattr) | 256 | CALL(sys_fremovexattr) |
255 | .long SYMBOL_NAME(sys_tkill) | 257 | CALL(sys_tkill) |
256 | .long SYMBOL_NAME(sys_sendfile64) | 258 | CALL(sys_sendfile64) |
257 | .long SYMBOL_NAME(sys_futex) /* 240 */ | 259 | CALL(sys_futex) /* 240 */ |
258 | .long SYMBOL_NAME(sys_sched_setaffinity) | 260 | CALL(sys_sched_setaffinity) |
259 | .long SYMBOL_NAME(sys_sched_getaffinity) | 261 | CALL(sys_sched_getaffinity) |
260 | .long SYMBOL_NAME(sys_ni_syscall) | 262 | CALL(sys_ni_syscall) |
261 | .long SYMBOL_NAME(sys_ni_syscall) | 263 | CALL(sys_ni_syscall) |
262 | .long SYMBOL_NAME(sys_io_setup) /* 245 */ | 264 | CALL(sys_io_setup) /* 245 */ |
263 | .long SYMBOL_NAME(sys_io_destroy) | 265 | CALL(sys_io_destroy) |
264 | .long SYMBOL_NAME(sys_io_getevents) | 266 | CALL(sys_io_getevents) |
265 | .long SYMBOL_NAME(sys_io_submit) | 267 | CALL(sys_io_submit) |
266 | .long SYMBOL_NAME(sys_io_cancel) | 268 | CALL(sys_io_cancel) |
267 | .long SYMBOL_NAME(sys_fadvise64) /* 250 */ | 269 | CALL(sys_fadvise64) /* 250 */ |
268 | .long SYMBOL_NAME(sys_ni_syscall) | 270 | CALL(sys_ni_syscall) |
269 | .long SYMBOL_NAME(sys_exit_group) | 271 | CALL(sys_exit_group) |
270 | .long SYMBOL_NAME(sys_lookup_dcookie) | 272 | CALL(sys_lookup_dcookie) |
271 | .long SYMBOL_NAME(sys_epoll_create) | 273 | CALL(sys_epoll_create) |
272 | .long SYMBOL_NAME(sys_epoll_ctl) /* 255 */ | 274 | CALL(sys_epoll_ctl) /* 255 */ |
273 | .long SYMBOL_NAME(sys_epoll_wait) | 275 | CALL(sys_epoll_wait) |
274 | .long SYMBOL_NAME(sys_ni_syscall) /* sys_remap_file_pages */ | 276 | CALL(sys_ni_syscall) /* sys_remap_file_pages */ |
275 | .long SYMBOL_NAME(sys_set_tid_address) | 277 | CALL(sys_set_tid_address) |
276 | .long SYMBOL_NAME(sys_timer_create) | 278 | CALL(sys_timer_create) |
277 | .long SYMBOL_NAME(sys_timer_settime) /* 260 */ | 279 | CALL(sys_timer_settime) /* 260 */ |
278 | .long SYMBOL_NAME(sys_timer_gettime) | 280 | CALL(sys_timer_gettime) |
279 | .long SYMBOL_NAME(sys_timer_getoverrun) | 281 | CALL(sys_timer_getoverrun) |
280 | .long SYMBOL_NAME(sys_timer_delete) | 282 | CALL(sys_timer_delete) |
281 | .long SYMBOL_NAME(sys_clock_settime) | 283 | CALL(sys_clock_settime) |
282 | .long SYMBOL_NAME(sys_clock_gettime) /* 265 */ | 284 | CALL(sys_clock_gettime) /* 265 */ |
283 | .long SYMBOL_NAME(sys_clock_getres) | 285 | CALL(sys_clock_getres) |
284 | .long SYMBOL_NAME(sys_clock_nanosleep) | 286 | CALL(sys_clock_nanosleep) |
285 | .long SYMBOL_NAME(sys_statfs64) | 287 | CALL(sys_statfs64) |
286 | .long SYMBOL_NAME(sys_fstatfs64) | 288 | CALL(sys_fstatfs64) |
287 | .long SYMBOL_NAME(sys_tgkill) /* 270 */ | 289 | CALL(sys_tgkill) /* 270 */ |
288 | .long SYMBOL_NAME(sys_utimes) | 290 | CALL(sys_utimes) |
289 | .long SYMBOL_NAME(sys_fadvise64_64) | 291 | CALL(sys_fadvise64_64) |
290 | .long SYMBOL_NAME(sys_ni_syscall) /* sys_vserver */ | 292 | CALL(sys_ni_syscall) /* sys_vserver */ |
291 | .long SYMBOL_NAME(sys_ni_syscall) | 293 | CALL(sys_ni_syscall) |
292 | .long SYMBOL_NAME(sys_get_mempolicy) /* 275 */ | 294 | CALL(sys_get_mempolicy) /* 275 */ |
293 | .long SYMBOL_NAME(sys_set_mempolicy) | 295 | CALL(sys_set_mempolicy) |
294 | .long SYMBOL_NAME(sys_mq_open) | 296 | CALL(sys_mq_open) |
295 | .long SYMBOL_NAME(sys_mq_unlink) | 297 | CALL(sys_mq_unlink) |
296 | .long SYMBOL_NAME(sys_mq_timedsend) | 298 | CALL(sys_mq_timedsend) |
297 | .long SYMBOL_NAME(sys_mq_timedreceive) /* 280 */ | 299 | CALL(sys_mq_timedreceive) /* 280 */ |
298 | .long SYMBOL_NAME(sys_mq_notify) | 300 | CALL(sys_mq_notify) |
299 | .long SYMBOL_NAME(sys_mq_getsetattr) | 301 | CALL(sys_mq_getsetattr) |
300 | .long SYMBOL_NAME(sys_waitid) | 302 | CALL(sys_waitid) |
301 | .long SYMBOL_NAME(sys_ni_syscall) /* sys_kexec_load */ | 303 | CALL(sys_ni_syscall) /* sys_kexec_load */ |
302 | .long SYMBOL_NAME(sys_add_key) /* 285 */ | 304 | CALL(sys_add_key) /* 285 */ |
303 | .long SYMBOL_NAME(sys_request_key) | 305 | CALL(sys_request_key) |
304 | .long SYMBOL_NAME(sys_keyctl) | 306 | CALL(sys_keyctl) |
305 | .long SYMBOL_NAME(sys_ioprio_set) | 307 | CALL(sys_ioprio_set) |
306 | .long SYMBOL_NAME(sys_ioprio_get) /* 290 */ | 308 | CALL(sys_ioprio_get) /* 290 */ |
307 | .long SYMBOL_NAME(sys_inotify_init) | 309 | CALL(sys_inotify_init) |
308 | .long SYMBOL_NAME(sys_inotify_add_watch) | 310 | CALL(sys_inotify_add_watch) |
309 | .long SYMBOL_NAME(sys_inotify_rm_watch) | 311 | CALL(sys_inotify_rm_watch) |
310 | .long SYMBOL_NAME(sys_migrate_pages) | 312 | CALL(sys_migrate_pages) |
311 | .long SYMBOL_NAME(sys_openat) /* 295 */ | 313 | CALL(sys_openat) /* 295 */ |
312 | .long SYMBOL_NAME(sys_mkdirat) | 314 | CALL(sys_mkdirat) |
313 | .long SYMBOL_NAME(sys_mknodat) | 315 | CALL(sys_mknodat) |
314 | .long SYMBOL_NAME(sys_fchownat) | 316 | CALL(sys_fchownat) |
315 | .long SYMBOL_NAME(sys_futimesat) | 317 | CALL(sys_futimesat) |
316 | .long SYMBOL_NAME(sys_fstatat64) /* 300 */ | 318 | CALL(sys_fstatat64) /* 300 */ |
317 | .long SYMBOL_NAME(sys_unlinkat) | 319 | CALL(sys_unlinkat) |
318 | .long SYMBOL_NAME(sys_renameat) | 320 | CALL(sys_renameat) |
319 | .long SYMBOL_NAME(sys_linkat) | 321 | CALL(sys_linkat) |
320 | .long SYMBOL_NAME(sys_symlinkat) | 322 | CALL(sys_symlinkat) |
321 | .long SYMBOL_NAME(sys_readlinkat) /* 305 */ | 323 | CALL(sys_readlinkat) /* 305 */ |
322 | .long SYMBOL_NAME(sys_fchmodat) | 324 | CALL(sys_fchmodat) |
323 | .long SYMBOL_NAME(sys_faccessat) | 325 | CALL(sys_faccessat) |
324 | .long SYMBOL_NAME(sys_ni_syscall) /* sys_pselect6 */ | 326 | CALL(sys_ni_syscall) /* sys_pselect6 */ |
325 | .long SYMBOL_NAME(sys_ni_syscall) /* sys_ppoll */ | 327 | CALL(sys_ni_syscall) /* sys_ppoll */ |
326 | .long SYMBOL_NAME(sys_unshare) /* 310 */ | 328 | CALL(sys_unshare) /* 310 */ |
327 | .long SYMBOL_NAME(sys_set_robust_list) | 329 | CALL(sys_set_robust_list) |
328 | .long SYMBOL_NAME(sys_get_robust_list) | 330 | CALL(sys_get_robust_list) |
329 | .long SYMBOL_NAME(sys_splice) | 331 | CALL(sys_splice) |
330 | .long SYMBOL_NAME(sys_sync_file_range) | 332 | CALL(sys_sync_file_range) |
331 | .long SYMBOL_NAME(sys_tee) /* 315 */ | 333 | CALL(sys_tee) /* 315 */ |
332 | .long SYMBOL_NAME(sys_vmsplice) | 334 | CALL(sys_vmsplice) |
333 | .long SYMBOL_NAME(sys_ni_syscall) /* sys_move_pages */ | 335 | CALL(sys_ni_syscall) /* sys_move_pages */ |
334 | .long SYMBOL_NAME(sys_getcpu) | 336 | CALL(sys_getcpu) |
335 | .long SYMBOL_NAME(sys_ni_syscall) /* sys_epoll_pwait */ | 337 | CALL(sys_ni_syscall) /* sys_epoll_pwait */ |
336 | .long SYMBOL_NAME(sys_setns) /* 320 */ | 338 | CALL(sys_setns) /* 320 */ |
diff --git a/arch/h8300/lib/abs.S b/arch/h8300/lib/abs.S index cabdd46b41db..ddd1fb3d01ad 100644 --- a/arch/h8300/lib/abs.S +++ b/arch/h8300/lib/abs.S | |||
@@ -9,10 +9,10 @@ | |||
9 | .h8300s | 9 | .h8300s |
10 | #endif | 10 | #endif |
11 | .text | 11 | .text |
12 | .global SYMBOL_NAME(abs) | 12 | .global _abs |
13 | 13 | ||
14 | ;;; int abs(int n) | 14 | ;;; int abs(int n) |
15 | SYMBOL_NAME_LABEL(abs) | 15 | _abs: |
16 | mov.l er0,er0 | 16 | mov.l er0,er0 |
17 | bpl 1f | 17 | bpl 1f |
18 | neg.l er0 | 18 | neg.l er0 |
diff --git a/arch/h8300/lib/memcpy.S b/arch/h8300/lib/memcpy.S index fdcbc1ee673c..cad325e2c0e8 100644 --- a/arch/h8300/lib/memcpy.S +++ b/arch/h8300/lib/memcpy.S | |||
@@ -10,10 +10,10 @@ | |||
10 | #endif | 10 | #endif |
11 | 11 | ||
12 | .text | 12 | .text |
13 | .global SYMBOL_NAME(memcpy) | 13 | .global _memcpy |
14 | 14 | ||
15 | ;;; void *memcpy(void *to, void *from, size_t n) | 15 | ;;; void *memcpy(void *to, void *from, size_t n) |
16 | SYMBOL_NAME_LABEL(memcpy) | 16 | _memcpy: |
17 | mov.l er2,er2 | 17 | mov.l er2,er2 |
18 | bne 1f | 18 | bne 1f |
19 | rts | 19 | rts |
diff --git a/arch/h8300/lib/memset.S b/arch/h8300/lib/memset.S index 59abdf9485a5..4549a64c5b79 100644 --- a/arch/h8300/lib/memset.S +++ b/arch/h8300/lib/memset.S | |||
@@ -10,13 +10,13 @@ | |||
10 | #endif | 10 | #endif |
11 | .text | 11 | .text |
12 | 12 | ||
13 | .global SYMBOL_NAME(memset) | 13 | .global _memset |
14 | 14 | ||
15 | ;;void *memset(*ptr, int c, size_t count) | 15 | ;;void *memset(*ptr, int c, size_t count) |
16 | ;; ptr = er0 | 16 | ;; ptr = er0 |
17 | ;; c = er1(r1l) | 17 | ;; c = er1(r1l) |
18 | ;; count = er2 | 18 | ;; count = er2 |
19 | SYMBOL_NAME_LABEL(memset) | 19 | _memset: |
20 | btst #0,r0l | 20 | btst #0,r0l |
21 | beq 2f | 21 | beq 2f |
22 | 22 | ||
diff --git a/arch/h8300/platform/h8300h/aki3068net/crt0_ram.S b/arch/h8300/platform/h8300h/aki3068net/crt0_ram.S index ecaeb31ae9a4..b2ad0f2d0417 100644 --- a/arch/h8300/platform/h8300h/aki3068net/crt0_ram.S +++ b/arch/h8300/platform/h8300h/aki3068net/crt0_ram.S | |||
@@ -22,10 +22,10 @@ | |||
22 | #define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS | 22 | #define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS |
23 | #endif | 23 | #endif |
24 | 24 | ||
25 | .global SYMBOL_NAME(_start) | 25 | .global __start |
26 | .global SYMBOL_NAME(command_line) | 26 | .global _command_line |
27 | .global SYMBOL_NAME(_platform_gpio_table) | 27 | .global __platform_gpio_table |
28 | .global SYMBOL_NAME(_target_name) | 28 | .global __target_name |
29 | 29 | ||
30 | .h8300h | 30 | .h8300h |
31 | 31 | ||
@@ -33,7 +33,7 @@ | |||
33 | .file "crt0_ram.S" | 33 | .file "crt0_ram.S" |
34 | 34 | ||
35 | /* CPU Reset entry */ | 35 | /* CPU Reset entry */ |
36 | SYMBOL_NAME_LABEL(_start) | 36 | __start: |
37 | mov.l #RAMEND,sp | 37 | mov.l #RAMEND,sp |
38 | ldc #0x80,ccr | 38 | ldc #0x80,ccr |
39 | 39 | ||
@@ -59,13 +59,13 @@ SYMBOL_NAME_LABEL(_start) | |||
59 | 59 | ||
60 | /* copy kernel commandline */ | 60 | /* copy kernel commandline */ |
61 | mov.l #COMMAND_START,er5 | 61 | mov.l #COMMAND_START,er5 |
62 | mov.l #SYMBOL_NAME(command_line),er6 | 62 | mov.l #_command_line,er6 |
63 | mov.w #512,r4 | 63 | mov.w #512,r4 |
64 | eepmov.w | 64 | eepmov.w |
65 | 65 | ||
66 | /* uClinux kernel start */ | 66 | /* uClinux kernel start */ |
67 | ldc #0x90,ccr /* running kernel */ | 67 | ldc #0x90,ccr /* running kernel */ |
68 | mov.l #SYMBOL_NAME(init_thread_union),sp | 68 | mov.l #_init_thread_union,sp |
69 | add.l #0x2000,sp | 69 | add.l #0x2000,sp |
70 | jsr @_start_kernel | 70 | jsr @_start_kernel |
71 | _exit: | 71 | _exit: |
@@ -107,4 +107,4 @@ __target_name: | |||
107 | .asciz "AE-3068" | 107 | .asciz "AE-3068" |
108 | 108 | ||
109 | .section .bootvec,"ax" | 109 | .section .bootvec,"ax" |
110 | jmp @SYMBOL_NAME(_start) | 110 | jmp @__start |
diff --git a/arch/h8300/platform/h8300h/generic/crt0_ram.S b/arch/h8300/platform/h8300h/generic/crt0_ram.S index 80d0e16a4499..5ab7d9c12910 100644 --- a/arch/h8300/platform/h8300h/generic/crt0_ram.S +++ b/arch/h8300/platform/h8300h/generic/crt0_ram.S | |||
@@ -22,10 +22,10 @@ | |||
22 | #define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS | 22 | #define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS |
23 | #endif | 23 | #endif |
24 | 24 | ||
25 | .global SYMBOL_NAME(_start) | 25 | .global __start |
26 | .global SYMBOL_NAME(command_line) | 26 | .global _command_line |
27 | .global SYMBOL_NAME(_platform_gpio_table) | 27 | .global __platform_gpio_table |
28 | .global SYMBOL_NAME(_target_name) | 28 | .global __target_name |
29 | 29 | ||
30 | .h8300h | 30 | .h8300h |
31 | 31 | ||
@@ -33,7 +33,7 @@ | |||
33 | .file "crt0_ram.S" | 33 | .file "crt0_ram.S" |
34 | 34 | ||
35 | /* CPU Reset entry */ | 35 | /* CPU Reset entry */ |
36 | SYMBOL_NAME_LABEL(_start) | 36 | __start: |
37 | mov.l #RAMEND,sp | 37 | mov.l #RAMEND,sp |
38 | ldc #0x80,ccr | 38 | ldc #0x80,ccr |
39 | 39 | ||
@@ -59,13 +59,13 @@ SYMBOL_NAME_LABEL(_start) | |||
59 | 59 | ||
60 | /* copy kernel commandline */ | 60 | /* copy kernel commandline */ |
61 | mov.l #COMMAND_START,er5 | 61 | mov.l #COMMAND_START,er5 |
62 | mov.l #SYMBOL_NAME(command_line),er6 | 62 | mov.l #_command_line,er6 |
63 | mov.w #512,r4 | 63 | mov.w #512,r4 |
64 | eepmov.w | 64 | eepmov.w |
65 | 65 | ||
66 | /* uClinux kernel start */ | 66 | /* uClinux kernel start */ |
67 | ldc #0x90,ccr /* running kernel */ | 67 | ldc #0x90,ccr /* running kernel */ |
68 | mov.l #SYMBOL_NAME(init_thread_union),sp | 68 | mov.l #_init_thread_union,sp |
69 | add.l #0x2000,sp | 69 | add.l #0x2000,sp |
70 | jsr @_start_kernel | 70 | jsr @_start_kernel |
71 | _exit: | 71 | _exit: |
diff --git a/arch/h8300/platform/h8300h/generic/crt0_rom.S b/arch/h8300/platform/h8300h/generic/crt0_rom.S index 120add7ca832..dda1dfa15a5e 100644 --- a/arch/h8300/platform/h8300h/generic/crt0_rom.S +++ b/arch/h8300/platform/h8300h/generic/crt0_rom.S | |||
@@ -12,17 +12,17 @@ | |||
12 | 12 | ||
13 | #include <asm/linkage.h> | 13 | #include <asm/linkage.h> |
14 | 14 | ||
15 | .global SYMBOL_NAME(_start) | 15 | .global __start |
16 | .global SYMBOL_NAME(_command_line) | 16 | .global __command_line |
17 | .global SYMBOL_NAME(_platform_gpio_table) | 17 | .global __platform_gpio_table |
18 | .global SYMBOL_NAME(_target_name) | 18 | .global __target_name |
19 | 19 | ||
20 | .h8300h | 20 | .h8300h |
21 | .section .text | 21 | .section .text |
22 | .file "crt0_rom.S" | 22 | .file "crt0_rom.S" |
23 | 23 | ||
24 | /* CPU Reset entry */ | 24 | /* CPU Reset entry */ |
25 | SYMBOL_NAME_LABEL(_start) | 25 | __start: |
26 | mov.l #__ramend,sp | 26 | mov.l #__ramend,sp |
27 | ldc #0x80,ccr | 27 | ldc #0x80,ccr |
28 | 28 | ||
@@ -60,13 +60,13 @@ SYMBOL_NAME_LABEL(_start) | |||
60 | 60 | ||
61 | /* copy kernel commandline */ | 61 | /* copy kernel commandline */ |
62 | mov.l #COMMAND_START,er5 | 62 | mov.l #COMMAND_START,er5 |
63 | mov.l #SYMBOL_NAME(_command_line),er6 | 63 | mov.l #__command_line,er6 |
64 | mov.w #512,r4 | 64 | mov.w #512,r4 |
65 | eepmov.w | 65 | eepmov.w |
66 | 66 | ||
67 | /* linux kernel start */ | 67 | /* linux kernel start */ |
68 | ldc #0x90,ccr /* running kernel */ | 68 | ldc #0x90,ccr /* running kernel */ |
69 | mov.l #SYMBOL_NAME(init_thread_union),sp | 69 | mov.l #_init_thread_union,sp |
70 | add.l #0x2000,sp | 70 | add.l #0x2000,sp |
71 | jsr @_start_kernel | 71 | jsr @_start_kernel |
72 | _exit: | 72 | _exit: |
diff --git a/arch/h8300/platform/h8300h/h8max/crt0_ram.S b/arch/h8300/platform/h8300h/h8max/crt0_ram.S index efcbefb91b67..6a0d4e2d9ec6 100644 --- a/arch/h8300/platform/h8300h/h8max/crt0_ram.S +++ b/arch/h8300/platform/h8300h/h8max/crt0_ram.S | |||
@@ -22,10 +22,10 @@ | |||
22 | #define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS | 22 | #define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS |
23 | #endif | 23 | #endif |
24 | 24 | ||
25 | .global SYMBOL_NAME(_start) | 25 | .global __start |
26 | .global SYMBOL_NAME(command_line) | 26 | .global _command_line |
27 | .global SYMBOL_NAME(_platform_gpio_table) | 27 | .global __platform_gpio_table |
28 | .global SYMBOL_NAME(_target_name) | 28 | .global __target_name |
29 | 29 | ||
30 | .h8300h | 30 | .h8300h |
31 | 31 | ||
@@ -33,7 +33,7 @@ | |||
33 | .file "crt0_ram.S" | 33 | .file "crt0_ram.S" |
34 | 34 | ||
35 | /* CPU Reset entry */ | 35 | /* CPU Reset entry */ |
36 | SYMBOL_NAME_LABEL(_start) | 36 | __start: |
37 | mov.l #RAMEND,sp | 37 | mov.l #RAMEND,sp |
38 | ldc #0x80,ccr | 38 | ldc #0x80,ccr |
39 | 39 | ||
@@ -59,13 +59,13 @@ SYMBOL_NAME_LABEL(_start) | |||
59 | 59 | ||
60 | /* copy kernel commandline */ | 60 | /* copy kernel commandline */ |
61 | mov.l #COMMAND_START,er5 | 61 | mov.l #COMMAND_START,er5 |
62 | mov.l #SYMBOL_NAME(command_line),er6 | 62 | mov.l #_command_line,er6 |
63 | mov.w #512,r4 | 63 | mov.w #512,r4 |
64 | eepmov.w | 64 | eepmov.w |
65 | 65 | ||
66 | /* uClinux kernel start */ | 66 | /* uClinux kernel start */ |
67 | ldc #0x90,ccr /* running kernel */ | 67 | ldc #0x90,ccr /* running kernel */ |
68 | mov.l #SYMBOL_NAME(init_thread_union),sp | 68 | mov.l #_init_thread_union,sp |
69 | add.l #0x2000,sp | 69 | add.l #0x2000,sp |
70 | jsr @_start_kernel | 70 | jsr @_start_kernel |
71 | _exit: | 71 | _exit: |
@@ -107,4 +107,4 @@ __target_name: | |||
107 | .asciz "H8MAX" | 107 | .asciz "H8MAX" |
108 | 108 | ||
109 | .section .bootvec,"ax" | 109 | .section .bootvec,"ax" |
110 | jmp @SYMBOL_NAME(_start) | 110 | jmp @__start |
diff --git a/arch/h8300/platform/h8s/edosk2674/crt0_ram.S b/arch/h8300/platform/h8s/edosk2674/crt0_ram.S index d12b0debe478..5ed191b37cde 100644 --- a/arch/h8300/platform/h8s/edosk2674/crt0_ram.S +++ b/arch/h8300/platform/h8s/edosk2674/crt0_ram.S | |||
@@ -23,10 +23,10 @@ | |||
23 | #define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS | 23 | #define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS |
24 | #endif | 24 | #endif |
25 | 25 | ||
26 | .global SYMBOL_NAME(_start) | 26 | .global __start |
27 | .global SYMBOL_NAME(_command_line) | 27 | .global __command_line |
28 | .global SYMBOL_NAME(_platform_gpio_table) | 28 | .global __platform_gpio_table |
29 | .global SYMBOL_NAME(_target_name) | 29 | .global __target_name |
30 | 30 | ||
31 | .h8300s | 31 | .h8300s |
32 | 32 | ||
@@ -34,7 +34,7 @@ | |||
34 | .file "crt0_ram.S" | 34 | .file "crt0_ram.S" |
35 | 35 | ||
36 | /* CPU Reset entry */ | 36 | /* CPU Reset entry */ |
37 | SYMBOL_NAME_LABEL(_start) | 37 | __start: |
38 | mov.l #RAMEND,sp | 38 | mov.l #RAMEND,sp |
39 | ldc #0x80,ccr | 39 | ldc #0x80,ccr |
40 | ldc #0x00,exr | 40 | ldc #0x00,exr |
@@ -66,13 +66,13 @@ SYMBOL_NAME_LABEL(_start) | |||
66 | 66 | ||
67 | /* copy kernel commandline */ | 67 | /* copy kernel commandline */ |
68 | mov.l #COMMAND_START,er5 | 68 | mov.l #COMMAND_START,er5 |
69 | mov.l #SYMBOL_NAME(command_line),er6 | 69 | mov.l #_command_line,er6 |
70 | mov.w #512,r4 | 70 | mov.w #512,r4 |
71 | eepmov.w | 71 | eepmov.w |
72 | 72 | ||
73 | /* uClinux kernel start */ | 73 | /* uClinux kernel start */ |
74 | ldc #0x90,ccr /* running kernel */ | 74 | ldc #0x90,ccr /* running kernel */ |
75 | mov.l #SYMBOL_NAME(init_thread_union),sp | 75 | mov.l #_init_thread_union,sp |
76 | add.l #0x2000,sp | 76 | add.l #0x2000,sp |
77 | jsr @_start_kernel | 77 | jsr @_start_kernel |
78 | _exit: | 78 | _exit: |
@@ -127,4 +127,4 @@ __target_name: | |||
127 | .asciz "EDOSK-2674" | 127 | .asciz "EDOSK-2674" |
128 | 128 | ||
129 | .section .bootvec,"ax" | 129 | .section .bootvec,"ax" |
130 | jmp @SYMBOL_NAME(_start) | 130 | jmp @__start |
diff --git a/arch/h8300/platform/h8s/edosk2674/crt0_rom.S b/arch/h8300/platform/h8s/edosk2674/crt0_rom.S index c03d23c6fe12..06d1d7f324ca 100644 --- a/arch/h8300/platform/h8s/edosk2674/crt0_rom.S +++ b/arch/h8300/platform/h8s/edosk2674/crt0_rom.S | |||
@@ -13,17 +13,17 @@ | |||
13 | #include <asm/linkage.h> | 13 | #include <asm/linkage.h> |
14 | #include <asm/regs267x.h> | 14 | #include <asm/regs267x.h> |
15 | 15 | ||
16 | .global SYMBOL_NAME(_start) | 16 | .global __start |
17 | .global SYMBOL_NAME(_command_line) | 17 | .global __command_line |
18 | .global SYMBOL_NAME(_platform_gpio_table) | 18 | .global __platform_gpio_table |
19 | .global SYMBOL_NAME(_target_name) | 19 | .global __target_name |
20 | 20 | ||
21 | .h8300s | 21 | .h8300s |
22 | .section .text | 22 | .section .text |
23 | .file "crt0_rom.S" | 23 | .file "crt0_rom.S" |
24 | 24 | ||
25 | /* CPU Reset entry */ | 25 | /* CPU Reset entry */ |
26 | SYMBOL_NAME_LABEL(_start) | 26 | __start: |
27 | mov.l #__ramend,sp | 27 | mov.l #__ramend,sp |
28 | ldc #0x80,ccr | 28 | ldc #0x80,ccr |
29 | ldc #0,exr | 29 | ldc #0,exr |
@@ -82,13 +82,13 @@ SYMBOL_NAME_LABEL(_start) | |||
82 | 82 | ||
83 | /* copy kernel commandline */ | 83 | /* copy kernel commandline */ |
84 | mov.l #COMMAND_START,er5 | 84 | mov.l #COMMAND_START,er5 |
85 | mov.l #SYMBOL_NAME(_command_line),er6 | 85 | mov.l #__command_line,er6 |
86 | mov.w #512,r4 | 86 | mov.w #512,r4 |
87 | eepmov.w | 87 | eepmov.w |
88 | 88 | ||
89 | /* linux kernel start */ | 89 | /* linux kernel start */ |
90 | ldc #0x90,ccr /* running kernel */ | 90 | ldc #0x90,ccr /* running kernel */ |
91 | mov.l #SYMBOL_NAME(init_thread_union),sp | 91 | mov.l #_init_thread_union,sp |
92 | add.l #0x2000,sp | 92 | add.l #0x2000,sp |
93 | jsr @_start_kernel | 93 | jsr @_start_kernel |
94 | _exit: | 94 | _exit: |
diff --git a/arch/h8300/platform/h8s/generic/crt0_ram.S b/arch/h8300/platform/h8s/generic/crt0_ram.S index b04541069976..7018915de74f 100644 --- a/arch/h8300/platform/h8s/generic/crt0_ram.S +++ b/arch/h8300/platform/h8s/generic/crt0_ram.S | |||
@@ -23,10 +23,10 @@ | |||
23 | #define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS | 23 | #define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS |
24 | #endif | 24 | #endif |
25 | 25 | ||
26 | .global SYMBOL_NAME(_start) | 26 | .global __start |
27 | .global SYMBOL_NAME(_command_line) | 27 | .global __command_line |
28 | .global SYMBOL_NAME(_platform_gpio_table) | 28 | .global __platform_gpio_table |
29 | .global SYMBOL_NAME(_target_name) | 29 | .global __target_name |
30 | 30 | ||
31 | .h8300s | 31 | .h8300s |
32 | 32 | ||
@@ -34,7 +34,7 @@ | |||
34 | .file "crt0_ram.S" | 34 | .file "crt0_ram.S" |
35 | 35 | ||
36 | /* CPU Reset entry */ | 36 | /* CPU Reset entry */ |
37 | SYMBOL_NAME_LABEL(_start) | 37 | __start: |
38 | mov.l #RAMEND,sp | 38 | mov.l #RAMEND,sp |
39 | ldc #0x80,ccr | 39 | ldc #0x80,ccr |
40 | ldc #0x00,exr | 40 | ldc #0x00,exr |
@@ -63,13 +63,13 @@ SYMBOL_NAME_LABEL(_start) | |||
63 | 63 | ||
64 | /* copy kernel commandline */ | 64 | /* copy kernel commandline */ |
65 | mov.l #COMMAND_START,er5 | 65 | mov.l #COMMAND_START,er5 |
66 | mov.l #SYMBOL_NAME(command_line),er6 | 66 | mov.l #_command_line,er6 |
67 | mov.w #512,r4 | 67 | mov.w #512,r4 |
68 | eepmov.w | 68 | eepmov.w |
69 | 69 | ||
70 | /* uClinux kernel start */ | 70 | /* uClinux kernel start */ |
71 | ldc #0x90,ccr /* running kernel */ | 71 | ldc #0x90,ccr /* running kernel */ |
72 | mov.l #SYMBOL_NAME(init_thread_union),sp | 72 | mov.l #_init_thread_union,sp |
73 | add.l #0x2000,sp | 73 | add.l #0x2000,sp |
74 | jsr @_start_kernel | 74 | jsr @_start_kernel |
75 | _exit: | 75 | _exit: |
@@ -124,4 +124,4 @@ __target_name: | |||
124 | .asciz "generic" | 124 | .asciz "generic" |
125 | 125 | ||
126 | .section .bootvec,"ax" | 126 | .section .bootvec,"ax" |
127 | jmp @SYMBOL_NAME(_start) | 127 | jmp @__start |
diff --git a/arch/h8300/platform/h8s/generic/crt0_rom.S b/arch/h8300/platform/h8s/generic/crt0_rom.S index 95b6f2898f52..623ba7828193 100644 --- a/arch/h8300/platform/h8s/generic/crt0_rom.S +++ b/arch/h8300/platform/h8s/generic/crt0_rom.S | |||
@@ -13,17 +13,17 @@ | |||
13 | #include <asm/linkage.h> | 13 | #include <asm/linkage.h> |
14 | #include <asm/regs267x.h> | 14 | #include <asm/regs267x.h> |
15 | 15 | ||
16 | .global SYMBOL_NAME(_start) | 16 | .global __start |
17 | .global SYMBOL_NAME(_command_line) | 17 | .global __command_line |
18 | .global SYMBOL_NAME(_platform_gpio_table) | 18 | .global __platform_gpio_table |
19 | .global SYMBOL_NAME(_target_name) | 19 | .global __target_name |
20 | 20 | ||
21 | .h8300s | 21 | .h8300s |
22 | .section .text | 22 | .section .text |
23 | .file "crt0_rom.S" | 23 | .file "crt0_rom.S" |
24 | 24 | ||
25 | /* CPU Reset entry */ | 25 | /* CPU Reset entry */ |
26 | SYMBOL_NAME_LABEL(_start) | 26 | __start: |
27 | mov.l #__ramend,sp | 27 | mov.l #__ramend,sp |
28 | ldc #0x80,ccr | 28 | ldc #0x80,ccr |
29 | ldc #0,exr | 29 | ldc #0,exr |
@@ -61,7 +61,7 @@ SYMBOL_NAME_LABEL(_start) | |||
61 | 61 | ||
62 | /* linux kernel start */ | 62 | /* linux kernel start */ |
63 | ldc #0x90,ccr /* running kernel */ | 63 | ldc #0x90,ccr /* running kernel */ |
64 | mov.l #SYMBOL_NAME(init_thread_union),sp | 64 | mov.l #_init_thread_union,sp |
65 | add.l #0x2000,sp | 65 | add.l #0x2000,sp |
66 | jsr @_start_kernel | 66 | jsr @_start_kernel |
67 | _exit: | 67 | _exit: |
diff --git a/arch/m68k/kernel/asm-offsets.c b/arch/m68k/kernel/asm-offsets.c index a972b00cd77d..8b7b22846366 100644 --- a/arch/m68k/kernel/asm-offsets.c +++ b/arch/m68k/kernel/asm-offsets.c | |||
@@ -77,7 +77,7 @@ int main(void) | |||
77 | DEFINE(BIR_SIZE, offsetof(struct bi_record, size)); | 77 | DEFINE(BIR_SIZE, offsetof(struct bi_record, size)); |
78 | DEFINE(BIR_DATA, offsetof(struct bi_record, data)); | 78 | DEFINE(BIR_DATA, offsetof(struct bi_record, data)); |
79 | 79 | ||
80 | /* offsets into font_desc (drivers/video/console/font.h) */ | 80 | /* offsets into the font_desc struct */ |
81 | DEFINE(FONT_DESC_IDX, offsetof(struct font_desc, idx)); | 81 | DEFINE(FONT_DESC_IDX, offsetof(struct font_desc, idx)); |
82 | DEFINE(FONT_DESC_NAME, offsetof(struct font_desc, name)); | 82 | DEFINE(FONT_DESC_NAME, offsetof(struct font_desc, name)); |
83 | DEFINE(FONT_DESC_WIDTH, offsetof(struct font_desc, width)); | 83 | DEFINE(FONT_DESC_WIDTH, offsetof(struct font_desc, width)); |
diff --git a/arch/openrisc/include/asm/Kbuild b/arch/openrisc/include/asm/Kbuild index f20d01d9aaf9..195653e851da 100644 --- a/arch/openrisc/include/asm/Kbuild +++ b/arch/openrisc/include/asm/Kbuild | |||
@@ -66,3 +66,4 @@ generic-y += types.h | |||
66 | generic-y += ucontext.h | 66 | generic-y += ucontext.h |
67 | generic-y += user.h | 67 | generic-y += user.h |
68 | generic-y += word-at-a-time.h | 68 | generic-y += word-at-a-time.h |
69 | generic-y += xor.h | ||
diff --git a/arch/score/include/asm/Kbuild b/arch/score/include/asm/Kbuild index cebaff8069a1..e1c7bb999b06 100644 --- a/arch/score/include/asm/Kbuild +++ b/arch/score/include/asm/Kbuild | |||
@@ -3,3 +3,4 @@ header-y += | |||
3 | 3 | ||
4 | generic-y += clkdev.h | 4 | generic-y += clkdev.h |
5 | generic-y += trace_clock.h | 5 | generic-y += trace_clock.h |
6 | generic-y += xor.h | ||
diff --git a/arch/score/include/asm/dma-mapping.h b/arch/score/include/asm/dma-mapping.h deleted file mode 100644 index f9c0193c7a53..000000000000 --- a/arch/score/include/asm/dma-mapping.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef _ASM_SCORE_DMA_MAPPING_H | ||
2 | #define _ASM_SCORE_DMA_MAPPING_H | ||
3 | |||
4 | #include <asm-generic/dma-mapping-broken.h> | ||
5 | |||
6 | #endif /* _ASM_SCORE_DMA_MAPPING_H */ | ||
diff --git a/arch/unicore32/boot/compressed/Makefile b/arch/unicore32/boot/compressed/Makefile index 950a9afa38f8..96494fb646f7 100644 --- a/arch/unicore32/boot/compressed/Makefile +++ b/arch/unicore32/boot/compressed/Makefile | |||
@@ -17,7 +17,7 @@ OBJS := misc.o | |||
17 | 17 | ||
18 | # font.c and font.o | 18 | # font.c and font.o |
19 | CFLAGS_font.o := -Dstatic= | 19 | CFLAGS_font.o := -Dstatic= |
20 | $(obj)/font.c: $(srctree)/drivers/video/console/font_8x8.c | 20 | $(obj)/font.c: $(srctree)/lib/fonts/font_8x8.c |
21 | $(call cmd,shipped) | 21 | $(call cmd,shipped) |
22 | 22 | ||
23 | # piggy.S and piggy.o | 23 | # piggy.S and piggy.o |
diff --git a/drivers/input/keyboard/cros_ec_keyb.c b/drivers/input/keyboard/cros_ec_keyb.c index 49557f27bfa6..7e8b0a52af25 100644 --- a/drivers/input/keyboard/cros_ec_keyb.c +++ b/drivers/input/keyboard/cros_ec_keyb.c | |||
@@ -206,33 +206,6 @@ static int cros_ec_keyb_work(struct notifier_block *nb, | |||
206 | return NOTIFY_DONE; | 206 | return NOTIFY_DONE; |
207 | } | 207 | } |
208 | 208 | ||
209 | /* Clear any keys in the buffer */ | ||
210 | static void cros_ec_keyb_clear_keyboard(struct cros_ec_keyb *ckdev) | ||
211 | { | ||
212 | uint8_t old_state[ckdev->cols]; | ||
213 | uint8_t new_state[ckdev->cols]; | ||
214 | unsigned long duration; | ||
215 | int i, ret; | ||
216 | |||
217 | /* | ||
218 | * Keep reading until we see that the scan state does not change. | ||
219 | * That indicates that we are done. | ||
220 | * | ||
221 | * Assume that the EC keyscan buffer is at most 32 deep. | ||
222 | */ | ||
223 | duration = jiffies; | ||
224 | ret = cros_ec_keyb_get_state(ckdev, new_state); | ||
225 | for (i = 1; !ret && i < 32; i++) { | ||
226 | memcpy(old_state, new_state, sizeof(old_state)); | ||
227 | ret = cros_ec_keyb_get_state(ckdev, new_state); | ||
228 | if (0 == memcmp(old_state, new_state, sizeof(old_state))) | ||
229 | break; | ||
230 | } | ||
231 | duration = jiffies - duration; | ||
232 | dev_info(ckdev->dev, "Discarded %d keyscan(s) in %dus\n", i, | ||
233 | jiffies_to_usecs(duration)); | ||
234 | } | ||
235 | |||
236 | static int cros_ec_keyb_probe(struct platform_device *pdev) | 209 | static int cros_ec_keyb_probe(struct platform_device *pdev) |
237 | { | 210 | { |
238 | struct cros_ec_device *ec = dev_get_drvdata(pdev->dev.parent); | 211 | struct cros_ec_device *ec = dev_get_drvdata(pdev->dev.parent); |
@@ -299,6 +272,33 @@ static int cros_ec_keyb_probe(struct platform_device *pdev) | |||
299 | } | 272 | } |
300 | 273 | ||
301 | #ifdef CONFIG_PM_SLEEP | 274 | #ifdef CONFIG_PM_SLEEP |
275 | /* Clear any keys in the buffer */ | ||
276 | static void cros_ec_keyb_clear_keyboard(struct cros_ec_keyb *ckdev) | ||
277 | { | ||
278 | uint8_t old_state[ckdev->cols]; | ||
279 | uint8_t new_state[ckdev->cols]; | ||
280 | unsigned long duration; | ||
281 | int i, ret; | ||
282 | |||
283 | /* | ||
284 | * Keep reading until we see that the scan state does not change. | ||
285 | * That indicates that we are done. | ||
286 | * | ||
287 | * Assume that the EC keyscan buffer is at most 32 deep. | ||
288 | */ | ||
289 | duration = jiffies; | ||
290 | ret = cros_ec_keyb_get_state(ckdev, new_state); | ||
291 | for (i = 1; !ret && i < 32; i++) { | ||
292 | memcpy(old_state, new_state, sizeof(old_state)); | ||
293 | ret = cros_ec_keyb_get_state(ckdev, new_state); | ||
294 | if (0 == memcmp(old_state, new_state, sizeof(old_state))) | ||
295 | break; | ||
296 | } | ||
297 | duration = jiffies - duration; | ||
298 | dev_info(ckdev->dev, "Discarded %d keyscan(s) in %dus\n", i, | ||
299 | jiffies_to_usecs(duration)); | ||
300 | } | ||
301 | |||
302 | static int cros_ec_keyb_resume(struct device *dev) | 302 | static int cros_ec_keyb_resume(struct device *dev) |
303 | { | 303 | { |
304 | struct cros_ec_keyb *ckdev = dev_get_drvdata(dev); | 304 | struct cros_ec_keyb *ckdev = dev_get_drvdata(dev); |
diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig index bce695d42f10..25eaf61b98b4 100644 --- a/drivers/media/platform/Kconfig +++ b/drivers/media/platform/Kconfig | |||
@@ -220,7 +220,7 @@ if V4L_TEST_DRIVERS | |||
220 | config VIDEO_VIVI | 220 | config VIDEO_VIVI |
221 | tristate "Virtual Video Driver" | 221 | tristate "Virtual Video Driver" |
222 | depends on VIDEO_DEV && VIDEO_V4L2 && !SPARC32 && !SPARC64 | 222 | depends on VIDEO_DEV && VIDEO_V4L2 && !SPARC32 && !SPARC64 |
223 | depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE | 223 | select FONT_SUPPORT |
224 | select FONT_8x16 | 224 | select FONT_8x16 |
225 | select VIDEOBUF2_VMALLOC | 225 | select VIDEOBUF2_VMALLOC |
226 | default n | 226 | default n |
diff --git a/drivers/parport/Kconfig b/drivers/parport/Kconfig index a50576081b34..dc82ef096f3b 100644 --- a/drivers/parport/Kconfig +++ b/drivers/parport/Kconfig | |||
@@ -36,7 +36,9 @@ if PARPORT | |||
36 | config PARPORT_PC | 36 | config PARPORT_PC |
37 | tristate "PC-style hardware" | 37 | tristate "PC-style hardware" |
38 | depends on (!SPARC64 || PCI) && !SPARC32 && !M32R && !FRV && !S390 && \ | 38 | depends on (!SPARC64 || PCI) && !SPARC32 && !M32R && !FRV && !S390 && \ |
39 | (!M68K || ISA) && !MN10300 && !AVR32 && !BLACKFIN && !XTENSA | 39 | (!M68K || ISA) && !MN10300 && !AVR32 && !BLACKFIN && \ |
40 | !XTENSA && !CRIS | ||
41 | |||
40 | ---help--- | 42 | ---help--- |
41 | You should say Y here if you have a PC-style parallel port. All | 43 | You should say Y here if you have a PC-style parallel port. All |
42 | IBM PC compatible computers and some Alphas have PC-style | 44 | IBM PC compatible computers and some Alphas have PC-style |
diff --git a/drivers/staging/media/solo6x10/Kconfig b/drivers/staging/media/solo6x10/Kconfig index 34f3b6d02d2a..9a4296c2e3ab 100644 --- a/drivers/staging/media/solo6x10/Kconfig +++ b/drivers/staging/media/solo6x10/Kconfig | |||
@@ -1,7 +1,8 @@ | |||
1 | config SOLO6X10 | 1 | config SOLO6X10 |
2 | tristate "Softlogic 6x10 MPEG codec cards" | 2 | tristate "Softlogic 6x10 MPEG codec cards" |
3 | depends on PCI && VIDEO_DEV && SND && I2C | 3 | depends on PCI && VIDEO_DEV && SND && I2C |
4 | depends on FONTS | 4 | select FONT_SUPPORT |
5 | select FONT_8x16 | ||
5 | select VIDEOBUF2_DMA_SG | 6 | select VIDEOBUF2_DMA_SG |
6 | select VIDEOBUF2_DMA_CONTIG | 7 | select VIDEOBUF2_DMA_CONTIG |
7 | select SND_PCM | 8 | select SND_PCM |
diff --git a/drivers/usb/misc/sisusbvga/Kconfig b/drivers/usb/misc/sisusbvga/Kconfig index 0d03a5200482..36bc28c884ad 100644 --- a/drivers/usb/misc/sisusbvga/Kconfig +++ b/drivers/usb/misc/sisusbvga/Kconfig | |||
@@ -2,6 +2,7 @@ | |||
2 | config USB_SISUSBVGA | 2 | config USB_SISUSBVGA |
3 | tristate "USB 2.0 SVGA dongle support (Net2280/SiS315)" | 3 | tristate "USB 2.0 SVGA dongle support (Net2280/SiS315)" |
4 | depends on (USB_MUSB_HDRC || USB_EHCI_HCD) | 4 | depends on (USB_MUSB_HDRC || USB_EHCI_HCD) |
5 | select FONT_SUPPORT if USB_SISUSBVGA_CON | ||
5 | ---help--- | 6 | ---help--- |
6 | Say Y here if you intend to attach a USB2VGA dongle based on a | 7 | Say Y here if you intend to attach a USB2VGA dongle based on a |
7 | Net2280 and a SiS315 chip. | 8 | Net2280 and a SiS315 chip. |
diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig index bc922c47d046..8c30603e0a86 100644 --- a/drivers/video/console/Kconfig +++ b/drivers/video/console/Kconfig | |||
@@ -6,7 +6,9 @@ menu "Console display driver support" | |||
6 | 6 | ||
7 | config VGA_CONSOLE | 7 | config VGA_CONSOLE |
8 | bool "VGA text console" if EXPERT || !X86 | 8 | bool "VGA text console" if EXPERT || !X86 |
9 | depends on !4xx && !8xx && !SPARC && !M68K && !PARISC && !FRV && !SUPERH && !BLACKFIN && !AVR32 && !MN10300 && (!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) | 9 | depends on !4xx && !8xx && !SPARC && !M68K && !PARISC && !FRV && \ |
10 | !SUPERH && !BLACKFIN && !AVR32 && !MN10300 && !CRIS && \ | ||
11 | (!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) | ||
10 | default y | 12 | default y |
11 | help | 13 | help |
12 | Saying Y here will allow you to use Linux in text mode through a | 14 | Saying Y here will allow you to use Linux in text mode through a |
@@ -62,6 +64,7 @@ config MDA_CONSOLE | |||
62 | config SGI_NEWPORT_CONSOLE | 64 | config SGI_NEWPORT_CONSOLE |
63 | tristate "SGI Newport Console support" | 65 | tristate "SGI Newport Console support" |
64 | depends on SGI_IP22 | 66 | depends on SGI_IP22 |
67 | select FONT_SUPPORT | ||
65 | help | 68 | help |
66 | Say Y here if you want the console on the Newport aka XL graphics | 69 | Say Y here if you want the console on the Newport aka XL graphics |
67 | card of your Indy. Most people say Y here. | 70 | card of your Indy. Most people say Y here. |
@@ -91,6 +94,7 @@ config FRAMEBUFFER_CONSOLE | |||
91 | tristate "Framebuffer Console support" | 94 | tristate "Framebuffer Console support" |
92 | depends on FB | 95 | depends on FB |
93 | select CRC32 | 96 | select CRC32 |
97 | select FONT_SUPPORT | ||
94 | help | 98 | help |
95 | Low-level framebuffer-based console driver. | 99 | Low-level framebuffer-based console driver. |
96 | 100 | ||
@@ -123,120 +127,12 @@ config FRAMEBUFFER_CONSOLE_ROTATION | |||
123 | config STI_CONSOLE | 127 | config STI_CONSOLE |
124 | bool "STI text console" | 128 | bool "STI text console" |
125 | depends on PARISC | 129 | depends on PARISC |
130 | select FONT_SUPPORT | ||
126 | default y | 131 | default y |
127 | help | 132 | help |
128 | The STI console is the builtin display/keyboard on HP-PARISC | 133 | The STI console is the builtin display/keyboard on HP-PARISC |
129 | machines. Say Y here to build support for it into your kernel. | 134 | machines. Say Y here to build support for it into your kernel. |
130 | The alternative is to use your primary serial port as a console. | 135 | The alternative is to use your primary serial port as a console. |
131 | 136 | ||
132 | config FONTS | ||
133 | bool "Select compiled-in fonts" | ||
134 | depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE | ||
135 | help | ||
136 | Say Y here if you would like to use fonts other than the default | ||
137 | your frame buffer console usually use. | ||
138 | |||
139 | Note that the answer to this question won't directly affect the | ||
140 | kernel: saying N will just cause the configurator to skip all | ||
141 | the questions about foreign fonts. | ||
142 | |||
143 | If unsure, say N (the default choices are safe). | ||
144 | |||
145 | config FONT_8x8 | ||
146 | bool "VGA 8x8 font" if FONTS | ||
147 | depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE | ||
148 | default y if !SPARC && !FONTS | ||
149 | help | ||
150 | This is the "high resolution" font for the VGA frame buffer (the one | ||
151 | provided by the text console 80x50 (and higher) modes). | ||
152 | |||
153 | Note that this is a poor quality font. The VGA 8x16 font is quite a | ||
154 | lot more readable. | ||
155 | |||
156 | Given the resolution provided by the frame buffer device, answer N | ||
157 | here is safe. | ||
158 | |||
159 | config FONT_8x16 | ||
160 | bool "VGA 8x16 font" if FONTS | ||
161 | depends on FRAMEBUFFER_CONSOLE || SGI_NEWPORT_CONSOLE || STI_CONSOLE || USB_SISUSBVGA_CON | ||
162 | default y if !SPARC && !FONTS | ||
163 | help | ||
164 | This is the "high resolution" font for the VGA frame buffer (the one | ||
165 | provided by the VGA text console 80x25 mode. | ||
166 | |||
167 | If unsure, say Y. | ||
168 | |||
169 | config FONT_6x11 | ||
170 | bool "Mac console 6x11 font (not supported by all drivers)" if FONTS | ||
171 | depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE | ||
172 | default y if !SPARC && !FONTS && MAC | ||
173 | help | ||
174 | Small console font with Macintosh-style high-half glyphs. Some Mac | ||
175 | framebuffer drivers don't support this one at all. | ||
176 | |||
177 | config FONT_7x14 | ||
178 | bool "console 7x14 font (not supported by all drivers)" if FONTS | ||
179 | depends on FRAMEBUFFER_CONSOLE | ||
180 | help | ||
181 | Console font with characters just a bit smaller than the default. | ||
182 | If the standard 8x16 font is a little too big for you, say Y. | ||
183 | Otherwise, say N. | ||
184 | |||
185 | config FONT_PEARL_8x8 | ||
186 | bool "Pearl (old m68k) console 8x8 font" if FONTS | ||
187 | depends on FRAMEBUFFER_CONSOLE | ||
188 | default y if !SPARC && !FONTS && AMIGA | ||
189 | help | ||
190 | Small console font with PC-style control-character and high-half | ||
191 | glyphs. | ||
192 | |||
193 | config FONT_ACORN_8x8 | ||
194 | bool "Acorn console 8x8 font" if FONTS | ||
195 | depends on FRAMEBUFFER_CONSOLE | ||
196 | default y if !SPARC && !FONTS && ARM && ARCH_ACORN | ||
197 | help | ||
198 | Small console font with PC-style control characters and high-half | ||
199 | glyphs. | ||
200 | |||
201 | config FONT_MINI_4x6 | ||
202 | bool "Mini 4x6 font" | ||
203 | depends on !SPARC && FONTS | ||
204 | |||
205 | config FONT_SUN8x16 | ||
206 | bool "Sparc console 8x16 font" | ||
207 | depends on FRAMEBUFFER_CONSOLE && (!SPARC && FONTS || SPARC) | ||
208 | help | ||
209 | This is the high resolution console font for Sun machines. Say Y. | ||
210 | |||
211 | config FONT_SUN12x22 | ||
212 | bool "Sparc console 12x22 font (not supported by all drivers)" | ||
213 | depends on FRAMEBUFFER_CONSOLE && (!SPARC && FONTS || SPARC) | ||
214 | help | ||
215 | This is the high resolution console font for Sun machines with very | ||
216 | big letters (like the letters used in the SPARC PROM). If the | ||
217 | standard font is unreadable for you, say Y, otherwise say N. | ||
218 | |||
219 | config FONT_10x18 | ||
220 | bool "console 10x18 font (not supported by all drivers)" if FONTS | ||
221 | depends on FRAMEBUFFER_CONSOLE | ||
222 | help | ||
223 | This is a high resolution console font for machines with very | ||
224 | big letters. It fits between the sun 12x22 and the normal 8x16 font. | ||
225 | If other fonts are too big or too small for you, say Y, otherwise say N. | ||
226 | |||
227 | config FONT_AUTOSELECT | ||
228 | def_bool y | ||
229 | depends on FRAMEBUFFER_CONSOLE || SGI_NEWPORT_CONSOLE || STI_CONSOLE || USB_SISUSBVGA_CON | ||
230 | depends on !FONT_8x8 | ||
231 | depends on !FONT_6x11 | ||
232 | depends on !FONT_7x14 | ||
233 | depends on !FONT_PEARL_8x8 | ||
234 | depends on !FONT_ACORN_8x8 | ||
235 | depends on !FONT_MINI_4x6 | ||
236 | depends on !FONT_SUN8x16 | ||
237 | depends on !FONT_SUN12x22 | ||
238 | depends on !FONT_10x18 | ||
239 | select FONT_8x16 | ||
240 | |||
241 | endmenu | 137 | endmenu |
242 | 138 | ||
diff --git a/drivers/video/console/Makefile b/drivers/video/console/Makefile index 48da25c96cd3..43bfa485db96 100644 --- a/drivers/video/console/Makefile +++ b/drivers/video/console/Makefile | |||
@@ -2,32 +2,12 @@ | |||
2 | # 5 Aug 1999, James Simmons, <mailto:jsimmons@users.sf.net> | 2 | # 5 Aug 1999, James Simmons, <mailto:jsimmons@users.sf.net> |
3 | # Rewritten to use lists instead of if-statements. | 3 | # Rewritten to use lists instead of if-statements. |
4 | 4 | ||
5 | # Font handling | ||
6 | font-objs := fonts.o | ||
7 | |||
8 | font-objs-$(CONFIG_FONT_SUN8x16) += font_sun8x16.o | ||
9 | font-objs-$(CONFIG_FONT_SUN12x22) += font_sun12x22.o | ||
10 | font-objs-$(CONFIG_FONT_8x8) += font_8x8.o | ||
11 | font-objs-$(CONFIG_FONT_8x16) += font_8x16.o | ||
12 | font-objs-$(CONFIG_FONT_6x11) += font_6x11.o | ||
13 | font-objs-$(CONFIG_FONT_7x14) += font_7x14.o | ||
14 | font-objs-$(CONFIG_FONT_10x18) += font_10x18.o | ||
15 | font-objs-$(CONFIG_FONT_PEARL_8x8) += font_pearl_8x8.o | ||
16 | font-objs-$(CONFIG_FONT_ACORN_8x8) += font_acorn_8x8.o | ||
17 | font-objs-$(CONFIG_FONT_MINI_4x6) += font_mini_4x6.o | ||
18 | |||
19 | font-objs += $(font-objs-y) | ||
20 | |||
21 | obj-$(CONFIG_FONTS) += font.o | ||
22 | |||
23 | # Each configuration option enables a list of files. | ||
24 | |||
25 | obj-$(CONFIG_DUMMY_CONSOLE) += dummycon.o | 5 | obj-$(CONFIG_DUMMY_CONSOLE) += dummycon.o |
26 | obj-$(CONFIG_SGI_NEWPORT_CONSOLE) += newport_con.o font.o | 6 | obj-$(CONFIG_SGI_NEWPORT_CONSOLE) += newport_con.o |
27 | obj-$(CONFIG_STI_CONSOLE) += sticon.o sticore.o font.o | 7 | obj-$(CONFIG_STI_CONSOLE) += sticon.o sticore.o |
28 | obj-$(CONFIG_VGA_CONSOLE) += vgacon.o | 8 | obj-$(CONFIG_VGA_CONSOLE) += vgacon.o |
29 | obj-$(CONFIG_MDA_CONSOLE) += mdacon.o | 9 | obj-$(CONFIG_MDA_CONSOLE) += mdacon.o |
30 | obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o font.o softcursor.o | 10 | obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o softcursor.o |
31 | ifeq ($(CONFIG_FB_TILEBLITTING),y) | 11 | ifeq ($(CONFIG_FB_TILEBLITTING),y) |
32 | obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += tileblit.o | 12 | obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += tileblit.o |
33 | endif | 13 | endif |
@@ -36,8 +16,4 @@ obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon_rotate.o fbcon_cw.o fbcon_ud.o \ | |||
36 | fbcon_ccw.o | 16 | fbcon_ccw.o |
37 | endif | 17 | endif |
38 | 18 | ||
39 | obj-$(CONFIG_FB_STI) += sticore.o font.o | 19 | obj-$(CONFIG_FB_STI) += sticore.o |
40 | |||
41 | ifeq ($(CONFIG_USB_SISUSBVGA_CON),y) | ||
42 | obj-$(CONFIG_USB_SISUSBVGA) += font.o | ||
43 | endif | ||
diff --git a/lib/Kconfig b/lib/Kconfig index d246a3bbd6ef..5a5203ded0dd 100644 --- a/lib/Kconfig +++ b/lib/Kconfig | |||
@@ -410,4 +410,6 @@ config OID_REGISTRY | |||
410 | config UCS2_STRING | 410 | config UCS2_STRING |
411 | tristate | 411 | tristate |
412 | 412 | ||
413 | source "lib/fonts/Kconfig" | ||
414 | |||
413 | endmenu | 415 | endmenu |
diff --git a/lib/Makefile b/lib/Makefile index 8f8d385187f2..c09e38eca87a 100644 --- a/lib/Makefile +++ b/lib/Makefile | |||
@@ -153,6 +153,8 @@ interval_tree_test-objs := interval_tree_test_main.o interval_tree.o | |||
153 | 153 | ||
154 | obj-$(CONFIG_ASN1) += asn1_decoder.o | 154 | obj-$(CONFIG_ASN1) += asn1_decoder.o |
155 | 155 | ||
156 | obj-$(CONFIG_FONT_SUPPORT) += fonts/ | ||
157 | |||
156 | hostprogs-y := gen_crc32table | 158 | hostprogs-y := gen_crc32table |
157 | clean-files := crc32table.h | 159 | clean-files := crc32table.h |
158 | 160 | ||
diff --git a/lib/fonts/Kconfig b/lib/fonts/Kconfig new file mode 100644 index 000000000000..34fd931b54b5 --- /dev/null +++ b/lib/fonts/Kconfig | |||
@@ -0,0 +1,117 @@ | |||
1 | # | ||
2 | # Font configuration | ||
3 | # | ||
4 | |||
5 | config FONT_SUPPORT | ||
6 | tristate | ||
7 | |||
8 | if FONT_SUPPORT | ||
9 | |||
10 | config FONTS | ||
11 | bool "Select compiled-in fonts" | ||
12 | depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE | ||
13 | help | ||
14 | Say Y here if you would like to use fonts other than the default | ||
15 | your frame buffer console usually use. | ||
16 | |||
17 | Note that the answer to this question won't directly affect the | ||
18 | kernel: saying N will just cause the configurator to skip all | ||
19 | the questions about foreign fonts. | ||
20 | |||
21 | If unsure, say N (the default choices are safe). | ||
22 | |||
23 | config FONT_8x8 | ||
24 | bool "VGA 8x8 font" if FONTS | ||
25 | depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE | ||
26 | default y if !SPARC && !FONTS | ||
27 | help | ||
28 | This is the "high resolution" font for the VGA frame buffer (the one | ||
29 | provided by the text console 80x50 (and higher) modes). | ||
30 | |||
31 | Note that this is a poor quality font. The VGA 8x16 font is quite a | ||
32 | lot more readable. | ||
33 | |||
34 | Given the resolution provided by the frame buffer device, answer N | ||
35 | here is safe. | ||
36 | |||
37 | config FONT_8x16 | ||
38 | bool "VGA 8x16 font" if FONTS | ||
39 | default y if !SPARC && !FONTS | ||
40 | help | ||
41 | This is the "high resolution" font for the VGA frame buffer (the one | ||
42 | provided by the VGA text console 80x25 mode. | ||
43 | |||
44 | If unsure, say Y. | ||
45 | |||
46 | config FONT_6x11 | ||
47 | bool "Mac console 6x11 font (not supported by all drivers)" if FONTS | ||
48 | depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE | ||
49 | default y if !SPARC && !FONTS && MAC | ||
50 | help | ||
51 | Small console font with Macintosh-style high-half glyphs. Some Mac | ||
52 | framebuffer drivers don't support this one at all. | ||
53 | |||
54 | config FONT_7x14 | ||
55 | bool "console 7x14 font (not supported by all drivers)" if FONTS | ||
56 | depends on FRAMEBUFFER_CONSOLE | ||
57 | help | ||
58 | Console font with characters just a bit smaller than the default. | ||
59 | If the standard 8x16 font is a little too big for you, say Y. | ||
60 | Otherwise, say N. | ||
61 | |||
62 | config FONT_PEARL_8x8 | ||
63 | bool "Pearl (old m68k) console 8x8 font" if FONTS | ||
64 | depends on FRAMEBUFFER_CONSOLE | ||
65 | default y if !SPARC && !FONTS && AMIGA | ||
66 | help | ||
67 | Small console font with PC-style control-character and high-half | ||
68 | glyphs. | ||
69 | |||
70 | config FONT_ACORN_8x8 | ||
71 | bool "Acorn console 8x8 font" if FONTS | ||
72 | depends on FRAMEBUFFER_CONSOLE | ||
73 | default y if !SPARC && !FONTS && ARM && ARCH_ACORN | ||
74 | help | ||
75 | Small console font with PC-style control characters and high-half | ||
76 | glyphs. | ||
77 | |||
78 | config FONT_MINI_4x6 | ||
79 | bool "Mini 4x6 font" | ||
80 | depends on !SPARC && FONTS | ||
81 | |||
82 | config FONT_SUN8x16 | ||
83 | bool "Sparc console 8x16 font" | ||
84 | depends on FRAMEBUFFER_CONSOLE && (!SPARC && FONTS || SPARC) | ||
85 | help | ||
86 | This is the high resolution console font for Sun machines. Say Y. | ||
87 | |||
88 | config FONT_SUN12x22 | ||
89 | bool "Sparc console 12x22 font (not supported by all drivers)" | ||
90 | depends on FRAMEBUFFER_CONSOLE && (!SPARC && FONTS || SPARC) | ||
91 | help | ||
92 | This is the high resolution console font for Sun machines with very | ||
93 | big letters (like the letters used in the SPARC PROM). If the | ||
94 | standard font is unreadable for you, say Y, otherwise say N. | ||
95 | |||
96 | config FONT_10x18 | ||
97 | bool "console 10x18 font (not supported by all drivers)" if FONTS | ||
98 | depends on FRAMEBUFFER_CONSOLE | ||
99 | help | ||
100 | This is a high resolution console font for machines with very | ||
101 | big letters. It fits between the sun 12x22 and the normal 8x16 font. | ||
102 | If other fonts are too big or too small for you, say Y, otherwise say N. | ||
103 | |||
104 | config FONT_AUTOSELECT | ||
105 | def_bool y | ||
106 | depends on !FONT_8x8 | ||
107 | depends on !FONT_6x11 | ||
108 | depends on !FONT_7x14 | ||
109 | depends on !FONT_PEARL_8x8 | ||
110 | depends on !FONT_ACORN_8x8 | ||
111 | depends on !FONT_MINI_4x6 | ||
112 | depends on !FONT_SUN8x16 | ||
113 | depends on !FONT_SUN12x22 | ||
114 | depends on !FONT_10x18 | ||
115 | select FONT_8x16 | ||
116 | |||
117 | endif # FONT_SUPPORT | ||
diff --git a/lib/fonts/Makefile b/lib/fonts/Makefile new file mode 100644 index 000000000000..2761560f3f15 --- /dev/null +++ b/lib/fonts/Makefile | |||
@@ -0,0 +1,18 @@ | |||
1 | # Font handling | ||
2 | |||
3 | font-objs := fonts.o | ||
4 | |||
5 | font-objs-$(CONFIG_FONT_SUN8x16) += font_sun8x16.o | ||
6 | font-objs-$(CONFIG_FONT_SUN12x22) += font_sun12x22.o | ||
7 | font-objs-$(CONFIG_FONT_8x8) += font_8x8.o | ||
8 | font-objs-$(CONFIG_FONT_8x16) += font_8x16.o | ||
9 | font-objs-$(CONFIG_FONT_6x11) += font_6x11.o | ||
10 | font-objs-$(CONFIG_FONT_7x14) += font_7x14.o | ||
11 | font-objs-$(CONFIG_FONT_10x18) += font_10x18.o | ||
12 | font-objs-$(CONFIG_FONT_PEARL_8x8) += font_pearl_8x8.o | ||
13 | font-objs-$(CONFIG_FONT_ACORN_8x8) += font_acorn_8x8.o | ||
14 | font-objs-$(CONFIG_FONT_MINI_4x6) += font_mini_4x6.o | ||
15 | |||
16 | font-objs += $(font-objs-y) | ||
17 | |||
18 | obj-$(CONFIG_FONT_SUPPORT) += font.o | ||
diff --git a/drivers/video/console/font_10x18.c b/lib/fonts/font_10x18.c index 6be72bb218ee..6be72bb218ee 100644 --- a/drivers/video/console/font_10x18.c +++ b/lib/fonts/font_10x18.c | |||
diff --git a/drivers/video/console/font_6x11.c b/lib/fonts/font_6x11.c index 46e86e67aa6a..46e86e67aa6a 100644 --- a/drivers/video/console/font_6x11.c +++ b/lib/fonts/font_6x11.c | |||
diff --git a/drivers/video/console/font_7x14.c b/lib/fonts/font_7x14.c index 3b7dbf9c060b..3b7dbf9c060b 100644 --- a/drivers/video/console/font_7x14.c +++ b/lib/fonts/font_7x14.c | |||
diff --git a/drivers/video/console/font_8x16.c b/lib/fonts/font_8x16.c index 00a0c67a5c7d..00a0c67a5c7d 100644 --- a/drivers/video/console/font_8x16.c +++ b/lib/fonts/font_8x16.c | |||
diff --git a/drivers/video/console/font_8x8.c b/lib/fonts/font_8x8.c index 9f56efe2cee7..9f56efe2cee7 100644 --- a/drivers/video/console/font_8x8.c +++ b/lib/fonts/font_8x8.c | |||
diff --git a/drivers/video/console/font_acorn_8x8.c b/lib/fonts/font_acorn_8x8.c index 639e31ae1100..639e31ae1100 100644 --- a/drivers/video/console/font_acorn_8x8.c +++ b/lib/fonts/font_acorn_8x8.c | |||
diff --git a/drivers/video/console/font_mini_4x6.c b/lib/fonts/font_mini_4x6.c index 838caa1cfef7..838caa1cfef7 100644 --- a/drivers/video/console/font_mini_4x6.c +++ b/lib/fonts/font_mini_4x6.c | |||
diff --git a/drivers/video/console/font_pearl_8x8.c b/lib/fonts/font_pearl_8x8.c index dc6ad539ca4e..dc6ad539ca4e 100644 --- a/drivers/video/console/font_pearl_8x8.c +++ b/lib/fonts/font_pearl_8x8.c | |||
diff --git a/drivers/video/console/font_sun12x22.c b/lib/fonts/font_sun12x22.c index d3643853c33a..d3643853c33a 100644 --- a/drivers/video/console/font_sun12x22.c +++ b/lib/fonts/font_sun12x22.c | |||
diff --git a/drivers/video/console/font_sun8x16.c b/lib/fonts/font_sun8x16.c index 268151325b83..268151325b83 100644 --- a/drivers/video/console/font_sun8x16.c +++ b/lib/fonts/font_sun8x16.c | |||
diff --git a/drivers/video/console/fonts.c b/lib/fonts/fonts.c index d0c03fd70871..f947189efe6d 100644 --- a/drivers/video/console/fonts.c +++ b/lib/fonts/fonts.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/video/fonts.c -- `Soft' font definitions | 2 | * `Soft' font definitions |
3 | * | 3 | * |
4 | * Created 1995 by Geert Uytterhoeven | 4 | * Created 1995 by Geert Uytterhoeven |
5 | * Rewritten 1998 by Martin Mares <mj@ucw.cz> | 5 | * Rewritten 1998 by Martin Mares <mj@ucw.cz> |