Commit Graph
100 Commits
Author SHA1 Message Date
Russell King c0f85a8248 [ARM] pxa: fix pxa27x keyboard driver
CKEN macro definitions no longer contains the bit number; remove it
from usages in the pxa27x keyboard driver.

Signed-off-by: Russell King <[email protected]>
2007-06-05 21:14:40 +01:00
Russell King db002b8597 [ARM] Fix 4417/1: Serial: Fix AMBA drivers locking
2389b27216 contains a merge bug; fix it.

Signed-off-by: Russell King <[email protected]>
2007-06-05 19:39:49 +01:00
Russell King f72267c30f [ARM] Solve buggy smp_processor_id() usage
BUG: using smp_processor_id() in preemptible [00000001] code: opcontrol/427

Resolve this bug by ensuring that we're not using smp_processor_id() in
a preemptable context (by disabling preemption.)

Signed-off-by: Russell King <[email protected]>
2007-06-02 21:31:49 +01:00
Russell King cdea460643 [ARM] Fix some section mismatch warnings
The following patch fixes these section mismatch warnings:

WARNING: arch/arm/mach-at91/built-in.o(.text+0xdf4): Section mismatch: reference to .init.data:dk_nand_partition (between 'nand_partitions' and 'at91_leds_event')
WARNING: arch/arm/mach-at91/built-in.o(.text+0xbdc): Section mismatch: reference to .init.data:ek_nand_partition (after 'nand_partitions')
WARNING: arch/arm/mach-at91/built-in.o(.text+0xbdc): Section mismatch: reference to .init.data:ek_nand_partition (between 'nand_partitions' and 'ads7843_pendown_state')
WARNING: arch/arm/mach-at91/built-in.o(.text+0xbdc): Section mismatch: reference to .init.data:ek_nand_partition (after 'nand_partitions')
WARNING: arch/arm/mach-at91/built-in.o(.text+0xc28): Section mismatch: reference to .init.data:kb9202_nand_partition (after 'nand_partitions')
WARNING: arch/arm/mach-footbridge/built-in.o(.text+0xaa4): Section mismatch: reference to .init.data:cats_pci (between 'cats_pci_init' and 'ebsa285_leds_event')WARNING: arch/arm/mach-ixp2000/built-in.o(.text+0xb54): Section mismatch: reference to .init.text:ixp2000_init_irq (between 'ixdp2x00_init_irq' and 'ixdp2x00_irq_handler')
WARNING: arch/arm/mach-ixp23xx/built-in.o(.text+0x670): Section mismatch: reference to .init.text:ixp23xx_pci_common_init (between 'ixp23xx_pci_slave_init' and 'ixp23xx_pci_scan_bus')
WARNING: arch/arm/mach-ixp23xx/built-in.o(.text+0x890): Section mismatch: reference to .init.text:ixp23xx_init_irq (between 'ixdp2351_init_irq' and 'roadrunner_pci_preinit')
WARNING: arch/arm/mach-ixp23xx/built-in.o(.text+0x9a8): Section mismatch: reference to .init.text:ixp23xx_pci_preinit (after 'roadrunner_pci_preinit')
WARNING: arch/arm/mach-imx/built-in.o(__ksymtab+0x80): Section mismatch: reference to .init.text:imx_set_mmc_info (between '__ksymtab_imx_set_mmc_info' and '__ksymtab_set_imx_fb_info')
WARNING: arch/arm/mach-imx/built-in.o(__ksymtab+0x88): Section mismatch: reference to .init.text:set_imx_fb_info (after '__ksymtab_set_imx_fb_info')
WARNING: arch/arm/mach-sa1100/built-in.o(.text+0x1930): Section mismatch: reference to .init.data:neponset_port_fns (between 'neponset_probe' and 'assabet_leds_event')
WARNING: drivers/built-in.o(.text+0x3f100): Section mismatch: reference to .init.text:ps2_clear_input (between 'ps2_probe' and 'ps2_cmd_aborted')
WARNING: drivers/built-in.o(.text+0x3f1c8): Section mismatch: reference to .init.text:ps2_clear_input (between 'ps2_probe' and 'ps2_cmd_aborted')
WARNING: drivers/built-in.o(.text+0x4f988): Section mismatch: reference to .init.text:ps2_clear_input (between 'ps2_probe' and 'ps2_cmd_aborted')
WARNING: drivers/built-in.o(.text+0x4fa50): Section mismatch: reference to .init.text:ps2_clear_input (between 'ps2_probe' and 'ps2_cmd_aborted')

Signed-off-by: Sam Ravnborg <[email protected]>
Acked-by: Lennert Buytenhek <[email protected]>
Signed-off-by: Russell King <[email protected]>
2007-05-30 17:48:45 +01:00
Russell King 28c670cb9b [ARM] oprofile: avoid lockdep warnings on mpcore oprofile init
Fix lockdep warnings, caused by 'set_affinity' being called without
the correct locks taken and local interrupts disabled:

=================================
[ INFO: inconsistent lock state ]
2.6.22-rc2 #1
---------------------------------
inconsistent {in-hardirq-W} -> {hardirq-on-W} usage.
swapper/1 [HC0[0]:SC0[0]:HE1:SE1] takes:
(irq_controller_lock){++..}, at: [<c002be50>] gic_set_cpu+0x60/0xa0
{in-hardirq-W} state was registered at:
 [<c005d9a8>] lock_acquire+0x58/0x6c
 [<c0233068>] _spin_lock+0x40/0x50
 [<c002c020>] gic_mask_irq+0x2c/0x6c
 [<c0069c64>] handle_level_irq+0x11c/0x14c
 [<c0020060>] asm_do_IRQ+0x60/0x84
 [<c0020d2c>] __irq_svc+0x4c/0xc0
 [<c000ed84>] __alloc_bootmem_nopanic+0x74/0x88
 [<c000edb0>] __alloc_bootmem+0x18/0x3c
 [<c000fa00>] alloc_large_system_hash+0x16c/0x200
 [<c00108dc>] inode_init_early+0x5c/0xa4
 [<c00106dc>] vfs_caches_init_early+0x24/0xa0
 [<c0008e54>] start_kernel+0x220/0x2fc
 [<00008078>] 0x8078
irq event stamp: 88438
hardirqs last  enabled at (88438): [<c0020dc0>] preempt_return+0x20/0x2c
hardirqs last disabled at (88436): [<c00417bc>] __do_softirq+0xb0/0x138
softirqs last  enabled at (88437): [<c0041810>] __do_softirq+0x104/0x138
softirqs last disabled at (88428): [<c0041d9c>] irq_exit+0x68/0x7c

other info that might help us debug this:
no locks held by swapper/1.

stack backtrace:
[<c0025ecc>] (dump_stack+0x0/0x14) from [<c005b1e4>] (print_usage_bug+0x138/0x168)
[<c005b0ac>] (print_usage_bug+0x0/0x168) from [<c005be80>] (mark_lock+0x484/0x6a0)
[<c005b9fc>] (mark_lock+0x0/0x6a0) from [<c005cc48>] (__lock_acquire+0x3c0/0x10c8)
[<c005c888>] (__lock_acquire+0x0/0x10c8) from [<c005d9a8>] (lock_acquire+0x58/0x6c)
[<c005d950>] (lock_acquire+0x0/0x6c) from [<c0233068>] (_spin_lock+0x40/0x50)
[<c0233028>] (_spin_lock+0x0/0x50) from [<c002be50>] (gic_set_cpu+0x60/0xa0)
[<c002bdf0>] (gic_set_cpu+0x0/0xa0) from [<c01b04cc>] (em_route_irq+0x38/0x40)
[<c01b0494>] (em_route_irq+0x0/0x40) from [<c01b04ec>] (em_setup+0x18/0xa4)
[<c01b04d4>] (em_setup+0x0/0xa4) from [<c001570c>] (oprofile_arch_init+0x24/0xe8)
[<c00156e8>] (oprofile_arch_init+0x0/0xe8) from [<c0015640>] (oprofile_init+0x1c/0x64)
[<c0015624>] (oprofile_init+0x0/0x64) from [<c0008a20>] (kernel_init+0x154/0x368)
[<c00088cc>] (kernel_init+0x0/0x368) from [<c003ef34>] (do_exit+0x0/0x904)
oprofile: using arm/mpcore

Signed-off-by: Russell King <[email protected]>
2007-05-30 13:15:15 +01:00
Russell King 5b10c8e436 [ARM] Fix stacktrace FP range checking
Fix an oops in the stacktrace code, caused by improper range checking.
We subtract 12 off 'fp' before testing to see if it's below the low
bound.  However, if 'fp' were zero before, it becomes a very large
positive number, causing this test to succeed where it should fail.

Signed-off-by: Russell King <[email protected]>
2007-05-30 13:15:12 +01:00
Russell King 516793c61b [ARM] ARMv6: add CPU_HAS_ASID configuration
Presently, we check for the minimum ARM architecture that we're
building for to determine whether we need ASID support.  This is
wrong - if we're going to support a range of CPUs which include
ARMv6 or higher, we need the ASID.

Convert the checks to use a new configuration symbol, and arrange
for ARMv6 and higher CPU entries to select it.

Signed-off-by: Russell King <[email protected]>
2007-05-17 10:19:23 +01:00
Russell King c6af66b9fe [ARM] integrator: fix pci_v3 compile error with DEBUG_LL
If DEBUG_LL is enabled, we want to use get_irq_regs(), but this
causes a build error due to the inline function missing.  Add
the necessary header file.

Signed-off-by: Russell King <[email protected]>
2007-05-17 10:16:55 +01:00
Russell King 0f347bb913 [ARM] gic: Fix gic cascade irq handling
No need for the cascade irq function to have a "fastcall" annotation.
Fix the range checking for valid IRQ numbers - comparing the value
returned by the GIC with NR_IRQS is meaningless since we translate
the GIC irq number to a Linux IRQ number afterwards.

Check the GIC returned IRQ number is within limits first, then add
the IRQ offset, and only then compare with NR_IRQS.

Signed-off-by: Russell King <[email protected]>
2007-05-17 10:11:34 +01:00
Russell King f3270f6ef7 [ARM] Silence OMAP kernel configuration warning
arch/arm/mach-omap1/Kconfig:41:warning: 'select' used by config
 symbol 'MACH_OMAP_H3' refers to undefined symbol 'GPIOEXPANDER_OMAP'

Signed-off-by: Russell King <[email protected]>
2007-05-16 17:36:17 +01:00
Russell King c05107911a [ARM] Update ARM syscalls
Add utimensat, signalfd, timerfd, eventfd syscalls.  Add ignore
defines for sync_file_range and fadvise64_64 which we implement
differently.

Signed-off-by: Russell King <[email protected]>
2007-05-16 15:37:48 +01:00
Russell King 06ba255571 [ARM] Remove Integrator/CP SMP platform support
The Integrator/CP SMP platform support was never fully merged, and now
it's causing build breakage.  Remove it.

Signed-off-by: Russell King <[email protected]>
2007-05-16 15:35:26 +01:00
Russell King 158304ef09 Merge branch 'fixes' into devel 2007-05-12 16:12:12 +01:00
Russell King 25f4a81ef5 Merge branch 'omap-fixes' into fixes 2007-05-12 16:10:24 +01:00
Russell King 641e79129a [ARM] Use new get_irqnr_preamble
Use the new get_irqnr_preamble macro to move the address of the IRQ
controller outside the IRQ handling loop.

Signed-off-by: Russell King <[email protected]>
2007-05-12 15:25:50 +01:00
Russell King 3b938be69e [ARM] Ensure machine class menu is sorted alphabetically
Signed-off-by: Russell King <[email protected]>
2007-05-12 11:25:44 +01:00
Russell King 9da7cf23a4 [ARM] Update mach-types
Signed-off-by: Russell King <[email protected]>
2007-05-11 19:54:39 +01:00
Russell King f75fd965d5 [ARM] Fix iop32x/iop33x build
arch/arm/plat-iop/io.c:26: error: conflicting types for '__iop3xx_ioremap'

Signed-off-by: Russell King <[email protected]>
2007-05-11 17:20:06 +01:00
Russell King 3b11e449b3 [ARM] EBSA110: fix build errors caused by missing "const"
arch/arm/mach-ebsa110/io.c:106: error: conflicting types for 'readsw'
arch/arm/mach-ebsa110/io.c:116: error: conflicting types for 'readsl'
arch/arm/mach-ebsa110/io.c:161: error: conflicting types for 'writesw'
arch/arm/mach-ebsa110/io.c:171: error: conflicting types for 'writesl'

Signed-off-by: Russell King <[email protected]>
2007-05-11 17:20:02 +01:00
Russell King f95637d2c6 [ARM] pata_icside: fix build errors
Building on the previous two ecard infrastructure changes, this patch
fixes the pata_icside build errors caused by the recent libata changes.

Signed-off-by: Russell King <[email protected]>
2007-05-11 17:19:07 +01:00
Russell King 10bdaaa0fa [ARM] ecard: add ecardm_iomap() / ecardm_iounmap()
Add devres ecardm_iomap() and ecardm_iounmap() for Acorn expansion
cards.  Convert all expansion card drivers to use them.

Signed-off-by: Russell King <[email protected]>
2007-05-11 17:19:02 +01:00
Russell King c7b87f3d50 [ARM] ecard: add helper function for setting ecard irq ops
Rather than having every driver fiddle about setting its private
IRQ operations and data, provide a helper function to contain
this functionality in one place.

Arrange to remove the driver-private IRQ operations and data when
the device is removed from the driver, and remove the driver
private code to do this.

This fixes potential problems caused by drivers forgetting to
remove these hooks.

Signed-off-by: Russell King <[email protected]>
2007-05-11 17:18:55 +01:00
Russell King 805f53f085 Merge branches 'armv7', 'at91', 'misc' and 'omap' into devel 2007-05-09 10:41:28 +01:00
Russell King 8678c1f042 [ARM] Fix ASID version switch
Close a hole in the ASID version switch, particularly the following
scenario:

CPU0 MM PID			CPU1 MM PID
	idle
				  A	pid(A)
				  A	idle(lazy tlb)
		* new asid version triggered by B *
  B	pid(B)
  A	pid(A)
		* MM A gets new asid version *
  A	idle(lazy tlb)
				  A	pid(A)
		* CPU1 doesn't see the new ASID *

The result is that CPU1 continues running with the hardware set
for the original (stale) ASID value, but mm->context.id contains
the new ASID value.  The result is that the next MM fault on CPU1
updates the page table entries, but flush_tlb_page() fails due to
wrong ASID.

There is a related case with a threaded application is allocated
a new ASID on one CPU while another of its threads is running on
some different CPU.  This scenario is not fixed by this commit.

Signed-off-by: Russell King <[email protected]>
2007-05-08 20:03:09 +01:00
Russell King 08fdffd4cf [ARM] Ensure head text is always placed at the start of kernel
Commit 86c0baf123 highlighted that we
may end up with the head text placed elsewhere in the kernel image.
Introduce a new .text.head section to contain the initial kernel
startup code, and always place this section at the beginning of the
kernel image.

Signed-off-by: Russell King <[email protected]>
2007-05-08 15:15:45 +01:00
Russell King 4efb448272 [ARM] Shut up warning about init_thread_union
Fix false warning:

WARNING: arch/arm/kernel/init_task.o - Section mismatch:
 reference to .init.task:init_thread_union from .data between
 'init_task' (at offset 0x4) and 'init_sighand'

caused by the section name starting with ".init".

Signed-off-by: Russell King <[email protected]>
2007-05-08 12:39:37 +01:00
Russell King b9811d7fde [ARM] Mark SMP local timer and IPI as exception entries
This allows the backtrace to dump the exception stack contents.

Signed-off-by: Russell King <[email protected]>
2007-05-08 11:31:07 +01:00
Russell King 5cd4715515 Merge branch 'ixp4xx' into devel
Conflicts:

	include/asm-arm/arch-ixp4xx/io.h
2007-05-06 20:58:29 +01:00
Russell King 6f95416ebe Merge branches 'arm-mm', 'at91', 'clkevts', 'imx', 'iop', 'misc', 'netx', 'ns9xxx', 'omap', 'pxa', 'rpc', 's3c' and 'sa1100' into devel 2007-05-06 20:57:51 +01:00
Russell King 1b11652286 [ARM] Add comments marking in-use ptrace numbers
Signed-off-by: Russell King <[email protected]>
2007-05-06 14:49:56 +01:00
Russell King 5ba6d3febd [ARM] Move syscall saving out of the way of utrace
utrace removes the ptrace_message field in task_struct.  Move our use
of this field into a new member in thread_info called "syscall"

Signed-off-by: Russell King <[email protected]>
2007-05-06 13:56:26 +01:00
Russell King 3603ab2b62 [ARM] mm 10: allow memory type to be specified with ioremap
__ioremap() took a set of page table flags (specifically the cacheable
and bufferable bits) to control the mapping type.  However, with
the advent of ARMv6, this is far too limited.

Replace the page table flags with a memory type index, so that the
desired attributes can be selected from the mem_type table.

Finally, to prevent silent miscompilation due to the differing
arguments, rename the __ioremap() and __ioremap_pfn() functions.

Signed-off-by: Russell King <[email protected]>
2007-05-05 20:59:27 +01:00
Russell King 0af92befeb [ARM] mm 9: add additional device memory types
Add cached device type for ioremap_cached().  Group all device memory
types together, and ensure that they all have a "MT_DEVICE" prefix.

Signed-off-by: Russell King <[email protected]>
2007-05-05 20:28:16 +01:00
Russell King 9ef7963503 [ARM] mm 8: define mem_types table L1 bit 4 to be for ARMv6
Change the memory types table to define the L1 descriptor bit 4 to
be in terms of the ARMv6 definition - execute never.

Signed-off-by: Russell King <[email protected]>
2007-05-05 20:03:35 +01:00
Russell King ad902cb9e2 [ARM] iop: add missing parens in macro
Fix:

 drivers/serial/8250.c:1837: warning: suggest parentheses around arithmetic in operand of |

due to a macro argument being used without required parenthesis.

Signed-off-by: Russell King <[email protected]>
2007-05-05 11:59:13 +01:00
Russell King 0058ca32c3 [ARM] mm 7: remove duplicated __ioremap() prototypes
Signed-off-by: Russell King <[email protected]>
2007-05-05 11:57:39 +01:00
Russell King 5559bca8e6 [ARM] ecard: Convert card type enum to a flag
'type' in the struct expansion_card is only used to indicate
whether this card is an EASI card or not.  Therefore, having
it as an enum is wasteful (and introduces additional noise
when we come to remove the enum.)  Convert it to a mere flag
instead.

Signed-off-by: Russell King <[email protected]>
2007-05-03 14:16:56 +01:00
Russell King c0b04d1b2c [ARM] ecard: Move private ecard junk out of asm/ecard.h
Move ecard.c private junk from asm/ecard.h to a local header file.

Signed-off-by: Russell King <[email protected]>
2007-05-03 14:16:56 +01:00
Russell King e6aeb47da6 [ARM] ecard: silence new warning caused by previous commit
PTR_ERR()'s type is unsigned long, so formats when printing
must be %ld, not %d.

Signed-off-by: Russell King <[email protected]>
2007-05-03 14:16:56 +01:00
Russell King 73b6a2be8b [ARM] Add support for ICSIDE interface on RiscPC
Signed-off-by: Russell King <[email protected]>
2007-05-03 14:16:56 +01:00
Russell King a17dba8df9 [ARM] Add platform support for PATA on RiscPC
Add pata_platform device for RiscPC, thereby converting the primary
IDE channel on the machine to PATA.

Acked-by: Jeff Garzik <[email protected]>
Signed-off-by: Russell King <[email protected]>
2007-05-03 14:16:55 +01:00
Russell King 69f4f331a0 [ARM] Set coherent DMA mask for Acorn expansion cards
Although expansion cards can't do bus-master DMA, subsystems
want to be able to use coherent memory for DMA purposes to
these cards.  Therefore, set the coherent DMA mask to allow
such memory to be allocated.

Signed-off-by: Russell King <[email protected]>
2007-05-03 14:16:55 +01:00
Russell King f16fb1ecc5 [ARM] Add stacktrace support and make oprofile use it
Add support for stacktrace.  Use the new stacktrace code with
oprofile instead of it's version; there's no point having
multiple versions of stacktracing in the kernel.

Signed-off-by: Russell King <[email protected]>
2007-04-28 09:59:37 +01:00
Russell King ed519dede3 [ARM] Convert AMBA PL010 driver to use the clk infrastructure
Convert the AMBA PL010 serial driver to use the clock infrastructure
to allow EP93xx platforms to properly gate the clock to the UARTs.

Signed-off-by: Russell King <[email protected]>
2007-04-22 12:30:41 +01:00
Russell King 1b0646a033 [ARM] Convert AMBA PL010 driver to use 'uart_amba_port'
Use a pointer to struct uart_amba_port throughout the driver
rather than a mixture of that and struct uart_port.

Signed-off-by: Russell King <[email protected]>
2007-04-22 11:55:59 +01:00
Russell King 7531a1c2c4 [ARM] Remove unnecessary asm/ptrace.h from VFP support code
Signed-off-by: Russell King <[email protected]>
2007-04-22 10:56:40 +01:00
Russell King d0a9d75b9c [ARM] sa1100: use mutexes rather than semaphores
Use a mutex in the sa1100 clock support rather than a semaphore.
Remove the unused "module" field.

Signed-off-by: Russell King <[email protected]>
2007-04-22 10:08:58 +01:00
Russell King c172cc92c8 [ARM] mm 6: allow mem_types table to specify extended pte attributes
Add prot_pte_ext to the mem_types table to allow the extended pte
attributes to be passed to set_pte_ext(), thereby permitting us to
specify memory type information for the hardware PTE entries.

Signed-off-by: Russell King <[email protected]>
2007-04-21 20:36:02 +01:00
Russell King b29e9f5e64 [ARM] mm 5: Use mem_types table in ioremap
We really want to be using the memory type table in ioremap, so we
only have to do the CPU type fixups in one place.

Signed-off-by: Russell King <[email protected]>
2007-04-21 20:36:00 +01:00
Russell King 24e6c6996f [ARM] mm 4: make create_mapping() more conventional
Rather than our three separate loops to setup mappings (by page
mappings up to a section boundary, then section mappings, and the
remainder by page mappings) convert this to a more conventional
Linux style of a loop over each page table level.

Signed-off-by: Russell King <[email protected]>
2007-04-21 20:35:55 +01:00
Russell King 4a56c1e41f [ARM] mm 3: separate out supersection mappings, avoid for <4GB
Catalin Marinas at ARM Ltd says:
> The CPU architects in ARM intended supersections only as a way to map
> addresses >= 4GB. Supersections are not mandated by the architecture
> and there is no easy way to detect their hardware support at run-time
> (other than checking for a specific core). From the analysis done in
> ARM, there wasn't a clear performance gain by using supersections
> rather than sections (no significant improvement in the TLB misses).

Therefore, we should avoid using supersections unless there's a real
need (iow, we're mapping addresses >= 4GB).

This means that we can simplify create_mapping() a bit since we will
only use supersection mappings for addresses >= 4GB, which means that
the physical, virtual and length must be multiples of the supersection
mapping size.

Signed-off-by: Russell King <[email protected]>
2007-04-21 20:35:52 +01:00
Russell King d5c98176ef [ARM] mm 2: clean up create_mapping()
There's now no need to carry around each protection separately.
Instead, pass around the pointer to the entry in the mem_types
array which we're interested in.

Signed-off-by: Russell King <[email protected]>
2007-04-21 20:35:48 +01:00
Russell King 2497f0a812 [ARM] mm 1: Combine mem_type domain into prot_* at init time
Rather than combining the domain for a particular memory type with
the protection information each time we want to use it, do so when
we fix up the mem_type array at initialisation time.

Rename struct mem_types to be mem_type - each structure is one
memory type description, not several.

Signed-off-by: Russell King <[email protected]>
2007-04-21 20:35:44 +01:00
Russell King 235b185ce4 [ARM] getuser.S and putuser.S don't need thread_info.h nor asm-offsets.h
Signed-off-by: Russell King <[email protected]>
2007-04-21 20:35:22 +01:00
Russell King b2a0d36fde [ARM] ptrace: clean up single stepping support
Signed-off-by: Russell King <[email protected]>
2007-04-21 20:34:58 +01:00
Russell King 0f0a00beb8 [ARM] Remove needless linux/ptrace.h includes
Lots of places in arch/arm were needlessly including linux/ptrace.h,
resumably because we used to pass a struct pt_regs to interrupt
handlers.  Now that we don't, all these ptrace.h includes are
redundant.

Signed-off-by: Russell King <[email protected]>
2007-04-21 20:34:47 +01:00
Russell King 27350afdfc [ARM] EBSA110: Add readsw/readsl/writesw/writesl
Signed-off-by: Russell King <[email protected]>
2007-04-21 20:34:37 +01:00
Russell King 7ab3f8d595 [ARM] Add ability to dump exception stacks to kernel backtraces
Signed-off-by: Russell King <[email protected]>
2007-04-21 20:34:34 +01:00
Russell King 4c467e758a [ARM] Update mach-types
Signed-off-by: Russell King <[email protected]>
2007-04-16 21:01:56 +01:00
Russell King 6c330ba72c [ARM] Fix __NR_kexec_load
It's __NR_kexec_load, not __NR_sys_kexec_load

Signed-off-by: Russell King <[email protected]>
2007-04-01 22:35:01 +01:00
Russell King ec14d7964b [ARM] Export dma_channel_active()
dma_channel_active() is used by some modules and is part of our
DMA API, so export it.

Signed-off-by: Russell King <[email protected]>
2007-03-31 21:36:53 +01:00
Russell King 66fb8bd209 [ARM] Fix breakage caused by 72486f1f8f
72486f1f8f inverted the sense for
enabling hotplug CPU controls without reference to any other
architecture other than i386, ia64 and PowerPC.  This left
everyone else without hotplug CPU control.

Fix ARM for this brain damage.

Signed-off-by: Russell King <[email protected]>
2007-03-13 09:54:21 +00:00
Russell King a45570ebf3 Merge branch 'omap-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 2007-03-08 13:34:59 +00:00
Russell King 8d91cbad8e [ARM] Acorn: move the i2c bus driver into drivers/i2c
Move the Acorn IOC/IOMD I2C bus driver from drivers/i2c, strip
out the reminants of the platform specific parts of the old
PCF8583 RTC code, and remove the old obsolete PCF8583 driver.

Signed-off-by: Russell King <[email protected]>
2007-03-04 20:40:50 +00:00
Russell King 23d046f43a [ARM] ARM SCSI: Don't try to dma_map_sg too many scatterlist entries
An off-by-one bug meant we were always trying to map one too many
scatterlist entries.  This was mostly harmless prior to the checks
going in to consistent_sync(), but now causes the kernel to BUG.

Also, powertec.c was missing an assignment to info->ec.

Signed-off-by: Russell King <[email protected]>
2007-03-04 20:33:31 +00:00
Russell King 6b4df7ee1f [ARM] ARM FAS216: don't modify scsi_cmnd request_bufflen
SCSI doesn't want drivers to modify request_bufflen, so keep a
driver-private copy of this in the scsi_pointer structure instead.

Signed-off-by: Russell King <[email protected]>
2007-03-04 20:33:20 +00:00
Russell King bb71f99f8d [ARM] rtc-pcf8583: Final fixes for this RTC on RiscPC
Replace the I2C bus address, as per drivers/acorn/char/pcf8583.c.

Also, since this driver also contains Acorn RiscPC specific code
for obtaining the current year from the SRAM (and updating the
platform specific checksum when writing new data back) this is
NOT a platform independent driver.

Document it as such, and update the dependencies to reflect this
fact.

Signed-off-by: Russell King <[email protected]>
2007-03-04 20:33:07 +00:00
Russell King 0ed8f210e6 [ARM] rtc-pcf8583: correct month and year offsets
No, today is not 4th April 3907, it's 4th March 2007.

Signed-off-by: Russell King <[email protected]>
2007-03-04 20:13:13 +00:00
Russell King f5e5b734d4 [ARM] rtc-pcf8583: don't use BCD_TO_BIN/BIN_TO_BCD
Both BCD_TO_BIN(x) and BIN_TO_BCD(x) have an unexpected side-effect -
not only do they return the value as expected, they _modify_ their
argument in the process.

Let's play it safe and avoid these macros.

Signed-off-by: Russell King <[email protected]>
2007-03-04 20:12:07 +00:00
Russell King c5eb2a2b65 [ARM] EBSA110: Work around build errors
Work around EBSA110 build errors by selecting NO_IOPORT.  EBSA110
can't support an IO port to MMIO mapping mechanism because the
MMIO and IO port spaces have quite different and complex addressing
requirements.

Signed-off-by: Russell King <[email protected]>
2007-03-03 11:55:01 +00:00
Russell King 6139dbbb77 Merge branch 'omap-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 2007-03-02 12:04:16 +00:00
Russell King 14fca61a98 [ARM] Yet more asm/apm-emulation.h stuff
Signed-off-by: Russell King <[email protected]>
2007-03-02 11:58:57 +00:00
Russell King e41698894d [ARM] CLPS7500 doesn't have IO ports
Signed-off-by: Russell King <[email protected]>
2007-02-26 21:07:30 +00:00
Russell King 61fde514c2 [ARM] Fix more apm-emulation.h
Signed-off-by: Russell King <[email protected]>
2007-02-26 21:04:29 +00:00
Russell King 5a84d15906 Merge ARM fixes 2007-02-20 19:13:30 +00:00
Russell King 97e412fa9e [ARM] Fix s3c2410 ALSA audio for typedef elimination
Signed-off-by: Russell King <[email protected]>
2007-02-20 16:11:11 +00:00
Russell King 8a371840f8 [ARM] Fix ARM AACI ALSA driver
CC [M]  sound/arm/aaci.o
sound/arm/aaci.c:729: error: parse error before '*' token
sound/arm/aaci.c:731: warning: function declaration isn't a prototype
...
sound/arm/aaci.c:786: error: parse error before '*' token
sound/arm/aaci.c:786: warning: function declaration isn't a prototype
...
sound/arm/aaci.c:827: error: parse error before '*' token
sound/arm/aaci.c:828: warning: function declaration isn't a prototype
...
sound/arm/aaci.c:845: error: parse error before "aaci_capture_ops"
sound/arm/aaci.c:845: warning: type defaults to `int' in declaration of `aaci_capture_ops'

Signed-off-by: Russell King <[email protected]>
2007-02-20 15:44:23 +00:00
Russell King 4f2849e49c [ARM] Fix jornada720 build errors
kernel/built-in.o: In function `pm_suspend':
utsname_sysctl.c:(.text+0x23008): multiple definition of `pm_suspend'
arch/arm/mach-sa1100/built-in.o:arch/arm/mach-sa1100/sleep.S:(.text+0xf68): first defined here
arm-linux-ld: Warning: size of symbol `pm_suspend' changed from 20 in arch/arm/mach-sa1100/built-in.o to 44 in kernel/built-in.o

Signed-off-by: Russell King <[email protected]>
2007-02-20 15:23:57 +00:00
Russell King 6a32b935f8 [ARM] Fix iop13xx build error
CC      arch/arm/mach-iop13xx/setup.o
arch/arm/mach-iop13xx/setup.c: In function 'iq8134x_probe_flash_size':
arch/arm/mach-iop13xx/setup.c:210: warning: implicit declaration of function 'ioremap'
arch/arm/mach-iop13xx/setup.c:210: warning: initialization makes pointer from integer without a cast
arch/arm/mach-iop13xx/setup.c:218: warning: implicit declaration of function 'writew'
arch/arm/mach-iop13xx/setup.c:222: warning: implicit declaration of function 'readb'
arch/arm/mach-iop13xx/setup.c:231: warning: implicit declaration of function 'iounmap'
  LD      .tmp_vmlinux1
arch/arm/mach-iop13xx/built-in.o: In function `iop13xx_platform_init':
iq81340mc.c:(.init.text+0x150): undefined reference to `ioremap'
iq81340mc.c:(.init.text+0x21c): undefined reference to `writew'
iq81340mc.c:(.init.text+0x24c): undefined reference to `writew'
iq81340mc.c:(.init.text+0x254): undefined reference to `iounmap'
iq81340mc.c:(.init.text+0x2c4): undefined reference to `readb'
iq81340mc.c:(.init.text+0x2e8): undefined reference to `readb'

Signed-off-by: Russell King <[email protected]>
2007-02-20 14:56:51 +00:00
Russell King d608e52c36 [ARM] Fix build error caused by move of apm
CC      arch/arm/common/sharpsl_pm.o
arch/arm/common/sharpsl_pm.c:30:31: error: asm/apm-emulation.h: No such file or directory
...

Signed-off-by: Russell King <[email protected]>
2007-02-20 14:53:28 +00:00
Russell King e80a0e6e7c [ARM] Merge remaining IOP code
Conflicts:
	include/asm-arm/arch-at91rm9200/entry-macro.S

Signed-off-by: Russell King <[email protected]>
2007-02-20 10:52:43 +00:00
Russell King 3b0eb4a195 Merge the easy part of the IOP branch 2007-02-18 11:31:14 +00:00
Russell King 8213084125 Merge NetSilicon NS93xx tree
Fixed conflicts:

	arch/arm/Makefile
	arch/arm/mm/Kconfig

Signed-off-by: Russell King <[email protected]>
2007-02-18 11:27:07 +00:00
Russell King f69eda00d4 Merge AT91, EP93xx, General devel, PXA, S3C, V6+ and Xscale trees 2007-02-17 20:09:53 +00:00
Russell King 4ba9dcbeba Merge Realview GIC code 2007-02-15 15:07:40 +00:00
Russell King f454aa6b90 [ARM] Provide dummy noncoherent DMA API
We don't currently support the noncoherent DMA API, but it needs to
be provided for kernels with devres to link.

Signed-off-by: Russell King <[email protected]>
2007-02-12 19:26:05 +00:00
Russell King 017cc022b6 [ARM] Convert dmabounce statistics to use a device attribute
Rather than printk'ing the dmabounce statistics occasionally to
the kernel log, provide a sysfs file to allow this information
to be periodically read.

Signed-off-by: Russell King <[email protected]>
2007-02-12 10:53:50 +00:00
Russell King ab2c21529d [ARM] Add a reference from struct device to the dma bounce info
dmabounce keeps a per-device structure, and finds the correct
structure by walking a list.  Since architectures can now add
fields to struct device, we can attach this structure direct to
the struct device, thereby eliminating the code to search the
list.

Signed-off-by: Russell King <[email protected]>
2007-02-12 10:28:24 +00:00
Russell King f2131d348f [ARM] Always mark ARMv6 PTWs outer cacheable
Other platforms other than SMP may have an outer cache.  For these, we
also need to mark the page table walks outer cacheable.  Since marking
the walks always outer cacheable apparantly has no side effects, we
might as well always mark them so.

However, we continue to only mark PTWs shared if we have SMP enabled.

Signed-off-by: Russell King <[email protected]>
2007-02-08 20:46:20 +00:00
Russell King 7ae5a761d2 [ARM] Convert DMA cache handling to take const void * args
The DMA cache handling functions take virtual addresses, but in the
form of unsigned long arguments.  This leads to a little confusion
about what exactly they take.  So, convert them to take const void *
instead.

Signed-off-by: Russell King <[email protected]>
2007-02-08 14:49:44 +00:00
Russell King 7f8e33546d [ARM] Don't call consistent_sync() for DMA coherent memory
Memory allocated by the coherent memory allocators will be marked
uncacheable, which means it's pointless calling consistent_sync()
to perform cache maintainence on this memory; it's just a waste of
CPU cycles.

Moreover, with the (subsequent) merge of outer cache support, it
actually breaks things to call consistent_sync() on anything but
direct-mapped memory.

Signed-off-by: Russell King <[email protected]>
2007-02-08 14:49:37 +00:00
Russell King ae0a846e41 [ARM] Move processor_modes[] to .../process.c
bad_mode() currently prints the mode which caused the exception, and
then causes an oops dump to be printed which again displays this
information (since the CPSR in the struct pt_regs is correct.)  This
leads to processor_modes[] being shared between traps.c and process.c
with a local declaration of it.

We can clean this up by moving processor_modes[] to process.c and
removing the duplication, resulting in processor_modes[] becoming
static.

Signed-off-by: Russell King <[email protected]>
2007-02-06 16:46:48 +00:00
Russell King 7ef416c4b8 [ARM] Improve csum_fold, cleanup csum_tcpudp_magic()
csum_fold doesn't need two assembly instructions to perform its task,
it can simply add the high and low parts together by rotating by 16
bits, and the carry into the upper-16 bits will automatically happen.

Also, since csum_tcpudp_magic() is just csum_tcpudp_nofold + csum_fold,
use those two functions to achieve this.  Also note that there is a
csum_fold() at the end of ip_fast_csum() as well, so use the real
csum_fold() there as well.

Boot tested on Versatile.

Signed-off-by: Russell King <[email protected]>
2007-02-06 16:46:46 +00:00
Russell King 10c03f6968 [ARM] oprofile: add ARM11 SMP support
Add the glue for ARM11 SMP oprofile support, which also supports the
performance monitor in the coherency unit.

Signed-off-by: Russell King <[email protected]>
2007-02-06 16:46:45 +00:00
Russell King 2d9e1ae06d [ARM] oprofile: add ARM11 UP support
Add oprofile glue for ARM11 (ARMv6) oprofile support.  This
connects the ARM11 core profiling support to the oprofile code
for uniprocessor configurations.

Signed-off-by: Russell King <[email protected]>
2007-02-06 16:46:44 +00:00
Russell King c265a762aa [ARM] oprofile: add ARM11 core support
Add basic support for the ARM11 profiling hardware.  This is shared
between the ARM11 UP and ARM11 SMP oprofile support code.

Signed-off-by: Russell King <[email protected]>
2007-02-06 16:46:44 +00:00
Russell King d28122a587 [ARM] Fix AMBA serial drivers for non-first serial ports
Using console=ttyAM1 or console=ttyAMA1 resulted in an oops during
boot due to trying to drive the console before that port had been
registered.  Fix this by checking whether the port is present before
allowing console setup to proceed.

Signed-off-by: Russell King <[email protected]>
2007-01-24 11:59:57 +00:00
Russell King 87b865776d [ARM] Update mach-types
Signed-off-by: Russell King <[email protected]>
2007-01-24 11:59:57 +00:00
Russell King 204ecae4e1 [ARM] Fix show_mem() for discontigmem
show_mem() was assuming incorrectly that the mem_map for any
node started at PFN 0.  This is obviously wrong; fix it to
take account of node_start_pfn.

Signed-off-by: Russell King <[email protected]>
2007-01-24 11:59:56 +00:00
Russell King e97126cd90 [ARM] Provide basic printk_clock() implementation
Current sched_clock() implementations on ARM cause unbootable kernels
with PRINTK_TIME support enabled.  To avoid this, provide a basic
printk_clock() implementation which avoids sched_clock() being called
before the page tables have been set up.

Signed-off-by: Russell King <[email protected]>
2007-01-08 19:50:03 +00:00