]> pilppa.org Git - linux-2.6-omap-h63xx.git/log
linux-2.6-omap-h63xx.git
17 years agoide: fix hwif-s initialization
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:39 +0000 (20:33 +0200)]
ide: fix hwif-s initialization

* Add ide_hwifs[] entry initialization to ide_find_port_slot()
  and remove ide_init_port_data() calls from host drivers.

* Unexport ide_init_port_data().

* Remove no longer needed init_ide_data().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: move PIO blacklist to ide-pio-blacklist.c
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:39 +0000 (20:33 +0200)]
ide: move PIO blacklist to ide-pio-blacklist.c

Move PIO blacklist to ide-pio-blacklist.c.

While at it:

- fix comment

- fix whitespace damage

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: remove no longer used ide_pio_timings[]
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:39 +0000 (20:33 +0200)]
ide: remove no longer used ide_pio_timings[]

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: move ide_pio_cycle_time() to ide-timings.c
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:39 +0000 (20:33 +0200)]
ide: move ide_pio_cycle_time() to ide-timings.c

All ide_pio_cycle_time() users already select CONFIG_IDE_TIMINGS
so move the function from ide-lib.c to ide-timings.c.

While at it:

- convert ide_pio_cycle_time() to use ide_timing_find_mode()

- cleanup ide_pio_cycle_time() a bit

There should be no functional changes caused by this patch.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide-pmac: convert to use ide_timing_find_mode()
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:38 +0000 (20:33 +0200)]
ide-pmac: convert to use ide_timing_find_mode()

Also update my Copyrights while at it.

There should be no functional changes caused by this patch.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide-mpc8xx: convert to use ide_timing_find_mode()
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:38 +0000 (20:33 +0200)]
ide-mpc8xx: convert to use ide_timing_find_mode()

Also fix (disabled) debugging code while at it.

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agosl82c105: convert to use ide_timing_find_mode()
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:38 +0000 (20:33 +0200)]
sl82c105: convert to use ide_timing_find_mode()

There should be no functional changes caused by this patch.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agocy82c693: convert to use ide_timing_find_mode()
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:38 +0000 (20:33 +0200)]
cy82c693: convert to use ide_timing_find_mode()

There should be no functional changes caused by this patch.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agocmd64x: convert to use ide_timing_find_mode()
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:38 +0000 (20:33 +0200)]
cmd64x: convert to use ide_timing_find_mode()

There should be no functional changes caused by this patch.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agocmd640: convert to use ide_timing_find_mode()
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:38 +0000 (20:33 +0200)]
cmd640: convert to use ide_timing_find_mode()

There should be no functional changes caused by this patch.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoalim15x3: convert to use ide_timing_find_mode()
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:37 +0000 (20:33 +0200)]
alim15x3: convert to use ide_timing_find_mode()

There should be no functional changes caused by this patch.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoqd65xx: convert to use ide_timing_find_mode()
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:37 +0000 (20:33 +0200)]
qd65xx: convert to use ide_timing_find_mode()

There should be no functional changes caused by this patch.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoht6560b: convert to use ide_timing_find_mode()
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:37 +0000 (20:33 +0200)]
ht6560b: convert to use ide_timing_find_mode()

There should be no functional changes caused by this patch.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoali14xx: convert to use ide_timing_find_mode()
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:37 +0000 (20:33 +0200)]
ali14xx: convert to use ide_timing_find_mode()

There should be no functional changes caused by this patch.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: convert ide-timing.h to ide-timings.c library (take 2)
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:37 +0000 (20:33 +0200)]
ide: convert ide-timing.h to ide-timings.c library (take 2)

* Don't include ide-timing.h in cs5535 and sis5513 host drivers
  (they don't need it currently).

* Convert ide-timing.h to ide-timings.c library and add CONFIG_IDE_TIMINGS
  config option to be selected by host drivers using the library.

While at it:

- fix ide_timing_find_mode() placement

v2:
* Add missing EXPORT_SYMBOLs. (Stephen Rothwell <sfr@canb.auug.org.au>)

There should be no functional changes caused by this patch.

Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: checkpatch.pl fixes for ide-timing.h
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:36 +0000 (20:33 +0200)]
ide: checkpatch.pl fixes for ide-timing.h

Also fix placement of comments in ide_timing_compute() while at it.

There should be no functional changes caused by this patch
(md5sum was verified to be the same before/after the patch).

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: remove XFER_* masks from ide-timing.h
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:36 +0000 (20:33 +0200)]
ide: remove XFER_* masks from ide-timing.h

* Check requested xfer mode against xfer modes instead of XFER_* masks
  in ide_timing_compute() and cs5535.c::cs5535_set_speed().

* Remove XFER_[MODE,MWDMA,EPIO,PIO] masks.

There should be no functional changes caused by this patch.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: move some bits from ide-timing.h to <linux/ide.h>
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:36 +0000 (20:33 +0200)]
ide: move some bits from ide-timing.h to <linux/ide.h>

Move struct ide_timing and IDE_TIMING_* defines to <linux/ide.h>
from drivers/ide/ide-timing.h.

While at it:

- use u8/u16 instead of short for struct ide_timing fields

- use enum for IDE_TIMING_*

There should be no functional changes caused by this patch.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: use u8 for xfer modes in ide-timing.h
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:36 +0000 (20:33 +0200)]
ide: use u8 for xfer modes in ide-timing.h

There should be no functional changes caused by this patch.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: remove unused XFER_UDMA_SLOW
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:36 +0000 (20:33 +0200)]
ide: remove unused XFER_UDMA_SLOW

Remove unused XFER_UDMA_SLOW from ide_timing[].

While at it:

- fix re-defining XFER_PIO_5 (no need to define it in ide-timing.h as
  it is defined in <linux/ata.h> which is included by <linux/hdreg.h>)

- fix whitespace damage

There should be no functional changes caused by this patch.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: remove needless includes from ide-lib.c
Bartlomiej Zolnierkiewicz [Wed, 16 Jul 2008 18:33:35 +0000 (20:33 +0200)]
ide: remove needless includes from ide-lib.c

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoBAST: Remove old IDE driver
Ben Dooks [Fri, 20 Jun 2008 18:53:35 +0000 (20:53 +0200)]
BAST: Remove old IDE driver

Remove the old BAST IDE driver, as we are now using the platform-pata
support.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: use the dma safe check for REQ_TYPE_ATA_PC
FUJITA Tomonori [Wed, 16 Jul 2008 18:33:35 +0000 (20:33 +0200)]
ide: use the dma safe check for REQ_TYPE_ATA_PC

This uses the dma safe check for REQ_TYPE_ATA_PC. The dma safe check
is used for only sg requests but it should be used for other non fs
commands.

This uses blk_queue_update_dma_pad to make the intention clear though
ide don't use the blk APIs so it doesn't change anything.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Acked-by: Borislav Petkov <petkovbb@gmail.com>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Tejun Heo <htejun@gmail.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: avoid DMA on the stack for REQ_TYPE_ATA_PC
FUJITA Tomonori [Wed, 16 Jul 2008 18:33:35 +0000 (20:33 +0200)]
ide: avoid DMA on the stack for REQ_TYPE_ATA_PC

Some REQ_TYPE_ATA_PC commands uses the stack buffers for DMA, which
leads to memory corruption on a non-coherent platform.

With regard to alignment and padding, ide-cd has the the dma safe
check for sg requests and REQ_TYPE_ATA_PC. This adds the stack buffer
check to that check.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Acked-by: Borislav Petkov <petkovbb@gmail.com>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Tejun Heo <htejun@gmail.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: it821x in pass-through mode segfaults in 2.6.26-stable
Dimitri Gorokhovik [Wed, 16 Jul 2008 18:33:34 +0000 (20:33 +0200)]
ide: it821x in pass-through mode segfaults in 2.6.26-stable

The driver of ITE8212 in pass-through mode (it8212.noraid=1 on cmndline)
attempts to use the field `.dma_host_set' of the struct ide_dma_ops in
`ide_config_drive_speed' which is set to NULL by default.

So give a value to all fields of the struct ide_dma_ops.

Signed-off-by: Dimitri Gorokhovik <dimitri.gorokhovik@free.fr>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agohwmon: (w83l786ng) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:18 +0000 (19:30 +0200)]
hwmon: (w83l786ng) Convert to a new-style i2c driver

The new-style w83l786ng driver implements the optional detect()
callback to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Kevin Lo <kevlo@kevlo.org>
17 years agohwmon: (w83l785ts) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:18 +0000 (19:30 +0200)]
hwmon: (w83l785ts) Convert to a new-style i2c driver

The new-style w83l785ts driver implements the optional detect()
callback to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agohwmon: (w83793) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:17 +0000 (19:30 +0200)]
hwmon: (w83793) Convert to a new-style i2c driver

The new-style w83793 driver implements the optional detect()
callback to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agohwmon: (w83792d) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:17 +0000 (19:30 +0200)]
hwmon: (w83792d) Convert to a new-style i2c driver

The new-style w83792d driver implements the optional detect()
callback to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agohwmon: (w83791d) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:17 +0000 (19:30 +0200)]
hwmon: (w83791d) Convert to a new-style i2c driver

The new-style w83791d driver implements the optional detect()
callback to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Marc Hulsman <m.hulsman@tudelft.nl>
17 years agohwmon: (thmc50) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:16 +0000 (19:30 +0200)]
hwmon: (thmc50) Convert to a new-style i2c driver

The new-style thmc50 driver implements the optional detect()
callback to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Krzysztof Helt <krzysztof.h1@wp.pl>
17 years agohwmon: (smsc47m192) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:16 +0000 (19:30 +0200)]
hwmon: (smsc47m192) Convert to a new-style i2c driver

The new-style smsc47m192 driver implements the optional detect()
callback to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Hartmut Rick <linux@rick.claranet.de>
17 years agohwmon: (max6650) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:16 +0000 (19:30 +0200)]
hwmon: (max6650) Convert to a new-style i2c driver

The new-style max6650 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Hans J. Koch <hjk@linutronix.de>
17 years agohwmon: (max1619) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:15 +0000 (19:30 +0200)]
hwmon: (max1619) Convert to a new-style i2c driver

The new-style max1619 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Alexey Fisher <fishor@mail.ru>
17 years agohwmon: (lm93) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:15 +0000 (19:30 +0200)]
hwmon: (lm93) Convert to a new-style i2c driver

The new-style lm93 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Mark M. Hoffman <mhoffman@lightlink.com>
Cc: Eric J. Bowersox <ericb@aspsys.com>
Cc: Carsten Emde <cbe@osadl.org>
Cc: Hans J. Koch <hjk@linutronix.de>
17 years agohwmon: (lm92) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:15 +0000 (19:30 +0200)]
hwmon: (lm92) Convert to a new-style i2c driver

The new-style lm92 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agohwmon: (lm90) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:15 +0000 (19:30 +0200)]
hwmon: (lm90) Convert to a new-style i2c driver

The new-style lm90 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agohwmon: (lm87) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:14 +0000 (19:30 +0200)]
hwmon: (lm87) Convert to a new-style i2c driver

The new-style lm87 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Ben Hutchings <bhutchings@solarflare.com>
17 years agohwmon: (lm83) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:14 +0000 (19:30 +0200)]
hwmon: (lm83) Convert to a new-style i2c driver

The new-style lm83 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agohwmon: (lm80) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:14 +0000 (19:30 +0200)]
hwmon: (lm80) Convert to a new-style i2c driver

The new-style lm80 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agohwmon: (lm77) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:13 +0000 (19:30 +0200)]
hwmon: (lm77) Convert to a new-style i2c driver

The new-style lm77 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Andras Bali <drewie@freemail.hu>
17 years agohwmon: (lm63) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:13 +0000 (19:30 +0200)]
hwmon: (lm63) Convert to a new-style i2c driver

The new-style lm63 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agohwmon: (gl520sm) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:13 +0000 (19:30 +0200)]
hwmon: (gl520sm) Convert to a new-style i2c driver

The new-style gl520sm driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Maarten Deprez <maartendeprez@users.sourceforge.net>
17 years agohwmon: (gl518sm) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:13 +0000 (19:30 +0200)]
hwmon: (gl518sm) Convert to a new-style i2c driver

The new-style gl518sm driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agohwmon: (fscpos) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:12 +0000 (19:30 +0200)]
hwmon: (fscpos) Convert to a new-style i2c driver

The new-style fscpos driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agohwmon: (fschmd) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:12 +0000 (19:30 +0200)]
hwmon: (fschmd) Convert to a new-style i2c driver

The new-style fschmd driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Hans de Goede <j.w.r.degoede@hhs.nl>
17 years agohwmon: (fscher) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:12 +0000 (19:30 +0200)]
hwmon: (fscher) Convert to a new-style i2c driver

The new-style fscher driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Reinhard Nissl <rnissl@gmx.de>
17 years agohwmon: (f75375s) Drop legacy i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:11 +0000 (19:30 +0200)]
hwmon: (f75375s) Drop legacy i2c driver

Drop the legacy f75375s i2c driver, and add a detect callback to the
new-style i2c driver to achieve the same functionality.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Acked-by: Riku Voipio <riku.voipio@movial.fi>
17 years agohwmon: (ds1621) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:11 +0000 (19:30 +0200)]
hwmon: (ds1621) Convert to a new-style i2c driver

The new-style ds1621 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agohwmon: (atxp1) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:11 +0000 (19:30 +0200)]
hwmon: (atxp1) Convert to a new-style i2c driver

The new-style atxp1 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agohwmon: (asb100) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:11 +0000 (19:30 +0200)]
hwmon: (asb100) Convert to a new-style i2c driver

The new-style asb100 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agohwmon: (adt7473) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:10 +0000 (19:30 +0200)]
hwmon: (adt7473) Convert to a new-style i2c driver

The new-style adt7473 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Darrick J. Wong <djwong@us.ibm.com>
17 years agohwmon: (adt7470) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:10 +0000 (19:30 +0200)]
hwmon: (adt7470) Convert to a new-style i2c driver

The new-style adt7470 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Darrick J. Wong <djwong@us.ibm.com>
17 years agohwmon: (ads7828) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:10 +0000 (19:30 +0200)]
hwmon: (ads7828) Convert to a new-style i2c driver

The new-style ads7828 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agohwmon: (adm9240) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:09 +0000 (19:30 +0200)]
hwmon: (adm9240) Convert to a new-style i2c driver

The new-style adm9240 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Grant Coady <gcoady.lk@gmail.com>
17 years agohwmon: (adm1031) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:09 +0000 (19:30 +0200)]
hwmon: (adm1031) Convert to a new-style i2c driver

The new-style adm1031 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Alexandre d'Alton <alex@alexdalton.org>
17 years agohwmon: (adm1029) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:09 +0000 (19:30 +0200)]
hwmon: (adm1029) Convert to a new-style i2c driver

The new-style adm1029 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Corentin Labbe <corentin.labbe@geomatys.fr>
17 years agohwmon: (adm1026) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:08 +0000 (19:30 +0200)]
hwmon: (adm1026) Convert to a new-style i2c driver

The new-style adm1026 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agohwmon: (adm1025) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:08 +0000 (19:30 +0200)]
hwmon: (adm1025) Convert to a new-style i2c driver

The new-style adm1025 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agohwmon: (adm1021) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:08 +0000 (19:30 +0200)]
hwmon: (adm1021) Convert to a new-style i2c driver

The new-style adm1021 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agohwmon: (ad7418) Convert to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:08 +0000 (19:30 +0200)]
hwmon: (ad7418) Convert to a new-style i2c driver

The ad7418 driver is only used on embedded platforms where i2c
devices can easily be declared in platform code. Thus a new-style
i2c driver makes perfect sense. This lets us get rid of quirky
detection code (these chips have no identification registers) and
shrinks the binary driver size by 38%.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Alessandro Zummo <a.zummo@towertech.it>
17 years agow1/ds2482: Convert to a new-style driver
Jean Delvare [Wed, 16 Jul 2008 17:30:07 +0000 (19:30 +0200)]
w1/ds2482: Convert to a new-style driver

The new-style ds2482 driver implements the optional detect() callback
to cover the use cases of the legacy driver. I'm curious if anyone
really needs this though, so it might be removed in the feature.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agoi2c: Convert the max6875 driver to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:07 +0000 (19:30 +0200)]
i2c: Convert the max6875 driver to a new-style i2c driver

The new-style max6875 driver implements the optional detect() callback
to cover the use cases of the legacy driver. I'm curious if anyone
really needs this though, so it might be removed in the feature.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agoi2c: Convert the pca9539 driver to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:07 +0000 (19:30 +0200)]
i2c: Convert the pca9539 driver to a new-style i2c driver

The new-style pca9539 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Warning: users will now have to use the force module parameter to get
the driver to attach to their device. That's not a bad thing as these
devices can't be detected anyway.

Note that this doesn't change the fact that this driver is deprecated
in favor of gpio/pca953x.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agoi2c: Convert the pcf8575 driver to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:06 +0000 (19:30 +0200)]
i2c: Convert the pcf8575 driver to a new-style i2c driver

The new-style pcf8575 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Warning: users will now have to use the force module parameter to get
the driver to attach to their device. That's not a bad thing as these
devices can't be detected anyway.

Note that this doesn't change the fact that this driver is deprecated
in favor of gpio/pcf857x.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agoi2c: Convert the pcf8574 driver to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:06 +0000 (19:30 +0200)]
i2c: Convert the pcf8574 driver to a new-style i2c driver

The new-style pcf8574 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Warning: users will now have to use the force module parameter to get
the driver to attach to their device. That's not a bad thing as these
devices can't be detected anyway.

Note that this doesn't change the fact that this driver is deprecated
in favor of gpio/pcf857x.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agoi2c: Convert the pcf8591 driver to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:06 +0000 (19:30 +0200)]
i2c: Convert the pcf8591 driver to a new-style i2c driver

The new-style pcf8591 driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agoi2c: Convert the eeprom driver to a new-style i2c driver
Jean Delvare [Wed, 16 Jul 2008 17:30:05 +0000 (19:30 +0200)]
i2c: Convert the eeprom driver to a new-style i2c driver

The new-style eeprom driver implements the optional detect() callback
to cover the use cases of the legacy driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
17 years agoi2c: Clear i2c_adapter.dev on adapter removal
Jean Delvare [Wed, 16 Jul 2008 17:30:05 +0000 (19:30 +0200)]
i2c: Clear i2c_adapter.dev on adapter removal

Clear i2c_adapter.dev on adapter removal. This makes it possible to
re-add the adapter at a later point, which some drivers
(i2c-amd756-s4882, i2c-nforce2-s4985) actually do.

This fixes a bug reported by John Stultz here:
  http://lkml.org/lkml/2008/7/15/720
and by Ingo Molar there:
  http://lkml.org/lkml/2008/7/16/78

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: John Stultz <johnstul@us.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
17 years agox86: fix kernel_physical_mapping_init() for large x86 systems
Jack Steiner [Wed, 16 Jul 2008 16:11:59 +0000 (11:11 -0500)]
x86: fix kernel_physical_mapping_init() for large x86 systems

Fix bug in kernel_physical_mapping_init() that causes kernel
page table to be built incorrectly for systems with greater
than 512GB of memory.

Signed-off-by: Jack Steiner <steiner@sgi.com>
Cc: linux-mm@kvack.org
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoPCI: remove unnecessary volatile in PCIe hotplug struct controller
Ming Lei [Wed, 16 Jul 2008 14:54:30 +0000 (22:54 +0800)]
PCI: remove unnecessary volatile in PCIe hotplug struct controller

Proper memory barriers have been added to order accesses
to ->cmd_busy, so volatile declaration for cmd_busy can
be removed.

Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
17 years agoFix 'make clean' and .gitignore for firmware/ directory.
David Woodhouse [Wed, 16 Jul 2008 05:54:04 +0000 (22:54 -0700)]
Fix 'make clean' and .gitignore for firmware/ directory.

Provide a .gitignore file, and fix a typo which prevented some of the
generated binary files from being removed on 'make clean'.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Reported-and-tested-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoMerge branch 'linus' into x86/kprobes
Ingo Molnar [Wed, 16 Jul 2008 11:11:29 +0000 (13:11 +0200)]
Merge branch 'linus' into x86/kprobes

17 years agoALSA: hda - Align BDL position adjustment parameter
Takashi Iwai [Tue, 15 Jul 2008 14:28:43 +0000 (16:28 +0200)]
ALSA: hda - Align BDL position adjustment parameter

It seems NVidia and other hardwares require the alignment for period
update timing.  For satisfying this condition, align the position
adjustment for delayed wake-up to the initial bdl_pos_adj value.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
17 years agox86, paravirt-spinlocks: fix boot hang
Ingo Molnar [Wed, 9 Jul 2008 13:42:09 +0000 (15:42 +0200)]
x86, paravirt-spinlocks: fix boot hang

the paravirt-spinlock patches caused a boot hang with this config:

 http://redhat.com/~mingo/misc/config-Wed_Jul__9_14_47_04_CEST_2008.bad

i have bisected it down to:

|  commit e17b58c2e85bc2ad2afc07fb8d898017c2b75ed1
|  Author: Jeremy Fitzhardinge <jeremy@goop.org>
|  Date:   Mon Jul 7 12:07:53 2008 -0700
|
|      xen: implement Xen-specific spinlocks

i.e. applying that patch alone causes the hang. The hang happens in the
ftrace self-test:

  initcall utsname_sysctl_init+0x0/0x19 returned 0 after 0 msecs
  calling  init_sched_switch_trace+0x0/0x4c
  Testing tracer sched_switch: PASSED
  initcall init_sched_switch_trace+0x0/0x4c returned 0 after 167 msecs
  calling  init_function_trace+0x0/0x12
  Testing tracer ftrace:
  [hard hang]

it should have continued like this:

  Testing tracer ftrace: PASSED
  initcall init_function_trace+0x0/0x12 returned 0 after 198 msecs
  calling  init_irqsoff_tracer+0x0/0x14
  Testing tracer irqsoff: PASSED
  initcall init_irqsoff_tracer+0x0/0x14 returned 0 after 3 msecs
  calling  init_mmio_trace+0x0/0x12
  initcall init_mmio_trace+0x0/0x12 returned 0 after 0 msecs

the problem is that such lowlevel primitives as spinlocks should never
be built with -pg (which ftrace does). Marking paravirt.o as non-pg and
marking all spinlock ops as always-inline solve the hang.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agox86: paravirt spinlocks, modular build fix
Ingo Molnar [Wed, 9 Jul 2008 12:39:15 +0000 (14:39 +0200)]
x86: paravirt spinlocks, modular build fix

fix:

  MODPOST 408 modules
ERROR: "pv_lock_ops" [net/dccp/dccp.ko] undefined!
ERROR: "pv_lock_ops" [fs/jbd2/jbd2.ko] undefined!
ERROR: "pv_lock_ops" [drivers/media/common/saa7146_vv.ko] undefined!

Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agox86: paravirt spinlocks, !CONFIG_SMP build fixes
Ingo Molnar [Wed, 9 Jul 2008 12:33:33 +0000 (14:33 +0200)]
x86: paravirt spinlocks, !CONFIG_SMP build fixes

Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoxen: implement Xen-specific spinlocks
Jeremy Fitzhardinge [Mon, 7 Jul 2008 19:07:53 +0000 (12:07 -0700)]
xen: implement Xen-specific spinlocks

The standard ticket spinlocks are very expensive in a virtual
environment, because their performance depends on Xen's scheduler
giving vcpus time in the order that they're supposed to take the
spinlock.

This implements a Xen-specific spinlock, which should be much more
efficient.

The fast-path is essentially the old Linux-x86 locks, using a single
lock byte.  The locker decrements the byte; if the result is 0, then
they have the lock.  If the lock is negative, then locker must spin
until the lock is positive again.

When there's contention, the locker spin for 2^16[*] iterations waiting
to get the lock.  If it fails to get the lock in that time, it adds
itself to the contention count in the lock and blocks on a per-cpu
event channel.

When unlocking the spinlock, the locker looks to see if there's anyone
blocked waiting for the lock by checking for a non-zero waiter count.
If there's a waiter, it traverses the per-cpu "lock_spinners"
variable, which contains which lock each CPU is waiting on.  It picks
one CPU waiting on the lock and sends it an event to wake it up.

This allows efficient fast-path spinlock operation, while allowing
spinning vcpus to give up their processor time while waiting for a
contended lock.

[*] 2^16 iterations is threshold at which 98% locks have been taken
according to Thomas Friebel's Xen Summit talk "Preventing Guests from
Spinning Around".  Therefore, we'd expect the lock and unlock slow
paths will only be entered 2% of the time.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Christoph Lameter <clameter@linux-foundation.org>
Cc: Petr Tesarik <ptesarik@suse.cz>
Cc: Virtualization <virtualization@lists.linux-foundation.org>
Cc: Xen devel <xen-devel@lists.xensource.com>
Cc: Thomas Friebel <thomas.friebel@amd.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoxen: use lock-byte spinlock implementation
Jeremy Fitzhardinge [Mon, 7 Jul 2008 19:07:52 +0000 (12:07 -0700)]
xen: use lock-byte spinlock implementation

Switch to using the lock-byte spinlock implementation, to avoid the
worst of the performance hit from ticket locks.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Christoph Lameter <clameter@linux-foundation.org>
Cc: Petr Tesarik <ptesarik@suse.cz>
Cc: Virtualization <virtualization@lists.linux-foundation.org>
Cc: Xen devel <xen-devel@lists.xensource.com>
Cc: Thomas Friebel <thomas.friebel@amd.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoparavirt: introduce a "lock-byte" spinlock implementation
Jeremy Fitzhardinge [Mon, 7 Jul 2008 19:07:51 +0000 (12:07 -0700)]
paravirt: introduce a "lock-byte" spinlock implementation

Implement a version of the old spinlock algorithm, in which everyone
spins waiting for a lock byte.  In order to be compatible with the
ticket-lock's use of a zero initializer, this uses the convention of
'0' for unlocked and '1' for locked.

This algorithm is much better than ticket locks in a virtual
envionment, because it doesn't interact badly with the vcpu scheduler.
If there are multiple vcpus spinning on a lock and the lock is
released, the next vcpu to be scheduled will take the lock, rather
than cycling around until the next ticketed vcpu gets it.

To use this, you must call paravirt_use_bytelocks() very early, before
any spinlocks have been taken.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Christoph Lameter <clameter@linux-foundation.org>
Cc: Petr Tesarik <ptesarik@suse.cz>
Cc: Virtualization <virtualization@lists.linux-foundation.org>
Cc: Xen devel <xen-devel@lists.xensource.com>
Cc: Thomas Friebel <thomas.friebel@amd.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agox86/paravirt: add hooks for spinlock operations
Jeremy Fitzhardinge [Mon, 7 Jul 2008 19:07:50 +0000 (12:07 -0700)]
x86/paravirt: add hooks for spinlock operations

Ticket spinlocks have absolutely ghastly worst-case performance
characteristics in a virtual environment.  If there is any contention
for physical CPUs (ie, there are more runnable vcpus than cpus), then
ticket locks can cause the system to end up spending 90+% of its time
spinning.

The problem is that (v)cpus waiting on a ticket spinlock will be
granted access to the lock in strict order they got their tickets.  If
the hypervisor scheduler doesn't give the vcpus time in that order,
they will burn timeslices waiting for the scheduler to give the right
vcpu some time.  In the worst case it could take O(n^2) vcpu scheduler
timeslices for everyone waiting on the lock to get it, not counting
new cpus trying to take the lock while the log-jam is sorted out.

These hooks allow a paravirt backend to replace the spinlock
implementation.

At the very least, this could revert the implementation back to the
old lock algorithm, which allows the next scheduled vcpu to take the
lock, and has basically fairly good performance.

It also allows the spinlocks to take advantages of the hypervisor
features to make locks more efficient (spin and block, for example).

The cost to native execution is an extra direct call when using a
spinlock function.  There's no overhead if CONFIG_PARAVIRT is turned
off.

The lock structure is fixed at a single "unsigned int", initialized to
zero, but the spinlock implementation can use it as it wishes.

Thanks to Thomas Friebel's Xen Summit talk "Preventing Guests from
Spinning Around" for pointing out this problem.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Christoph Lameter <clameter@linux-foundation.org>
Cc: Petr Tesarik <ptesarik@suse.cz>
Cc: Virtualization <virtualization@lists.linux-foundation.org>
Cc: Xen devel <xen-devel@lists.xensource.com>
Cc: Thomas Friebel <thomas.friebel@amd.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agox86_64: adjust exception frame on paranoid exceptions
Jeremy Fitzhardinge [Sat, 12 Jul 2008 09:22:12 +0000 (02:22 -0700)]
x86_64: adjust exception frame on paranoid exceptions

Exceptions using paranoidentry need to have their exception frames
adjusted explicitly.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years agox86: xen: no need to disable vdso32
Jeremy Fitzhardinge [Sat, 12 Jul 2008 09:22:06 +0000 (02:22 -0700)]
x86: xen: no need to disable vdso32

Now that the vdso32 code can cope with both syscall and sysenter
missing for 32-bit compat processes, just disable the features without
disabling vdso altogether.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years agox86_64: further cleanup of 32-bit compat syscall mechanisms
Jeremy Fitzhardinge [Sat, 12 Jul 2008 09:22:00 +0000 (02:22 -0700)]
x86_64: further cleanup of 32-bit compat syscall mechanisms

AMD only supports "syscall" from 32-bit compat usermode.
Intel and Centaur(?) only support "sysenter" from 32-bit compat usermode.

Set the X86 feature bits accordingly, and set up the vdso in
accordance with those bits.  On the offchance we run on in a 64-bit
environment which supports neither syscall nor sysenter from 32-bit
mode, then fall back to the int $0x80 vdso.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years agox86, xen, vdso: fix build error
Ingo Molnar [Fri, 11 Jul 2008 20:41:34 +0000 (22:41 +0200)]
x86, xen, vdso: fix build error

fix:

   arch/x86/xen/built-in.o: In function `xen_enable_syscall':
   (.cpuinit.text+0xdb): undefined reference to `sysctl_vsyscall32'

Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoxen64: disable 32-bit syscall/sysenter if not supported.
Jeremy Fitzhardinge [Thu, 10 Jul 2008 23:24:08 +0000 (16:24 -0700)]
xen64: disable 32-bit syscall/sysenter if not supported.

Old versions of Xen (3.1 and before) don't support sysenter or syscall
from 32-bit compat userspaces.  If we can't set the appropriate
syscall callback, then disable the corresponding feature bit, which
will cause the vdso32 setup to fall back appropriately.

Linux assumes that syscall is always available to 32-bit userspace,
and installs it by default if sysenter isn't available.  In that case,
we just disable vdso altogether, forcing userspace libc to fall back
to int $0x80.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoRevert "x86_64: there's no need to preallocate level1_fixmap_pgt"
Ingo Molnar [Wed, 9 Jul 2008 20:32:33 +0000 (22:32 +0200)]
Revert "x86_64: there's no need to preallocate level1_fixmap_pgt"

This reverts commit 033786969d1d1b5af12a32a19d3a760314d05329.

Suresh Siddha reported that this broke booting on his 2GB testbox.

Reported-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoBlackfin arch: use local labels and ENDPROC() markings
Mike Frysinger [Wed, 16 Jul 2008 09:07:26 +0000 (17:07 +0800)]
Blackfin arch: use local labels and ENDPROC() markings

Signed-off-by: Mike Frysinger <vapier.adi@gmail.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
17 years agoBlackfin arch: Do not need this dualcore test module in kernel.
Yi Li [Sat, 19 Jul 2008 12:53:46 +0000 (20:53 +0800)]
Blackfin arch: Do not need this dualcore test module in kernel.

Signed-off-by: Yi Li <yi.li@analog.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
17 years agoRevert "suspend, xen: enable PM_SLEEP for CONFIG_XEN"
Ingo Molnar [Wed, 9 Jul 2008 20:17:01 +0000 (22:17 +0200)]
Revert "suspend, xen: enable PM_SLEEP for CONFIG_XEN"

This reverts commit 6fbbec428c8e7bb617da2e8a589af2e97bcf3bc4.

Rafael doesnt like it - it breaks various assumptions.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoxen64: fix build error on 32-bit + !HIGHMEM
Ingo Molnar [Wed, 9 Jul 2008 11:45:33 +0000 (13:45 +0200)]
xen64: fix build error on 32-bit + !HIGHMEM

fix:

arch/x86/xen/enlighten.c: In function 'xen_set_fixmap':
arch/x86/xen/enlighten.c:1127: error: 'FIX_KMAP_BEGIN' undeclared (first use in this function)
arch/x86/xen/enlighten.c:1127: error: (Each undeclared identifier is reported only once
arch/x86/xen/enlighten.c:1127: error: for each function it appears in.)
arch/x86/xen/enlighten.c:1127: error: 'FIX_KMAP_END' undeclared (first use in this function)
make[1]: *** [arch/x86/xen/enlighten.o] Error 1
make: *** [arch/x86/xen/enlighten.o] Error 2

FIX_KMAP_BEGIN is only available on HIGHMEM.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoxen64: fix !HVC_XEN build dependency
Ingo Molnar [Wed, 9 Jul 2008 11:15:03 +0000 (13:15 +0200)]
xen64: fix !HVC_XEN build dependency

fix:

arch/x86/xen/built-in.o: In function `set_page_prot':
enlighten.c:(.text+0x111d): undefined reference to `xen_raw_printk'
arch/x86/xen/built-in.o: In function `xen_start_kernel':
: undefined reference to `xen_raw_console_write'
arch/x86/xen/built-in.o: In function `xen_start_kernel':
: undefined reference to `xen_raw_console_write'

Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoxen: update Kconfig to allow 64-bit Xen
Jeremy Fitzhardinge [Tue, 8 Jul 2008 22:07:17 +0000 (15:07 -0700)]
xen: update Kconfig to allow 64-bit Xen

Allow Xen to be enabled on 64-bit.

Also extend domain size limit from 8 GB (on 32-bit) to 32 GB on 64-bit.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Stephen Tweedie <sct@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoxen: implement Xen write_msr operation
Jeremy Fitzhardinge [Tue, 8 Jul 2008 22:07:16 +0000 (15:07 -0700)]
xen: implement Xen write_msr operation

64-bit uses MSRs for important things like the base for fs and
gs-prefixed addresses.  It's more efficient to use a hypercall to
update these, rather than go via the trap and emulate path.

Other MSR writes are just passed through; in an unprivileged domain
they do nothing, but it might be useful later.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Stephen Tweedie <sct@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoxen64: set up userspace syscall patch
Jeremy Fitzhardinge [Tue, 8 Jul 2008 22:07:15 +0000 (15:07 -0700)]
xen64: set up userspace syscall patch

64-bit userspace expects the vdso to be mapped at a specific fixed
address, which happens to be in the middle of the kernel address
space.  Because we have split user and kernel pagetables, we need to
make special arrangements for the vsyscall mapping to appear in the
kernel part of the user pagetable.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Stephen Tweedie <sct@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoxen64: set up syscall and sysenter entrypoints for 64-bit
Jeremy Fitzhardinge [Tue, 8 Jul 2008 22:07:14 +0000 (15:07 -0700)]
xen64: set up syscall and sysenter entrypoints for 64-bit

We set up entrypoints for syscall and sysenter.  sysenter is only used
for 32-bit compat processes, whereas syscall can be used in by both 32
and 64-bit processes.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Stephen Tweedie <sct@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoxen64: allocate and manage user pagetables
Jeremy Fitzhardinge [Tue, 8 Jul 2008 22:07:13 +0000 (15:07 -0700)]
xen64: allocate and manage user pagetables

Because the x86_64 architecture does not enforce segment limits, Xen
cannot protect itself with them as it does in 32-bit mode.  Therefore,
to protect itself, it runs the guest kernel in ring 3.  Since it also
runs the guest userspace in ring3, the guest kernel must maintain a
second pagetable for its userspace, which does not map kernel space.
Naturally, the guest kernel pagetables map both kernel and userspace.

The userspace pagetable is attached to the corresponding kernel
pagetable via the pgd's page->private field.  It is allocated and
freed at the same time as the kernel pgd via the
paravirt_pgd_alloc/free hooks.

Fortunately, the user pagetable is almost entirely shared with the
kernel pagetable; the only difference is the pgd page itself.  set_pgd
will populate all entries in the kernel pagetable, and also set the
corresponding user pgd entry if the address is less than
STACK_TOP_MAX.

The user pagetable must be pinned and unpinned with the kernel one,
but because the pagetables are aliased, pgd_walk() only needs to be
called on the kernel pagetable.  The user pgd page is then
pinned/unpinned along with the kernel pgd page.

xen_write_cr3 must write both the kernel and user cr3s.

The init_mm.pgd pagetable never has a user pagetable allocated for it,
because it can never be used while running usermode.

One awkward area is that early in boot the page structures are not
available.  No user pagetable can exist at that point, but it
complicates the logic to avoid looking at the page structure.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Stephen Tweedie <sct@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoxen64: save lots of registers
Jeremy Fitzhardinge [Tue, 8 Jul 2008 22:07:12 +0000 (15:07 -0700)]
xen64: save lots of registers

The Xen hypercall interface is allowed to trash any or all of the
argument registers, so we need to be careful that the kernel state
isn't damaged.  On 32-bit kernels, the hypercall parameter registers
same as a regparm function call, so we've got away without explicit
clobbering so far.  The 64-bit ABI defines lots of caller-save
registers, so save them all for safety.  We can trim this set later by
re-distributing the responsibility for saving all these registers.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Stephen Tweedie <sct@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoxen64: implement 64-bit update_descriptor
Jeremy Fitzhardinge [Tue, 8 Jul 2008 22:07:11 +0000 (15:07 -0700)]
xen64: implement 64-bit update_descriptor

64-bit hypercall interface can pass a maddr in one argument rather
than splitting it.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Stephen Tweedie <sct@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoxen64: Clear %fs on xen_load_tls()
Eduardo Habkost [Tue, 8 Jul 2008 22:07:10 +0000 (15:07 -0700)]
xen64: Clear %fs on xen_load_tls()

We need to do this, otherwise we can get a GPF on hypercall return
after TLS descriptor is cleared but %fs is still pointing to it.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Stephen Tweedie <sct@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>