Commit 3c9e6656 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'arc-5.7-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc

Pull ARC fixes from Vineet Gupta:

 - fix recent DSP code regression on ARC700 platforms

 - fix thinkos in ICCM/DCCM size checks

 - USB regression fix

 - other small fixes here and there

* tag 'arc-5.7-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
  ARC: show_regs: avoid extra line of output
  ARC: guard dsp early init against non ARCv2
  ARC: [plat-eznps]: Restrict to CONFIG_ISA_ARCOMPACT
  ARC: entry: comment
  arc: remove #ifndef CONFIG_AS_CFI_SIGNAL_FRAME
  arc: ptrace: hard-code "arc" instead of UTS_MACHINE
  ARC: [plat-hsdk]: fix USB regression
  ARC: Fix ICCM & DCCM runtime size checks
parents 03fb3aca 79155023
...@@ -65,6 +65,7 @@ CONFIG_DRM_UDL=y ...@@ -65,6 +65,7 @@ CONFIG_DRM_UDL=y
CONFIG_DRM_ETNAVIV=y CONFIG_DRM_ETNAVIV=y
CONFIG_FB=y CONFIG_FB=y
CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_USB=y
CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_HCD_PLATFORM=y CONFIG_USB_EHCI_HCD_PLATFORM=y
CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_HCD=y
......
...@@ -15,12 +15,14 @@ ...@@ -15,12 +15,14 @@
/* clobbers r5 register */ /* clobbers r5 register */
.macro DSP_EARLY_INIT .macro DSP_EARLY_INIT
#ifdef CONFIG_ISA_ARCV2
lr r5, [ARC_AUX_DSP_BUILD] lr r5, [ARC_AUX_DSP_BUILD]
bmsk r5, r5, 7 bmsk r5, r5, 7
breq r5, 0, 1f breq r5, 0, 1f
mov r5, DSP_CTRL_DISABLED_ALL mov r5, DSP_CTRL_DISABLED_ALL
sr r5, [ARC_AUX_DSP_CTRL] sr r5, [ARC_AUX_DSP_CTRL]
1: 1:
#endif
.endm .endm
/* clobbers r10, r11 registers pair */ /* clobbers r10, r11 registers pair */
......
...@@ -233,6 +233,8 @@ ...@@ -233,6 +233,8 @@
#ifdef CONFIG_ARC_IRQ_NO_AUTOSAVE #ifdef CONFIG_ARC_IRQ_NO_AUTOSAVE
__RESTORE_REGFILE_HARD __RESTORE_REGFILE_HARD
; SP points to PC/STAT32: hw restores them despite NO_AUTOSAVE
add sp, sp, SZ_PT_REGS - 8 add sp, sp, SZ_PT_REGS - 8
#else #else
add sp, sp, PT_r0 add sp, sp, PT_r0
......
...@@ -3,9 +3,6 @@ ...@@ -3,9 +3,6 @@
# Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) # Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
# #
# Pass UTS_MACHINE for user_regset definition
CFLAGS_ptrace.o += -DUTS_MACHINE='"$(UTS_MACHINE)"'
obj-y := arcksyms.o setup.o irq.o reset.o ptrace.o process.o devtree.o obj-y := arcksyms.o setup.o irq.o reset.o ptrace.o process.o devtree.o
obj-y += signal.o traps.o sys.o troubleshoot.o stacktrace.o disasm.o obj-y += signal.o traps.o sys.o troubleshoot.o stacktrace.o disasm.o
obj-$(CONFIG_ISA_ARCOMPACT) += entry-compact.o intc-compact.o obj-$(CONFIG_ISA_ARCOMPACT) += entry-compact.o intc-compact.o
......
...@@ -253,7 +253,7 @@ static const struct user_regset arc_regsets[] = { ...@@ -253,7 +253,7 @@ static const struct user_regset arc_regsets[] = {
}; };
static const struct user_regset_view user_arc_view = { static const struct user_regset_view user_arc_view = {
.name = UTS_MACHINE, .name = "arc",
.e_machine = EM_ARC_INUSE, .e_machine = EM_ARC_INUSE,
.regsets = arc_regsets, .regsets = arc_regsets,
.n = ARRAY_SIZE(arc_regsets) .n = ARRAY_SIZE(arc_regsets)
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include <linux/clocksource.h> #include <linux/clocksource.h>
#include <linux/console.h> #include <linux/console.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/sizes.h>
#include <linux/cpu.h> #include <linux/cpu.h>
#include <linux/of_clk.h> #include <linux/of_clk.h>
#include <linux/of_fdt.h> #include <linux/of_fdt.h>
...@@ -424,12 +425,12 @@ static void arc_chk_core_config(void) ...@@ -424,12 +425,12 @@ static void arc_chk_core_config(void)
if ((unsigned int)__arc_dccm_base != cpu->dccm.base_addr) if ((unsigned int)__arc_dccm_base != cpu->dccm.base_addr)
panic("Linux built with incorrect DCCM Base address\n"); panic("Linux built with incorrect DCCM Base address\n");
if (CONFIG_ARC_DCCM_SZ != cpu->dccm.sz) if (CONFIG_ARC_DCCM_SZ * SZ_1K != cpu->dccm.sz)
panic("Linux built with incorrect DCCM Size\n"); panic("Linux built with incorrect DCCM Size\n");
#endif #endif
#ifdef CONFIG_ARC_HAS_ICCM #ifdef CONFIG_ARC_HAS_ICCM
if (CONFIG_ARC_ICCM_SZ != cpu->iccm.sz) if (CONFIG_ARC_ICCM_SZ * SZ_1K != cpu->iccm.sz)
panic("Linux built with incorrect ICCM Size\n"); panic("Linux built with incorrect ICCM Size\n");
#endif #endif
......
...@@ -191,10 +191,9 @@ void show_regs(struct pt_regs *regs) ...@@ -191,10 +191,9 @@ void show_regs(struct pt_regs *regs)
if (user_mode(regs)) if (user_mode(regs))
show_faulting_vma(regs->ret); /* faulting code, not data */ show_faulting_vma(regs->ret); /* faulting code, not data */
pr_info("ECR: 0x%08lx EFA: 0x%08lx ERET: 0x%08lx\n", pr_info("ECR: 0x%08lx EFA: 0x%08lx ERET: 0x%08lx\nSTAT: 0x%08lx",
regs->event, current->thread.fault_address, regs->ret); regs->event, current->thread.fault_address, regs->ret,
regs->status32);
pr_info("STAT32: 0x%08lx", regs->status32);
#define STS_BIT(r, bit) r->status32 & STATUS_##bit##_MASK ? #bit" " : "" #define STS_BIT(r, bit) r->status32 & STATUS_##bit##_MASK ? #bit" " : ""
...@@ -210,11 +209,10 @@ void show_regs(struct pt_regs *regs) ...@@ -210,11 +209,10 @@ void show_regs(struct pt_regs *regs)
(regs->status32 & STATUS_U_MASK) ? "U " : "K ", (regs->status32 & STATUS_U_MASK) ? "U " : "K ",
STS_BIT(regs, DE), STS_BIT(regs, AE)); STS_BIT(regs, DE), STS_BIT(regs, AE));
#endif #endif
pr_cont(" BTA: 0x%08lx\n", regs->bta); pr_cont(" BTA: 0x%08lx\n SP: 0x%08lx FP: 0x%08lx BLK: %pS\n",
pr_info("BLK: %pS\n SP: 0x%08lx FP: 0x%08lx\n", regs->bta, regs->sp, regs->fp, (void *)regs->blink);
(void *)regs->blink, regs->sp, regs->fp);
pr_info("LPS: 0x%08lx\tLPE: 0x%08lx\tLPC: 0x%08lx\n", pr_info("LPS: 0x%08lx\tLPE: 0x%08lx\tLPC: 0x%08lx\n",
regs->lp_start, regs->lp_end, regs->lp_count); regs->lp_start, regs->lp_end, regs->lp_count);
/* print regs->r0 thru regs->r12 /* print regs->r0 thru regs->r12
* Sequential printing was generating horrible code * Sequential printing was generating horrible code
......
...@@ -1178,11 +1178,9 @@ int arc_unwind(struct unwind_frame_info *frame) ...@@ -1178,11 +1178,9 @@ int arc_unwind(struct unwind_frame_info *frame)
#endif #endif
/* update frame */ /* update frame */
#ifndef CONFIG_AS_CFI_SIGNAL_FRAME
if (frame->call_frame if (frame->call_frame
&& !UNW_DEFAULT_RA(state.regs[retAddrReg], state.dataAlign)) && !UNW_DEFAULT_RA(state.regs[retAddrReg], state.dataAlign))
frame->call_frame = 0; frame->call_frame = 0;
#endif
cfa = FRAME_REG(state.cfa.reg, unsigned long) + state.cfa.offs; cfa = FRAME_REG(state.cfa.reg, unsigned long) + state.cfa.offs;
startLoc = min_t(unsigned long, UNW_SP(frame), cfa); startLoc = min_t(unsigned long, UNW_SP(frame), cfa);
endLoc = max_t(unsigned long, UNW_SP(frame), cfa); endLoc = max_t(unsigned long, UNW_SP(frame), cfa);
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
menuconfig ARC_PLAT_EZNPS menuconfig ARC_PLAT_EZNPS
bool "\"EZchip\" ARC dev platform" bool "\"EZchip\" ARC dev platform"
depends on ISA_ARCOMPACT
select CPU_BIG_ENDIAN select CPU_BIG_ENDIAN
select CLKSRC_NPS if !PHYS_ADDR_T_64BIT select CLKSRC_NPS if !PHYS_ADDR_T_64BIT
select EZNPS_GIC select EZNPS_GIC
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment