rpms/kernel/F-7 linux-2.6-genirq-fixes.patch, NONE, 1.1 linux-2.6-libata-simplify-init.patch, NONE, 1.1 linux-2.6-ppc-pegasos-via-ata-legacy-irq.patch, NONE, 1.1 linux-2.6-snd-ad1988-fix-spdif-output.patch, NONE, 1.1 linux-2.6-snd-hda-stac92xx-fixes.patch, NONE, 1.1 patch-2.6.22.5-rc1.bz2, NONE, 1.1 kernel-2.6.spec, 1.3325, 1.3326 linux-2.6-acpi-fix-gpe-list-corruption.patch, 1.1, NONE linux-2.6-acpi-fix-older-fadts.patch, 1.1, NONE linux-2.6-hibernation-do-not-try-to-mark-invalid-pfns-as-nosave.patch, 1.1, NONE linux-2.6-irq-dont-mask-interrupts-_reversed_.patch, 1.2, NONE linux-2.6-libata-sb700-sata-ids.patch, 1.1, NONE linux-2.6-lm_sensors-fix-values.patch, 1.1, NONE linux-2.6-net-r8169-fix-polling.patch, 1.1, NONE linux-2.6-serial-revert-platform-conversion.patch, 1.1, NONE linux-2.6-sky2-1-restore-workarounds.patch, 1.1, NONE linux-2.6-sky2-2-carrier-management.patch, 1.1, NONE linux-2.6-sky2-3-check-for-more-work.patch, 1.1, NONE linux-2.6-sky2-4-drop-truncated-packets.patch, 1.1, NONE

Chuck Ebbert (cebbert) fedora-extras-commits at redhat.com
Wed Aug 22 22:31:52 UTC 2007


Author: cebbert

Update of /cvs/pkgs/rpms/kernel/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv13992

Modified Files:
	kernel-2.6.spec 
Added Files:
	linux-2.6-genirq-fixes.patch 
	linux-2.6-libata-simplify-init.patch 
	linux-2.6-ppc-pegasos-via-ata-legacy-irq.patch 
	linux-2.6-snd-ad1988-fix-spdif-output.patch 
	linux-2.6-snd-hda-stac92xx-fixes.patch patch-2.6.22.5-rc1.bz2 
Removed Files:
	linux-2.6-acpi-fix-gpe-list-corruption.patch 
	linux-2.6-acpi-fix-older-fadts.patch 
	linux-2.6-hibernation-do-not-try-to-mark-invalid-pfns-as-nosave.patch 
	linux-2.6-irq-dont-mask-interrupts-_reversed_.patch 
	linux-2.6-libata-sb700-sata-ids.patch 
	linux-2.6-lm_sensors-fix-values.patch 
	linux-2.6-net-r8169-fix-polling.patch 
	linux-2.6-serial-revert-platform-conversion.patch 
	linux-2.6-sky2-1-restore-workarounds.patch 
	linux-2.6-sky2-2-carrier-management.patch 
	linux-2.6-sky2-3-check-for-more-work.patch 
	linux-2.6-sky2-4-drop-truncated-packets.patch 
Log Message:
* Wed Aug 22 2007 Chuck Ebbert <cebbert at redhat.com>
- 2.6.22.5-rc1
- un-revert genirq changes
- add new genirq fixes from upstream
- ALSA: fix ad1988 spdif output
- ALSA: mutiple stac92xx codec fixes
- libata: fix pata_via driver on ppc pegasos platform


linux-2.6-genirq-fixes.patch:

--- NEW FILE linux-2.6-genirq-fixes.patch ---
Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=496634217e5671ed876a0348e9f5b7165e830b20
Commit:     496634217e5671ed876a0348e9f5b7165e830b20
Parent:     963c6527e0a0e285736ad482b8142d098f9c2288
Author:     Thomas Gleixner <tglx at linutronix.de>
AuthorDate: Sun Aug 12 15:46:34 2007 +0000
Committer:  Linus Torvalds <torvalds at woody.linux-foundation.org>
CommitDate: Sun Aug 12 11:05:45 2007 -0700

    genirq: cleanup mismerge artifact
    
    Commit 5a43a066b11ac2fe84cf67307f20b83bea390f83: "genirq: Allow fasteoi
    handler to retrigger disabled interrupts" was erroneously applied to
    handle_level_irq().  This added the irq retrigger / resend functionality
    to the level irq handler.
    
    Revert the offending bits.
    
    Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
    Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
---
 kernel/irq/chip.c |    5 +----
 1 files changed, 1 insertions(+), 4 deletions(-)

diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index 615ce97..f1a73f0 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -352,13 +352,10 @@ handle_level_irq(unsigned int irq, struct irq_desc *desc)
 	 * keep it masked and get out of here
 	 */
 	action = desc->action;
-	if (unlikely(!action || (desc->status & IRQ_DISABLED))) {
-		desc->status |= IRQ_PENDING;
+	if (unlikely(!action || (desc->status & IRQ_DISABLED)))
 		goto out_unlock;
-	}
 
 	desc->status |= IRQ_INPROGRESS;
-	desc->status &= ~IRQ_PENDING;
 	spin_unlock(&desc->lock);
 
 	action_ret = handle_IRQ_event(irq, action);
Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2464286ace55b3abddfb9cc30ab95e2dac1de9a6
Commit:     2464286ace55b3abddfb9cc30ab95e2dac1de9a6
Parent:     496634217e5671ed876a0348e9f5b7165e830b20
Author:     Thomas Gleixner <tglx at linutronix.de>
AuthorDate: Sun Aug 12 15:46:35 2007 +0000
Committer:  Linus Torvalds <torvalds at woody.linux-foundation.org>
CommitDate: Sun Aug 12 11:05:45 2007 -0700

    genirq: suppress resend of level interrupts
    
    Level type interrupts are resent by the interrupt hardware when they are
    still active at irq_enable().
    
    Suppress the resend mechanism for interrupts marked as level.
    
    Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
    Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
---
 kernel/irq/resend.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/kernel/irq/resend.c b/kernel/irq/resend.c
index 5bfeaed..a804679 100644
--- a/kernel/irq/resend.c
+++ b/kernel/irq/resend.c
@@ -62,7 +62,12 @@ void check_irq_resend(struct irq_desc *desc, unsigned int irq)
 	 */
 	desc->chip->enable(irq);
 
-	if ((status & (IRQ_PENDING | IRQ_REPLAY)) == IRQ_PENDING) {
+	/*
+	 * We do not resend level type interrupts. Level type
+	 * interrupts are resent by hardware when they are still
+	 * active.
+	 */
+	if ((status & (IRQ_LEVEL | IRQ_PENDING | IRQ_REPLAY)) == IRQ_PENDING) {
 		desc->status = (status & ~IRQ_PENDING) | IRQ_REPLAY;
 
 		if (!desc->chip || !desc->chip->retrigger ||
Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cc75b92d11384ba14f93828a2a0040344ae872e7
Commit:     cc75b92d11384ba14f93828a2a0040344ae872e7
Parent:     2464286ace55b3abddfb9cc30ab95e2dac1de9a6
Author:     Thomas Gleixner <tglx at linutronix.de>
AuthorDate: Sun Aug 12 15:46:36 2007 +0000
Committer:  Linus Torvalds <torvalds at woody.linux-foundation.org>
CommitDate: Sun Aug 12 11:05:45 2007 -0700

    genirq: mark io_apic level interrupts to avoid resend
    
    Level type interrupts do not need to be resent.  It was also found that
    some chipsets get confused in case of the resend.
    
    Mark the ioapic level type interrupts as such to avoid the resend
    functionality in the generic irq code.
    
    Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
    Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
---
 arch/i386/kernel/io_apic.c   |    7 +++++--
 arch/x86_64/kernel/io_apic.c |    7 +++++--
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c
index 893df82..4b8a8da 100644
--- a/arch/i386/kernel/io_apic.c
+++ b/arch/i386/kernel/io_apic.c
@@ -1256,12 +1256,15 @@ static struct irq_chip ioapic_chip;
 static void ioapic_register_intr(int irq, int vector, unsigned long trigger)
 {
 	if ((trigger == IOAPIC_AUTO && IO_APIC_irq_trigger(irq)) ||
-			trigger == IOAPIC_LEVEL)
+	    trigger == IOAPIC_LEVEL) {
+		irq_desc[irq].status |= IRQ_LEVEL;
 		set_irq_chip_and_handler_name(irq, &ioapic_chip,
 					 handle_fasteoi_irq, "fasteoi");
-	else
+	} else {
+		irq_desc[irq].status &= ~IRQ_LEVEL;
 		set_irq_chip_and_handler_name(irq, &ioapic_chip,
 					 handle_edge_irq, "edge");
+	}
 	set_intr_gate(vector, interrupt[irq]);
 }
 
diff --git a/arch/x86_64/kernel/io_apic.c b/arch/x86_64/kernel/io_apic.c
index 050141c..f57f8b9 100644
--- a/arch/x86_64/kernel/io_apic.c
+++ b/arch/x86_64/kernel/io_apic.c
@@ -800,12 +800,15 @@ static struct irq_chip ioapic_chip;
 
 static void ioapic_register_intr(int irq, unsigned long trigger)
 {
-	if (trigger)
+	if (trigger) {
+		irq_desc[irq].status |= IRQ_LEVEL;
 		set_irq_chip_and_handler_name(irq, &ioapic_chip,
 					      handle_fasteoi_irq, "fasteoi");
-	else
+	} else {
+		irq_desc[irq].status &= ~IRQ_LEVEL;
 		set_irq_chip_and_handler_name(irq, &ioapic_chip,
 					      handle_edge_irq, "edge");
+	}
 }
 
 static void setup_IO_APIC_irq(int apic, int pin, unsigned int irq,

linux-2.6-libata-simplify-init.patch:

--- NEW FILE linux-2.6-libata-simplify-init.patch ---
Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d583bc18812f8da52bf25eef9cd111e5fd46a6ab
Commit:     d583bc18812f8da52bf25eef9cd111e5fd46a6ab
Parent:     35142ddbf7d81ff3f1d9521611e734b8d5014df2
Author:     Tejun Heo <htejun at gmail.com>
AuthorDate: Wed Jul 4 18:02:07 2007 +0900
Committer:  Jeff Garzik <jeff at garzik.org>
CommitDate: Tue Jul 10 21:27:09 2007 -0400

    libata: simplify PCI legacy SFF host handling
    
    With PCI resource fix up for legacy hosts.  We can use the same code
    path to allocate IO resources and initialize host for both legacy and
    native SFF hosts.  Only IRQ requesting needs to be different.
    
    Rename ata_pci_*_native_host() to ata_pci_*_sff_host(), kill all
    legacy specific functions and use the renamed functions instead.  This
    simplifies code a lot.
    
    Signed-off-by: Tejun Heo <htejun at gmail.com>
    Cc: Alan Cox <alan at lxorguk.ukuu.org.uk>
    Signed-off-by: Jeff Garzik <jeff at garzik.org>
---
 drivers/ata/libata-core.c |    4 +-
 drivers/ata/libata-sff.c  |  288 +++++----------------------------------------
 drivers/ata/sata_nv.c     |    2 +-
 drivers/ata/sata_sis.c    |    2 +-
 drivers/ata/sata_uli.c    |    2 +-
 drivers/ata/sata_via.c    |    2 +-
 include/linux/libata.h    |    8 +-
 7 files changed, 42 insertions(+), 266 deletions(-)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 257fda9..6816935 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -6925,9 +6925,9 @@ EXPORT_SYMBOL_GPL(ata_timing_merge);
 
 #ifdef CONFIG_PCI
 EXPORT_SYMBOL_GPL(pci_test_config_bits);
-EXPORT_SYMBOL_GPL(ata_pci_init_native_host);
+EXPORT_SYMBOL_GPL(ata_pci_init_sff_host);
 EXPORT_SYMBOL_GPL(ata_pci_init_bmdma);
-EXPORT_SYMBOL_GPL(ata_pci_prepare_native_host);
+EXPORT_SYMBOL_GPL(ata_pci_prepare_sff_host);
 EXPORT_SYMBOL_GPL(ata_pci_init_one);
 EXPORT_SYMBOL_GPL(ata_pci_remove_one);
 #ifdef CONFIG_PM
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index fa1c22c..ca7d224 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -604,13 +604,17 @@ int ata_pci_init_bmdma(struct ata_host *host)
 }
 
 /**
- *	ata_pci_init_native_host - acquire native ATA resources and init host
+ *	ata_pci_init_sff_host - acquire native PCI ATA resources and init host
  *	@host: target ATA host
  *
  *	Acquire native PCI ATA resources for @host and initialize the
  *	first two ports of @host accordingly.  Ports marked dummy are
  *	skipped and allocation failure makes the port dummy.
  *
+ *	Note that native PCI resources are valid even for legacy hosts
+ *	as we fix up pdev resources array early in boot, so this
+ *	function can be used for both native and legacy SFF hosts.
+ *
  *	LOCKING:
  *	Inherited from calling layer (may sleep).
  *
@@ -618,7 +622,7 @@ int ata_pci_init_bmdma(struct ata_host *host)
  *	0 if at least one port is initialized, -ENODEV if no port is
  *	available.
  */
-int ata_pci_init_native_host(struct ata_host *host)
+int ata_pci_init_sff_host(struct ata_host *host)
 {
 	struct device *gdev = host->dev;
 	struct pci_dev *pdev = to_pci_dev(gdev);
@@ -673,7 +677,7 @@ int ata_pci_init_native_host(struct ata_host *host)
 }
 
 /**
- *	ata_pci_prepare_native_host - helper to prepare native PCI ATA host
+ *	ata_pci_prepare_sff_host - helper to prepare native PCI ATA host
  *	@pdev: target PCI device
  *	@ppi: array of port_info, must be enough for two ports
  *	@r_host: out argument for the initialized ATA host
@@ -687,9 +691,9 @@ int ata_pci_init_native_host(struct ata_host *host)
  *	RETURNS:
  *	0 on success, -errno otherwise.
  */
-int ata_pci_prepare_native_host(struct pci_dev *pdev,
-				const struct ata_port_info * const * ppi,
-				struct ata_host **r_host)
+int ata_pci_prepare_sff_host(struct pci_dev *pdev,
+			     const struct ata_port_info * const * ppi,
+			     struct ata_host **r_host)
 {
 	struct ata_host *host;
 	int rc;
@@ -705,7 +709,7 @@ int ata_pci_prepare_native_host(struct pci_dev *pdev,
 		goto err_out;
 	}
 
-	rc = ata_pci_init_native_host(host);
+	rc = ata_pci_init_sff_host(host);
 	if (rc)
 		goto err_out;
 
@@ -730,221 +734,6 @@ int ata_pci_prepare_native_host(struct pci_dev *pdev,
 	return rc;
 }
 
-struct ata_legacy_devres {
-	unsigned int	mask;
-	unsigned long	cmd_port[2];
-	void __iomem *	cmd_addr[2];
-	void __iomem *	ctl_addr[2];
-	unsigned int	irq[2];
-	void *		irq_dev_id[2];
-};
-
-static void ata_legacy_free_irqs(struct ata_legacy_devres *legacy_dr)
-{
-	int i;
-
-	for (i = 0; i < 2; i++) {
-		if (!legacy_dr->irq[i])
-			continue;
-
-		free_irq(legacy_dr->irq[i], legacy_dr->irq_dev_id[i]);
-		legacy_dr->irq[i] = 0;
-		legacy_dr->irq_dev_id[i] = NULL;
-	}
-}
-
-static void ata_legacy_release(struct device *gdev, void *res)
-{
-	struct ata_legacy_devres *this = res;
-	int i;
-
-	ata_legacy_free_irqs(this);
-
-	for (i = 0; i < 2; i++) {
-		if (this->cmd_addr[i])
-			ioport_unmap(this->cmd_addr[i]);
-		if (this->ctl_addr[i])
-			ioport_unmap(this->ctl_addr[i]);
-		if (this->cmd_port[i])
-			release_region(this->cmd_port[i], 8);
-	}
-}
-
-static int ata_init_legacy_port(struct ata_port *ap,
-				struct ata_legacy_devres *legacy_dr)
-{
-	struct ata_host *host = ap->host;
-	int port_no = ap->port_no;
-	unsigned long cmd_port, ctl_port;
-
-	if (port_no == 0) {
-		cmd_port = ATA_PRIMARY_CMD;
-		ctl_port = ATA_PRIMARY_CTL;
-	} else {
-		cmd_port = ATA_SECONDARY_CMD;
-		ctl_port = ATA_SECONDARY_CTL;
-	}
-
-	/* request cmd_port */
-	if (request_region(cmd_port, 8, "libata"))
-		legacy_dr->cmd_port[port_no] = cmd_port;
-	else {
-		dev_printk(KERN_WARNING, host->dev,
-			   "0x%0lX IDE port busy\n", cmd_port);
-		return -EBUSY;
-	}
-
-	/* iomap cmd and ctl ports */
-	legacy_dr->cmd_addr[port_no] = ioport_map(cmd_port, 8);
-	legacy_dr->ctl_addr[port_no] = ioport_map(ctl_port, 1);
-	if (!legacy_dr->cmd_addr[port_no] || !legacy_dr->ctl_addr[port_no]) {
-		dev_printk(KERN_WARNING, host->dev,
-			   "failed to map cmd/ctl ports\n");
-		return -ENOMEM;
-	}
-
-	/* init IO addresses */
-	ap->ioaddr.cmd_addr = legacy_dr->cmd_addr[port_no];
-	ap->ioaddr.altstatus_addr = legacy_dr->ctl_addr[port_no];
-	ap->ioaddr.ctl_addr = legacy_dr->ctl_addr[port_no];
-	ata_std_ports(&ap->ioaddr);
-
-	return 0;
-}
-
-/**
- *	ata_init_legacy_host - acquire legacy ATA resources and init ATA host
- *	@host: target ATA host
- *	@was_busy: out parameter, indicates whether any port was busy
- *
- *	Acquire legacy ATA resources for the first two ports of @host
- *	and initialize it accordingly.  Ports marked dummy are skipped
- *	and resource acquistion failure makes the port dummy.
- *
- *	LOCKING:
- *	Inherited from calling layer (may sleep).
- *
- *	RETURNS:
- *	0 if at least one port is initialized, -ENODEV if no port is
- *	available.
- */
-static int ata_init_legacy_host(struct ata_host *host, int *was_busy)
-{
-	struct device *gdev = host->dev;
-	struct ata_legacy_devres *legacy_dr;
-	int i, rc;
-
-	if (!devres_open_group(gdev, NULL, GFP_KERNEL))
-		return -ENOMEM;
-
-	rc = -ENOMEM;
-	legacy_dr = devres_alloc(ata_legacy_release, sizeof(*legacy_dr),
-				 GFP_KERNEL);
-	if (!legacy_dr)
-		goto err_out;
-	devres_add(gdev, legacy_dr);
-
-	for (i = 0; i < 2; i++) {
-		if (ata_port_is_dummy(host->ports[i]))
-			continue;
-
-		rc = ata_init_legacy_port(host->ports[i], legacy_dr);
-		if (rc == 0)
-			legacy_dr->mask |= 1 << i;
-		else {
-			if (rc == -EBUSY)
-				(*was_busy)++;
-			host->ports[i]->ops = &ata_dummy_port_ops;
-		}
-	}
-
-	if (!legacy_dr->mask) {
-		dev_printk(KERN_ERR, gdev, "no available legacy port\n");
-		return -ENODEV;
-	}
-
-	devres_remove_group(gdev, NULL);
-	return 0;
-
- err_out:
-	devres_release_group(gdev, NULL);
-	return rc;
-}
-
-/**
- *	ata_request_legacy_irqs - request legacy ATA IRQs
- *	@host: target ATA host
- *	@handler: array of IRQ handlers
- *	@irq_flags: array of IRQ flags
- *	@dev_id: array of IRQ dev_ids
- *
- *	Request legacy IRQs for non-dummy legacy ports in @host.  All
- *	IRQ parameters are passed as array to allow ports to have
- *	separate IRQ handlers.
- *
- *	LOCKING:
- *	Inherited from calling layer (may sleep).
- *
- *	RETURNS:
- *	0 on success, -errno otherwise.
- */
-static int ata_request_legacy_irqs(struct ata_host *host,
-				   irq_handler_t const *handler,
-				   const unsigned int *irq_flags,
-				   void * const *dev_id)
-{
-	struct device *gdev = host->dev;
-	struct ata_legacy_devres *legacy_dr;
-	int i, rc;
-
-	legacy_dr = devres_find(host->dev, ata_legacy_release, NULL, NULL);
-	BUG_ON(!legacy_dr);
-
-	for (i = 0; i < 2; i++) {
-		unsigned int irq;
-
-		/* FIXME: ATA_*_IRQ() should take generic device not pci_dev */
-		if (i == 0)
-			irq = ATA_PRIMARY_IRQ(to_pci_dev(gdev));
-		else
-			irq = ATA_SECONDARY_IRQ(to_pci_dev(gdev));
-
-		if (!(legacy_dr->mask & (1 << i)))
-			continue;
-
-		if (!handler[i]) {
-			dev_printk(KERN_ERR, gdev,
-				   "NULL handler specified for port %d\n", i);
-			rc = -EINVAL;
-			goto err_out;
-		}
-
-		rc = request_irq(irq, handler[i], irq_flags[i], DRV_NAME,
-				 dev_id[i]);
-		if (rc) {
-			dev_printk(KERN_ERR, gdev,
-				"irq %u request failed (errno=%d)\n", irq, rc);
-			goto err_out;
-		}
-
-		/* record irq allocation in legacy_dr */
-		legacy_dr->irq[i] = irq;
-		legacy_dr->irq_dev_id[i] = dev_id[i];
-
-		/* only used to print info */
-		if (i == 0)
-			host->irq = irq;
-		else
-			host->irq2 = irq;
-	}
-
-	return 0;
-
- err_out:
-	ata_legacy_free_irqs(legacy_dr);
-	return rc;
-}
-
 /**
  *	ata_pci_init_one - Initialize/register PCI IDE host controller
  *	@pdev: Controller to be initialized
@@ -1029,35 +818,11 @@ int ata_pci_init_one(struct pci_dev *pdev,
 #endif
 	}
 
-	/* alloc and init host */
-	host = ata_host_alloc_pinfo(dev, ppi, 2);
-	if (!host) {
-		dev_printk(KERN_ERR, &pdev->dev,
-			   "failed to allocate ATA host\n");
-		rc = -ENOMEM;
+	/* prepare host */
+	rc = ata_pci_prepare_sff_host(pdev, ppi, &host);
+	if (rc)
 		goto err_out;
-	}
 
-	if (!legacy_mode) {
-		rc = ata_pci_init_native_host(host);
-		if (rc)
-			goto err_out;
-	} else {
-		int was_busy = 0;
-
-		rc = ata_init_legacy_host(host, &was_busy);
-		if (was_busy)
-			pcim_pin_device(pdev);
-		if (rc)
-			goto err_out;
-
-		/* request respective PCI regions, may fail */
-		rc = pci_request_region(pdev, 1, DRV_NAME);
-		rc = pci_request_region(pdev, 3, DRV_NAME);
-	}
-
-	/* init BMDMA, may fail */
-	ata_pci_init_bmdma(host);
 	pci_set_master(pdev);
 
 	/* start host and request IRQ */
@@ -1068,17 +833,28 @@ int ata_pci_init_one(struct pci_dev *pdev,
 	if (!legacy_mode) {
 		rc = devm_request_irq(dev, pdev->irq, pi->port_ops->irq_handler,
 				      IRQF_SHARED, DRV_NAME, host);
+		if (rc)
+			goto err_out;
 		host->irq = pdev->irq;
 	} else {
-		irq_handler_t handler[2] = { host->ops->irq_handler,
-					     host->ops->irq_handler };
-		unsigned int irq_flags[2] = { IRQF_SHARED, IRQF_SHARED };
-		void *dev_id[2] = { host, host };
+		if (!ata_port_is_dummy(host->ports[0])) {
+			host->irq = ATA_PRIMARY_IRQ(pdev);
+			rc = devm_request_irq(dev, host->irq,
+					      pi->port_ops->irq_handler,
+					      IRQF_SHARED, DRV_NAME, host);
+			if (rc)
+				goto err_out;
+		}
 
-		rc = ata_request_legacy_irqs(host, handler, irq_flags, dev_id);
+		if (!ata_port_is_dummy(host->ports[1])) {
+			host->irq2 = ATA_SECONDARY_IRQ(pdev);
+			rc = devm_request_irq(dev, host->irq2,
+					      pi->port_ops->irq_handler,
+					      IRQF_SHARED, DRV_NAME, host);
+			if (rc)
+				goto err_out;
+		}
 	}
-	if (rc)
-		goto err_out;
 
 	/* register */
 	rc = ata_host_register(host, pi->sht);
diff --git a/drivers/ata/sata_nv.c b/drivers/ata/sata_nv.c
index b265686..db81e3e 100644
--- a/drivers/ata/sata_nv.c
+++ b/drivers/ata/sata_nv.c
@@ -1560,7 +1560,7 @@ static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
 	}
 
 	ppi[0] = &nv_port_info[type];
-	rc = ata_pci_prepare_native_host(pdev, ppi, &host);
+	rc = ata_pci_prepare_sff_host(pdev, ppi, &host);
 	if (rc)
 		return rc;
 
diff --git a/drivers/ata/sata_sis.c b/drivers/ata/sata_sis.c
index fd80bcf..33716b0 100644
--- a/drivers/ata/sata_sis.c
+++ b/drivers/ata/sata_sis.c
@@ -334,7 +334,7 @@ static int sis_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
 		break;
 	}
 
-	rc = ata_pci_prepare_native_host(pdev, ppi, &host);
+	rc = ata_pci_prepare_sff_host(pdev, ppi, &host);
 	if (rc)
 		return rc;
 
diff --git a/drivers/ata/sata_uli.c b/drivers/ata/sata_uli.c
index aca7181..b52f83a 100644
--- a/drivers/ata/sata_uli.c
+++ b/drivers/ata/sata_uli.c
@@ -213,7 +213,7 @@ static int uli_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
 	host->private_data = hpriv;
 
 	/* the first two ports are standard SFF */
-	rc = ata_pci_init_native_host(host);
+	rc = ata_pci_init_sff_host(host);
 	if (rc)
 		return rc;
 
diff --git a/drivers/ata/sata_via.c b/drivers/ata/sata_via.c
index a4c0832..c412447 100644
--- a/drivers/ata/sata_via.c
+++ b/drivers/ata/sata_via.c
@@ -412,7 +412,7 @@ static int vt6420_prepare_host(struct pci_dev *pdev, struct ata_host **r_host)
 	struct ata_host *host;
 	int rc;
 
-	rc = ata_pci_prepare_native_host(pdev, ppi, &host);
+	rc = ata_pci_prepare_sff_host(pdev, ppi, &host);
 	if (rc)
 		return rc;
 	*r_host = host;
diff --git a/include/linux/libata.h b/include/linux/libata.h
index bf98d44..0c8b657 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -870,11 +870,11 @@ struct pci_bits {
 	unsigned long		val;
 };
 
-extern int ata_pci_init_native_host(struct ata_host *host);
+extern int ata_pci_init_sff_host(struct ata_host *host);
 extern int ata_pci_init_bmdma(struct ata_host *host);
-extern int ata_pci_prepare_native_host(struct pci_dev *pdev,
-				const struct ata_port_info * const * ppi,
-				struct ata_host **r_host);
+extern int ata_pci_prepare_sff_host(struct pci_dev *pdev,
+				    const struct ata_port_info * const * ppi,
+				    struct ata_host **r_host);
 extern int pci_test_config_bits(struct pci_dev *pdev, const struct pci_bits *bits);
 extern unsigned long ata_pci_default_filter(struct ata_device *, unsigned long);
 #endif /* CONFIG_PCI */

linux-2.6-ppc-pegasos-via-ata-legacy-irq.patch:

--- NEW FILE linux-2.6-ppc-pegasos-via-ata-legacy-irq.patch ---
The built-in IDE controller is configured in legacy mode,
but the PCI registers advertise native mode.
Force the PCI class into legacy mode. This allows pata_via to access
two drives.
The Pegasos specific irq enforcement in the via82cxxx driver
can be removed.

Tested on Pegasos2 with firmware version 20040810, and two IDE disks.

---
 arch/powerpc/kernel/prom_init.c   |   11 ++++++++---
 arch/powerpc/platforms/chrp/pci.c |   28 ++++++++++++++++++++++++++++
 drivers/ide/pci/via82cxxx.c       |    7 -------
 3 files changed, 36 insertions(+), 10 deletions(-)

--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
@@ -2041,6 +2041,7 @@ static void __init fixup_device_tree_map
 /*
  * Pegasos and BriQ lacks the "ranges" property in the isa node
  * Pegasos needs decimal IRQ 14/15, not hexadecimal
+ * Pegasos has the IDE configured in legacy mode, but advertised as native
  */
 static void __init fixup_device_tree_chrp(void)
 {
@@ -2078,9 +2079,13 @@ static void __init fixup_device_tree_chr
 		prom_printf("Fixing up IDE interrupt on Pegasos...\n");
 		prop[0] = 14;
 		prop[1] = 0x0;
-		prop[2] = 15;
-		prop[3] = 0x0;
-		prom_setprop(ph, name, "interrupts", prop, 4*sizeof(u32));
+		prom_setprop(ph, name, "interrupts", prop, 2*sizeof(u32));
+		prom_printf("Fixing up IDE class-code on Pegasos...\n");
+		rc = prom_getprop(ph, "class-code", prop, sizeof(u32));
+		if (rc == sizeof(u32)) {
+			prop[0] &= ~0x5;
+			prom_setprop(ph, name, "class-code", prop, sizeof(u32));
+		}
 	}
 }
 #else
--- a/arch/powerpc/platforms/chrp/pci.c
+++ b/arch/powerpc/platforms/chrp/pci.c
@@ -338,3 +338,31 @@ void chrp_pci_fixup_winbond_ata(struct p
 }
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_WINBOND, PCI_DEVICE_ID_WINBOND_82C105,
 		chrp_pci_fixup_winbond_ata);
+
+/* Pegasos2 firmware version 20040810 configures the built-in IDE controller
+ * in legacy mode, but sets the PCI registers to PCI native mode.
+ * The chip can only operate in legacy mode, so force the PCI class into legacy
+ * mode as well. The same fixup must be done to the class-code property in
+ * the IDE node /pci at 80000000/ide at C,1
+ */
+static void chrp_pci_fixup_vt8231_ata(struct pci_dev *viaide)
+{
+	u8 progif;
+	struct pci_dev *viaisa;
+
+	if (!machine_is(chrp) || _chrp_type != _CHRP_Pegasos)
+		return;
+	if (viaide->irq != 14)
+		return;
+
+	viaisa = pci_get_device(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8231, NULL);
+	if (!viaisa)
+		return;
+	printk("Fixing VIA IDE, force legacy mode on '%s'\n", viaide->dev.bus_id);
+
+	pci_read_config_byte(viaide, PCI_CLASS_PROG, &progif);
+	pci_write_config_byte(viaide, PCI_CLASS_PROG, progif & ~0x5);
+
+	pci_dev_put(viaisa);
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1, chrp_pci_fixup_vt8231_ata);
--- a/drivers/ide/pci/via82cxxx.c
+++ b/drivers/ide/pci/via82cxxx.c
@@ -436,13 +436,6 @@ static void __devinit init_hwif_via82cxx
 	hwif->tuneproc = &via82cxxx_tune_drive;
 	hwif->speedproc = &via_set_drive;
 
-
-#ifdef CONFIG_PPC_CHRP
-	if(machine_is(chrp) && _chrp_type == _CHRP_Pegasos) {
-		hwif->irq = hwif->channel ? 15 : 14;
-	}
-#endif
-
 	for (i = 0; i < 2; i++) {
 		hwif->drives[i].io_32bit = 1;
 		hwif->drives[i].unmask = (vdev->via_config->flags & VIA_NO_UNMASK) ? 0 : 1;

linux-2.6-snd-ad1988-fix-spdif-output.patch:

--- NEW FILE linux-2.6-snd-ad1988-fix-spdif-output.patch ---

# HG changeset patch
# User tiwai
# Date 1185293045 -7200
# Node ID 43059389c583efdc0be086ec6cc4634a4ee45011
# Parent 2250b8a4b66aa13e306bf253388a2d38b342eafa
hda-codec - Fix AD1988 SPDIF output

The SPDIF output on AD1988 had some problems due to the wrongly routed
analog loopback to SPDIF.  This patch fixes the implementation of
"IEC958 Playback Source" mixer to handle the amp bits of mixer widget
0x1d correctly.

Patch-level: ASAP

--- a/sound/pci/hda/patch_analog.c	Tue Jul 24 12:49:39 2007 +0200
+++ b/sound/pci/hda/patch_analog.c	Tue Jul 24 18:04:05 2007 +0200
@@ -1889,16 +1889,19 @@ static int ad1988_spdif_playback_source_
 	struct hda_codec *codec = snd_kcontrol_chip(kcontrol);
 	unsigned int sel;
 
-	sel = snd_hda_codec_read(codec, 0x02, 0, AC_VERB_GET_CONNECT_SEL, 0);
-	if (sel > 0) {
+	sel = snd_hda_codec_read(codec, 0x1d, 0, AC_VERB_GET_AMP_GAIN_MUTE,
+				 AC_AMP_GET_INPUT);
+	if (!(sel & 0x80))
+		ucontrol->value.enumerated.item[0] = 0;
+	else {
 		sel = snd_hda_codec_read(codec, 0x0b, 0,
 					 AC_VERB_GET_CONNECT_SEL, 0);
 		if (sel < 3)
 			sel++;
 		else
 			sel = 0;
+		ucontrol->value.enumerated.item[0] = sel;
 	}
-	ucontrol->value.enumerated.item[0] = sel;
 	return 0;
 }
 
@@ -1910,17 +1913,32 @@ static int ad1988_spdif_playback_source_
 	int change;
 
 	val = ucontrol->value.enumerated.item[0];
-	sel = snd_hda_codec_read(codec, 0x02, 0, AC_VERB_GET_CONNECT_SEL, 0);
 	if (!val) {
-		change = sel != 0;
-		if (change || codec->in_resume)
-			snd_hda_codec_write(codec, 0x02, 0,
-					    AC_VERB_SET_CONNECT_SEL, 0);
+		sel = snd_hda_codec_read(codec, 0x1d, 0,
+					 AC_VERB_GET_AMP_GAIN_MUTE,
+					 AC_AMP_GET_INPUT);
+		change = sel & 0x80;
+		if (change || codec->in_resume) {
+			snd_hda_codec_write(codec, 0x1d, 0,
+					    AC_VERB_SET_AMP_GAIN_MUTE,
+					    AMP_IN_UNMUTE(0));
+			snd_hda_codec_write(codec, 0x1d, 0,
+					    AC_VERB_SET_AMP_GAIN_MUTE,
+					    AMP_IN_MUTE(1));
+		}
 	} else {
-		change = sel == 0;
-		if (change || codec->in_resume)
-			snd_hda_codec_write(codec, 0x02, 0,
-					    AC_VERB_SET_CONNECT_SEL, 1);
+		sel = snd_hda_codec_read(codec, 0x1d, 0,
+					 AC_VERB_GET_AMP_GAIN_MUTE,
+					 AC_AMP_GET_INPUT | 0x01);
+		change = sel & 0x80;
+		if (change || codec->in_resume) {
+			snd_hda_codec_write(codec, 0x1d, 0,
+					    AC_VERB_SET_AMP_GAIN_MUTE,
+					    AMP_IN_MUTE(0));
+			snd_hda_codec_write(codec, 0x1d, 0,
+					    AC_VERB_SET_AMP_GAIN_MUTE,
+					    AMP_IN_UNMUTE(1));
+		}
 		sel = snd_hda_codec_read(codec, 0x0b, 0,
 					 AC_VERB_GET_CONNECT_SEL, 0) + 1;
 		change |= sel != val;
@@ -2039,10 +2057,9 @@ static struct hda_verb ad1988_spdif_init
 	{0x02, AC_VERB_SET_CONNECT_SEL, 0x0}, /* PCM */
 	{0x0b, AC_VERB_SET_CONNECT_SEL, 0x0}, /* ADC1 */
 	{0x1d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
-	{0x1d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)},
+	{0x1d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
 	/* SPDIF out pin */
 	{0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE | 0x27}, /* 0dB */
-	{0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0) | 0x17}, /* 0dB */
 
 	{ }
 };


linux-2.6-snd-hda-stac92xx-fixes.patch:

--- NEW FILE linux-2.6-snd-hda-stac92xx-fixes.patch ---
Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=df802952b723cdb08f2f8a3cba396c357290850b
Commit:     df802952b723cdb08f2f8a3cba396c357290850b
Parent:     d10ad1a26da03fe089c02846a95fa5938c3ca3ce
Author:     Takashi Iwai <tiwai at suse.de>
AuthorDate: Mon Jul 2 19:18:00 2007 +0200
Committer:  Jaroslav Kysela <perex at suse.cz>
CommitDate: Fri Jul 20 11:11:39 2007 +0200

    [ALSA] hda-codec - Fix the error in DAC assignment of STAC codec
    
    The STAC codec support code has the automatic recognition of
    additional side-output pins, and this may result in an error when
    the assigned pin has no corresponding DAC connection.
    The patch fixes the problem -- it corrects the line_outs again
    without such additional pins.
    
    Signed-off-by: Takashi Iwai <tiwai at suse.de>
    Signed-off-by: Jaroslav Kysela <perex at suse.cz>
---
 sound/pci/hda/patch_sigmatel.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 270539a..e89180c 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -1228,7 +1228,7 @@ static int is_in_dac_nids(struct sigmatel_spec *spec, hda_nid_t nid)
  * and 9202/925x. For those, dac_nids[] must be hard-coded.
  */
 static int stac92xx_auto_fill_dac_nids(struct hda_codec *codec,
-				       const struct auto_pin_cfg *cfg)
+				       struct auto_pin_cfg *cfg)
 {
 	struct sigmatel_spec *spec = codec->spec;
 	int i, j, conn_len = 0; 
@@ -1253,6 +1253,13 @@ static int stac92xx_auto_fill_dac_nids(struct hda_codec *codec,
 		}
 
 		if (j == conn_len) {
+			if (spec->multiout.num_dacs > 0) {
+				/* we have already working output pins,
+				 * so let's drop the broken ones again
+				 */
+				cfg->line_outs = spec->multiout.num_dacs;
+				break;
+			}
 			/* error out, no available DAC found */
 			snd_printk(KERN_ERR
 				   "%s: No available DAC for pin 0x%x\n",
Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=92a22beb756c53985e8ba98d39f2c8fc834557a4
Commit:     92a22beb756c53985e8ba98d39f2c8fc834557a4
Parent:     76c08828709129bdce6c6a325e0342ba73f2618f
Author:     Matthew Ranostay <mranostay at embeddedalley.com>
AuthorDate: Tue Jun 19 16:48:28 2007 +0200
Committer:  Jaroslav Kysela <perex at suse.cz>
CommitDate: Fri Jul 20 11:11:30 2007 +0200

    [ALSA] hda: add eapd support to additional idt codecs
    
    Added support for EAPD on the 927x, and 9227-8 IDT HDA codecs.
    Enabling EAPD powers the internal speaker amp otherwise there is no
    sound on systems with an internal amp.
    
    Signed-off-by: Matthew Ranostay <mranostay at embeddedalley.com>
    Signed-off-by: Takashi Iwai <tiwai at suse.de>
    Signed-off-by: Jaroslav Kysela <perex at suse.cz>
---
 sound/pci/hda/patch_sigmatel.c |   31 ++++++++++++++++++-------------
 1 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 36423ca..270539a 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -844,6 +844,21 @@ static void stac92xx_set_config_regs(struct hda_codec *codec)
 	}
 }
 
+static void stac92xx_enable_eapd(struct hda_codec *codec)
+{
+	/* Configure GPIO0 as output */
+	snd_hda_codec_write(codec, codec->afg, 0,
+			    AC_VERB_SET_GPIO_DIRECTION, 0x00000001);
+	/* Configure GPIO0 as CMOS */
+	snd_hda_codec_write(codec, codec->afg, 0, 0x7e7, 0x00000000);
+	/* Assert GPIO0 high */
+	snd_hda_codec_write(codec, codec->afg, 0,
+			    AC_VERB_SET_GPIO_DATA, 0x00000001);
+	/* Enable GPIO0 */
+	snd_hda_codec_write(codec, codec->afg, 0,
+			    AC_VERB_SET_GPIO_MASK, 0x00000001);
+}
+
 /*
  * Analog playback callbacks
  */
@@ -2205,7 +2220,8 @@ static int patch_stac927x(struct hda_codec *codec)
 	}
 
 	spec->multiout.dac_nids = spec->dac_nids;
-
+	stac92xx_enable_eapd(codec);
+	
 	err = stac92xx_parse_auto_config(codec, 0x1e, 0x20);
 	if (!err) {
 		if (spec->board_config < 0) {
@@ -2273,18 +2289,7 @@ static int patch_stac9205(struct hda_codec *codec)
 	spec->mixer = stac9205_mixer;
 
 	spec->multiout.dac_nids = spec->dac_nids;
-
-	/* Configure GPIO0 as EAPD output */
-	snd_hda_codec_write(codec, codec->afg, 0,
-			    AC_VERB_SET_GPIO_DIRECTION, 0x00000001);
-	/* Configure GPIO0 as CMOS */
-	snd_hda_codec_write(codec, codec->afg, 0, 0x7e7, 0x00000000);
-	/* Assert GPIO0 high */
-	snd_hda_codec_write(codec, codec->afg, 0,
-			    AC_VERB_SET_GPIO_DATA, 0x00000001);
-	/* Enable GPIO0 */
-	snd_hda_codec_write(codec, codec->afg, 0,
-			    AC_VERB_SET_GPIO_MASK, 0x00000001);
+	stac92xx_enable_eapd(codec);
 
 	err = stac92xx_parse_auto_config(codec, 0x1f, 0x20);
 	if (!err) {
Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a4eed138add1018846d17e813560b0c7c0ae8e01
Commit:     a4eed138add1018846d17e813560b0c7c0ae8e01
Parent:     47a2327eac01fa944ab935fc5bb03c3032b2ec37
Author:     Takashi Iwai <tiwai at suse.de>
AuthorDate: Fri Jul 6 18:17:04 2007 +0200
Committer:  Jaroslav Kysela <perex at suse.cz>
CommitDate: Fri Jul 20 11:11:46 2007 +0200

    [ALSA] hda-codec - Fix number of pin widgets with STAC codecs
    
    Use ARRAY_SIZE() to calculate the number of pin widgets for each codec
    chip.
    This also fixes a typo in STAC9205 code that gives a wrong number (14
    instead of 12), which resulted in fatal communication errors.
    
    Signed-off-by: Takashi Iwai <tiwai at suse.de>
    Signed-off-by: Jaroslav Kysela <perex at suse.cz>
---
 sound/pci/hda/patch_sigmatel.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index f20b4fa..0dccba2 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -1958,7 +1958,7 @@ static int patch_stac9200(struct hda_codec *codec)
 		return -ENOMEM;
 
 	codec->spec = spec;
-	spec->num_pins = 8;
+	spec->num_pins = ARRAY_SIZE(stac9200_pin_nids);
 	spec->pin_nids = stac9200_pin_nids;
 	spec->board_config = snd_hda_check_board_config(codec, STAC_9200_MODELS,
 							stac9200_models,
@@ -2008,7 +2008,7 @@ static int patch_stac925x(struct hda_codec *codec)
 		return -ENOMEM;
 
 	codec->spec = spec;
-	spec->num_pins = 8;
+	spec->num_pins = ARRAY_SIZE(stac925x_pin_nids);
 	spec->pin_nids = stac925x_pin_nids;
 	spec->board_config = snd_hda_check_board_config(codec, STAC_925x_MODELS,
 							stac925x_models,
@@ -2080,7 +2080,7 @@ static int patch_stac922x(struct hda_codec *codec)
 		return -ENOMEM;
 
 	codec->spec = spec;
-	spec->num_pins = 10;
+	spec->num_pins = ARRAY_SIZE(stac922x_pin_nids);
 	spec->pin_nids = stac922x_pin_nids;
 	spec->board_config = snd_hda_check_board_config(codec, STAC_922X_MODELS,
 							stac922x_models,
@@ -2181,7 +2181,7 @@ static int patch_stac927x(struct hda_codec *codec)
 		return -ENOMEM;
 
 	codec->spec = spec;
-	spec->num_pins = 14;
+	spec->num_pins = ARRAY_SIZE(stac927x_pin_nids);
 	spec->pin_nids = stac927x_pin_nids;
 	spec->board_config = snd_hda_check_board_config(codec, STAC_927X_MODELS,
 							stac927x_models,
@@ -2266,7 +2266,7 @@ static int patch_stac9205(struct hda_codec *codec)
 		return -ENOMEM;
 
 	codec->spec = spec;
-	spec->num_pins = 14;
+	spec->num_pins = ARRAY_SIZE(stac9205_pin_nids);
 	spec->pin_nids = stac9205_pin_nids;
 	spec->board_config = snd_hda_check_board_config(codec, STAC_9205_MODELS,
 							stac9205_models,
Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=aafc03398baefaac380b34a1ee6356e7eed8e663
Commit:     aafc03398baefaac380b34a1ee6356e7eed8e663
Parent:     c54728d8aa59283ece86cb745e5085ece8b4eedb
Author:     Takashi Iwai <tiwai at suse.de>
AuthorDate: Tue May 29 18:01:06 2007 +0200
Committer:  Jaroslav Kysela <perex at suse.cz>
CommitDate: Fri Jul 20 11:12:00 2007 +0200

    [ALSA] hda-codec - Fix input with STAC92xx
    
    The recent fix for STAC92xx surround outputs broke the input pin
    setting for shared line-in and mic jacks.  This patch fixes the
    breakage.
    
    Signed-off-by: Takashi Iwai <tiwai at suse.de>
    Signed-off-by: Jaroslav Kysela <perex at suse.cz>
---
 sound/pci/hda/patch_sigmatel.c |    7 -------
 1 files changed, 0 insertions(+), 7 deletions(-)

diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 9b1d433..3f25de7 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -2266,13 +2266,6 @@ static int patch_stac927x(struct hda_codec *codec)
 
 	codec->patch_ops = stac92xx_patch_ops;
 
-	/* Fix Mux capture level; max to 2 */
-	snd_hda_override_amp_caps(codec, 0x12, HDA_OUTPUT,
-				  (0 << AC_AMPCAP_OFFSET_SHIFT) |
-				  (2 << AC_AMPCAP_NUM_STEPS_SHIFT) |
-				  (0x27 << AC_AMPCAP_STEP_SIZE_SHIFT) |
-				  (0 << AC_AMPCAP_MUTE_SHIFT));
-
 	return 0;
 }
 
Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1b290a510c12be91b6a2f7d6a07ef61b8ee9f06a
Commit:     1b290a510c12be91b6a2f7d6a07ef61b8ee9f06a
Parent:     82fb159aa3d187aac0fce076739d7d8884e7a0af
Author:     Matthew Ranostay <mranostay at embeddedalley.com>
AuthorDate: Thu Jul 12 15:17:34 2007 +0200
Committer:  Jaroslav Kysela <perex at suse.cz>
CommitDate: Fri Jul 20 11:11:51 2007 +0200

    [ALSA] hda: stac9202 mixer fix
    
    Added support for line out controls for STAC9202 cards, and fixed issue
    where master mixer control was being created twice for headphone and
    speaker outs.
    
    Signed-off-by: Matthew Ranostay <mranostay at embeddedalley.com>
    Signed-off-by: Takashi Iwai <tiwai at suse.de>
    Signed-off-by: Jaroslav Kysela <perex at suse.cz>
---
 sound/pci/hda/patch_sigmatel.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 0dccba2..be53e96 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -334,8 +334,6 @@ static struct snd_kcontrol_new stac9200_mixer[] = {
 };
 
 static struct snd_kcontrol_new stac925x_mixer[] = {
-	HDA_CODEC_VOLUME("Master Playback Volume", 0xe, 0, HDA_OUTPUT),
-	HDA_CODEC_MUTE("Master Playback Switch", 0xe, 0, HDA_OUTPUT),
 	{
 		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
 		.name = "Input Source",
@@ -1401,7 +1399,15 @@ static int stac92xx_auto_create_hp_ctls(struct hda_codec *codec,
 			continue;
 		add_spec_dacs(spec, nid);
 	}
-
+	for (i = 0; i < cfg->line_outs; i++) {
+		nid = snd_hda_codec_read(codec, cfg->line_out_pins[i], 0,
+					AC_VERB_GET_CONNECT_LIST, 0) & 0xff;
+		if (check_in_dac_nids(spec, nid))
+			nid = 0;
+		if (! nid)
+			continue;
+		add_spec_dacs(spec, nid);
+	}
 	for (i = old_num_dacs; i < spec->multiout.num_dacs; i++) {
 		static const char *pfxs[] = {
 			"Speaker", "External Speaker", "Speaker2",


--- NEW FILE patch-2.6.22.5-rc1.bz2 ---
BZh91AY&SY«Ìfd
ë½êQÜ›^•Ý½;·OEqéžî½oWlë¸`›:7½ÞøJF„ÐÓA Êh'ä#I¤ö©§š£ò4Ä

&¢$L&„1COL©´ÑO(¨l 2d©êzG©‰ dJ&#&ShjdÈô¦ÓHÚjySòjšmLŒžšž#PÈ

P= 
 
ÖÕ7"É)¦J
KÝL‰Xóy¿Ösž#°ëÆI™DDUV5%›ŠinŠÝ^¦‡©WóY·ü‚«èÆ·Z>"ƒlWfU¢fî®èµK¶®¥Œ%!wmZU–K©)#ºn""1EPK(«3æÅ樭åSQ Ñ¤¦,Å–Ê)¥n©«kP›~OóU–¤ô¿Ú#Æ(¥VaËÄCçHz]ƒî&þ4*Nr KÌ”ˆ#!KŠ…‹UWEU]]Ý·tÊðÁ‹«‹d–€ÕIwVYvµUXŒR® ]PU\* ÎaïCžÉî=ÄoóG‘ý¶Yºç«êº;ÌŽlŠÊ”¿mWù±x‘ÃdHOÅh²¾ç;
“ŒÁÉ1ù¾÷²–é‡ùyúõzfÒø™ðynù÷ žÚƒÅ.ˇ=YÑN‹r#±;ãcßNŽ4ùw0ås.äíÊÈ%¿((8&‹$øž•ÓкüF`VT2PÆŸ,\Ã@IÖÂìÿ•¹0öƒ›HòÙҸؓ
š«´Én™LÜòÍZ=^çº6ò¡ì¨»G”ŽïÒi%BŽ Ö°Í`(“K¯”¹9pH~ópëà.xÀHÔäwÅsåh‘À†bÀU|%Æb*›Ù µ®âØ–T_o±šca¬©vÕKC'Š¢
¶‹C=ÜcsóòD˜ÜÉ<›>¼¥™ÏvyÏž—¶w€¼k®²2T<e(‚}†ºà§SÔ»‘{w%KFUu-D ½äVVfnÖŸaΦD²(¦7ÓƍÏ9wÖÙ|UbÆc$öˆ˜ ¡|PDÓ3D
@KE`‰ÐS€ä®™ ©¤8ØuÞâ)«&Ì
O‹éø>Iè!Ôt§(…½ÂË(:¸@dŽ¶úš`À}„{ão÷Nù~å='š¢4qúíÞ*¾2’‘;T/ƆÅuÔ–t‚㸾ÅÔóí>GV8%—@âímƒES7Ìëóµcòçï/n¤òvÍFcåþ·-ó°ÁQöáËDµ_ícÛ4™wŽ5Ë^ã2T;É}îžÌ°âóünã½QDóß7YœT¦*]Påj+þçóël/âeìÉ$°Ig^§xœÇªOu}¼ú1ñ
¿ë1+*¶ŽÓü< Þt_v™?u‡™“ aÈôLíwCÖâŸt‹Äíy””ÿ(ƒ%?á±´Z4|­A<6yßN3T1†ºè¾•ˆ#¼w^9|²È‘ðçl%Øàb/e9êó„wƒ3ÆK› mk
…Ìgµ2põ¼ø=µJsô>z=6‹8âQc×?ŸMÒpü³>Î–DÅÓuEt6ŽÇȽ…¤­‘+O«<¾˜>¨¬Ó”¹áûw•âÎö˜Ñ¹¯<i¸ßâµØ›m6Üb¼õR"½Yp3ñ`Òec7ðÇJE²×ÂÔs2¯Zã“æ‘.¡ò‰lg^̍’†ZÄ“Ñ£8ôXÜ"hϬWìA”C]}’ˆEvvi6ºE&‚ò°ÉêÍ¢”¤ç†#Ù/ŒHYf]Ò·]ré†ð‘À~¨Þ2v@ÉìJ>FÉñéß')ý:ŸY£\žsrÈî˜Â$“¼uxç:>ŽºÞNn ŽA“•"ªªÂ<% S¢ªŠ$úÈ)rDö‚‰
q€NÄuˆBJ±€ê	ìØ5Ùööÿntx‡Å9²TØ$ÖŸc!Ÿp*¼xª%b|ö—8T³H«<JÄ-»>Z±«=<þéœOŸ…ô~› +öfTý#*8j›J*ÌshÄÛ¡“Ø©iOk¬Sp¦ Z5i”7L| É×$tÀ­…³ëÁISIïë¶CÕ´(]ÁèP{{°X34F.eäù~í=$0Õ¡x…|]²>îþߨ?(¯®l‡ï9Ñ‹ÁL¾VáÕÖb¹Ögš8Ö'_#4ù7ÛÃé—sÎï%‚h§Nf¿õXæwù]oÉ?¢„“‡¹ÙÏÝÑu5f§.õyÉÊ­õ·0ÙÒR<ë8œ÷®,ôµPèköŸ¸CRgv­órù¨õSIŸ
.®¾Îuã­ð§¨mC㜔1–ãE^ó—·^ìw`®YÝÏ…•Aá3«›“ßûRyÑŠ‘E at F1Ab ÄF
Ð?(€N£Ÿ”à¼ùËħ1AúÀWš‘RD
÷uÔ	¨L„í2AdPê†>z§ûµ	„ÐõY°^þdÙöq¥ü}×E»½¬ôˆ¼èéQ.¦çŠ%ã	…s^ò¾©¢yƒîè…Ý>RŸX?ydØ«ã%²Ýô^µéÕ@“’S*Hû†¼ô’#©P¬Ìˆv¶,pHß")3„,ÒÿVt!búÆN¸â¨öS9Ro•­òù®÷ˆª8£ÒaÆjôˆu˜D6b÷xÜåÆ¦s˜vÚkÉ=GÃß:®ÓS#äÓÜ´Ý¢Í{¹
k¼EìãTâbžØé9bðÿ)~ÿoÏ=q^Ã$~#ÿ¿ôf6ï¼Go>×s"©H‰€)òD
>
\ÅÙ5à#µñ!r;ú	m‹Ì é,¥AQôVÁ#Þ.tÚN
ybh­a0Ü"P¸7“>Êð¤€òEÍóñ¬f¶×É¢
Îƒr¡¢¾QkÎü2ºþYú´Îœ=ü£½dÊÔZâr½óà/~$å›|£Ê9‚U)ʨ¯2uóC
Ç·uÇ¹&ÞÛí«ýÑÚ£ÚTJ2¢z(™ÔÊO­)kÚóîìïwñïÜ0jÛÜ3Å›“¯9•¢'ð4ÿŸTvŒ[·§n5¦MFã…8€²Ð`n3‹ÓGÔ)øÀ]Âàè$ó¢Ö#8ÇyÛÊNyÐú¬ªjŸoᜄ÷¦­bŠ(ª(¢$1:¦²ofš
(¢Š(¢3IêL`ÌÁ:ÉÈ1`Œ\äQNÌÎôåå`1”éaà ü­Œ ö|”¦–Åbú3:©Z*ðW[•×}é9§$‚ñ7±P	g®w¸'9¥—c£C†Bb…B|}}~1ÖÐCò²¾fAëX_m at jâ‹’À‘ûr–P(ýÔZg˜î/
E0ª\P²Õ¼ãÔyv{­¤˜|¼þƒ€Â‹P:Kú¹7ì(	ZfÏ(9ÉÈzY5öž*î'[Ш!~-Wãßçk€Á´X¼µ©Y$ª¤¦ez$Wà=>–›ûoæPÂ2@§S’¼ƒ‹žçTÆõw‹i˜Ç÷[½vÌâºûI,Å@ŠV¯•ïnÚU4c“E
yüJÕ¦ÆUY¼ˆ¤€bCÑ=+0_XMŸ'|tI
“³¤¥šWRô0:{ô~Qšœ3péãüç^¤ùDX¢u==”ß»‚A µ¥Å•ú"nŠÏMq%ÅKB§í~Èh`>è~€=Âþ0&бÉÃÓŒ˜_\(”5bØ5ÿ@TÀ"¤5ØîÇ«ÐÙ>¨›gÃÓKûToÎo¡9À"?	qŒÁz<å_QÜÆUÝúÆ5ýøˆ£ò¢`Ú#e”ŠVqJ¸¹ãE§ä b¢1vƾ¯Ëj2C†,¶A$órEPDŒ œß̃ÑŒ2¾­/WÊ5€ÑWÈà$µk¶@GAYZ#&‹¥õ¥	uý7’1tj±]ÐZwœŸÜ¿Vo‚XÉM‡EùV…B$¾Ò<Å¥IuJ1è63#-í(köﺢÑ"_B¢NÎÍ¢Þ*D,s®I¦Ìë
²Z\!ïæCŸnJà^'5ÍLY1Œ`™ÑkÔS–b-I)Âÿ²ˆ3’–ÅA³™ˆ3‡¯œ¼àöÑX6q¦t2
HZ…œÐB&&EìÕ³±°t6„Yp"ÒqZß((‘Eïãx–ÙKƒ.þªå>y
 ѦƆ0ÄÑ;õNŒÜ
ºoLEcË#2(d⧕U›§B|§I.cóVIRK@¹Rèò…~€ ½$"ào—ë2±ª]Ä&8§ÖË?­ÖêQqQÄ>ÛQQæŠ 1I¦Ž€¬ó®ûˆìYd~ ¾’‹æ*°l¿Ã®:Æ#ÎޝØÅu
¬-é0MÁ[+ÝìÊà®cv²­{YƒRïWB˜Ä·˜¼ÁHG1yr+®ôˇ:¤ƒXÛdœÄñK­Éëvn+ÃôÐêÖ›™͆
˜îi¼e÷¥,fD†?,úqï„ú<B}…Á߸,Aû6|ÛUÞë:_´Ñڏ6¯ ˜ƒ„!ÆHDÄÔûÄy€_w‚ò÷ùôT\ñ/œáYb;¥ucQ-µØ̆L&6FDÈgžÉEóóKÛ‚ÐOц\^B£B§²C ­¸£p‡ž=5
°þ”ØŸÆhQmN[íµ¡-¦ha»cS\1"Œ·Ž¤Ó.£{
ÁU2þenÎBÌ%VK<ä¸^•»Z”¤¶½÷ûãË_·éž¥ìý\¥‹|ÞǬèÓü—t|¦Ö™=ìÃ
9\¶
»SõÌ'áÏá΄%°	\¾º£tØÚÆРü\à˜r¿BeÀ:¡¹:ÙÏvý§©WxŠ8îÖ¸«8䮉©·ºˆ o9)+æv(á±²K†4E‘óM–NýÕÀ3éçÖöµìii¼èù\c_C•Êi¤ã0ÀÑt	Ïx$Åô"ék¡@pçqÑRëg·zW—=/̱ˆnFF:­öõÎlÔÔ„p4OMvl¶{T.'DÉEֈʬë›p=</.9’ÎAJD,dW
uX­¢c›Ï'ïøŸ
’' ð…ž­[
}sqPŠ®ÕëKɬ5ɈcÜ™à2÷ÜsTIO´Ü"¬Ù"du¿K‚µz•Ž@u\À :V~LÈJåQg[¶Ì‘È|ül†Ä?™_¼H°ê8ñ;Z†Æ]gs«Ÿ×—Y&¥ïr
Ner3:Š)I(” ÇÍ7Ñ©@Ž¾Ã¸¡ÐŒIÙ%pOS—Ë‚±A ºôÚ±^âSŽïº©Øʃ)§1›‰‘;¦@<Ý ´! š€†óUï"ÔƒáYòö
£Ø˜p´dh8Ôq[MÓcA”OÍ÷^Ã}P"yp	tˆ0›¼hÞl–¡xð9ˆgP•¤ªz*ãrŠ©¡~(…,œª)*µRˆ&G^Y„.Æ^Pæ˜` [Q`Å(…½L--u`/ù	„Ÿ•IIõp
¦›¸W¤ƒ¼$÷¤ÆÆf
þÀ"¸ÏÐR“o^2T€aÇrðCœ‚” …ô?™&%ÄÊtÔeIRdƒ'Š^—
ƒ$Š£Øz3:<ê¬lxt&P±Ñõ‚/ÆÕ²Úk5ÂFaÔbcÑ™ºÆÒ?Qž$Èô([pQ¦16ÆfÕ(Yó¥£­^W¶—6œ)(„Öçhá†rÎÈ›Â7¨éËa¥Ç܆`ÐÓ
Á Òd!xsð°Æî(6âGÇÅraNB²Ð®ÊL MTÆÍ+#×G×éêM+ð„«•îM”¬$MR±0P¦F8³=ñ´
ÊŽª„¥
˜ßÚÂÅB¥[ÙÀO„ð¬–3±PuÑ3pËœŒª0Õ»¢ëe²Šœ˜è"öQn¹Ô†[ªodŠHÉë"ƒX3ÈRIg´ÞHÕ»%Íñ3ÞXj^^·tƒ¶ÔQu;çdÔGd¤fB¡™;Ú%qߊå3æ¸!¢1¶ýLFO°<{üÍcäàqaj¢PéðCð=RII-y˜™œòH
ñXK¨¯Ãù‹ï^mš—ê­âýÉŠ@{DU¸ÊƒjÇ‹y’pê;
áÁ##‡: ¢I\{Ñ`¹EŠŠ¥OSŠtí$®ÁnñMºEíîBVZM‹ÁÎròœS—˜ÏPâoCÏ.DQå,™0ã_ˆ¨à-•âuôÜNÆÇø3!±È}  5îA!ŠCJÅ—dÔ’„êµ®ô`¬‘‘܍ýYîÙRñÖqԁÁ”7ÂN†wkØ´¹åB†@ƒyrê„噊ƒÔ’WV¤|‚qUwLâÑ T0”D¡LÙÂv ŽªCKátÕC^Çè‘É^m„“®‹0Y“¡¸
ˆ
TªÂºHï±x— Ò+Di~¡½˜(D5 rì€úX|š£¯€Ø°h3ĉìq%°·MÇ„[È‘s¨s‡…0߀p€òCPtDb®Ì¬ör=ˆ¡M!
´ôWë	..C<v¢“LÄAp͹ËÛogiWÔjû¼—€ýf1‰ºXWn|((‡¾b
=·ðê8ƒLîQO¬õ]¹‡Ðw+
alÔÅ¡ÃœØjb«ip…
£ï£·
ˁ\ŽG%œŠØVvL‚	ÁZDÄs¡.g(Uܬh¨Öœ@yËߘjù²Kp˜–ƒIg ‘kè/	Ó3ÃD($KÕLhj€;.EغB3
vA
†ûOÍÓ’ **¢¶aÙ‘[ÆxµÁJopÙôŸ€d3™ºÊö=V}ñPh"
u0	X]q$6ážÅe¬Z2È7¤­¶UUãÕcoQn°;0Öt¬‡WaH×,P¨ìGÂü¼R4dh½<×æ¸J4cM¬<‰A$DÉç¹[%‘1) …ƒu
ŽÈÍ"Í3"	…¢¹°l1-;P"ê…‹±¥	ŒPUgm›ðV}b:£¹KÒ3Å	d(EwÑ!TT c©‚!aÛd@à&$ :dXIR0Äæ÷I{»/X²ã*Q9jÁò56ŸùÕm|‡"pWu,d5‘(©È£g¼ž6dì|ìB`Ï1„ÏÙÒ¤Jó¢Aí7X
yø
½ââ—ÆXljEA†Ò¥ÿœjàÃTŒÔQñÛ¦B;ÀWQP«gÖ­0@®
9ó6‚®	ÌóT¹tñ¸gT+U¡§p¶±u<JÙØÔ*ÝDlŒn†Ä
·ÀbBäb at t†0`ÑMõO¡Šwä	¹f˜‚f)Ý·&šE™š÷¯_‘gÃ\1¡
hæ•Àt7#£j[ºâwjé@È‘°:wrFp»‰²Õu Ì“Û[îÐü«@ÁéuãÚ"HÑfh¹¦AÁp,G v%ÌÇ‚H2	››‚ÉÝÝÃYVCEcº¨÷t=sr
¹eêÀ Ò²tȤ)BÓйª¶au‘¬À!‹ë·Â»åy‚ÙÒGD¤
Es›Å¶à˜„lr)L¢·#Šö*‚1JÐäå&&a,<¼D“yu6‡5æ܆0$‚ëàb¨úÀ¹š°J¨Ò”w2ø2C”ÖâHxMÁí)¨Ž‘‚e¶ÝßcY²Ý;oD¦"jzVŸù£48±²±6ŒæÊâT²±KbÕ)BàÙí鍃&Ô>¡žÃá®gmešû °ˆA…©µ¤	¦,ÓARR_h5ö¡R”¼qlLÐm©qu.•pdÛá!&T‹Ü•K­Ëéè1"óѤbR€©&šù¢^“È2Ñ
²½VhÎÞÍ&št
讬2NøÇñb`™¬ï6'¤`ž¥Hd˜Š…°MÕmpñ@lH•µ›%•ÈÑrŸ00xçhLj]>s¯B¹Žˆ‘Ì€0lå
ÉÝ.g5´«v$¥,M
þ‚¯'ZŒŽàÔn·Ã5 @¥„y ªDêè Ä­PrÉ^ÐÔ9›§X2kEô”¹
]Í
r¦³8ÃA’ˆ¬Š‚]ˆº•ƒab6<Éõ<¹Í«t"ZÅ-+<¨`±$åÓë1ïÙŸÎÝÜÆtîîïMS­™¼ïm®Ò^Ãð3K2Äkz®¨¨qXÓ±
û%Å^]CÞ¤_Ò«éms@‹Š
Õn(…Àa¬‡@Å

“,½8\"¡Æ—+U¡r/9 ¢v0i
¤ñiäZ$$\u VÐü¸Y›‰X6܃2,JCR¡{D·ê£H‚8™ˆÉ*ªsµÓ웄‹ð¶0ÊÛRë¨eÀÍ6F¬fÏ	ÀÌÖdÒHJ˜D‚ñªìíZÑK'ˆj
ÜL£e4/fD#¨—¢%’$|èŸÙY<¨º/—-ç `6Ž(ÑN´pí‰ÅŠPÙ1F ê¡ÂW µ
E‡ØÐDÜáËDàaä‹ èÀY‰ 
$ž4Uâë,"$ª
m!SF£³€pü° ˜Ä±Ej&ß¹bÁéÂ)›öÙÊz(^×;
þèE¯Ò©*r
Ø&!»#cóyü*(ÄE)IÍ›Â8“íÍ™
-œæØP29"UùBqÞ¶jž(£vþ±Þ#SÈ©ÕÄ“°w¥½ÓÏD;ûIÄ+ìT\"%ß¼U¢RKæ"ˆïiŒPõID¨‚!0’€P9‚Êþ.äŠp¡!W˜ÌÈ

Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-7/kernel-2.6.spec,v
retrieving revision 1.3325
retrieving revision 1.3326
diff -u -r1.3325 -r1.3326
--- kernel-2.6.spec	21 Aug 2007 21:29:04 -0000	1.3325
+++ kernel-2.6.spec	22 Aug 2007 22:31:20 -0000	1.3326
@@ -496,6 +496,8 @@
 
 %endif
 
+Patch02: patch-2.6.22.5-rc1.bz2
+
 %if !%{nopatches}
 
 # Revert -stable pieces we get from elsewhere
@@ -520,12 +522,11 @@
 Patch26: linux-2.6-utrace-ptrace-compat-avr32.patch
 #Patch20: nouveau-drm.patch
 Patch30: linux-2.6-sysrq-c.patch
-Patch35: linux-2.6-irq-dont-mask-interrupts-_reversed_.patch
+Patch35: linux-2.6-genirq-fixes.patch
 Patch40: linux-2.6-x86-tune-generic.patch
 Patch50: linux-2.6-x86-vga-vidfail.patch
 Patch52: linux-2.6-amd-fix-broken-lapic-timer-detect.patch
 Patch90: linux-2.6-kvm-suspend.patch
-Patch91: linux-2.6-serial-revert-platform-conversion.patch
 Patch93: linux-2.6-kvm-reinit-real-mode-tss.patch
 
 Patch100: linux-2.6-g5-therm-shutdown.patch
@@ -580,17 +581,17 @@
 Patch600: linux-2.6-vm-silence-atomic-alloc-failures.patch
 Patch601: linux-2.6-input-ff-create-limit-memory.patch
 Patch602: linux-2.6-x86_64-e820_hole_size.patch
-Patch603: linux-2.6-hibernation-do-not-try-to-mark-invalid-pfns-as-nosave.patch
 Patch610: linux-2.6-defaults-fat-utf8.patch
 Patch620: linux-2.6-defaults-unicode-vt.patch
 Patch630: linux-2.6-defaults-nonmi.patch
 Patch660: linux-2.6-libata-ali-atapi-dma.patch
 Patch662: linux-2.6-ata-update-noncq.patch
 Patch663: linux-2.6-ata-quirk.patch
-Patch664: linux-2.6-libata-sb700-sata-ids.patch
 Patch667: linux-2.6-libata-ata_piix_fix_pio-mwdma-programming.patch
 Patch670: linux-2.6-libata-pata_hpt37x-fix-2.6.22-clock-pll.patch
 Patch671: linux-2.6-libata-pata_ali-fix-hp-detect.patch
+Patch673: linux-2.6-libata-simplify-init.patch
+Patch674: linux-2.6-ppc-pegasos-via-ata-legacy-irq.patch
 Patch680: linux-2.6-rtl8187.patch
 Patch681: linux-2.6-wireless.patch
 Patch682: linux-2.6-wireless-pending.patch
@@ -603,20 +604,14 @@
 Patch702: linux-2.6-b43-module-alias.patch
 Patch710: linux-2.6-e1000-ich9.patch
 Patch711: linux-2.6-netdev-forcedeth-realtek-oui.patch
-Patch712: linux-2.6-net-r8169-fix-polling.patch
 Patch713: linux-2.6-net-atl1-fix-typo-in-dma-setup.patch
 Patch714: linux-2.6-net-atl1-fix-typo-in-dma_req_block.patch
-Patch717: linux-2.6-sky2-1-restore-workarounds.patch
-Patch718: linux-2.6-sky2-2-carrier-management.patch
-Patch719: linux-2.6-sky2-3-check-for-more-work.patch
-Patch720: linux-2.6-sky2-4-drop-truncated-packets.patch
 Patch721: linux-2.6-net-sky2-dont-clear-phy-power-bits.patch
+Patch730: linux-2.6-snd-ad1988-fix-spdif-output.patch
+Patch731: linux-2.6-snd-hda-stac92xx-fixes.patch
 Patch740: linux-2.6-sdhci-ene-controller-quirk.patch
 Patch741: linux-2.6-sdhci-fix-interrupt-mask.patch
 Patch742: linux-2.6-sdhci-clear-error-interrupt.patch
-Patch750: linux-2.6-lm_sensors-fix-values.patch
-Patch770: linux-2.6-acpi-fix-gpe-list-corruption.patch
-Patch771: linux-2.6-acpi-fix-older-fadts.patch
 #Patch780: linux-2.6-clockevents-fix-resume-logic.patch
 Patch800: linux-2.6-wakeups-hdaps.patch
 Patch801: linux-2.6-wakeups.patch
@@ -1079,6 +1074,8 @@
 # builds (as used in the buildsystem).
 ApplyPatch linux-2.6-build-nonintconfig.patch
 
+ApplyPatch patch-2.6.22.5-rc1.bz2
+
 %if !%{nopatches}
 
 # Revert -stable pieces we get from elsewhere
@@ -1118,8 +1115,8 @@
 # enable sysrq-c on all kernels, not only kexec
 ApplyPatch linux-2.6-sysrq-c.patch
 
-# revert "genirq: do not mask interrupts by default"
-ApplyPatch linux-2.6-irq-dont-mask-interrupts-_reversed_.patch -R
+# new genirq fixes from upstrea
+ApplyPatch linux-2.6-genirq-fixes.patch
 
 # Architecture patches
 # x86(-64)
@@ -1136,8 +1133,6 @@
 
 # patch to fix suspend with kvm loaded and guests running
 ApplyPatch linux-2.6-kvm-suspend.patch
-# revert to old legacy serial port detection
-ApplyPatch linux-2.6-serial-revert-platform-conversion.patch
 # reinit real mode tss or oops occurs on shutdown
 ApplyPatch linux-2.6-kvm-reinit-real-mode-tss.patch
 
@@ -1270,8 +1265,6 @@
 ApplyPatch linux-2.6-input-ff-create-limit-memory.patch
 # fix sizing of memory holes on x86_64
 ApplyPatch linux-2.6-x86_64-e820_hole_size.patch
-# fix marking of pages as nosave during boot
-ApplyPatch linux-2.6-hibernation-do-not-try-to-mark-invalid-pfns-as-nosave.patch
 
 # Changes to upstream defaults.
 # Use UTF-8 by default on VFAT.
@@ -1288,14 +1281,15 @@
 ApplyPatch linux-2.6-ata-update-noncq.patch
 # ia64 ata quirk
 ApplyPatch linux-2.6-ata-quirk.patch
-# add more ati sb700 ids to the ahci driver
-ApplyPatch linux-2.6-libata-sb700-sata-ids.patch
 # NSIA
 ApplyPatch linux-2.6-libata-ata_piix_fix_pio-mwdma-programming.patch
 # fix hpt37x PLL regression
 ApplyPatch linux-2.6-libata-pata_hpt37x-fix-2.6.22-clock-pll.patch
 # fix wrong DMI detect logic for HP notebook
 ApplyPatch linux-2.6-libata-pata_ali-fix-hp-detect.patch
+# fix Pegasos libata glitches
+ApplyPatch linux-2.6-libata-simplify-init.patch
+ApplyPatch linux-2.6-ppc-pegasos-via-ata-legacy-irq.patch
 
 # Add the rtl8187 driver from upstream
 ApplyPatch linux-2.6-rtl8187.patch
@@ -1323,13 +1317,6 @@
 ApplyPatch linux-2.6-e1000-ich9.patch
 # fix wrong oui in forcedeth
 ApplyPatch linux-2.6-netdev-forcedeth-realtek-oui.patch
-# fix polling in r8169
-ApplyPatch linux-2.6-net-r8169-fix-polling.patch
-# sky2: 4 patches from maintainer
-ApplyPatch linux-2.6-sky2-1-restore-workarounds.patch
-ApplyPatch linux-2.6-sky2-2-carrier-management.patch
-ApplyPatch linux-2.6-sky2-3-check-for-more-work.patch
-ApplyPatch linux-2.6-sky2-4-drop-truncated-packets.patch
 # sky2: 1 more
 ApplyPatch linux-2.6-net-sky2-dont-clear-phy-power-bits.patch
 
@@ -1337,6 +1324,14 @@
 ApplyPatch linux-2.6-net-atl1-fix-typo-in-dma-setup.patch
 ApplyPatch linux-2.6-net-atl1-fix-typo-in-dma_req_block.patch
 
+# ALSA
+#
+# fix spdif output on ad1988
+ApplyPatch linux-2.6-snd-ad1988-fix-spdif-output.patch
+# multiple stac92xx codec fixes
+ApplyPatch linux-2.6-snd-hda-stac92xx-fixes.patch
+
+
 # misc
 #
 # fix weird ENE controller
@@ -1346,15 +1341,10 @@
 # fix the interrupt mask fix
 ApplyPatch linux-2.6-sdhci-clear-error-interrupt.patch
 
-# fix wrong reported values with some sensors
-ApplyPatch linux-2.6-lm_sensors-fix-values.patch
-
 # USB
 #
 
 # ACPI patches
-ApplyPatch linux-2.6-acpi-fix-gpe-list-corruption.patch
-ApplyPatch linux-2.6-acpi-fix-older-fadts.patch
 
 # Fix excessive wakeups
 # Make hdaps timer only tick when in use.
@@ -2306,6 +2296,14 @@
 %endif
 
 %changelog
+* Wed Aug 22 2007 Chuck Ebbert <cebbert at redhat.com>
+- 2.6.22.5-rc1
+- un-revert genirq changes
+- add new genirq fixes from upstream
+- ALSA: fix ad1988 spdif output
+- ALSA: mutiple stac92xx codec fixes
+- libata: fix pata_via driver on ppc pegasos platform
+
 * Tue Aug 21 2007 Chuck Ebbert <cebbert at redhat.com>
 - sky2: don't clear PHY power bits
 


--- linux-2.6-acpi-fix-gpe-list-corruption.patch DELETED ---


--- linux-2.6-acpi-fix-older-fadts.patch DELETED ---


--- linux-2.6-hibernation-do-not-try-to-mark-invalid-pfns-as-nosave.patch DELETED ---


--- linux-2.6-irq-dont-mask-interrupts-_reversed_.patch DELETED ---


--- linux-2.6-libata-sb700-sata-ids.patch DELETED ---


--- linux-2.6-lm_sensors-fix-values.patch DELETED ---


--- linux-2.6-net-r8169-fix-polling.patch DELETED ---


--- linux-2.6-serial-revert-platform-conversion.patch DELETED ---


--- linux-2.6-sky2-1-restore-workarounds.patch DELETED ---


--- linux-2.6-sky2-2-carrier-management.patch DELETED ---


--- linux-2.6-sky2-3-check-for-more-work.patch DELETED ---


--- linux-2.6-sky2-4-drop-truncated-packets.patch DELETED ---




More information about the fedora-extras-commits mailing list