diff options
author | Robin Getz <rgetz@blackfin.uclinux.org> | 2008-08-14 03:12:55 -0400 |
---|---|---|
committer | Bryan Wu <cooloney@kernel.org> | 2008-08-14 03:12:55 -0400 |
commit | 251383c7c50cf17664a4d7d60d3a52d8827a0e11 (patch) | |
tree | f4b8368ddfe748040b80762bfd01d08b7e635bc4 /arch/blackfin/Kconfig | |
parent | cd8fb8df1458df7f3b99fd112e722b05f42c64d9 (diff) |
Blackfin arch: Allow ins functions to have a low latency version
Signed-off-by: Robin Getz <rgetz@blackfin.uclinux.org>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Diffstat (limited to 'arch/blackfin/Kconfig')
-rw-r--r-- | arch/blackfin/Kconfig | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig index cc2add7e39e7..ededf9319f34 100644 --- a/arch/blackfin/Kconfig +++ b/arch/blackfin/Kconfig | |||
@@ -622,6 +622,33 @@ config CPLB_SWITCH_TAB_L1 | |||
622 | If enabled, the CPLB Switch Tables are linked | 622 | If enabled, the CPLB Switch Tables are linked |
623 | into L1 data memory. (less latency) | 623 | into L1 data memory. (less latency) |
624 | 624 | ||
625 | comment "Speed Optimizations" | ||
626 | config BFIN_INS_LOWOVERHEAD | ||
627 | bool "ins[bwl] low overhead, higher interrupt latency" | ||
628 | default y | ||
629 | help | ||
630 | Reads on the Blackfin are speculative. In Blackfin terms, this means | ||
631 | they can be interrupted at any time (even after they have been issued | ||
632 | on to the external bus), and re-issued after the interrupt occurs. | ||
633 | For memory - this is not a big deal, since memory does not change if | ||
634 | it sees a read. | ||
635 | |||
636 | If a FIFO is sitting on the end of the read, it will see two reads, | ||
637 | when the core only sees one since the FIFO receives both the read | ||
638 | which is cancelled (and not delivered to the core) and the one which | ||
639 | is re-issued (which is delivered to the core). | ||
640 | |||
641 | To solve this, interrupts are turned off before reads occur to | ||
642 | I/O space. This option controls which the overhead/latency of | ||
643 | controlling interrupts during this time | ||
644 | "n" turns interrupts off every read | ||
645 | (higher overhead, but lower interrupt latency) | ||
646 | "y" turns interrupts off every loop | ||
647 | (low overhead, but longer interrupt latency) | ||
648 | |||
649 | default behavior is to leave this set to on (type "Y"). If you are experiencing | ||
650 | interrupt latency issues, it is safe and OK to turn this off. | ||
651 | |||
625 | endmenu | 652 | endmenu |
626 | 653 | ||
627 | 654 | ||