Jesper Nilsson [Mon, 21 Jan 2008 10:52:52 +0000 (11:52 +0100)]
CRIS v10: Setup serial port 2 to avoid accidental TXD pulse on startup.
If serial port 2 is used, select it in R_GEN_CONFIG.
If serial port 2 is used, setup the control registers for the port.
This is done to avoid a pulse on the TXD line during start up,
which could disturb some units.
Jesper Nilsson [Fri, 18 Jan 2008 12:44:13 +0000 (13:44 +0100)]
CRIS v10: Update and fix bug in kernel/debugport.
- Move local_irq_save to after possible return in console_write_direct.
- Remove old raw_printk hack, not needed anymore.
- Add watchdog handling.
- Make serial_driver use depend on CONFIG_ETRAX_SERIAL.
- Remove useless CVS log.
Jesper Nilsson [Thu, 17 Jan 2008 14:17:07 +0000 (15:17 +0100)]
CRIS v10: Update driver for pcf8563
- Use mutex instead of spinlock, fixes kernel bugzilla report 8339.
- Make sure that pcf8563_init can be called multiple times but only setup once.
- Change RTC_VLOW_RD -> RTC_VL_READ, RTC_VLOW_SET -> RTC_VL_CLR
- Cache the voltage low value at driver init so the battery status
information does not get 'accidentally' cleared when setting the RTC time.
- Add weekday handling.
- Correct leapyear handling to include 100 and 400 year exceptions.
- Correct whitespace and formatting errors.
- Remove useless CVS id tag.
Jesper Nilsson [Thu, 17 Jan 2008 10:30:21 +0000 (11:30 +0100)]
CRIS v10: Correct and cleanup boot/rescue/kimagerescue.S
- Correct include path for sv_addr_ag.h, should be included from asm/arch/
- Remove useless CVS id tag.
- Correct whitespace errors and some formatting.
Jesper Nilsson [Tue, 4 Dec 2007 16:25:45 +0000 (17:25 +0100)]
CRIS v32: Update and improve kernel/time.c
- Shorten include paths to machine dependent header files.
- Register name for first timer is now regi_timer0.
- Remove raw_printk hack, use oops_in_progress instead.
- Add handling of CPU frequency scaling for CRIS.
- Remove regs parameter to timer_interrupt, get them from get_irq_regs instead.
- Whitespace and formatting changes.
Jesper Nilsson [Mon, 3 Dec 2007 10:16:25 +0000 (11:16 +0100)]
CRIS v32: Minor fixes for io.h
- Shorten include paths for machine dependent header files.
- Add volatile to hardeware register pointers.
- Add spinlocks around critical region.
- Expand macros for handling of leds.
Jesper Nilsson [Mon, 3 Dec 2007 10:12:10 +0000 (11:12 +0100)]
CRIS v32: Update and improve kernel/traps.c
- Remove watchdog handling, handled elsewhere.
- Shorten include paths to machine dependent header files.
- Remove raw_printk hack, we now use oops_in_progress instead.
- Add handling of BUG for exception handlers (break 14).
- Formatting and whitespace changes.
Jesper Nilsson [Mon, 3 Dec 2007 09:54:15 +0000 (10:54 +0100)]
CRIS v32: Minor updates to kernel/process.c
- Shorten include paths for machine dependent header files.
- Remove unused extern declaration of etrax_gpio_wake_up_check.
- Register name for first timer is now regi_timer0.
Jesper Nilsson [Fri, 30 Nov 2007 17:09:54 +0000 (18:09 +0100)]
CRIS v32: Update and simplify kernel/irq.c.
- First timer register has changed name to timer0.
- Build IRQs with only IRQ number, mask bit will be calculated instead.
- Add more IRQs, up to 64 supported.
- Use arrays to hold which IRQs triggered instead of trying to do magic
with two 32 bit values now that more than 32 IRQs are supported.
Jesper Nilsson [Fri, 30 Nov 2007 16:54:12 +0000 (17:54 +0100)]
CRIS v32: Update kernel/head.S
- Shorten include paths for machine specific header files.
- Add magic for booting NAND flash.
- Change CONFIG_ETRAXFS_SIM to CONFIG_ETRAX_VCS_SIM.
- Use assembler macros for initializing hardware (clocks)
- Add stubs for SMP slave CPUs.
- Search for cramfs or jffs2 if no romfs found.
- Initialize l2cache.
Jesper Nilsson [Fri, 30 Nov 2007 16:46:11 +0000 (17:46 +0100)]
CRIS v32: Update and improve fasttimer.c
- Change include path to machine dependent header files.
- Remove __INLINE__, it expands to inline anyway.
- Don't initialize static variables.
- Change timers to use fasttimer_t instead of timevals.
- Change name of timeval_cmp to fasttime_cmp to highlight this.
- Register name for first timer is regi_timer0, not regi_timer.
- Whitespace and formatting changes.
- Don't return if we're blocking interrupts, goto done and restore interrupts.
- Disable interrupts while walking the fasttimer list, only restore
while doing the callback.
- Remove #ifdef DECLARE_WAITQUEUE, this code won't be used in another OS.
- Remove CVS log.
Jesper Nilsson [Fri, 30 Nov 2007 16:26:23 +0000 (17:26 +0100)]
CRIS v32: Update debugport.
- Shorten include paths to machine dependent headers.
- Add support for fifth serial port.
- Remove CONFIG_ETRAXFS_SIM and CONFIG_ETRAX_DEBUG_PORT_NULL, no longer used.
- Remove raw_printk and stupid_debug hack, no longer needed.
- Remove dummy console stuff, no longer needed.
- Correct some register type names.
- Correct some whitespace errors and formatting.
Jesper Nilsson [Fri, 30 Nov 2007 16:20:00 +0000 (17:20 +0100)]
CRIS v32: Update boot/rescue/head.S code.
- Add ifdef for ETRAX_AXISFLASHMAP to avoid compiling file unless it is set.
- Use assembler macros for setting up clocks.
- Don't copy image, just jump to it (only works for NOR flash)
Jesper Nilsson [Fri, 30 Nov 2007 16:16:09 +0000 (17:16 +0100)]
CRIS v32: Update boot/compressed/misc.c
- Shorten include paths to machine specific headers.
- Remove fill_inbuf, not defined here.
- Return __dest as value from memcpy.
- Enable serial port hardware transmitter and receiver in serial_setup.
- Correct baudrate divisor calculation, changed from 4800 to 115200.
- Add support for Artpec-3 specific serial port setup.
- Initialize pinmux for the correct serial port.
Jesper Nilsson [Fri, 30 Nov 2007 15:40:26 +0000 (16:40 +0100)]
CRIS v32: Update compressed head.S
- Fixes for NAND and NOR flash booting.
- Use assembler macros for common tasks (clocks, general io etc)
- Use (EtraxFS or Artpec-3) machine specific include for dram and hardware init.
Jesper Nilsson [Fri, 30 Nov 2007 15:28:26 +0000 (16:28 +0100)]
CRIS v32: Update boot rescue Kbuild makefile.
- Remove old specific targets, use more generic ones instead.
- Use if_changed to avoid creating new images when no change.
- Use EXTRA_CFLAGS instead of CFLAGS.
Jesper Nilsson [Wed, 30 Jan 2008 11:52:51 +0000 (12:52 +0100)]
CRIS v32: Update boot compressed Kbuild makefile.
- Remove old specific targets, use more generic ones instead.
- Use if_changed to avoid creating new images when no change.
- Use KBUILD_CFLAGS instead of CFLAGS.
Jesper Nilsson [Fri, 30 Nov 2007 15:22:50 +0000 (16:22 +0100)]
CRIS v32: Update traps.c
- Remove raw_prink hack, use oops_in_progress instead.
- When ETRAX_WATCHDOG_NICE_DOGGY is set, loop in trap after oops dump
instead of rebooting.
- Break long lines to less than 80 chars.
- Fix whitespace errors.
- Remove unnecessary comments.
Jesper Nilsson [Fri, 30 Nov 2007 15:17:21 +0000 (16:17 +0100)]
CRIS v10: Update and improve axisflashmap.c
- Add config to use mtd0 as whole flash device.
- Fix whitespace errors.
- Remove braces around single statement ifs.
- Break long lines.
- Remove unnecessary CVS log.
Jesper Nilsson [Fri, 30 Nov 2007 15:11:38 +0000 (16:11 +0100)]
CRIS v10: Update rescue Kbuild makefile.
- Remove old specific targets, use more generic ones instead.
- Use if_changed to avoid creating new images when no change.
Removes a lot of cruft.
- Use EXTRA_CFLAGS instead of CFLAGS.
Jesper Nilsson [Fri, 30 Nov 2007 15:10:30 +0000 (16:10 +0100)]
CRIS v10: Update boot/compressed Kbuild makefile.
- Remove old specific targets, use more generic ones instead.
- Use if_changed to avoid creating new images when no change.
- Use EXTRA_CFLAGS instead of CFLAGS.
Jesper Nilsson [Fri, 30 Nov 2007 15:07:06 +0000 (16:07 +0100)]
CRIS: Update main Kbuild makefile.
- Remove old and non-generic targets, use generic ones instead.
- Add sub-arch as mach-fs or mach-a3 for EtraxFS and Artpec-3 respectively.
- Add links to sub-arch directories, and erase before trying to create them.
- Include from sub-arch specific include directory "mach".
- Add files to be cleaned in CLEAN_FILES instead of as archclean target.
Jesper Nilsson [Fri, 30 Nov 2007 15:01:53 +0000 (16:01 +0100)]
CRIS v32: Update and improve axisflashmap
- Use default partition table when no partition is found (for initial tests)
- Add config ETRAX_AXISFLASHMAP_MTD0WHOLE to allow whole flash as mtd0.
- Add config for VCS simulator connection.
Jesper Nilsson [Fri, 30 Nov 2007 14:54:01 +0000 (15:54 +0100)]
CRIS v32: New version of I2C driver.
- Add i2c_write and i2c_read as functions.
- Use spinlocks for critical regions.
- Add config item to set I2C data and clock port.
- Put unneeded testcode inside #if 0.
- Remove CVS id tag.
Jesper Nilsson [Fri, 30 Nov 2007 14:47:34 +0000 (15:47 +0100)]
CRIS v32: Fixup kernel Makefile.
- Remove CRISv32 common arbiter, dma, io and pinmux files,
they are now defined in machine dependent directories.
- Add cache and cacheflush files for working around cache problems
in CRISv32 chips.
Jesper Nilsson [Fri, 30 Nov 2007 13:11:29 +0000 (14:11 +0100)]
CRIS: Minor generic kernel/traps.c changes.
- Collect extern declarations at top of file.
- Change raw_printk to printk, use oops_in_progress instead.
- Fix formatting and whitespace.
- Allow the watchdog to be disabled during oops.
Jesper Nilsson [Fri, 30 Nov 2007 12:59:57 +0000 (13:59 +0100)]
CRIS: Minor fixes to mm/fault.c
- Only disallow oops if we're in_interrupt context (was in_atomic before)
- Use the generic oops_in_progress instead of the raw_printk hack.
- Fix whitespace/formatting.
- Remove CVS log entries.
Jesper Nilsson [Thu, 29 Nov 2007 16:58:06 +0000 (17:58 +0100)]
CRIS: Merge axisflashmap.h with Axis internal changes.
- Add partition table struct to be used to parse partition table in flash.
- Add JFFS2 as a type, and add readoly flag.
- Improve some comments.
- Lindent has been run, fixing whitespace and formatting issues.
Jesper Nilsson [Thu, 29 Nov 2007 16:21:59 +0000 (17:21 +0100)]
CRIS v32: Add hardware dependent include files and defconfigs for ETRAX FS and ARTPEC-3 chips.
The header files describe the hardware registers available in both
these chips, note that most of this documentation is automatically
generated from the hardware implementation.
Jesper Nilsson [Thu, 29 Nov 2007 16:11:23 +0000 (17:11 +0100)]
CRIS v32: Add new machine dependent files for Etrax-FS and Artpec-3.
The two chips are somewhat different, and needs different handling.
Adds handing of the dma, dram initialization, hardware settings, io,
memory arbiter and pinmux
Also moves the dma, dram initialization and io from CRIS v32 common files.
Jesper Nilsson [Wed, 5 Dec 2007 17:10:36 +0000 (18:10 +0100)]
CRIS: Rearrange Kconfigs for v10 and v32 to allow compilation without warnings.
- Remove some unneeded configs and add some new ones.
- Merge common config items to common file instead of duplicating them.
- Pull in standard Kconfig.preempt.
- Remove some unneeded Kconfigs for subsystems not (yet) available on CRIS
(md, scsi, ieee1394, i2o, isdn, telephony, media, pcmcia, pci)
- Rename CRISv32 config items which had different types from CRISv10.
(ETRAX_LED2G, ETRAX_LED2R, ETRAX_LED3G, ETRAX_LED3R, ETRAX_I2C_DATA_PORT,
ETRAX_I2C_CLK_PORT)
[POWERPC] Add arch-specific walk_memory_remove() for 64-bit powerpc
walk_memory_resource() verifies if there are holes in a given memory
range, by checking against /proc/iomem. On x86/ia64 system memory is
represented in /proc/iomem. On powerpc, we don't show system memory as
IO resource in /proc/iomem - instead it's maintained in
/proc/device-tree.
This provides a way for an architecture to provide its own
walk_memory_resource() function. On powerpc, the memory region is
small (16MB), contiguous and non-overlapping. So extra checking
against the device-tree is not needed.
Signed-off-by: Badari Pulavarty <pbadari@us.ibm.com> Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Dave Hansen <haveblue@us.ibm.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Kumar Gala <galak@gate.crashing.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
Supply remove_memory() function for 64-bit powerpc. This is still
not quite complete as it needs to do some more arch-specific stuff,
which will be added in a later patch.
Signed-off-by: Badari Pulavarty <pbadari@us.ibm.com> Cc: Yasunori Goto <y-goto@jp.fujitsu.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
[POWERPC] Make cell IOMMU fixed mapping printk more useful
Currently the cell IOMMU fixed mapping just printks that it's been setup,
which is not particularly useful. Much more interesting is the address
ranges for the different windows. This adds one line to dmesg on a blade.
Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
[POWERPC] Fix potential cell IOMMU bug when switching back to default DMA ops
If we get a 64-bit dma mask we switch to the fixed ops and call
cell_dma_dev_setup(). If the driver then switches back to a 32-bit dma
mask for any reason we don't call cell_dma_dev_setup() again, which
has the potential to leave bogus data in dev->archdata.dma_data.
Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
[POWERPC] Don't enable cell IOMMU fixed mapping if there are no dma-ranges
In order for the cell IOMMU fixed mapping to work we need "dma-ranges"
properties in the device tree. If there are none then there's no point
enabling the fixed mapping support.
Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
[POWERPC] Fix cell IOMMU null pointer explosion on old firmwares
The cell IOMMU fixed mapping support has a null pointer bug if you run
it on older firmwares that don't contain the "dma-ranges" properties.
Fix it and convert to using of_get_next_parent() while we're there.
Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
Luke Browning [Fri, 8 Feb 2008 04:50:41 +0000 (15:50 +1100)]
[POWERPC] spufs: Fix timing dependent false return from spufs_run_spu
Stop bits are only valid when the running bit is not set. Status bits
carry over from one invocation of spufs_run_spu() to another, so the
RUNNING bit gets added to the previous state of the register which may
have been a remote library call. In this case, it looks like another
library routine should be invoked, but the spe is actually running.
This fixes a problem with a testcase that exercises the scheduler.
Signed-off-by: Luke Browning <lukebrowning@us.ibm.com> Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
Luke Browning [Fri, 8 Feb 2008 04:50:41 +0000 (15:50 +1100)]
[POWERPC] spufs: No need to have a runnable SPU for libassist update
We don't need to update the libassist statistic with the context in a
runnable state, so do it after spu_disable_spu().
Signed-off-by: Luke Browning <lukebrowning@us.ibm.com> Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Acked-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Paul Mackerras <paulus@samba.org>
Masato Noguchi [Fri, 8 Feb 2008 04:50:41 +0000 (15:50 +1100)]
[POWERPC] spufs: Update SPU_Status[CISHP] in backing runcntl write
Currently, the kernel may fail to restart a SPE context which
has stopped and been swapped out.
This changes spu_backing_runcntl_write to emulate the real
SPU_Status register exactly. When the SPU Run Control register
is written with SPU_RunCntl[Run] set to '1', the physical SPU
automatically sets SPU_Status[R] and clears SPU_Status[CISHP].
Signed-off-by: Masato Noguchi <Masato.Noguchi@jp.sony.com> Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
Fix various state_mutex leaks. The worst one was introduced by the
interrutible state_mutex conversion but there've been a few before
too. Notably spufs_wait now returns without the state_mutex held
when returning an error, which actually cleans up some code.
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Luke Browning <lukebrowning@us.ibm.com> Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
[POWERPC] Disable G5 NAP mode during SMU commands on U3
It appears that with the U3 northbridge, if the processor is in NAP
mode the whole time while waiting for an SMU command to complete,
then the SMU will fail. It could be related to the weird backward
mechanism the SMU uses to get to system memory via i2c to the
northbridge that doesn't operate properly when the said bridge is
in napping along with the CPU. That is on U3 at least, U4 doesn't
seem to be affected.
This didn't show before NO_HZ as the timer wakeup was enough to make
it work it seems, but that is no longer the case.
This fixes it by disabling NAP mode on those machines while
an SMU command is in flight.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
Frank Seidel [Mon, 4 Feb 2008 18:25:42 +0000 (19:25 +0100)]
mmc: extend ricoh_mmc to support Ricoh RL5c476
This patch adds support for the Ricoh RL5c476 chip: with this
the mmc adapter that needs this disabler (R5C843) can also be
handled correctly when it sits on a RL5c476.
Signed-off-by: Frank Seidel <fseidel@suse.de> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
David Brownell [Mon, 4 Feb 2008 17:12:48 +0000 (18:12 +0100)]
at91_mci: use generic GPIO calls
Update the AT91 MMC driver to use the generic GPIO calls instead of the
AT91-specific calls; and to request (and release) those GPIO signals.
That required updating the probe() fault cleanup codepaths. Now there
is a single sequence for freeing resources, in reverse order of their
allocation. Also that code uses use dev_*() for messaging, and has less
abuse of KERN_ERR.
Likewise with updating remove() cleanup. This had to free the GPIOs,
and while adding that code I noticed and fixed two other problems: it
was poking at a workqueue owned by the mmc core; and in one (rare)
case would try freeing an IRQ that it didn't allocate.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Philip Langdale [Sat, 29 Dec 2007 08:11:42 +0000 (00:11 -0800)]
mmc: Handle suspend/resume in Ricoh MMC disabler
As pci config space is reinitialised on a suspend/resume cycle, the
disabler needs to work its magic at resume time. For symmetry this
change also explicitly enables the controller at suspend time but
it's not strictly necessary.
Signed-off-by: Philipl Langdale <philipl@overt.org> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Eric Dumazet [Fri, 8 Feb 2008 07:30:42 +0000 (23:30 -0800)]
[IPSEC] flow: reorder "struct flow_cache_entry" and remove SLAB_HWCACHE_ALIGN
1) We can shrink sizeof(struct flow_cache_entry) by 8 bytes on 64bit arches.
2) No need to align these structures to hardware cache lines, this only waste
ram for very litle gain.
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Joy Latten [Fri, 8 Feb 2008 07:11:56 +0000 (23:11 -0800)]
[IPSEC]: Add support for aes-ctr.
The below patch allows IPsec to use CTR mode with AES encryption
algorithm. Tested this using setkey in ipsec-tools.
Signed-off-by: Joy Latten <latten@austin.ibm.com> Acked-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
Len Brown [Fri, 8 Feb 2008 05:37:16 +0000 (00:37 -0500)]
acer-wmi, tc1100-wmi: select ACPI_WMI
It is safe for these Kconfig entries to use select because
they select ACPI_WMI, which already has its dependencies
satisfied. This makes Kconfig more user friendly, since
the user selects the driver they want and the dependency
is met for them. Otherwise, the user would have to find
and enable ACPI_WMI to make enabling these drivers possible.