Re: Linux 2.6.23.6

2007-11-16 Thread Greg Kroah-Hartman
diff --git a/Makefile b/Makefile
index e11814e..798ffe9 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 6
 SUBLEVEL = 23
-EXTRAVERSION = .5
+EXTRAVERSION = .6
 NAME = Arr Matey! A Hairy Bilge Rat!
 
 # *DOCUMENTATION*
diff --git a/drivers/acpi/sleep/main.c b/drivers/acpi/sleep/main.c
index 2cbb9aa..37b651e 100644
--- a/drivers/acpi/sleep/main.c
+++ b/drivers/acpi/sleep/main.c
@@ -170,8 +170,8 @@ static int acpi_pm_finish(suspend_state_t pm_state)
 {
u32 acpi_state = acpi_target_sleep_state;
 
-   acpi_leave_sleep_state(acpi_state);
acpi_disable_wakeup_device(acpi_state);
+   acpi_leave_sleep_state(acpi_state);
 
/* reset firmware waking vector */
acpi_set_firmware_waking_vector((acpi_physical_address) 0);
@@ -256,8 +256,8 @@ static int acpi_hibernation_enter(void)
 
 static void acpi_hibernation_finish(void)
 {
-   acpi_leave_sleep_state(ACPI_STATE_S4);
acpi_disable_wakeup_device(ACPI_STATE_S4);
+   acpi_leave_sleep_state(ACPI_STATE_S4);
 
/* reset firmware waking vector */
acpi_set_firmware_waking_vector((acpi_physical_address) 0);
@@ -389,6 +389,7 @@ static void acpi_power_off(void)
/* acpi_sleep_prepare(ACPI_STATE_S5) should have already been called */
printk("%s called\n", __FUNCTION__);
local_irq_disable();
+   acpi_enable_wakeup_device(ACPI_STATE_S5);
acpi_enter_sleep_state(ACPI_STATE_S5);
 }
 
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index c168203..d684208 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -41,6 +41,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -231,6 +232,7 @@ static void ahci_freeze(struct ata_port *ap);
 static void ahci_thaw(struct ata_port *ap);
 static void ahci_error_handler(struct ata_port *ap);
 static void ahci_vt8251_error_handler(struct ata_port *ap);
+static void ahci_p5wdh_error_handler(struct ata_port *ap);
 static void ahci_post_internal_cmd(struct ata_queued_cmd *qc);
 static int ahci_port_resume(struct ata_port *ap);
 static unsigned int ahci_fill_sg(struct ata_queued_cmd *qc, void *cmd_tbl);
@@ -329,6 +331,40 @@ static const struct ata_port_operations ahci_vt8251_ops = {
.port_stop  = ahci_port_stop,
 };
 
+static const struct ata_port_operations ahci_p5wdh_ops = {
+   .port_disable   = ata_port_disable,
+
+   .check_status   = ahci_check_status,
+   .check_altstatus= ahci_check_status,
+   .dev_select = ata_noop_dev_select,
+
+   .tf_read= ahci_tf_read,
+
+   .qc_prep= ahci_qc_prep,
+   .qc_issue   = ahci_qc_issue,
+
+   .irq_clear  = ahci_irq_clear,
+   .irq_on = ata_dummy_irq_on,
+   .irq_ack= ata_dummy_irq_ack,
+
+   .scr_read   = ahci_scr_read,
+   .scr_write  = ahci_scr_write,
+
+   .freeze = ahci_freeze,
+   .thaw   = ahci_thaw,
+
+   .error_handler  = ahci_p5wdh_error_handler,
+   .post_internal_cmd  = ahci_post_internal_cmd,
+
+#ifdef CONFIG_PM
+   .port_suspend   = ahci_port_suspend,
+   .port_resume= ahci_port_resume,
+#endif
+
+   .port_start = ahci_port_start,
+   .port_stop  = ahci_port_stop,
+};
+
 static const struct ata_port_info ahci_port_info[] = {
/* board_ahci */
{
@@ -1176,6 +1212,52 @@ static int ahci_vt8251_hardreset(struct ata_port *ap, 
unsigned int *class,
return rc ?: -EAGAIN;
 }
 
+static int ahci_p5wdh_hardreset(struct ata_port *ap, unsigned int *class,
+   unsigned long deadline)
+{
+   struct ahci_port_priv *pp = ap->private_data;
+   u8 *d2h_fis = pp->rx_fis + RX_FIS_D2H_REG;
+   struct ata_taskfile tf;
+   int rc;
+
+   ahci_stop_engine(ap);
+
+   /* clear D2H reception area to properly wait for D2H FIS */
+   ata_tf_init(ap->device, &tf);
+   tf.command = 0x80;
+   ata_tf_to_fis(&tf, 0, 0, d2h_fis);
+
+   rc = sata_port_hardreset(ap, sata_ehc_deb_timing(&ap->eh_context),
+deadline);
+
+   ahci_start_engine(ap);
+
+   if (rc || ata_port_offline(ap))
+   return rc;
+
+   /* spec mandates ">= 2ms" before checking status */
+   msleep(150);
+
+   /* The pseudo configuration device on SIMG4726 attached to
+* ASUS P5W-DH Deluxe doesn't send signature FIS after
+* hardreset if no device is attached to the first downstream
+* port && the pseudo device locks up on SRST w/ PMP==0.  To
+* work around this, wait for !BSY only briefly.  If BSY isn't
+* cleared, perform CLO and proceed to IDENTIFY (achieved by
+* ATA_LFLAG_NO_SRST and ATA_LFLAG_ASSUME_ATA).
+*
+* Wait for two seconds.  Devices attached

Linux 2.6.23.6

2007-11-16 Thread Greg Kroah-Hartman
We (the -stable team) are announcing the release of the 2.6.23.6 kernel.
It contains a number of bugfixes for drivers other than networking
(networking driver fixes were in 2.6.23.5).

I'll also be replying to this message with a copy of the patch between
2.6.23.5 and 2.6.23.6

The updated 2.6.23.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.23.y.git
and can be browsed at the normal kernel.org git web browser:

http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.23.y.git;a=summary

thanks,

greg k-h



 Makefile|2 
 drivers/acpi/sleep/main.c   |5 -
 drivers/ata/ahci.c  |  143 
 drivers/ata/libata-core.c   |9 +-
 drivers/ata/libata-eh.c |   32 +--
 drivers/char/drm/i915_irq.c |2 
 drivers/char/drm/radeon_cp.c|5 -
 drivers/char/drm/radeon_drv.h   |1 
 drivers/char/moxa.c |4 
 drivers/char/rocket.c   |   14 ++-
 drivers/hwmon/lm87.c|4 
 drivers/hwmon/w83627hf.c|   78 +
 drivers/ide/pci/cs5535.c|2 
 drivers/ide/pci/serverworks.c   |1 
 drivers/ide/pci/siimage.c   |2 
 drivers/infiniband/core/uverbs_cmd.c|8 +
 drivers/infiniband/hw/mthca/mthca_cmd.c |6 +
 drivers/isdn/hardware/avm/b1.c  |   28 ++
 drivers/isdn/hardware/avm/c4.c  |   14 ++-
 drivers/md/bitmap.c |2 
 drivers/md/dm-delay.c   |2 
 drivers/md/dm.c |4 
 drivers/md/raid5.c  |   17 +++
 drivers/pci/msi.c   |2 
 drivers/scsi/hptiop.c   |5 -
 drivers/usb/core/hcd.h  |8 +
 drivers/usb/core/hub.c  |   15 +++
 drivers/usb/core/quirks.c   |   81 --
 drivers/usb/core/urb.c  |2 
 drivers/usb/gadget/ether.c  |   12 ++
 drivers/usb/host/ehci-hcd.c |8 +
 drivers/usb/serial/generic.c|7 -
 drivers/video/platinumfb.c  |   48 +-
 include/linux/ide.h |7 +
 include/linux/libata.h  |2 
 include/linux/usb/quirks.h  |7 -
 sound/core/Makefile |3 
 sound/core/memalloc.c   |6 +
 sound/pci/emu10k1/emumixer.c|4 
 sound/pci/hda/patch_sigmatel.c  |   29 --
 sound/pci/rme9652/hdsp.c|3 
 sound/usb/usbmixer.c|2 
 42 files changed, 419 insertions(+), 217 deletions(-)

Summary of changes from v2.6.23.5 to v2.6.23.6
==

Alan Stern (2):
  USB: remove USB_QUIRK_NO_AUTOSUSPEND
  USB: mutual exclusion for EHCI init and port resets

Alexey Starikovskiy (2):
  ACPI: sleep: Fix GPE suspend cleanup
  ACPI: suspend: Wrong order of GPE restore.

Benedikt Spranger (1):
  usb-gadget-ether: prevent oops caused by error interrupt race

Benjamin Herrenschmidt (4):
  POWERPC: Fix platinumfb framebuffer
  ide: Add ide_get_paired_drive() helper
  ide: Fix siimage driver accessing beyond array boundary
  ide: Fix cs5535 driver accessing beyond array boundary

Dan Williams (1):
  md: raid5: fix clearing of biofill operations

Dave Airlie (2):
  i915: fix vbl swap allocation size.
  radeon: set the address to access the GART table on the CPU side correctly

Greg Kroah-Hartman (1):
  Linux 2.6.23.6

HighPoint Linux Team (1):
  hptiop: avoid buffer overflow when returning sense data

Jean Delvare (4):
  hwmon/w83627hf: Fix setting fan min right after driver load
  hwmon/w83627hf: Don't assume bank 0
  hwmon/lm87: Fix a division by zero
  hwmon/lm87: Disable VID when it should be

Jiri Kosina (1):
  USB: usbserial - fix potential deadlock between write() and IRQ

Jiri Slaby (2):
  Char: rocket, fix dynamic_dev tty
  Char: moxa, fix and optimise empty timer

Jun'ichi Nomura (1):
  dm: fix thaw_bdev

Karsten Keil (2):
  i4l: Fix random hard freeze with AVM c4 card
  i4l: fix random freezes with AVM B1 drivers

Milan Broz (1):
  dm delay: fix status

NeilBrown (1):
  md: fix an unsigned compare to allow creation of bitmaps with v1.0 
metadata

Oliver Neukum (1):
  USB: add URB_FREE_BUFFER to permissible flags

Roland Dreier (3):
  IB/uverbs: Fix checking of userspace object ownership
  IB/mthca: Use mmiowb() to avoid firmware commands getting jumbled up
  MSI: Use correct data offset for 32-bit MSI in read_msi_msg()

Russ Cox (1):
  ALSA: fix selector unit bug affecting some USB speakerphones

Takashi Iwai (5):
  ALSA: hda-codec - Avoid zero NID i