tree eb3543ecfaaadaffe0a138e8c0875a58e792b818
parent ebbc84af5e18f8f040996219dc92f64e950240cd
author Chander Kashyap <chander.kashyap@linaro.org> 1311798990 +0000
committer Albert ARIBAUD <albert.u.boot@aribaud.net> 1315082447 +0200

SMDKV310: MMC SPL: Remove unwanted dummy functions

Removed dummy functions in "mmc_spl/board/samsung/smdkv310/mmc_boot.c",
@mmc_boot.c
void do_undefined_instruction(struct pt_regs *pt_regs);
void do_software_interrupt(struct pt_regs *pt_regs);
void do_prefetch_abort(struct pt_regs *pt_regs);
void do_data_abort(struct pt_regs *pt_regs);
void do_not_used(struct pt_regs *pt_regs);
void do_fiq(struct pt_regs *pt_regs);
void do_irq(struct pt_regs *pt_regs);

not required as called conditionally in start.S
@start.S
\#ifdef CONFIG_SPL_BUILD
_undefined_instruction: .word _undefined_instruction
_software_interrupt:    .word _software_interrupt
_prefetch_abort:        .word _prefetch_abort
_data_abort:            .word _data_abort
_not_used:              .word _not_used
_irq:                   .word _irq
_fiq:                   .word _fiq
_pad:                   .word 0x12345678 /* now 16*4=64 */
\#else
_undefined_instruction: .word undefined_instruction
_software_interrupt:    .word software_interrupt
_prefetch_abort:        .word prefetch_abort
_data_abort:            .word data_abort
_not_used:              .word not_used
_irq:                   .word irq
_fiq:                   .word fiq
_pad:                   .word 0x12345678 /* now 16*4=64 */
\#endif
e.g.
undefined_instruction:
	get_bad_stack
	bad_save_user_regs
	bl      do_undefined_instruction

Signed-off-by: Chander Kashyap <chander.kashyap@linaro.org>
