Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'blackfin-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/realmz6/blackfin-linux

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

+166 -83
+1
arch/blackfin/configs/BF527-EZKIT_defconfig
··· 146 146 CONFIG_USB_OTG_BLACKLIST_HUB=y 147 147 CONFIG_USB_MON=y 148 148 CONFIG_USB_MUSB_HDRC=y 149 + CONFIG_MUSB_PIO_ONLY=y 149 150 CONFIG_USB_MUSB_BLACKFIN=y 150 151 CONFIG_MUSB_PIO_ONLY=y 151 152 CONFIG_USB_STORAGE=y
-1
arch/blackfin/configs/BF538-EZKIT_defconfig
··· 59 59 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 60 60 # CONFIG_FW_LOADER is not set 61 61 CONFIG_MTD=y 62 - CONFIG_MTD_PARTITIONS=y 63 62 CONFIG_MTD_CMDLINE_PARTS=y 64 63 CONFIG_MTD_CHAR=m 65 64 CONFIG_MTD_BLOCK=y
-1
arch/blackfin/configs/BF561-ACVILON_defconfig
··· 49 49 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 50 50 # CONFIG_FW_LOADER is not set 51 51 CONFIG_MTD=y 52 - CONFIG_MTD_PARTITIONS=y 53 52 CONFIG_MTD_CMDLINE_PARTS=y 54 53 CONFIG_MTD_CHAR=y 55 54 CONFIG_MTD_BLOCK=y
-1
arch/blackfin/configs/BlackStamp_defconfig
··· 44 44 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 45 45 # CONFIG_FW_LOADER is not set 46 46 CONFIG_MTD=y 47 - CONFIG_MTD_PARTITIONS=y 48 47 CONFIG_MTD_CMDLINE_PARTS=y 49 48 CONFIG_MTD_CHAR=m 50 49 CONFIG_MTD_BLOCK=y
-1
arch/blackfin/configs/CM-BF533_defconfig
··· 36 36 # CONFIG_WIRELESS is not set 37 37 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 38 38 CONFIG_MTD=y 39 - CONFIG_MTD_PARTITIONS=y 40 39 CONFIG_MTD_CMDLINE_PARTS=y 41 40 CONFIG_MTD_CHAR=y 42 41 CONFIG_MTD_BLOCK=y
-1
arch/blackfin/configs/CM-BF548_defconfig
··· 53 53 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 54 54 # CONFIG_FW_LOADER is not set 55 55 CONFIG_MTD=y 56 - CONFIG_MTD_PARTITIONS=y 57 56 CONFIG_MTD_CMDLINE_PARTS=y 58 57 CONFIG_MTD_CHAR=y 59 58 CONFIG_MTD_BLOCK=y
-1
arch/blackfin/configs/CM-BF561_defconfig
··· 51 51 # CONFIG_WIRELESS is not set 52 52 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 53 53 CONFIG_MTD=y 54 - CONFIG_MTD_PARTITIONS=y 55 54 CONFIG_MTD_CMDLINE_PARTS=y 56 55 CONFIG_MTD_CHAR=y 57 56 CONFIG_MTD_BLOCK=y
-1
arch/blackfin/configs/DNP5370_defconfig
··· 36 36 CONFIG_MTD=y 37 37 CONFIG_MTD_DEBUG=y 38 38 CONFIG_MTD_DEBUG_VERBOSE=1 39 - CONFIG_MTD_PARTITIONS=y 40 39 CONFIG_MTD_CHAR=y 41 40 CONFIG_MTD_BLOCK=y 42 41 CONFIG_NFTL=y
-1
arch/blackfin/configs/H8606_defconfig
··· 36 36 # CONFIG_WIRELESS is not set 37 37 # CONFIG_FW_LOADER is not set 38 38 CONFIG_MTD=y 39 - CONFIG_MTD_PARTITIONS=y 40 39 CONFIG_MTD_CHAR=y 41 40 CONFIG_MTD_BLOCK=y 42 41 CONFIG_MTD_RAM=y
-1
arch/blackfin/configs/IP0X_defconfig
··· 43 43 CONFIG_IP_NF_MANGLE=y 44 44 # CONFIG_WIRELESS is not set 45 45 CONFIG_MTD=y 46 - CONFIG_MTD_PARTITIONS=y 47 46 CONFIG_MTD_CHAR=y 48 47 CONFIG_MTD_BLOCK=y 49 48 CONFIG_MTD_CFI=y
-1
arch/blackfin/configs/PNAV-10_defconfig
··· 46 46 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 47 47 # CONFIG_FW_LOADER is not set 48 48 CONFIG_MTD=y 49 - CONFIG_MTD_PARTITIONS=y 50 49 CONFIG_MTD_CHAR=m 51 50 CONFIG_MTD_BLOCK=y 52 51 CONFIG_MTD_RAM=y
-1
arch/blackfin/configs/SRV1_defconfig
··· 38 38 # CONFIG_WIRELESS is not set 39 39 # CONFIG_FW_LOADER is not set 40 40 CONFIG_MTD=y 41 - CONFIG_MTD_PARTITIONS=y 42 41 CONFIG_MTD_CHAR=m 43 42 CONFIG_MTD_BLOCK=y 44 43 CONFIG_MTD_JEDECPROBE=m
-1
arch/blackfin/configs/TCM-BF518_defconfig
··· 54 54 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 55 55 # CONFIG_FW_LOADER is not set 56 56 CONFIG_MTD=y 57 - CONFIG_MTD_PARTITIONS=y 58 57 CONFIG_MTD_CMDLINE_PARTS=y 59 58 CONFIG_MTD_CHAR=y 60 59 CONFIG_MTD_BLOCK=y
+1
arch/blackfin/include/asm/def_LPBlackfin.h
··· 544 544 #define DCBS_P 0x04 /* L1 Data Cache Bank Select */ 545 545 #define PORT_PREF0_P 0x12 /* DAG0 Port Preference */ 546 546 #define PORT_PREF1_P 0x13 /* DAG1 Port Preference */ 547 + #define RDCHK 0x9 /* Enable L1 Parity Check */ 547 548 548 549 /* Masks */ 549 550 #define ENDM 0x00000001 /* (doesn't really exist) Enable
+5
arch/blackfin/include/uapi/asm/byteorder.h
··· 1 + #ifndef _UAPI__BFIN_ASM_BYTEORDER_H 2 + #define _UAPI__BFIN_ASM_BYTEORDER_H 3 + 1 4 #include <linux/byteorder/little_endian.h> 5 + 6 + #endif /* _UAPI__BFIN_ASM_BYTEORDER_H */
+3 -3
arch/blackfin/include/uapi/asm/cachectl.h
··· 7 7 * Licensed under the GPL-2 or later. 8 8 */ 9 9 10 - #ifndef _ASM_CACHECTL 11 - #define _ASM_CACHECTL 10 + #ifndef _UAPI_ASM_CACHECTL 11 + #define _UAPI_ASM_CACHECTL 12 12 13 13 /* 14 14 * Options for cacheflush system call ··· 17 17 #define DCACHE (1<<1) /* writeback and flush data cache */ 18 18 #define BCACHE (ICACHE|DCACHE) /* flush both caches */ 19 19 20 - #endif /* _ASM_CACHECTL */ 20 + #endif /* _UAPI_ASM_CACHECTL */
+3 -3
arch/blackfin/include/uapi/asm/fcntl.h
··· 4 4 * Licensed under the GPL-2 or later. 5 5 */ 6 6 7 - #ifndef _BFIN_FCNTL_H 8 - #define _BFIN_FCNTL_H 7 + #ifndef _UAPI_BFIN_FCNTL_H 8 + #define _UAPI_BFIN_FCNTL_H 9 9 10 10 #define O_DIRECTORY 040000 /* must be a directory */ 11 11 #define O_NOFOLLOW 0100000 /* don't follow links */ ··· 14 14 15 15 #include <asm-generic/fcntl.h> 16 16 17 - #endif 17 + #endif /* _UAPI_BFIN_FCNTL_H */
+3 -3
arch/blackfin/include/uapi/asm/ioctls.h
··· 1 - #ifndef __ARCH_BFIN_IOCTLS_H__ 2 - #define __ARCH_BFIN_IOCTLS_H__ 1 + #ifndef _UAPI__ARCH_BFIN_IOCTLS_H__ 2 + #define _UAPI__ARCH_BFIN_IOCTLS_H__ 3 3 4 4 #define FIOQSIZE 0x545E 5 5 #include <asm-generic/ioctls.h> 6 6 7 - #endif 7 + #endif /* _UAPI__ARCH_BFIN_IOCTLS_H__ */
+3 -3
arch/blackfin/include/uapi/asm/poll.h
··· 5 5 * 6 6 */ 7 7 8 - #ifndef __BFIN_POLL_H 9 - #define __BFIN_POLL_H 8 + #ifndef _UAPI__BFIN_POLL_H 9 + #define _UAPI__BFIN_POLL_H 10 10 11 11 #define POLLWRNORM 4 /* POLLOUT */ 12 12 #define POLLWRBAND 256 13 13 14 14 #include <asm-generic/poll.h> 15 15 16 - #endif 16 + #endif /* _UAPI__BFIN_POLL_H */
+3 -3
arch/blackfin/include/uapi/asm/posix_types.h
··· 4 4 * Licensed under the GPL-2 or later. 5 5 */ 6 6 7 - #ifndef __ARCH_BFIN_POSIX_TYPES_H 8 - #define __ARCH_BFIN_POSIX_TYPES_H 7 + #ifndef _UAPI__ARCH_BFIN_POSIX_TYPES_H 8 + #define _UAPI__ARCH_BFIN_POSIX_TYPES_H 9 9 10 10 typedef unsigned short __kernel_mode_t; 11 11 #define __kernel_mode_t __kernel_mode_t ··· 27 27 28 28 #include <asm-generic/posix_types.h> 29 29 30 - #endif 30 + #endif /* _UAPI__ARCH_BFIN_POSIX_TYPES_H */
+3 -3
arch/blackfin/include/uapi/asm/sigcontext.h
··· 4 4 * Licensed under the GPL-2 or later. 5 5 */ 6 6 7 - #ifndef _ASM_BLACKFIN_SIGCONTEXT_H 8 - #define _ASM_BLACKFIN_SIGCONTEXT_H 7 + #ifndef _UAPI_ASM_BLACKFIN_SIGCONTEXT_H 8 + #define _UAPI_ASM_BLACKFIN_SIGCONTEXT_H 9 9 10 10 /* Add new entries at the end of the structure only. */ 11 11 struct sigcontext { ··· 58 58 unsigned long sc_seqstat; 59 59 }; 60 60 61 - #endif 61 + #endif /* _UAPI_ASM_BLACKFIN_SIGCONTEXT_H */
+3 -3
arch/blackfin/include/uapi/asm/siginfo.h
··· 4 4 * Licensed under the GPL-2 or later. 5 5 */ 6 6 7 - #ifndef _BFIN_SIGINFO_H 8 - #define _BFIN_SIGINFO_H 7 + #ifndef _UAPI_BFIN_SIGINFO_H 8 + #define _UAPI_BFIN_SIGINFO_H 9 9 10 10 #include <linux/types.h> 11 11 #include <asm-generic/siginfo.h> ··· 38 38 */ 39 39 #define SEGV_STACKFLOW (__SI_FAULT|3) /* stack overflow */ 40 40 41 - #endif 41 + #endif /* _UAPI_BFIN_SIGINFO_H */
+3 -3
arch/blackfin/include/uapi/asm/signal.h
··· 1 - #ifndef _BLACKFIN_SIGNAL_H 2 - #define _BLACKFIN_SIGNAL_H 1 + #ifndef _UAPI_BLACKFIN_SIGNAL_H 2 + #define _UAPI_BLACKFIN_SIGNAL_H 3 3 4 4 #define SA_RESTORER 0x04000000 5 5 #include <asm-generic/signal.h> 6 6 7 - #endif 7 + #endif /* _UAPI_BLACKFIN_SIGNAL_H */
+3 -3
arch/blackfin/include/uapi/asm/stat.h
··· 4 4 * Licensed under the GPL-2. 5 5 */ 6 6 7 - #ifndef _BFIN_STAT_H 8 - #define _BFIN_STAT_H 7 + #ifndef _UAPI_BFIN_STAT_H 8 + #define _UAPI_BFIN_STAT_H 9 9 10 10 struct stat { 11 11 unsigned short st_dev; ··· 66 66 unsigned long long st_ino; 67 67 }; 68 68 69 - #endif /* _BFIN_STAT_H */ 69 + #endif /* _UAPI_BFIN_STAT_H */
+3 -3
arch/blackfin/include/uapi/asm/swab.h
··· 4 4 * Licensed under the GPL-2 or later. 5 5 */ 6 6 7 - #ifndef _BLACKFIN_SWAB_H 8 - #define _BLACKFIN_SWAB_H 7 + #ifndef _UAPI_BLACKFIN_SWAB_H 8 + #define _UAPI_BLACKFIN_SWAB_H 9 9 10 10 #include <linux/types.h> 11 11 #include <asm-generic/swab.h> ··· 47 47 48 48 #endif /* __GNUC__ */ 49 49 50 - #endif /* _BLACKFIN_SWAB_H */ 50 + #endif /* _UAPI_BLACKFIN_SWAB_H */
+46 -1
arch/blackfin/mach-bf533/boards/stamp.c
··· 370 370 #endif 371 371 #endif 372 372 373 - #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 373 + #if defined(CONFIG_SERIAL_BFIN_SPORT) || \ 374 + defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 374 375 #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART 375 376 static struct resource bfin_sport0_uart_resources[] = { 376 377 { ··· 440 439 }, 441 440 }; 442 441 #endif 442 + #endif 443 + 444 + #if defined(CONFIG_BFIN_SPORT) || defined(CONFIG_BFIN_SPORT_MODULE) 445 + static struct resource bfin_sport0_resources[] = { 446 + { 447 + .start = SPORT0_TCR1, 448 + .end = SPORT0_MRCS3+4, 449 + .flags = IORESOURCE_MEM, 450 + }, 451 + { 452 + .start = IRQ_SPORT0_TX, 453 + .end = IRQ_SPORT0_TX+1, 454 + .flags = IORESOURCE_IRQ, 455 + }, 456 + { 457 + .start = IRQ_SPORT0_RX, 458 + .end = IRQ_SPORT0_RX+1, 459 + .flags = IORESOURCE_IRQ, 460 + }, 461 + { 462 + .start = IRQ_SPORT0_ERROR, 463 + .end = IRQ_SPORT0_ERROR, 464 + .flags = IORESOURCE_IRQ, 465 + }, 466 + { 467 + .start = CH_SPORT0_TX, 468 + .end = CH_SPORT0_TX, 469 + .flags = IORESOURCE_DMA, 470 + }, 471 + { 472 + .start = CH_SPORT0_RX, 473 + .end = CH_SPORT0_RX, 474 + .flags = IORESOURCE_DMA, 475 + }, 476 + }; 477 + static struct platform_device bfin_sport0_device = { 478 + .name = "bfin_sport_raw", 479 + .id = 0, 480 + .num_resources = ARRAY_SIZE(bfin_sport0_resources), 481 + .resource = bfin_sport0_resources, 482 + .dev = { 483 + .platform_data = &bfin_sport0_peripherals, 484 + }, 485 + }; 443 486 #endif 444 487 445 488 #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
+6
arch/blackfin/mach-bf609/Kconfig
··· 17 17 Divide the total number of interrupt priority levels into sub-levels. 18 18 There is 2 ^ (SEC_IRQ_PRIORITY_LEVELS + 1) different levels. 19 19 20 + config L1_PARITY_CHECK 21 + bool "Enable L1 parity check" 22 + default n 23 + help 24 + Enable the L1 parity check in L1 sram. A fault event is raised 25 + when L1 parity error is found. 20 26 21 27 comment "System Cross Bar Priority Assignment" 22 28
+2 -1
arch/blackfin/mach-bf609/clock.c
··· 120 120 } 121 121 EXPORT_SYMBOL(clk_disable); 122 122 123 + 123 124 unsigned long clk_get_rate(struct clk *clk) 124 125 { 125 126 unsigned long ret = 0; ··· 132 131 133 132 long clk_round_rate(struct clk *clk, unsigned long rate) 134 133 { 135 - long ret = -EIO; 134 + long ret = 0; 136 135 if (clk->ops && clk->ops->round_rate) 137 136 ret = clk->ops->round_rate(clk, rate); 138 137 return ret;
+44 -10
arch/blackfin/mach-bf609/include/mach/anomaly.h
··· 23 23 /* TRU_STAT.ADDRERR and TRU_ERRADDR.ADDR May Not Reflect the Correct Status */ 24 24 #define ANOMALY_16000003 (1) 25 25 /* The EPPI Data Enable (DEN) Signal is Not Functional */ 26 - #define ANOMALY_16000004 (1) 26 + #define ANOMALY_16000004 (__SILICON_REVISION__ < 1) 27 27 /* Using L1 Instruction Cache with Parity Enabled is Unreliable */ 28 - #define ANOMALY_16000005 (1) 28 + #define ANOMALY_16000005 (__SILICON_REVISION__ < 1) 29 29 /* SEQSTAT.SYSNMI Clears Upon Entering the NMI ISR */ 30 - #define ANOMALY_16000006 (1) 30 + #define ANOMALY_16000006 (__SILICON_REVISION__ < 1) 31 31 /* DDR2 Memory Reads May Fail Intermittently */ 32 32 #define ANOMALY_16000007 (1) 33 33 /* Instruction Memory Stalls Can Cause IFLUSH to Fail */ ··· 49 49 /* Speculative Fetches Can Cause Undesired External FIFO Operations */ 50 50 #define ANOMALY_16000017 (1) 51 51 /* RSI Boot Cleanup Routine Does Not Clear Registers */ 52 - #define ANOMALY_16000018 (1) 52 + #define ANOMALY_16000018 (__SILICON_REVISION__ < 1) 53 53 /* SPI Master Boot Device Auto-detection Frequency is Set Incorrectly */ 54 - #define ANOMALY_16000019 (1) 54 + #define ANOMALY_16000019 (__SILICON_REVISION__ < 1) 55 55 /* rom_SysControl() Fails to Set DDR0_CTL.INIT for Wakeup From Hibernate */ 56 - #define ANOMALY_16000020 (1) 56 + #define ANOMALY_16000020 (__SILICON_REVISION__ < 1) 57 57 /* rom_SysControl() Fails to Save and Restore DDR0_PHYCTL3 for Hibernate/Wakeup Sequence */ 58 - #define ANOMALY_16000021 (1) 58 + #define ANOMALY_16000021 (__SILICON_REVISION__ < 1) 59 59 /* Boot Code Fails to Enable Parity Fault Detection */ 60 - #define ANOMALY_16000022 (1) 60 + #define ANOMALY_16000022 (__SILICON_REVISION__ < 1) 61 + /* Rom_SysControl Does not Update CGU0_CLKOUTSEL */ 62 + #define ANOMALY_16000023 (__SILICON_REVISION__ < 1) 63 + /* Spurious Fault Signaled After Clearing an Externally Generated Fault */ 64 + #define ANOMALY_16000024 (1) 65 + /* SPORT May Drive Data Pins During Inactive Channels in Multichannel Mode */ 66 + #define ANOMALY_16000025 (1) 61 67 /* USB DMA interrupt status do not show the DMA channel interrupt in the DMA ISR */ 62 - #define ANOMALY_16000027 (1) 68 + #define ANOMALY_16000027 (__SILICON_REVISION__ < 1) 69 + /* Default SPI Master Boot Mode Setting is Incorrect */ 70 + #define ANOMALY_16000028 (__SILICON_REVISION__ < 1) 71 + /* PPI tDFSPI Timing Does Not Meet Data Sheet Specification */ 72 + #define ANOMALY_16000027 (__SILICON_REVISION__ < 1) 63 73 /* Interrupted Core Reads of MMRs May Cause Data Loss */ 64 - #define ANOMALY_16000030 (1) 74 + #define ANOMALY_16000030 (__SILICON_REVISION__ < 1) 75 + /* Incorrect Default USB_PLL_OSC.PLLM Value */ 76 + #define ANOMALY_16000031 (__SILICON_REVISION__ < 1) 77 + /* Core Reads of System MMRs May Cause the Core to Hang */ 78 + #define ANOMALY_16000032 (__SILICON_REVISION__ < 1) 79 + /* PPI Data Underflow on First Word Not Reported in Certain Modes */ 80 + #define ANOMALY_16000033 (1) 81 + /* CNV1 Red Pixel Substitution feature not functional in the PVP */ 82 + #define ANOMALY_16000034 (__SILICON_REVISION__ < 1) 83 + /* IPF0 Output Port Color Separation feature not functional */ 84 + #define ANOMALY_16000035 (__SILICON_REVISION__ < 1) 85 + /* Spurious USB Wake From Hibernate May Occur When USB_VBUS is Low */ 86 + #define ANOMALY_16000036 (__SILICON_REVISION__ < 1) 87 + /* Core RAISE 2 Instruction Not Latched When Executed at Priority Level 0, 1, or 2 */ 88 + #define ANOMALY_16000037 (__SILICON_REVISION__ < 1) 89 + /* Spurious Unhandled NMI or L1 Memory Parity Error Interrupt May Occur Upon Entering the NMI ISR */ 90 + #define ANOMALY_16000038 (__SILICON_REVISION__ < 1) 91 + /* CGU_STAT.PLOCKERR Bit May be Unreliable */ 92 + #define ANOMALY_16000039 (1) 93 + /* JTAG Emulator Reads of SDU_IDCODE Alter Register Contents */ 94 + #define ANOMALY_16000040 (1) 95 + /* IFLUSH Instruction Causes Parity Error When Parity Is Enabled */ 96 + #define ANOMALY_16000041 (1) 97 + /* Instruction Cache Failure When Parity Is Enabled */ 98 + #define ANOMALY_16000042 (__SILICON_REVISION__ == 1) 65 99 66 100 /* Anomalies that don't exist on this proc */ 67 101 #define ANOMALY_05000158 (0)
+10 -1
arch/blackfin/mach-common/cache-c.c
··· 6 6 * Licensed under the GPL-2 or later. 7 7 */ 8 8 9 - #include <linux/init.h> 10 9 #include <asm/blackfin.h> 11 10 #include <asm/cplbinit.h> 12 11 ··· 41 42 unsigned long mem_mask) 42 43 { 43 44 int i; 45 + #ifdef CONFIG_L1_PARITY_CHECK 46 + u32 ctrl; 47 + 48 + if (cplb_addr == DCPLB_ADDR0) { 49 + ctrl = bfin_read32(mem_control) | (1 << RDCHK); 50 + CSYNC(); 51 + bfin_write32(mem_control, ctrl); 52 + SSYNC(); 53 + } 54 + #endif 44 55 45 56 for (i = 0; i < MAX_CPLBS; i++) { 46 57 bfin_write32(cplb_addr + i * 4, cplb_tbl[i].addr);
-1
arch/blackfin/mach-common/clocks-init.c
··· 7 7 */ 8 8 9 9 #include <linux/linkage.h> 10 - #include <linux/init.h> 11 10 #include <asm/blackfin.h> 12 11 13 12 #include <asm/dma.h>
+20 -21
arch/blackfin/mach-common/ints-priority.c
··· 471 471 472 472 } 473 473 474 - void handle_sec_fault(unsigned int irq, struct irq_desc *desc) 474 + void handle_sec_fault(uint32_t sec_gstat) 475 475 { 476 - uint32_t sec_gstat; 477 - 478 - raw_spin_lock(&desc->lock); 479 - 480 - sec_gstat = bfin_read32(SEC_GSTAT); 481 476 if (sec_gstat & SEC_GSTAT_ERR) { 482 477 483 478 switch (sec_gstat & SEC_GSTAT_ERRC) { ··· 489 494 490 495 491 496 } 492 - 493 - raw_spin_unlock(&desc->lock); 494 - 495 - handle_fasteoi_irq(irq, desc); 496 497 } 497 498 498 - void handle_core_fault(unsigned int irq, struct irq_desc *desc) 499 + static struct irqaction bfin_fault_irq = { 500 + .name = "Blackfin fault", 501 + }; 502 + 503 + static irqreturn_t bfin_fault_routine(int irq, void *data) 499 504 { 500 505 struct pt_regs *fp = get_irq_regs(); 501 - 502 - raw_spin_lock(&desc->lock); 503 506 504 507 switch (irq) { 505 508 case IRQ_C0_DBL_FAULT: ··· 515 522 case IRQ_C0_NMI_L1_PARITY_ERR: 516 523 panic("Core 0 NMI L1 parity error"); 517 524 break; 525 + case IRQ_SEC_ERR: 526 + pr_err("SEC error\n"); 527 + handle_sec_fault(bfin_read32(SEC_GSTAT)); 528 + break; 518 529 default: 519 - panic("Core 1 fault %d occurs unexpectedly", irq); 530 + panic("Unknown fault %d", irq); 520 531 } 521 532 522 - raw_spin_unlock(&desc->lock); 533 + return IRQ_HANDLED; 523 534 } 524 535 #endif /* SEC_GCTL */ 525 536 ··· 1192 1195 handle_percpu_irq); 1193 1196 } else { 1194 1197 irq_set_chip(irq, &bfin_sec_irqchip); 1195 - if (irq == IRQ_SEC_ERR) 1196 - irq_set_handler(irq, handle_sec_fault); 1197 - else if (irq >= IRQ_C0_DBL_FAULT && irq < CORE_IRQS) 1198 - irq_set_handler(irq, handle_core_fault); 1199 - else 1200 - irq_set_handler(irq, handle_fasteoi_irq); 1198 + irq_set_handler(irq, handle_fasteoi_irq); 1201 1199 __irq_set_preflow_handler(irq, bfin_sec_preflow_handler); 1202 1200 } 1203 1201 } ··· 1230 1238 #ifdef CONFIG_PM 1231 1239 register_syscore_ops(&sec_pm_syscore_ops); 1232 1240 #endif 1241 + 1242 + bfin_fault_irq.handler = bfin_fault_routine; 1243 + #ifdef CONFIG_L1_PARITY_CHECK 1244 + setup_irq(IRQ_C0_NMI_L1_PARITY_ERR, &bfin_fault_irq); 1245 + #endif 1246 + setup_irq(IRQ_C0_DBL_FAULT, &bfin_fault_irq); 1247 + setup_irq(IRQ_SEC_ERR, &bfin_fault_irq); 1233 1248 1234 1249 return 0; 1235 1250 }
-1
arch/blackfin/mach-common/scb-init.c
··· 6 6 * Licensed under the GPL-2 or later. 7 7 */ 8 8 9 - #include <linux/init.h> 10 9 #include <linux/errno.h> 11 10 #include <linux/kernel.h> 12 11 #include <asm/scb.h>
+1 -5
arch/blackfin/mach-common/smp.c
··· 53 53 BFIN_IPI_TIMER, 54 54 BFIN_IPI_RESCHEDULE, 55 55 BFIN_IPI_CALL_FUNC, 56 - BFIN_IPI_CALL_FUNC_SINGLE, 57 56 BFIN_IPI_CPU_STOP, 58 57 }; 59 58 ··· 161 162 case BFIN_IPI_CALL_FUNC: 162 163 generic_smp_call_function_interrupt(); 163 164 break; 164 - case BFIN_IPI_CALL_FUNC_SINGLE: 165 - generic_smp_call_function_single_interrupt(); 166 - break; 167 165 case BFIN_IPI_CPU_STOP: 168 166 ipi_cpu_stop(cpu); 169 167 break; ··· 206 210 207 211 void arch_send_call_function_single_ipi(int cpu) 208 212 { 209 - send_ipi(cpumask_of(cpu), BFIN_IPI_CALL_FUNC_SINGLE); 213 + send_ipi(cpumask_of(cpu), BFIN_IPI_CALL_FUNC); 210 214 } 211 215 212 216 void arch_send_call_function_ipi_mask(const struct cpumask *mask)