Commit e835a65f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ARC fixes from Vineet Gupta:
 "I've been sitting on some of these fixes for a while.

   - Corner case of returning to delay slot from interrupt
   - Changing default interrupt prioiry level
   - Kconfig'ize support for super pages
   - Other minor fixes"

* tag 'arc-4.5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
  ARC: mm: Introduce explicit super page size support
  ARCv2: intc: Allow interruption by lowest priority interrupt
  ARCv2: Check for LL-SC livelock only if LLSC is enabled
  ARC: shrink cpuinfo by not saving full timer BCR
  ARCv2: clocksource: Rename GRTC -> GFRC ...
  ARCv2: STAR 9000950267: Handle return from intr to Delay Slot #2
parents 0cbb0b92 37eda9df
Loading
Loading
Loading
Loading
+20 −1
Original line number Diff line number Diff line
@@ -338,6 +338,19 @@ config ARC_PAGE_SIZE_4K

endchoice

choice
	prompt "MMU Super Page Size"
	depends on ISA_ARCV2 && TRANSPARENT_HUGEPAGE
	default ARC_HUGEPAGE_2M

config ARC_HUGEPAGE_2M
	bool "2MB"

config ARC_HUGEPAGE_16M
	bool "16MB"

endchoice

if ISA_ARCOMPACT

config ARC_COMPACT_IRQ_LEVELS
@@ -410,7 +423,7 @@ config ARC_HAS_RTC
	default n
	depends on !SMP

config ARC_HAS_GRTC
config ARC_HAS_GFRC
	bool "SMP synchronized 64-bit cycle counter"
	default y
	depends on SMP
@@ -566,6 +579,12 @@ endmenu
endmenu	 # "ARC Architecture Configuration"

source "mm/Kconfig"

config FORCE_MAX_ZONEORDER
	int "Maximum zone order"
	default "12" if ARC_HUGEPAGE_16M
	default "11"

source "net/Kconfig"
source "drivers/Kconfig"
source "fs/Kconfig"
+1 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ CONFIG_ARC_PLAT_AXS10X=y
CONFIG_AXS103=y
CONFIG_ISA_ARCV2=y
CONFIG_SMP=y
# CONFIG_ARC_HAS_GRTC is not set
# CONFIG_ARC_HAS_GFRC is not set
CONFIG_ARC_UBOOT_SUPPORT=y
CONFIG_ARC_BUILTIN_DTB_NAME="vdk_hs38_smp"
CONFIG_PREEMPT=y
+1 −2
Original line number Diff line number Diff line
@@ -349,14 +349,13 @@ struct cpuinfo_arc {
	struct cpuinfo_arc_bpu bpu;
	struct bcr_identity core;
	struct bcr_isa isa;
	struct bcr_timer timers;
	unsigned int vec_base;
	struct cpuinfo_arc_ccm iccm, dccm;
	struct {
		unsigned int swap:1, norm:1, minmax:1, barrel:1, crc:1, pad1:3,
			     fpu_sp:1, fpu_dp:1, pad2:6,
			     debug:1, ap:1, smart:1, rtt:1, pad3:4,
			     pad4:8;
			     timer0:1, timer1:1, rtc:1, gfrc:1, pad4:4;
	} extn;
	struct bcr_mpy extn_mpy;
	struct bcr_extn_xymem extn_xymem;
+5 −2
Original line number Diff line number Diff line
@@ -30,8 +30,11 @@
/* Was Intr taken in User Mode */
#define AUX_IRQ_ACT_BIT_U	31

/* 0 is highest level, but taken by FIRQs, if present in design */
#define ARCV2_IRQ_DEF_PRIO		0
/*
 * User space should be interruptable even by lowest prio interrupt
 * Safe even if actual interrupt priorities is fewer or even one
 */
#define ARCV2_IRQ_DEF_PRIO	15

/* seed value for status register */
#define ISA_INIT_STATUS_BITS	(STATUS_IE_MASK | STATUS_AD_MASK | \
+2 −2
Original line number Diff line number Diff line
@@ -39,8 +39,8 @@ struct mcip_cmd {
#define CMD_DEBUG_SET_MASK		0x34
#define CMD_DEBUG_SET_SELECT		0x36

#define CMD_GRTC_READ_LO		0x42
#define CMD_GRTC_READ_HI		0x43
#define CMD_GFRC_READ_LO		0x42
#define CMD_GFRC_READ_HI		0x43

#define CMD_IDU_ENABLE			0x71
#define CMD_IDU_DISABLE			0x72
Loading