]> Pileus Git - ~andy/linux/commitdiff
Merge tag 'blackfin-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/realm...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 30 Jan 2014 02:24:20 +0000 (18:24 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 30 Jan 2014 02:24:20 +0000 (18:24 -0800)
Pull blackfin updates from Steven Miao:
 "Some minor changes and bug fixes"

* tag 'blackfin-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/realmz6/blackfin-linux:
  From: Eunbong Song <eunb.song@samsung.com>
  Add platfrom device resource for bfin-sport on bf533 stamp
  fix build error for bf527-ezkit_defconfig for old silicon
  blackfin: Support L1 SRAM parity checking feature on bf60x
  blackfin: bf609: update the anomaly list to Nov 2013
  blackfin: delete non-required instances of <linux/init.h>
  From: Paul Walmsley <pwalmsley@nvidia.com>
  06/18] smp, blackfin: kill SMP single function call interrupt
  arch: blackfin: uapi: be sure of "_UAPI" prefix for all guard macros

34 files changed:
arch/blackfin/configs/BF527-EZKIT_defconfig
arch/blackfin/configs/BF538-EZKIT_defconfig
arch/blackfin/configs/BF561-ACVILON_defconfig
arch/blackfin/configs/BlackStamp_defconfig
arch/blackfin/configs/CM-BF533_defconfig
arch/blackfin/configs/CM-BF548_defconfig
arch/blackfin/configs/CM-BF561_defconfig
arch/blackfin/configs/DNP5370_defconfig
arch/blackfin/configs/H8606_defconfig
arch/blackfin/configs/IP0X_defconfig
arch/blackfin/configs/PNAV-10_defconfig
arch/blackfin/configs/SRV1_defconfig
arch/blackfin/configs/TCM-BF518_defconfig
arch/blackfin/include/asm/def_LPBlackfin.h
arch/blackfin/include/uapi/asm/byteorder.h
arch/blackfin/include/uapi/asm/cachectl.h
arch/blackfin/include/uapi/asm/fcntl.h
arch/blackfin/include/uapi/asm/ioctls.h
arch/blackfin/include/uapi/asm/poll.h
arch/blackfin/include/uapi/asm/posix_types.h
arch/blackfin/include/uapi/asm/sigcontext.h
arch/blackfin/include/uapi/asm/siginfo.h
arch/blackfin/include/uapi/asm/signal.h
arch/blackfin/include/uapi/asm/stat.h
arch/blackfin/include/uapi/asm/swab.h
arch/blackfin/mach-bf533/boards/stamp.c
arch/blackfin/mach-bf609/Kconfig
arch/blackfin/mach-bf609/clock.c
arch/blackfin/mach-bf609/include/mach/anomaly.h
arch/blackfin/mach-common/cache-c.c
arch/blackfin/mach-common/clocks-init.c
arch/blackfin/mach-common/ints-priority.c
arch/blackfin/mach-common/scb-init.c
arch/blackfin/mach-common/smp.c

index 90b1753236446fcef1ce1225abc0decd92dd092d..af2738c7441b4cd4ffe9f78c5e03425c67b413bb 100644 (file)
@@ -146,6 +146,7 @@ CONFIG_USB_DEVICEFS=y
 CONFIG_USB_OTG_BLACKLIST_HUB=y
 CONFIG_USB_MON=y
 CONFIG_USB_MUSB_HDRC=y
+CONFIG_MUSB_PIO_ONLY=y
 CONFIG_USB_MUSB_BLACKFIN=y
 CONFIG_MUSB_PIO_ONLY=y
 CONFIG_USB_STORAGE=y
index 972aa6263ad0a9e7163c7b3b191afceef4282d70..be03be6ba5436eef23950abef36f4dbf294ce7cc 100644 (file)
@@ -59,7 +59,6 @@ CONFIG_BFIN_SIR=m
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
 # CONFIG_FW_LOADER is not set
 CONFIG_MTD=y
-CONFIG_MTD_PARTITIONS=y
 CONFIG_MTD_CMDLINE_PARTS=y
 CONFIG_MTD_CHAR=m
 CONFIG_MTD_BLOCK=y
index 91988370b75e03b9603abdd7939faed63f496220..802f9c421621764869672bd8002b8bb893d950eb 100644 (file)
@@ -49,7 +49,6 @@ CONFIG_SYN_COOKIES=y
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
 # CONFIG_FW_LOADER is not set
 CONFIG_MTD=y
-CONFIG_MTD_PARTITIONS=y
 CONFIG_MTD_CMDLINE_PARTS=y
 CONFIG_MTD_CHAR=y
 CONFIG_MTD_BLOCK=y
index 7b982d0502adddfb1f8142f9550944985b5725c8..3853c473b443193dac482e2994c1d131328a80fe 100644 (file)
@@ -44,7 +44,6 @@ CONFIG_IP_PNP=y
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
 # CONFIG_FW_LOADER is not set
 CONFIG_MTD=y
-CONFIG_MTD_PARTITIONS=y
 CONFIG_MTD_CMDLINE_PARTS=y
 CONFIG_MTD_CHAR=m
 CONFIG_MTD_BLOCK=y
index c940a1e3ab3685fa85f6db0fd132a5d928d484f8..5e0db82b679ea669e72d28f1bdffb10fb5bfec19 100644 (file)
@@ -36,7 +36,6 @@ CONFIG_UNIX=y
 # CONFIG_WIRELESS is not set
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
 CONFIG_MTD=y
-CONFIG_MTD_PARTITIONS=y
 CONFIG_MTD_CMDLINE_PARTS=y
 CONFIG_MTD_CHAR=y
 CONFIG_MTD_BLOCK=y
index e961483f1879bf2c3c13fdefdeb2b8db999d78b1..b9af4fa69984d20e0868cc293a46a1fe5f9e8264 100644 (file)
@@ -53,7 +53,6 @@ CONFIG_INET_XFRM_MODE_BEET=m
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
 # CONFIG_FW_LOADER is not set
 CONFIG_MTD=y
-CONFIG_MTD_PARTITIONS=y
 CONFIG_MTD_CMDLINE_PARTS=y
 CONFIG_MTD_CHAR=y
 CONFIG_MTD_BLOCK=y
index 24936b91a6ee225ab491c168b42200ee4e2004c8..d6dd98e671463b4d86e83e3febcc376e46581faa 100644 (file)
@@ -51,7 +51,6 @@ CONFIG_INET=y
 # CONFIG_WIRELESS is not set
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
 CONFIG_MTD=y
-CONFIG_MTD_PARTITIONS=y
 CONFIG_MTD_CMDLINE_PARTS=y
 CONFIG_MTD_CHAR=y
 CONFIG_MTD_BLOCK=y
index 89162d0fff9ea6325be99d8a45a21f0d8c45c224..2b58cb2212837f2dcafd49eda71efaef9fa8e2aa 100644 (file)
@@ -36,7 +36,6 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
 CONFIG_MTD=y
 CONFIG_MTD_DEBUG=y
 CONFIG_MTD_DEBUG_VERBOSE=1
-CONFIG_MTD_PARTITIONS=y
 CONFIG_MTD_CHAR=y
 CONFIG_MTD_BLOCK=y
 CONFIG_NFTL=y
index a26436bf50fff23db967e47b2e2ba3c5c765d5df..f754e490bbfd00a570995da744290cfa0db1d894 100644 (file)
@@ -36,7 +36,6 @@ CONFIG_IRTTY_SIR=m
 # CONFIG_WIRELESS is not set
 # CONFIG_FW_LOADER is not set
 CONFIG_MTD=y
-CONFIG_MTD_PARTITIONS=y
 CONFIG_MTD_CHAR=y
 CONFIG_MTD_BLOCK=y
 CONFIG_MTD_RAM=y
index 647991514ac9b8fc98065b1a6878b1b7c7e72908..629516578760cff5507fbe3482c603397ef65b53 100644 (file)
@@ -43,7 +43,6 @@ CONFIG_IP_NF_TARGET_REJECT=y
 CONFIG_IP_NF_MANGLE=y
 # CONFIG_WIRELESS is not set
 CONFIG_MTD=y
-CONFIG_MTD_PARTITIONS=y
 CONFIG_MTD_CHAR=y
 CONFIG_MTD_BLOCK=y
 CONFIG_MTD_CFI=y
index 8fd9b446d6583f595e2b44ec57a7c6f771581c9f..a6a7298962edcda479759327b2b2c1e8ac25656a 100644 (file)
@@ -46,7 +46,6 @@ CONFIG_IP_PNP=y
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
 # CONFIG_FW_LOADER is not set
 CONFIG_MTD=y
-CONFIG_MTD_PARTITIONS=y
 CONFIG_MTD_CHAR=m
 CONFIG_MTD_BLOCK=y
 CONFIG_MTD_RAM=y
index 0520c160230de103d8b85b907c48f64abab4e2b3..bc216646fe1864579ce444d6da28170147ea6523 100644 (file)
@@ -38,7 +38,6 @@ CONFIG_IRTTY_SIR=m
 # CONFIG_WIRELESS is not set
 # CONFIG_FW_LOADER is not set
 CONFIG_MTD=y
-CONFIG_MTD_PARTITIONS=y
 CONFIG_MTD_CHAR=m
 CONFIG_MTD_BLOCK=y
 CONFIG_MTD_JEDECPROBE=m
index e4ed865b885e3a0279f53250afe78f17dcfefd35..ea88158ab432c7a7f2897c8d061e41cf2c40df84 100644 (file)
@@ -54,7 +54,6 @@ CONFIG_IP_PNP=y
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
 # CONFIG_FW_LOADER is not set
 CONFIG_MTD=y
-CONFIG_MTD_PARTITIONS=y
 CONFIG_MTD_CMDLINE_PARTS=y
 CONFIG_MTD_CHAR=y
 CONFIG_MTD_BLOCK=y
index ca67145c6a45987600407d44f80919b0e718b25e..c5c8d8a3a5fadaf597145af8b75060f02f4843de 100644 (file)
@@ -544,6 +544,7 @@ do { \
 #define DCBS_P                 0x04    /* L1 Data Cache Bank Select */
 #define PORT_PREF0_P           0x12    /* DAG0 Port Preference */
 #define PORT_PREF1_P           0x13    /* DAG1 Port Preference */
+#define RDCHK                  0x9     /* Enable L1 Parity Check */
 
 /* Masks */
 #define ENDM               0x00000001  /* (doesn't really exist) Enable
index 9558416d578b58f939e1969c268fe58da6c19331..3b125da5dcb233d8541558676b4c577289a8fe40 100644 (file)
@@ -1 +1,6 @@
+#ifndef _UAPI__BFIN_ASM_BYTEORDER_H
+#define _UAPI__BFIN_ASM_BYTEORDER_H
+
 #include <linux/byteorder/little_endian.h>
+
+#endif /* _UAPI__BFIN_ASM_BYTEORDER_H */
index 03255df6c1ea0acaaa8c232f9608f878ca9c5fbf..4fdab75dee15972853c5a417f4e8c0421e1bb573 100644 (file)
@@ -7,8 +7,8 @@
  * Licensed under the GPL-2 or later.
  */
 
-#ifndef        _ASM_CACHECTL
-#define        _ASM_CACHECTL
+#ifndef _UAPI_ASM_CACHECTL
+#define _UAPI_ASM_CACHECTL
 
 /*
  * Options for cacheflush system call
@@ -17,4 +17,4 @@
 #define        DCACHE  (1<<1)          /* writeback and flush data cache */
 #define        BCACHE  (ICACHE|DCACHE) /* flush both caches              */
 
-#endif /* _ASM_CACHECTL */
+#endif /* _UAPI_ASM_CACHECTL */
index 251c911d59c1181efbbafbeaa94b37b2c7f08c08..f51ad9a4f617ad221a4cba6bdb656d912252408d 100644 (file)
@@ -4,8 +4,8 @@
  * Licensed under the GPL-2 or later.
  */
 
-#ifndef _BFIN_FCNTL_H
-#define _BFIN_FCNTL_H
+#ifndef _UAPI_BFIN_FCNTL_H
+#define _UAPI_BFIN_FCNTL_H
 
 #define O_DIRECTORY     040000 /* must be a directory */
 #define O_NOFOLLOW     0100000 /* don't follow links */
@@ -14,4 +14,4 @@
 
 #include <asm-generic/fcntl.h>
 
-#endif
+#endif /* _UAPI_BFIN_FCNTL_H */
index eca8d75b0a8a4c5f36964a61c779d3aa04f208d9..9a41c20fc83da49a829b84e866d369eb8f937265 100644 (file)
@@ -1,7 +1,7 @@
-#ifndef __ARCH_BFIN_IOCTLS_H__
-#define __ARCH_BFIN_IOCTLS_H__
+#ifndef _UAPI__ARCH_BFIN_IOCTLS_H__
+#define _UAPI__ARCH_BFIN_IOCTLS_H__
 
 #define FIOQSIZE       0x545E
 #include <asm-generic/ioctls.h>
 
-#endif
+#endif /* _UAPI__ARCH_BFIN_IOCTLS_H__ */
index 072d8966c5c3cc4fe94082df0e00ee41cff7ffd6..99c7d6816da0bd3af15380153fb7f7bb57056f99 100644 (file)
@@ -5,12 +5,12 @@
  *
  */
 
-#ifndef __BFIN_POLL_H
-#define __BFIN_POLL_H
+#ifndef _UAPI__BFIN_POLL_H
+#define _UAPI__BFIN_POLL_H
 
 #define POLLWRNORM     4 /* POLLOUT */
 #define POLLWRBAND     256
 
 #include <asm-generic/poll.h>
 
-#endif
+#endif /* _UAPI__BFIN_POLL_H */
index 1bd3436db6a7b7d080bdf4bcb1a09db621fde1b0..9608ef64dc473d7c4dbefbe0d415283b390a0d5f 100644 (file)
@@ -4,8 +4,8 @@
  * Licensed under the GPL-2 or later.
  */
 
-#ifndef __ARCH_BFIN_POSIX_TYPES_H
-#define __ARCH_BFIN_POSIX_TYPES_H
+#ifndef _UAPI__ARCH_BFIN_POSIX_TYPES_H
+#define _UAPI__ARCH_BFIN_POSIX_TYPES_H
 
 typedef unsigned short __kernel_mode_t;
 #define __kernel_mode_t __kernel_mode_t
@@ -27,4 +27,4 @@ typedef unsigned short __kernel_old_dev_t;
 
 #include <asm-generic/posix_types.h>
 
-#endif
+#endif /* _UAPI__ARCH_BFIN_POSIX_TYPES_H */
index 906bdc1f5fda7c8b54e36775bab5bf92515a228d..b58f12dc27bd232f2143afbed6ac3b6073a1200e 100644 (file)
@@ -4,8 +4,8 @@
  * Licensed under the GPL-2 or later.
  */
 
-#ifndef _ASM_BLACKFIN_SIGCONTEXT_H
-#define _ASM_BLACKFIN_SIGCONTEXT_H
+#ifndef _UAPI_ASM_BLACKFIN_SIGCONTEXT_H
+#define _UAPI_ASM_BLACKFIN_SIGCONTEXT_H
 
 /* Add new entries at the end of the structure only.  */
 struct sigcontext {
@@ -58,4 +58,4 @@ struct sigcontext {
        unsigned long sc_seqstat;
 };
 
-#endif
+#endif /* _UAPI_ASM_BLACKFIN_SIGCONTEXT_H */
index 3e81306394e20fdb4630d08a9f25b575a5f64b9b..c72f4e6e386fa34b2b120e14baa3ee932caadee9 100644 (file)
@@ -4,8 +4,8 @@
  * Licensed under the GPL-2 or later.
  */
 
-#ifndef _BFIN_SIGINFO_H
-#define _BFIN_SIGINFO_H
+#ifndef _UAPI_BFIN_SIGINFO_H
+#define _UAPI_BFIN_SIGINFO_H
 
 #include <linux/types.h>
 #include <asm-generic/siginfo.h>
@@ -38,4 +38,4 @@
  */
 #define SEGV_STACKFLOW (__SI_FAULT|3)  /* stack overflow */
 
-#endif
+#endif /* _UAPI_BFIN_SIGINFO_H */
index 77a3bf37b69d6b3759ae678f8a90e61483a4cfe8..f0a0d8b6663a6905bea90c968a6dc43f5c686ed2 100644 (file)
@@ -1,7 +1,7 @@
-#ifndef _BLACKFIN_SIGNAL_H
-#define _BLACKFIN_SIGNAL_H
+#ifndef _UAPI_BLACKFIN_SIGNAL_H
+#define _UAPI_BLACKFIN_SIGNAL_H
 
 #define SA_RESTORER 0x04000000
 #include <asm-generic/signal.h>
 
-#endif
+#endif /* _UAPI_BLACKFIN_SIGNAL_H */
index 2e27665c4e91956c1bb7cc7525c0815c4c1ab485..d3068a750b94fd333256b1c6aee0a511067150e6 100644 (file)
@@ -4,8 +4,8 @@
  * Licensed under the GPL-2.
  */
 
-#ifndef _BFIN_STAT_H
-#define _BFIN_STAT_H
+#ifndef _UAPI_BFIN_STAT_H
+#define _UAPI_BFIN_STAT_H
 
 struct stat {
        unsigned short st_dev;
@@ -66,4 +66,4 @@ struct stat64 {
        unsigned long long st_ino;
 };
 
-#endif                         /* _BFIN_STAT_H */
+#endif /* _UAPI_BFIN_STAT_H */
index 89de6507ca2bbd38adcae0503fafff08b8fae61f..f5626b77684a71bae2385af1c5ba8ca8aab848e8 100644 (file)
@@ -4,8 +4,8 @@
  * Licensed under the GPL-2 or later.
  */
 
-#ifndef _BLACKFIN_SWAB_H
-#define _BLACKFIN_SWAB_H
+#ifndef _UAPI_BLACKFIN_SWAB_H
+#define _UAPI_BLACKFIN_SWAB_H
 
 #include <linux/types.h>
 #include <asm-generic/swab.h>
@@ -47,4 +47,4 @@ static __inline__ __attribute_const__ __u16 __arch_swab16(__u16 xx)
 
 #endif /* __GNUC__ */
 
-#endif                         /* _BLACKFIN_SWAB_H */
+#endif /* _UAPI_BLACKFIN_SWAB_H */
index 4a8c2e3fd7e5649b469738ae163721854f279d99..4da70c47cc055223087c18baa6287e3976a14a08 100644 (file)
@@ -370,7 +370,8 @@ static struct platform_device bfin_sir0_device = {
 #endif
 #endif
 
-#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
+#if defined(CONFIG_SERIAL_BFIN_SPORT) || \
+       defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
 #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
 static struct resource bfin_sport0_uart_resources[] = {
        {
@@ -441,6 +442,50 @@ static struct platform_device bfin_sport1_uart_device = {
 #endif
 #endif
 
+#if defined(CONFIG_BFIN_SPORT) || defined(CONFIG_BFIN_SPORT_MODULE)
+static struct resource bfin_sport0_resources[] = {
+       {
+               .start = SPORT0_TCR1,
+               .end = SPORT0_MRCS3+4,
+               .flags = IORESOURCE_MEM,
+       },
+       {
+               .start = IRQ_SPORT0_TX,
+               .end = IRQ_SPORT0_TX+1,
+               .flags = IORESOURCE_IRQ,
+       },
+       {
+               .start = IRQ_SPORT0_RX,
+               .end = IRQ_SPORT0_RX+1,
+               .flags = IORESOURCE_IRQ,
+       },
+       {
+               .start = IRQ_SPORT0_ERROR,
+               .end = IRQ_SPORT0_ERROR,
+               .flags = IORESOURCE_IRQ,
+       },
+       {
+               .start = CH_SPORT0_TX,
+               .end = CH_SPORT0_TX,
+               .flags = IORESOURCE_DMA,
+       },
+       {
+               .start = CH_SPORT0_RX,
+               .end = CH_SPORT0_RX,
+               .flags = IORESOURCE_DMA,
+       },
+};
+static struct platform_device bfin_sport0_device = {
+       .name = "bfin_sport_raw",
+       .id = 0,
+       .num_resources = ARRAY_SIZE(bfin_sport0_resources),
+       .resource = bfin_sport0_resources,
+       .dev = {
+               .platform_data = &bfin_sport0_peripherals,
+       },
+};
+#endif
+
 #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
 #include <linux/input.h>
 #include <linux/gpio_keys.h>
index b0fca44110b032dc59dc7b5d9485ba2724bf573c..6584190faeb809c2b73b698bc565b84cdfa98dfa 100644 (file)
@@ -17,6 +17,12 @@ config SEC_IRQ_PRIORITY_LEVELS
          Divide the total number of interrupt priority levels into sub-levels.
          There is 2 ^ (SEC_IRQ_PRIORITY_LEVELS + 1) different levels.
 
+config L1_PARITY_CHECK
+       bool "Enable L1 parity check"
+       default n
+       help
+         Enable the L1 parity check in L1 sram. A fault event is raised
+         when L1 parity error is found.
 
 comment "System Cross Bar Priority Assignment"
 
index dab8849af884a5a2032081eff51005c6daf08151..13644ed25489de4b46285ca3cd8953785310feff 100644 (file)
@@ -120,6 +120,7 @@ void clk_disable(struct clk *clk)
 }
 EXPORT_SYMBOL(clk_disable);
 
+
 unsigned long clk_get_rate(struct clk *clk)
 {
        unsigned long ret = 0;
@@ -131,7 +132,7 @@ EXPORT_SYMBOL(clk_get_rate);
 
 long clk_round_rate(struct clk *clk, unsigned long rate)
 {
-       long ret = -EIO;
+       long ret = 0;
        if (clk->ops && clk->ops->round_rate)
                ret = clk->ops->round_rate(clk, rate);
        return ret;
index 7a07374308aca4e0aba7b28276bd1114eb9a6f4a..696786e9a53147c8c51b8489b0375a77aceaf240 100644 (file)
 /* TRU_STAT.ADDRERR and TRU_ERRADDR.ADDR May Not Reflect the Correct Status */
 #define ANOMALY_16000003 (1)
 /* The EPPI Data Enable (DEN) Signal is Not Functional */
-#define ANOMALY_16000004 (1)
+#define ANOMALY_16000004 (__SILICON_REVISION__ < 1)
 /* Using L1 Instruction Cache with Parity Enabled is Unreliable */
-#define ANOMALY_16000005 (1)
+#define ANOMALY_16000005 (__SILICON_REVISION__ < 1)
 /* SEQSTAT.SYSNMI Clears Upon Entering the NMI ISR */
-#define ANOMALY_16000006 (1)
+#define ANOMALY_16000006 (__SILICON_REVISION__ < 1)
 /* DDR2 Memory Reads May Fail Intermittently */
 #define ANOMALY_16000007 (1)
 /* Instruction Memory Stalls Can Cause IFLUSH to Fail */
 /* Speculative Fetches Can Cause Undesired External FIFO Operations */
 #define ANOMALY_16000017 (1)
 /* RSI Boot Cleanup Routine Does Not Clear Registers */
-#define ANOMALY_16000018 (1)
+#define ANOMALY_16000018 (__SILICON_REVISION__ < 1)
 /* SPI Master Boot Device Auto-detection Frequency is Set Incorrectly */
-#define ANOMALY_16000019 (1)
+#define ANOMALY_16000019 (__SILICON_REVISION__ < 1)
 /* rom_SysControl() Fails to Set DDR0_CTL.INIT for Wakeup From Hibernate */
-#define ANOMALY_16000020 (1)
+#define ANOMALY_16000020 (__SILICON_REVISION__ < 1)
 /* rom_SysControl() Fails to Save and Restore DDR0_PHYCTL3 for Hibernate/Wakeup Sequence */
-#define ANOMALY_16000021 (1)
+#define ANOMALY_16000021 (__SILICON_REVISION__ < 1)
 /* Boot Code Fails to Enable Parity Fault Detection */
-#define ANOMALY_16000022 (1)
+#define ANOMALY_16000022 (__SILICON_REVISION__ < 1)
+/* Rom_SysControl Does not Update CGU0_CLKOUTSEL */
+#define ANOMALY_16000023 (__SILICON_REVISION__ < 1)
+/* Spurious Fault Signaled After Clearing an Externally Generated Fault */
+#define ANOMALY_16000024 (1)
+/* SPORT May Drive Data Pins During Inactive Channels in Multichannel Mode */
+#define ANOMALY_16000025 (1)
 /* USB DMA interrupt status do not show the DMA channel interrupt in the DMA ISR */
-#define ANOMALY_16000027 (1)
+#define ANOMALY_16000027 (__SILICON_REVISION__ < 1)
+/* Default SPI Master Boot Mode Setting is Incorrect */
+#define ANOMALY_16000028 (__SILICON_REVISION__ < 1)
+/* PPI tDFSPI Timing Does Not Meet Data Sheet Specification */
+#define ANOMALY_16000027 (__SILICON_REVISION__ < 1)
 /* Interrupted Core Reads of MMRs May Cause Data Loss */
-#define ANOMALY_16000030 (1)
+#define ANOMALY_16000030 (__SILICON_REVISION__ < 1)
+/* Incorrect Default USB_PLL_OSC.PLLM Value */
+#define ANOMALY_16000031 (__SILICON_REVISION__ < 1)
+/* Core Reads of System MMRs May Cause the Core to Hang */
+#define ANOMALY_16000032 (__SILICON_REVISION__ < 1)
+/* PPI Data Underflow on First Word Not Reported in Certain Modes */
+#define ANOMALY_16000033 (1)
+/* CNV1 Red Pixel Substitution feature not functional in the PVP */
+#define ANOMALY_16000034 (__SILICON_REVISION__ < 1)
+/* IPF0 Output Port Color Separation feature not functional */
+#define ANOMALY_16000035 (__SILICON_REVISION__ < 1)
+/* Spurious USB Wake From Hibernate May Occur When USB_VBUS is Low */
+#define ANOMALY_16000036 (__SILICON_REVISION__ < 1)
+/* Core RAISE 2 Instruction Not Latched When Executed at Priority Level 0, 1, or 2 */
+#define ANOMALY_16000037 (__SILICON_REVISION__ < 1)
+/* Spurious Unhandled NMI or L1 Memory Parity Error Interrupt May Occur Upon Entering the NMI ISR */
+#define ANOMALY_16000038 (__SILICON_REVISION__ < 1)
+/* CGU_STAT.PLOCKERR Bit May be Unreliable */
+#define ANOMALY_16000039 (1)
+/* JTAG Emulator Reads of SDU_IDCODE Alter Register Contents */
+#define ANOMALY_16000040 (1)
+/* IFLUSH Instruction Causes Parity Error When Parity Is Enabled */
+#define ANOMALY_16000041 (1)
+/* Instruction Cache Failure When Parity Is Enabled */
+#define ANOMALY_16000042 (__SILICON_REVISION__ == 1)
 
 /* Anomalies that don't exist on this proc */
 #define ANOMALY_05000158 (0)
index 0e1e451fd7d81aed622ef16bbbe0c0dcbf12502d..f4adedc9289563d38eb9872be94c53538b1fee6c 100644 (file)
@@ -6,7 +6,6 @@
  * Licensed under the GPL-2 or later.
  */
 
-#include <linux/init.h>
 #include <asm/blackfin.h>
 #include <asm/cplbinit.h>
 
@@ -42,6 +41,16 @@ bfin_cache_init(struct cplb_entry *cplb_tbl, unsigned long cplb_addr,
                 unsigned long mem_mask)
 {
        int i;
+#ifdef CONFIG_L1_PARITY_CHECK
+       u32 ctrl;
+
+       if (cplb_addr == DCPLB_ADDR0) {
+               ctrl = bfin_read32(mem_control) | (1 << RDCHK);
+               CSYNC();
+               bfin_write32(mem_control, ctrl);
+               SSYNC();
+       }
+#endif
 
        for (i = 0; i < MAX_CPLBS; i++) {
                bfin_write32(cplb_addr + i * 4, cplb_tbl[i].addr);
index 2308ce52f849b582ed8046bdfca9476bdad49e0e..d436bd907fc8c6e036a16b9f57241121cc5a0f2e 100644 (file)
@@ -7,7 +7,6 @@
  */
 
 #include <linux/linkage.h>
-#include <linux/init.h>
 #include <asm/blackfin.h>
 
 #include <asm/dma.h>
index ca75613231c84474ad276c667eb4cd415027532e..867b7cef204cb91f0ed15e9386ba7ea0b2089d96 100644 (file)
@@ -471,13 +471,8 @@ void handle_sec_ssi_fault(uint32_t gstat)
 
 }
 
-void handle_sec_fault(unsigned int irq, struct irq_desc *desc)
+void handle_sec_fault(uint32_t sec_gstat)
 {
-       uint32_t sec_gstat;
-
-       raw_spin_lock(&desc->lock);
-
-       sec_gstat = bfin_read32(SEC_GSTAT);
        if (sec_gstat & SEC_GSTAT_ERR) {
 
                switch (sec_gstat & SEC_GSTAT_ERRC) {
@@ -494,18 +489,16 @@ void handle_sec_fault(unsigned int irq, struct irq_desc *desc)
 
 
        }
-
-       raw_spin_unlock(&desc->lock);
-
-       handle_fasteoi_irq(irq, desc);
 }
 
-void handle_core_fault(unsigned int irq, struct irq_desc *desc)
+static struct irqaction bfin_fault_irq = {
+       .name = "Blackfin fault",
+};
+
+static irqreturn_t bfin_fault_routine(int irq, void *data)
 {
        struct pt_regs *fp = get_irq_regs();
 
-       raw_spin_lock(&desc->lock);
-
        switch (irq) {
        case IRQ_C0_DBL_FAULT:
                double_fault_c(fp);
@@ -522,11 +515,15 @@ void handle_core_fault(unsigned int irq, struct irq_desc *desc)
        case IRQ_C0_NMI_L1_PARITY_ERR:
                panic("Core 0 NMI L1 parity error");
                break;
+       case IRQ_SEC_ERR:
+               pr_err("SEC error\n");
+               handle_sec_fault(bfin_read32(SEC_GSTAT));
+               break;
        default:
-               panic("Core 1 fault %d occurs unexpectedly", irq);
+               panic("Unknown fault %d", irq);
        }
 
-       raw_spin_unlock(&desc->lock);
+       return IRQ_HANDLED;
 }
 #endif /* SEC_GCTL */
 
@@ -1195,12 +1192,7 @@ int __init init_arch_irq(void)
                                handle_percpu_irq);
                } else {
                        irq_set_chip(irq, &bfin_sec_irqchip);
-                       if (irq == IRQ_SEC_ERR)
-                               irq_set_handler(irq, handle_sec_fault);
-                       else if (irq >= IRQ_C0_DBL_FAULT && irq < CORE_IRQS)
-                               irq_set_handler(irq, handle_core_fault);
-                       else
-                               irq_set_handler(irq, handle_fasteoi_irq);
+                       irq_set_handler(irq, handle_fasteoi_irq);
                        __irq_set_preflow_handler(irq, bfin_sec_preflow_handler);
                }
        }
@@ -1239,6 +1231,13 @@ int __init init_arch_irq(void)
        register_syscore_ops(&sec_pm_syscore_ops);
 #endif
 
+       bfin_fault_irq.handler = bfin_fault_routine;
+#ifdef CONFIG_L1_PARITY_CHECK
+       setup_irq(IRQ_C0_NMI_L1_PARITY_ERR, &bfin_fault_irq);
+#endif
+       setup_irq(IRQ_C0_DBL_FAULT, &bfin_fault_irq);
+       setup_irq(IRQ_SEC_ERR, &bfin_fault_irq);
+
        return 0;
 }
 
index 2cbfb0b5679ee841ba337d7eaa39ec10a5d694db..8923398db66f01eef7777faaa08f2d324674e4ed 100644 (file)
@@ -6,7 +6,6 @@
  * Licensed under the GPL-2 or later.
  */
 
-#include <linux/init.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
 #include <asm/scb.h>
index 2bbae07838198912aa4beda231a0f96eaa647bd5..ba6c30d8534d0dec77cac409788aa37c03772748 100644 (file)
@@ -53,7 +53,6 @@ enum ipi_message_type {
        BFIN_IPI_TIMER,
        BFIN_IPI_RESCHEDULE,
        BFIN_IPI_CALL_FUNC,
-       BFIN_IPI_CALL_FUNC_SINGLE,
        BFIN_IPI_CPU_STOP,
 };
 
@@ -162,9 +161,6 @@ static irqreturn_t ipi_handler_int1(int irq, void *dev_instance)
                        case BFIN_IPI_CALL_FUNC:
                                generic_smp_call_function_interrupt();
                                break;
-                       case BFIN_IPI_CALL_FUNC_SINGLE:
-                               generic_smp_call_function_single_interrupt();
-                               break;
                        case BFIN_IPI_CPU_STOP:
                                ipi_cpu_stop(cpu);
                                break;
@@ -210,7 +206,7 @@ void send_ipi(const struct cpumask *cpumask, enum ipi_message_type msg)
 
 void arch_send_call_function_single_ipi(int cpu)
 {
-       send_ipi(cpumask_of(cpu), BFIN_IPI_CALL_FUNC_SINGLE);
+       send_ipi(cpumask_of(cpu), BFIN_IPI_CALL_FUNC);
 }
 
 void arch_send_call_function_ipi_mask(const struct cpumask *mask)