platform/kernel/linux-3.10.git
17 years agoMerge branches 'arm-mm', 'at91', 'clkevts', 'imx', 'iop', 'misc', 'netx', 'ns9xxx...
Russell King [Sun, 6 May 2007 19:57:51 +0000 (20:57 +0100)]
Merge branches 'arm-mm', 'at91', 'clkevts', 'imx', 'iop', 'misc', 'netx', 'ns9xxx', 'omap', 'pxa', 'rpc', 's3c' and 'sa1100' into devel

17 years ago[ARM] Add comments marking in-use ptrace numbers
Russell King [Sun, 6 May 2007 13:49:56 +0000 (14:49 +0100)]
[ARM] Add comments marking in-use ptrace numbers

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] Move syscall saving out of the way of utrace
Russell King [Sun, 6 May 2007 12:56:26 +0000 (13:56 +0100)]
[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 <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4360/1: S3C24XX: regs-udc.h remove unused macro
Arnaud Patard [Sat, 5 May 2007 14:55:09 +0000 (15:55 +0100)]
[ARM] 4360/1: S3C24XX: regs-udc.h remove unused macro

The S3C2410_UDC_SETIX() macro is not used and won't be used by the udc
driver, so delete it.

Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4358/1: S3C24XX: mach-qt2410.c: remove linux/mmc/protocol.h header
Arnaud Patard [Sat, 5 May 2007 14:12:17 +0000 (15:12 +0100)]
[ARM] 4358/1: S3C24XX: mach-qt2410.c: remove linux/mmc/protocol.h header

linux/mmc/protocol.h header is gone, thus breaking the build of the
mach-qt2410.c file. As this header is not used, I'm removing it. The
right headers may still be added later if needed.

Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] mm 10: allow memory type to be specified with ioremap
Russell King [Sat, 5 May 2007 19:59:27 +0000 (20:59 +0100)]
[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 <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] mm 9: add additional device memory types
Russell King [Sat, 5 May 2007 19:28:16 +0000 (20:28 +0100)]
[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 <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] mm 8: define mem_types table L1 bit 4 to be for ARMv6
Russell King [Sat, 5 May 2007 19:03:35 +0000 (20:03 +0100)]
[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 <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] iop: add missing parens in macro
Russell King [Sat, 5 May 2007 10:59:13 +0000 (11:59 +0100)]
[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 <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] mm 7: remove duplicated __ioremap() prototypes
Russell King [Sat, 5 May 2007 10:57:39 +0000 (11:57 +0100)]
[ARM] mm 7: remove duplicated __ioremap() prototypes

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years agoARM: OMAP: fix OMAP1 mpuio suspend/resume oops
David Brownell [Mon, 2 Apr 2007 19:46:47 +0000 (12:46 -0700)]
ARM: OMAP: fix OMAP1 mpuio suspend/resume oops

Fix oops in omap16xx mpuio suspend/resume code; field wasn't initialized

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years agoARM: OMAP: MPUIO wake updates
David Brownell [Thu, 7 Dec 2006 01:14:11 +0000 (17:14 -0800)]
ARM: OMAP: MPUIO wake updates

GPIO and MPUIO wake updates:

 - Hook MPUIOs into the irq wakeup framework too.  This uses a platform
   device to update irq enables during system sleep states, instead of
   a sys_device, since the latter is no longer needed for such things.

 - Also forward enable/disable irq wake requests to the relevant GPIO
   controller, so the top level IRQ dispatcher can (eventually) handle
   these wakeup events automatically if more than one GPIO pin needs to
   be a wakeup event source.

 - Minor tweak to the 24xx non-wakeup gpio stuff: no need to check such
   read-only data under the spinlock.

This assumes (maybe wrongly?) that only 16xx can do GPIO wakeup; without
a 15xx I can't test such stuff.

Also this expects the top level IRQ dispatcher to properly handle requests
to enable/disable irq wake, which is currently known to be wrong:  omap1
saves the flags but ignores them, omap2 doesn't even save it.  (Wakeup
events are, wrongly, hardwired in the relevant mach-omapX/pm.c file ...)
So MPUIO irqs won't yet trigger system wakeup.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years agoARM: OMAP: speed up gpio irq handling
David Brownell [Thu, 7 Dec 2006 01:14:10 +0000 (17:14 -0800)]
ARM: OMAP: speed up gpio irq handling

Speedup and shrink GPIO irq handling code, by using a pointer
that's available in the irq_chip structure instead of calling
the get_gpio_bank() function.  On OMAP1 this saves 44 words,
most of which were in IRQ critical path methods.  Hey, every
few instructions help.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years agoARM: OMAP: plat-omap changes for 2430 SDP
Syed Mohammed Khasim [Thu, 7 Dec 2006 01:14:08 +0000 (17:14 -0800)]
ARM: OMAP: plat-omap changes for 2430 SDP

This patch adds minimal OMAP2430 support to plat-omap files to
get the kernel booting on 2430SDP.

Signed-off-by: Syed Mohammed Khasim <x0khasim@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years agoARM: OMAP: gpio object shrinkage, cleanup
David Brownell [Thu, 7 Dec 2006 01:13:59 +0000 (17:13 -0800)]
ARM: OMAP: gpio object shrinkage, cleanup

More GPIO/IRQ cleanup:

  - compile-time removal of much useless code
      * mpuio support on non-OMAP1.
      * 15xx/730/24xx gpio support on 1610
      * 15xx/730/16xx gpio support on 24xx
      * etc

  - remove all BUG() calls, which are always bad news ... replaced some
    with normal fault reports for that call, others with WARN_ON(1).

  - small mpuio bugfix:  add missing set_type() method

Oh, and fix a minor merge issue: inode->u.generic_ip is now gone.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years agoARM: OMAP: /sys/kernel/debug/omap_gpio
David Brownell [Thu, 7 Dec 2006 01:13:53 +0000 (17:13 -0800)]
ARM: OMAP: /sys/kernel/debug/omap_gpio

Add some GPIO debug support:  /sys/kernel/debug/omap_gpio dumps the state
of all GPIOs that have been claimed, including basic IRQ info if relevant.
Tested on 24xx, 16xx.

Includes minor bugfixes:  recording IRQ trigger mode (this should probably
be a genirq patch), adding missing space to non-wakeup warning

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years agoARM: OMAP: Implement workaround for GPIO wakeup bug in OMAP2420 silicon
Juha Yrjola [Thu, 7 Dec 2006 01:13:52 +0000 (17:13 -0800)]
ARM: OMAP: Implement workaround for GPIO wakeup bug in OMAP2420 silicon

Some GPIOs on OMAP2420 do not have wakeup capabilities. If these GPIOs
are configured as IRQ sources, spurious interrupts will be generated
each time the core domain enters retention.

Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years agoARM: OMAP: Enable 24xx GPIO autoidling
Juha Yrjola [Thu, 7 Dec 2006 01:13:48 +0000 (17:13 -0800)]
ARM: OMAP: Enable 24xx GPIO autoidling

Enable 24xx GPIO autoidling

Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4227/1: minor head.S fixups
Nicolas Pitre [Wed, 21 Feb 2007 14:58:13 +0000 (15:58 +0100)]
[ARM] 4227/1: minor head.S fixups

Let's surround constructs like:

orr r3, r3, #(KERNEL_RAM_PADDR & 0x00f00000)

between .if .endif since (KERNEL_RAM_PADDR & 0x00f00000) is 0 in 99% of
all cases.

Also let's mask PHYS_OFFSET with 0x00f00000 instead of 0x00e00000.
Section mappings are really 1MB not 2MB and the 2MB groupping is
a higher level issue already much better enforced with

#if (PHYS_OFFSET & 0x001fffff)
#error "PHYS_OFFSET must be at an even 2MiB boundary!"
#endif

at the top of the file.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4328/1: Move i.MX UART regs to driver
Sascha Hauer [Thu, 26 Apr 2007 07:26:13 +0000 (08:26 +0100)]
[ARM] 4328/1: Move i.MX UART regs to driver

This patch moves the i.MX UART register descriptions from
include/asm-arm/arch-imx/imx-regs.h to the serial driver itself.
This helps using the driver on other architectures like mx31

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4329/1: fix position of NETX_SYSTEM_REG
Sascha Hauer [Thu, 26 Apr 2007 07:34:41 +0000 (08:34 +0100)]
[ARM] 4329/1: fix position of NETX_SYSTEM_REG

This patch fixes the position of the netx reset control register

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4355/2: AT91: SAM9260-EK and SAM9263-EK board updates
Andrew Victor [Thu, 3 May 2007 13:39:41 +0000 (14:39 +0100)]
[ARM] 4355/2: AT91: SAM9260-EK and SAM9263-EK board updates

Various small changes for the Atmel AT91SAM9260-EK and AT91SAM9263-EK
boards.

SAM9260-EK:
  - Register I2C device.

SAM9263-EK:
  - Add platform_data and register MACB device.
    (Patch by Nicolas Ferre)
  - Add platform_data and register AC97 device.
    (Patch by Nicolas Ferre)
  - Register I2C device.

Signed-off-by: Andrew Victor <andrew@sanpeople.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] ecard: Convert card type enum to a flag
Russell King [Thu, 3 May 2007 09:47:37 +0000 (10:47 +0100)]
[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 <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] ecard: Move private ecard junk out of asm/ecard.h
Russell King [Thu, 3 May 2007 09:20:47 +0000 (10:20 +0100)]
[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 <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] ecard: silence new warning caused by previous commit
Russell King [Thu, 3 May 2007 09:55:46 +0000 (10:55 +0100)]
[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 <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] ecard: convert to use the kthread API
Eric W. Biederman [Thu, 26 Apr 2007 07:04:40 +0000 (00:04 -0700)]
[ARM] ecard: convert to use the kthread API

This patch modifies the startup of kecardd to use kthread_run not a
kernel_thread combination of kernel_thread and daemonize.  Making the code
slightly simpler and more maintainable.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] Add support for ICSIDE interface on RiscPC
Russell King [Thu, 3 May 2007 08:55:52 +0000 (09:55 +0100)]
[ARM] Add support for ICSIDE interface on RiscPC

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] Add platform support for PATA on RiscPC
Russell King [Sat, 21 Apr 2007 14:55:06 +0000 (15:55 +0100)]
[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 <jeff@garzik.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] Set coherent DMA mask for Acorn expansion cards
Russell King [Mon, 2 Apr 2007 12:53:15 +0000 (13:53 +0100)]
[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 <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4357/1: AT91: Support slower serial baud-rates
Andrew Victor [Thu, 3 May 2007 11:26:24 +0000 (12:26 +0100)]
[ARM] 4357/1: AT91: Support slower serial baud-rates

Allow slower serial baud-rates by switching the UART clock from MCK to
MCK/8.

Based on patches by Mike Wolfram and Russell King.

Signed-off-by: Andrew Victor <andrew@sanpeople.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4354/1: AT91: Support ADS7846 touchsceen on SAM9263-EK board
Andrew Victor [Wed, 2 May 2007 17:00:45 +0000 (18:00 +0100)]
[ARM] 4354/1: AT91: Support ADS7846 touchsceen on SAM9263-EK board

Add support for the ADS7846 Touchscreen found on the Atmel
AT91SAM9263-EK board.

Signed-off-by: Nicolas Ferre <nicolas.ferre@rfo.atmel.com>
Signed-off-by: Andrew Victor <andrew@sanpeople.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4353/1: AT91: Support ADS7846 touchsceen on SAM9261-EK board
Andrew Victor [Wed, 2 May 2007 16:58:51 +0000 (17:58 +0100)]
[ARM] 4353/1: AT91: Support ADS7846 touchsceen on SAM9261-EK board

Add support for the ADS7846 Touchscreen found on the Atmel
AT91SAM9261-EK board.

Original patch by Morten Larsen.

Signed-off-by: Andrew Victor <andrew@sanpeople.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4352/1: AT91: Platform data for LCD and AC97.
Andrew Victor [Wed, 2 May 2007 16:46:49 +0000 (17:46 +0100)]
[ARM] 4352/1: AT91: Platform data for LCD and AC97.

Define resources, platform_device and device registration functions for
the LCD and AC97 controllers on the AT91SAM9263.
Also update the AT91SAM9261 to use the common atmel_lcdfb driver.

Signed-off-by: Nicolas Ferre <nicolas.ferre@rfo.atmel.com>
Signed-off-by: Andrew Victor <andrew@sanpeople.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4351/1: AT91: Define rest of peripheral clocks
Andrew Victor [Wed, 2 May 2007 16:14:57 +0000 (17:14 +0100)]
[ARM] 4351/1: AT91: Define rest of peripheral clocks

Define and register the remaining peripheral clocks for the AT91
processors.

AT91SAM9261 clocks patch by Ivan Zhakov.

Signed-off-by: Andrew Victor <andrew@sanpeople.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4350/1: AT91: Hardware header for ADC peripheral
Andrew Victor [Wed, 2 May 2007 16:08:13 +0000 (17:08 +0100)]
[ARM] 4350/1: AT91: Hardware header for ADC peripheral

Definitions for Analog-to-Digital Converter (ADC) found on the Atmel
AT91SAM9260 processor.

Signed-off-by: Andrew Victor <andrew@sanpeople.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4356/1: arm: fix handling of svc mode undefined instructions
Dan Williams [Wed, 2 May 2007 23:18:34 +0000 (00:18 +0100)]
[ARM] 4356/1: arm: fix handling of svc mode undefined instructions

Now that do_undefinstr handles kernel and user mode undefined
instruction exceptions it must not assume that interrupts are enabled at
entry.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4342/2: iop13xx: add resource definitions for the tpmi units
Dan Williams [Wed, 2 May 2007 16:47:47 +0000 (17:47 +0100)]
[ARM] 4342/2:  iop13xx: add resource definitions for the tpmi units

The tpmi units interface with the SAS controller on iop348.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4348/4: iop3xx: Give Linux control over PCI initialization
Dan Williams [Wed, 2 May 2007 16:59:44 +0000 (17:59 +0100)]
[ARM] 4348/4:  iop3xx: Give Linux control over PCI initialization

Currently the iop3xx platform support code assumes that RedBoot is the
bootloader and has already initialized the ATU.  Linux should handle this
initialization for three reasons:

1/ The memory map that RedBoot sets up is not optimal (page_to_dma and
virt_to_phys return different addresses).  The effect of this is that using
the dma mapping API for the internal bus dma units generates pci bus
addresses that are incorrect for the internal bus.

2/ Not all iop platforms use RedBoot

3/ If the ATU is already initialized it indicates that the iop is an add-in
card in another host, it does not own the PCI bus, and should not be
re-initialized.

Changelog:
* rather than change nr_controllers to zero, simply do not call
  pci_common_init

Cc: Lennert Buytenhek <kernel@wantstofly.org>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4344/1: iop13xx: do not claim both uarts by default on iop342
Dan Williams [Sun, 29 Apr 2007 08:33:22 +0000 (09:33 +0100)]
[ARM] 4344/1: iop13xx: do not claim both uarts by default on iop342

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4343/1: iop13xx: automatically detect the internal bus frequency
Dan Williams [Sun, 29 Apr 2007 08:32:51 +0000 (09:32 +0100)]
[ARM] 4343/1: iop13xx: automatically detect the internal bus frequency

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4341/1: iop13xx: fix i/o address translation
Dan Williams [Sun, 29 Apr 2007 08:31:51 +0000 (09:31 +0100)]
[ARM] 4341/1: iop13xx: fix i/o address translation

PCI devices were being programmed with an incorrect base address value.
This patch moves I/O space into a 16-bit addressable region and corrects
the i/o offset.

Much thanks to Martin Michlmayr for tracking this issue and testing
debug patches.

Cc: Martin Michlmayr <tbm@cyrius.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4340/1: iop: fix iop_getttimeoffset
Dan Williams [Sun, 29 Apr 2007 08:31:21 +0000 (09:31 +0100)]
[ARM] 4340/1: iop: fix iop_getttimeoffset

Fix a typo which causes a necessary cpwait to be missed on iop3xx, Michael
Brunner <mibru@gmx.de>

Save a register in the assembly routine, rmk

Cc: Lennert Buytenhek <kernel@wantstofly.org>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4330/1: S3C24XX: add S3C2410_UDC_FUNCADDR_UPDATE
Ben Dooks [Thu, 26 Apr 2007 11:11:24 +0000 (12:11 +0100)]
[ARM] 4330/1: S3C24XX: add S3C2410_UDC_FUNCADDR_UPDATE

Add definition for S3C2410_UDC_FUNCADDR_UDPATE
register definition for UDC driver.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] fix section mismatch warning in board-sam9260
Sam Ravnborg [Thu, 26 Apr 2007 07:04:39 +0000 (00:04 -0700)]
[ARM] fix section mismatch warning in board-sam9260

Andrew Morton found a section mismatch warning in x86_64 triggered by a
wrongly placed __initdata marker.

git grep "struct __initdata" revealed that board-sam9260.c had the same
problem.

This patch fixes this by placing the __initdata marker correct.  It was
checked with objdump that the variable was moved to .init.data by this
change.

Fixed an unrelated section mismatch warning while touching the file.

Both changes are only compile tested but obvious correct.
[Used at91sam9260ek_defconfig to get compile coverage]

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] Add stacktrace support and make oprofile use it
Russell King [Sat, 28 Apr 2007 08:59:37 +0000 (09:59 +0100)]
[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 <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] Convert AMBA PL010 driver to use the clk infrastructure
Russell King [Sun, 22 Apr 2007 11:30:41 +0000 (12:30 +0100)]
[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 <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] Convert AMBA PL010 driver to use 'uart_amba_port'
Russell King [Sun, 22 Apr 2007 10:55:59 +0000 (11:55 +0100)]
[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 <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] Remove unnecessary asm/ptrace.h from VFP support code
Russell King [Sun, 22 Apr 2007 09:56:40 +0000 (10:56 +0100)]
[ARM] Remove unnecessary asm/ptrace.h from VFP support code

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] sa1100: use mutexes rather than semaphores
Russell King [Sun, 22 Apr 2007 09:08:58 +0000 (10:08 +0100)]
[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 <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4304/1: removes the unnecessary bit number from CKENnn_XXXX
Eric Miao [Thu, 5 Apr 2007 03:07:20 +0000 (04:07 +0100)]
[ARM] 4304/1: removes the unnecessary bit number from CKENnn_XXXX

This patch removes the unnecessary bit number from CKENnn_XXXX
definitions for PXA, so that

CKEN0_PWM0 --> CKEN_PWM0
CKEN1_PWM1 --> CKEN_PWM1
...
CKEN24_CAMERA --> CKEN_CAMERA

The reasons for the change of these defitions are:

1. they do not scale - they are currently valid for pxa2xx, but
definitely not valid for pxa3xx, e.g., pxa3xx has bit 3 for camera
instead of bit 24

2. they are unnecessary - the peripheral name within the definition
has already announced its usage, we don't need those bit numbers
to know which peripheral we are going to enable/disable clock for

3. they are inconvenient - think about this: a driver programmer
for pxa has to remember which bit in the CKEN register to turn
on/off

Another change in the patch is to make the definitions equal to its
clock bit index, so that

   #define CKEN_CAMERA  (24)

instead of

   #define CKEN_CAMERA  (1 << 24)

this change, however, will add a run-time bit shift operation in
pxa_set_cken(), but the benefit of this change is that it scales
when bit index exceeds 32, e.g., pxa3xx has two registers CKENA
and CKENB, totally 64 bit for this, suppose CAMERA clock enabling
bit is CKENB:10, one can simply define CKEN_CAMERA to be (32 + 10)
and so that pxa_set_cken() need minimum change to adapt to that.

Signed-off-by: eric miao <eric.y.miao@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4262/1: OMAP: clocksource and clockevent support
Kevin Hilman [Thu, 8 Mar 2007 19:32:19 +0000 (20:32 +0100)]
[ARM] 4262/1: OMAP: clocksource and clockevent support

Update OMAP1 to enable support for hrtimers and dynticks by using new clocksource and clockevent infrastructure.

Signed-off-by: Kevin Hilman <khilman@mvista.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4261/1: clockevent support for Versatile platform
Kevin Hilman [Thu, 8 Mar 2007 19:30:38 +0000 (20:30 +0100)]
[ARM] 4261/1: clockevent support for Versatile platform

Update Versatile platform to use new clockevent infrastructure.

Signed-off-by: Kevin Hilman <khilman@mvista.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4260/1: clocksource support for Versatile platform
Kevin Hilman [Thu, 8 Mar 2007 19:25:13 +0000 (20:25 +0100)]
[ARM] 4260/1: clocksource support for Versatile platform

Update Versatile to use new clocksource infrastructure for basic timekeeping.

Signed-off-by: Kevin Hilman <khilman@mvista.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4259/1: clockevent support for ixp4xx platform
Kevin Hilman [Thu, 8 Mar 2007 19:23:59 +0000 (20:23 +0100)]
[ARM] 4259/1: clockevent support for ixp4xx platform

Update ixp4xx timer support to use new clockevent infrastructure.

Signed-off-by: Kevin Hilman <khilman@mvista.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4258/2: Support for dynticks in idle loop
Kevin Hilman [Wed, 14 Mar 2007 16:33:24 +0000 (17:33 +0100)]
[ARM] 4258/2: Support for dynticks in idle loop

And, wrap timer_tick() and sysdev suspend/resume in
!GENERIC_CLOCKEVENTS since clockevent layer takes care
of these.

Signed-off-by: Kevin Hilman <khilman@mvista.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4257/2: Kconfig support for GENERIC_CLOCKEVENTS
Kevin Hilman [Tue, 13 Mar 2007 19:29:24 +0000 (20:29 +0100)]
[ARM] 4257/2: Kconfig support for GENERIC_CLOCKEVENTS

This time with LEDS_TIMER set with !GENERIC_CLOCKEVENTS

Signed-off-by: Kevin Hilman <khilman@mvista.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4300/1: Add picotux 200 ARM board
Simon Richter [Mon, 2 Apr 2007 13:06:29 +0000 (14:06 +0100)]
[ARM] 4300/1: Add picotux 200 ARM board

Add the picotux 200 ARM board:
 - Enable its machine type in the filter in head.S
 - Add configuration option
 - Add board initialisation
 - Add default configuration

Signed-off-by: Simon Richter <Simon.Richter@kleinhenz.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4319/1: S3C2412: Add kconfig for MACH_SMDK2412
Ben Dooks [Wed, 11 Apr 2007 11:42:09 +0000 (12:42 +0100)]
[ARM] 4319/1: S3C2412: Add kconfig for MACH_SMDK2412

Add Kconfig entry for SMDK2412 to go with the SMDK2413

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4326/1: S3C24XX: fix sparse errors in DMA code
Ben Dooks [Fri, 20 Apr 2007 10:39:46 +0000 (11:39 +0100)]
[ARM] 4326/1: S3C24XX: fix sparse errors in DMA code

Fix the following sparse errors in arch/arm/plat-s3c24xx/dma.c:

dma.c:47:30: warning: symbol 'dma_sel' was not declared. Should it be static?
dma.c:883:6: warning: symbol 's3c2410_dma_waitforstop' was not declared. Should it be static?
dma.c:961:1: warning: symbol 's3c2410_dma_started' was not declared. Should it be static?
dma.c:1283:12: warning: symbol 's3c24xx_dma_sysclass_init' was not declared. Should it be static?
dma.c:1295:12: warning: symbol 's3c24xx_dma_sysdev_register' was not declared. Should it be static?
dma.c:1399:25: warning: symbol 's3c2410_dma_map_channel' was not declared. Should it be static?

The patch makes all the relevant functions static.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4325/1: S3C24XX: remove s3c24xx_board
Ben Dooks [Fri, 20 Apr 2007 10:19:16 +0000 (11:19 +0100)]
[ARM] 4325/1: S3C24XX: remove s3c24xx_board

Remove the use of struct s3c24xx_board as
this is just as easily done by using the
platform device registration functions to
make the initialisation sequence easier.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4324/1: S3C24XX: remove clocks from s3c24xx_board
Ben Dooks [Fri, 20 Apr 2007 10:15:27 +0000 (11:15 +0100)]
[ARM] 4324/1: S3C24XX: remove clocks from s3c24xx_board

Remove the clocks from the s3c24xx_board as part
of the process of simplifying the initialisation
sequence by removing struct s3c24xx_board.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4299/1: S3C AC97 fill in register bit defines
Graeme Gregory [Mon, 2 Apr 2007 11:00:33 +0000 (12:00 +0100)]
[ARM] 4299/1: S3C AC97 fill in register bit defines

Create defines in the same styles as other s3c include files
giving names to bits in registers within the AC97 IO unit.

Signed-off-by: Graeme Gregory <gg@opensource.wolfsonmicro.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4301/1: add mach type cc9p9360js
Uwe Kleine-König [Mon, 2 Apr 2007 20:09:31 +0000 (21:09 +0100)]
[ARM] 4301/1: add mach type cc9p9360js

The support for that machine is not yet complete, but it's enough to
be useful as a test platform for the serial and ethernet driver.

Moreover a typo in the product name is fixed that I missed in the
last patch.

Signed-off-by: Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4294/1: ns9xxx: Determine system clock from PLL register settings
Uwe Kleine-König [Wed, 28 Mar 2007 17:06:41 +0000 (18:06 +0100)]
[ARM] 4294/1: ns9xxx: Determine system clock from PLL register settings

The function attribute const is abused here as the PLL register is read.  But I
think this is all right because the PLL register cannot change without a reset.

Note: This patch depends on 4293/1

Signed-off-by: Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4293/1: ns9xxx: Add bit fields FS and ND to the definition of
Uwe Kleine-König [Wed, 28 Mar 2007 16:54:22 +0000 (17:54 +0100)]
[ARM] 4293/1: ns9xxx: Add bit fields FS and ND to the definition of
SYS_PLL register

Signed-off-by: Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4292/1: ns9xxx: Make REGGET consistant with REGSET
Uwe Kleine-König [Wed, 28 Mar 2007 16:18:30 +0000 (17:18 +0100)]
[ARM] 4292/1: ns9xxx: Make REGGET consistant with REGSET

This implies that REGGET gets a new parameter "var" to allow to hold the actual
register value in a variable.

Moreover REGGET was broken because it used "field" instead of
"reg ## _ ## field" which proves that there are no callers to fix :-)

Signed-off-by: Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4246/1: i2c-pxa: add adapter class to platform specific data
Matej Kenda [Mon, 5 Mar 2007 12:06:40 +0000 (13:06 +0100)]
[ARM] 4246/1: i2c-pxa: add adapter class to platform specific data

Reposted patch for kernel 2.6.21-rc2.

The driver i2c-pxa doesn't set the class member in i2c_adapter, which
is used to register the I2C adapter. The hwmon (sensors) drivers (e.g.
adm1021) that are connected to a i2c-pxa adapter don't attach because
they expect that the adapter supports class I2C_CLASS_HWMON.

This patch adds functionality to allow platforms to set the class and
pass it as platform_data to the i2c-pxa driver. Sample usage in
platform code:

static struct i2c_pxa_platform_data my_i2c_platform_data = {
.class = I2C_CLASS_HWMON
};

static void __init my_platform_init(void)
{
(void) platform_add_devices(devices, ARRAY_SIZE(devices));

pxa_set_i2c_info(&my_i2c_platform_data);
}

Signed-off-by: Matej Kenda <matej.kenda@hermes-softlab.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 4236/2: basic {enable,disable}_irq_wake() support for PXA
Philipp Zabel [Mon, 26 Feb 2007 00:44:57 +0000 (01:44 +0100)]
[ARM] 4236/2: basic {enable,disable}_irq_wake() support for PXA

pxa_set_gpio_wake handles GPIOs > 1, so IRQ_TO_GPIO has to be used
instead of just substracting IRQ_GPIO0 from the irq number.

17 years ago[ARM] mm 6: allow mem_types table to specify extended pte attributes
Russell King [Sat, 21 Apr 2007 09:52:32 +0000 (10:52 +0100)]
[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 <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] mm 5: Use mem_types table in ioremap
Russell King [Sat, 21 Apr 2007 09:47:29 +0000 (10:47 +0100)]
[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 <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] mm 4: make create_mapping() more conventional
Russell King [Sat, 21 Apr 2007 09:21:28 +0000 (10:21 +0100)]
[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 <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] mm 3: separate out supersection mappings, avoid for <4GB
Russell King [Sat, 21 Apr 2007 09:16:48 +0000 (10:16 +0100)]
[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 <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] mm 2: clean up create_mapping()
Russell King [Sat, 21 Apr 2007 09:05:32 +0000 (10:05 +0100)]
[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 <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] mm 1: Combine mem_type domain into prot_* at init time
Russell King [Sat, 21 Apr 2007 08:59:44 +0000 (09:59 +0100)]
[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 <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] getuser.S and putuser.S don't need thread_info.h nor asm-offsets.h
Russell King [Sun, 4 Mar 2007 20:44:59 +0000 (20:44 +0000)]
[ARM] getuser.S and putuser.S don't need thread_info.h nor asm-offsets.h

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] ptrace: clean up single stepping support
Russell King [Sun, 4 Mar 2007 09:50:28 +0000 (09:50 +0000)]
[ARM] ptrace: clean up single stepping support

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] Remove needless linux/ptrace.h includes
Russell King [Sat, 3 Mar 2007 19:45:25 +0000 (19:45 +0000)]
[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 <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] EBSA110: Add readsw/readsl/writesw/writesl
Russell King [Sat, 3 Mar 2007 11:51:31 +0000 (11:51 +0000)]
[ARM] EBSA110: Add readsw/readsl/writesw/writesl

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] Add ability to dump exception stacks to kernel backtraces
Russell King [Fri, 2 Mar 2007 15:01:36 +0000 (15:01 +0000)]
[ARM] Add ability to dump exception stacks to kernel backtraces

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years agoRevert "e1000: fix NAPI performance on 4-port adapters"
Linus Torvalds [Fri, 20 Apr 2007 01:21:01 +0000 (18:21 -0700)]
Revert "e1000: fix NAPI performance on 4-port adapters"

This reverts commit 60cba200f11b6f90f35634c5cd608773ae3721b7.  It's been
linked to lockups of the e1000 hardware, see for example

https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=229603

but it's likely that the commit itself is not really introducing the
bug, but just allowing an unrelated problem to rear its ugly head (ie
one current working theory is that the code exposes us to a hardware
race condition by decreasing the amount of time we spend in each NAPI
poll cycle).

We'll revert it until root cause is known.  Intel has a repeatable
reproduction on two different machines and bus traces of the hardware
doing something bad.

Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Cc: Jeff Garzik <jeff@garzik.org>
Cc: David S. Miller <davem@davemloft.net>
Cc: Greg KH <gregkh@suse.de>
Cc: Dave Jones <davej@redhat.com>
Cc: Auke Kok <auke-jan.h.kok@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoMerge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
Linus Torvalds [Fri, 20 Apr 2007 00:25:28 +0000 (17:25 -0700)]
Merge branch 'upstream-linus' of /linux/kernel/git/jgarzik/libata-dev

* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:
  pata_sis: Fix oops on boot

17 years agopata_sis: Fix oops on boot
Alan Cox [Thu, 19 Apr 2007 10:09:52 +0000 (11:09 +0100)]
pata_sis: Fix oops on boot

A small number of SiS setups require special handling (not many judging
by how long this dumb bug survived). A couple of Fedora 7 devel testers
hit an Oops on pata_sis loading which is caused by terminal confusion
between chipset as 'the chipset we have found' and chipset as 'array
iterator'

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agosky2: version 1.14
Stephen Hemminger [Wed, 11 Apr 2007 21:48:03 +0000 (14:48 -0700)]
sky2: version 1.14

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agosky2: no jumbo on Yukon FE
Stephen Hemminger [Wed, 11 Apr 2007 21:48:02 +0000 (14:48 -0700)]
sky2: no jumbo on Yukon FE

The Yukon FE (100mbit only) chips do not support large packets.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agosky2: EC-U performance and jumbo support
Stephen Hemminger [Wed, 11 Apr 2007 21:48:01 +0000 (14:48 -0700)]
sky2: EC-U performance and jumbo support

The Yukon EC Ultra chips have transmit settings for store and
forward and PCI buffering. By setting these appropriately, normal
performance goes from 750Mbytes/sec to 940Mbytes/sec (non-jumbo).

It is also possible to do Jumbo mode, but it means turning off
TSO and checksum offload so the performance gets worse. There isn't
enough buffering for checksum offload to work.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agosky2: disable ASF on all chip types
Stephen Hemminger [Wed, 11 Apr 2007 21:48:00 +0000 (14:48 -0700)]
sky2: disable ASF on all chip types

Need to make sure and disable ASF on all chip types. Otherwise, there may be
random reboots.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agosky2: handle descriptor errors
Stephen Hemminger [Wed, 11 Apr 2007 21:47:59 +0000 (14:47 -0700)]
sky2: handle descriptor errors

There should never be descriptor error unless hardware or driver is buggy.
But if an error occurs, print useful information, clear irq, and recover.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agosky2: disable support for 88E8056
Stephen Hemminger [Wed, 11 Apr 2007 21:47:58 +0000 (14:47 -0700)]
sky2: disable support for 88E8056

This device is having all sorts of problems that lead to data corruption
and system instability.  It gets receive status and data out of order,
it generates descriptor and TSO errors, etc.

Until the problems are resolved, it should not be used by anyone
who cares about there system.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agogianfar needs crc32 lib dependency
Dave Jiang [Thu, 12 Apr 2007 17:57:06 +0000 (10:57 -0700)]
gianfar needs crc32 lib dependency

Gianfar needs crc32 to be selected to compile.

Signed-off-by: Dave Jiang <djiang@mvista.com>
--
 drivers/net/Kconfig |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
--
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agospidernet: Fix problem sending IP fragments
Linas Vepstas [Tue, 17 Apr 2007 05:54:13 +0000 (22:54 -0700)]
spidernet: Fix problem sending IP fragments

The basic structure of "normal" UDP/IP/Ethernet
frames (that actually work):
 - It starts with the Ethernet header (dest MAC, src MAC, etc.)
 - The next part is occupied by the IP header (version info, length of
packet, id=0, fragment offset=0, checksum, from / to address, etc.)
 - Then comes the UDP header (src / dest port, length, checksum)
 - Actual payload
 - Ethernet checksum

Now what's different for IP fragment:
 - The IP header has id set to some value (same for all fragments),
offset is set appropriately (i.e. 0 for first fragment, following
according to size of other fragments), size is the length of the frame.
 - UDP header is unchanged. I.e. length is according to full UDP
datagram, not just the part within the actual frame! But this is only
true within the first frame: all following frames don't have a valid
UDP-header at all.

The spidernet silicon seems to be quite intelligent: It's able to
compute (IP / UDP / Ethernet) checksums on the fly and tests if frames
are conforming to RFC -- at least conforming to RFC on complete frames.

But IP fragments are different as explained above:
I.e. for IP fragments containing part of a UDP datagram it sees
incompatible length in the headers for IP and UDP in the first frame
and, thus, skips this frame. But the content *is* correct for IP
fragments. For all following frames it finds (most probably) no valid
UDP header at all. But this *is* also correct for IP fragments.

The Linux IP-stack seems to be clever in this point. It expects the
spidernet to calculate the checksum (since the module claims to be able
to do so) and marks the skb's for "normal" frames accordingly
(ip_summed set to CHECKSUM_HW).
But for the IP fragments it does not expect the driver to be capable to
handle the frames appropriately. Thus all checksums are allready
computed. This is also flaged within the skb (ip_summed set to
CHECKSUM_NONE).

Unfortunately the spidernet driver ignores that hints. It tries to send
the IP fragments of UDP datagrams as normal UDP/IP frames. Since they
have different structure the silicon detects them the be not
"well-formed" and skips them.

The following one-liner against 2.6.21-rc2 changes this behavior. If the
IP-stack claims to have done the checksumming, the driver should not
try to checksum (and analyze) the frame but send it as is.

Signed-off-by: Norbert Eicker <n.eicker@fz-juelich.de>
Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agocxgb3 - PHY interrupts and GPIO pins.
Divy Le Ray [Tue, 17 Apr 2007 18:06:36 +0000 (11:06 -0700)]
cxgb3 - PHY interrupts and GPIO pins.

Remove assumption that PHY interrupts use GPIOs 3 and 5.
Deal with PHY interrupts connected to any GPIO pins.

Signed-off-by: Divy Le Ray <divy@chelsio.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agocxgb3 - Fix low memory conditions
Divy Le Ray [Tue, 17 Apr 2007 18:06:30 +0000 (11:06 -0700)]
cxgb3 - Fix low memory conditions

Reuse the incoming skb when a clientless abort req is recieved.

The release of RDMA connections HW resources might be deferred in
low memory situations.
Ensure that no further activity is passed up to the RDMA driver
for these connections.

Signed-off-by: Divy Le Ray <divy@chelsio.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoMerge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm
Linus Torvalds [Thu, 19 Apr 2007 16:49:59 +0000 (09:49 -0700)]
Merge branch 'linus' of git://git./linux/kernel/git/avi/kvm

* 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm:
  KVM: Fix off-by-one when writing to a nonpae guest pde

17 years agoKVM: Fix off-by-one when writing to a nonpae guest pde
Avi Kivity [Wed, 18 Apr 2007 08:18:18 +0000 (11:18 +0300)]
KVM: Fix off-by-one when writing to a nonpae guest pde

Nonpae guest pdes are shadowed by two pae ptes, so we double the offset
twice: once to account for the pte size difference, and once because we
need to shadow pdes for a single guest pde.

But when writing to the upper guest pde we also need to truncate the
lower bits, otherwise the multiply shifts these bits into the pde index
and causes an access to the wrong shadow pde.  If we're at the end of the
page (accessing the very last guest pde) we can even overflow into the
next host page and oops.

Signed-off-by: Avi Kivity <avi@qumranet.com>
17 years ago[NETLINK]: Don't attach callback to a going-away netlink socket
Denis Lunev [Thu, 19 Apr 2007 00:05:58 +0000 (17:05 -0700)]
[NETLINK]: Don't attach callback to a going-away netlink socket

There is a race between netlink_dump_start() and netlink_release()
that can lead to the situation when a netlink socket with non-zero
callback is freed.

Here it is:

CPU1:                           CPU2
netlink_release():              netlink_dump_start():

                                sk = netlink_lookup(); /* OK */

netlink_remove();

spin_lock(&nlk->cb_lock);
if (nlk->cb) { /* false */
  ...
}
spin_unlock(&nlk->cb_lock);

                                spin_lock(&nlk->cb_lock);
                                if (nlk->cb) { /* false */
                                         ...
                                }
                                nlk->cb = cb;
                                spin_unlock(&nlk->cb_lock);
                                ...
sock_orphan(sk);
/*
 * proceed with releasing
 * the socket
 */

The proposal it to make sock_orphan before detaching the callback
in netlink_release() and to check for the sock to be SOCK_DEAD in
netlink_dump_start() before setting a new callback.

Signed-off-by: Denis Lunev <den@openvz.org>
Signed-off-by: Kirill Korotaev <dev@openvz.org>
Signed-off-by: Pavel Emelianov <xemul@openvz.org>
Acked-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[IrDA]: Correctly handling socket error
Olaf Kirch [Wed, 18 Apr 2007 22:07:22 +0000 (15:07 -0700)]
[IrDA]: Correctly handling socket error

This patch fixes an oops first reported in mid 2006 - see
http://lkml.org/lkml/2006/8/29/358 The cause of this bug report is that
when an error is signalled on the socket, irda_recvmsg_stream returns
without removing a local wait_queue variable from the socket's sk_sleep
queue. This causes havoc further down the road.

In response to this problem, a patch was made that invoked sock_orphan on
the socket when receiving a disconnect indication. This is not a good fix,
as this sets sk_sleep to NULL, causing applications sleeping in recvmsg
(and other places) to oops.

This is against the latest net-2.6 and should be considered for -stable
inclusion.

Signed-off-by: Olaf Kirch <olaf.kirch@oracle.com>
Signed-off-by: Samuel Ortiz <samuel@sortiz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SCTP]: Do not interleave non-fragments when in partial delivery
Vlad Yasevich [Wed, 18 Apr 2007 21:11:06 +0000 (14:11 -0700)]
[SCTP]: Do not interleave non-fragments when in partial delivery

The way partial delivery is currently implemnted, it is possible to
intereleave a message (either from another steram, or unordered) that
is not part of partial delivery process.  The only way to this is for
a message to not be a fragment and be 'in order' or unorderd for a
given stream.  This will result in bypassing the reassembly/ordering
queues where things live duing partial delivery, and the
message will be delivered to the socket in the middle of partial delivery.

This is a two-fold problem, in that:
1.  the app now must check the stream-id and flags which it may not
be doing.
2.  this clearing partial delivery state from the association and results
in ulp hanging.

This patch is a band-aid over a much bigger problem in that we
don't do stream interleave.

Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[IPSEC] af_key: Fix thinko in pfkey_xfrm_policy2msg()
David S. Miller [Wed, 18 Apr 2007 04:48:10 +0000 (21:48 -0700)]
[IPSEC] af_key: Fix thinko in pfkey_xfrm_policy2msg()

Make sure to actually assign the determined mode to
rq->sadb_x_ipsecrequest_mode.

Noticed by Joe Perches.

Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Tue, 17 Apr 2007 23:51:32 +0000 (16:51 -0700)]
Merge /pub/scm/linux/kernel/git/davem/net-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
  [BRIDGE]: Unaligned access when comparing ethernet addresses
  [SCTP]: Unmap v4mapped addresses during SCTP_BINDX_REM_ADDR operation.
  [SCTP]: Fix assertion (!atomic_read(&sk->sk_rmem_alloc)) failed message
  [NET]: Set a separate lockdep class for neighbour table's proxy_queue
  [NET]: Fix UDP checksum issue in net poll mode.
  [KEY]: Fix conversion between IPSEC_MODE_xxx and XFRM_MODE_xxx.
  [NET]: Get rid of alloc_skb_from_cache

17 years agoMerge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband
Linus Torvalds [Tue, 17 Apr 2007 23:50:59 +0000 (16:50 -0700)]
Merge branch 'for-linus' of /linux/kernel/git/roland/infiniband

* 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband:
  IB/mthca: Fix data corruption after FMR unmap on Sinai