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òjmL#PÈ
P=
ÖÕ7"É)¦J
KÝLXóy¿Ös#°ëÆIDDUV5%inÝ^¦©WóY·ü«èÆ·Z>"lWfU¢fî®èµK¶®¥%!wmZUK©)#ºn""1EPK(«3æÅæ¨åSQ Ѥ¦,ÅÊ)¥n©«kP~OóU¤ô¿Ú#Æ(¥VaËÄCçHz]î&þ4*Nr KÌ#!K
UWEU]]Ý·tÊðÁ«dÕIwVYvµUXR® ]PU\* ÎaïCÉî=ÄoóGý¶Yºç«êº;ÌlÊ¿mWù±xÃdHOÅh²¾ç;
ÁÉ1ù¾÷²éùyúõzfÒøðynù÷ ÚÅ.Ë=YÑNr#±;ãcßN4ùw0ås.äíÊÈ%¿((8&$øÓкüF`VT2PÆ,\Ã@IÖÂìÿ¹0öHòÙÒ¸Ø
«´ÉnLÜòÍ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%@âímES7Ìëóµcòçï/n¤òvÍFcåþ·-ó°ÁQöáËDµ_ícÛ4w5Ë^ã2T;É}îÌ°âóünã½QDóß7YT¦*]Påj+þçóël/âeìÉ$°Ig^§xǪOu}¼ú1ñ
¿ë1+*¶Óü< Þt_v?u aÈôLíwCÖâtÄíyÿ(%?á±´Z4|A<6yßN3T1ºè¾#¼w^9|²Èðçl%Øàb/e9êów3ÆK mk
Ìgµ2põ¼ø=µJsô>z=68âQc×?MÒpü³>ÎDÅÓuEt6ÇȽ
¤+O«<¾>¨¬Ó¹áûwâÎöѹ¯<i¸ßâµØm6Üb¼õR"½Yp3ñ`Òec7ðÇJE²×ÂÔs2¯Zãæ.¡òlg^ÌZÄÑ£8ôXÜ"hϬWìAC]}Evvi6ºE&ò°ÉêÍ¢¤ç#Ù/HYf]Ò·]réðÀ~¨Þ2v@ÉìJ>FÉñéß')ý:Y£\srÈîÂ$¼uxç:>ºÞNn A"ªªÂ<% S¢ª$úÈ)rDö
qNÄuBJ±ê ìØ5ÙööÿntxÅ9²TØ$Öc!p*¼xª%b|ö8T³H«<JÄ-»>Z±«=<þéO
ô~ +öfTý#*8jJ*ÌshÄÛ¡Ø©iOk¬Sp¦ Z5i7L| É×$tÀ
³ëÁISIïë¶CÕ´(]ÁèP{{°X34F.eäù~í=$0Õ¡x
|]²>îþߨ?(¯®lï9ÑÁL¾VáÕÖb¹Ög8Ö'_#4ù7ÛÃésÎï%h§Nf¿õXæwù]oÉ?¢¹ÙÏÝÑu5f§.õyÉÊõ·0ÙÒR<ë8÷®,ôµPèkö¸CRgvórù¨õSI
.®¾Îuãð§¨mCã1ãE^ó·^ìw`®YÝÏ
Aá3«ßûRyÑE at F1Ab ÄF
Ð?(N£à¼ùËħ1AúÀWRD
÷uÔ ¨Lí2AdPê>z§ûµ ÐõY°^þdÙöq¥ü}×E»½¬ô¼èéQ.¦ç%ã
s^ò¾©¢yîè
Ý>RX?ydØ«ã%²Ýô^µéÕ@S*Hû¼ô#©P¬Ìv¶,pHß")3,ÒÿVt!búÆN¸â¨öS9Roòù®÷ª8£ÒaÆjôuD6b÷xÜåƦsvÚkÉ=GÃß:®ÓS#äÓÜ´Ý¢Í{¹
k¼EìãTâbØé9bðÿ)~ÿoÏ=q^Ã$~#ÿ¿ôf6ï¼Go>×s"©H)òD
>
\ÅÙ5à#µñ!r;ú mÌ é,¥AQôVÁ#Þ.tÚN
ybha0Ü"P¸7>Êð¤òEÍóñ¬f¶×É¢
Îr¡¢¾QkÎü2ºþYú´Î=ü£½dÊÔZâr½óà/~$å|£Ê9U)ʨ¯2uóC
Ç·uǹ&ÞÛí«ýÑÚ£ÚTJ2¢z(ÔÊO)kÚóîìïwñïÜ0jÛÜ3ů9¢'ð4ÿTv[·§n5¦MFã
8²Ð`n3ÓGÔ)øÀ]Âàè$ó¢Ö#8ÇyÛÊNyÐú¬ªjoá÷¦b(ª(¢$1:¦²of
(¢(¢3IêL`ÌÁ:ÉÈ1`\äQNÌÎôåå`1éaà ü ö|¦Åbú3:©Z*ðW[×}é9§$ñ7±P g®w¸'9¥c£CBb
B|}}~1ÖÐCò²¾fAëX_m at jâÀûrP(ýÔZgî/
E0ª\P²Õ¼ãÔyv{¤|¼þÂP:Kú¹7ì( ZfÏ(9ÉÈzY5ö*î'[Ш!~-WãßçkÁ´X¼µ©Y$ª¤¦ez$Wà=>ûoæPÂ2@§S¼çTÆõwiÇ÷[½vÌâºûI,Å@V¯ïnÚU4cE
yüJÕ¦ÆUY¼¤bCÑ=+0_XM'|tI
³¤¥WRô0:{ô~Q3péãüç^¤ùDX¢u==ß»A µ¥Åú"nÏMq%ÅKB§í~Èh`>è~=Âþ0&бÉÃÓ_\(5bØ5ÿ@TÀ"¤5ØîÇ«ÐÙ>¨gÃÓKûToÎo¡9À"? qÁz<å_QÜÆUÝúÆ5ýø£ò¢`Ú#eVqJ¸¹ãE§ä b¢1vƾ¯Ëj2C,¶A$órEPD ßÌÑ2¾/WÊ5ÑWÈà$µk¶@GAYZ#&¥õ¥ uý71tj±]ÐZwÜ¿VoXÉMEùV
B$¾Ò<Å¥IuJ1è63#-í(köﺢÑ"_B¢NÎÍ¢Þ*D,s®I¦Ìë
²Z\!ïæCnJà^'5ÍLY1`ÑkÔSb-I)Âÿ²3ÅA³3¯¼àöÑX6q¦t2
HZ
ÐB&&EìÕ³±°t6Yp"ÒqZß((EïãxÙK.þªå>y
ѦÆ0ÄÑ;õNÜ
ºoLEcË#2(dâ§U§B|§I.cóVIRK@¹Rèò
~ ½$"àoë2±ª]Ä&8§ÖË?ÖêQqQÄ>ÛQQæ 1I¦¬ó®ûìYd~ ¾æ*°l¿Ã®:Æ#ÎήØÅu
¬-é0MÁ[+ÝìÊà®cv²{YRï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(á±²K4EóMNýÕÀ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ÓcAOÍ÷^Ã}P"yp t0¼hÞl¡xð9gP¤ªz*ãr©¡~(
,ª)*µR&G^Y.Æ^Pæ` [Q`Å(
½L--u`/ù IIõp
¦¸W¤¼$÷¤ÆÆf
þÀ"¸ÏÐRo^2TaÇrðC
ô?&%ÄÊtÔeIRd'^
$£Øz3:<ê¬lxt&P±Ñõ/ÆÕ²Úk5ÂFaÔbcѺÆÒ?Q$Èô([pQ¦16Æ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¹Ô[ªodHÉë"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Çypê;
áÁ##: ¢I\{Ñ`¹E¥OStí$®ÁnñMºEíîBVZMÁïÎròSÏPâoCÏ.DQå,0ã_¨à-âuôÜNÆÇø3!±È} 5îA!CJÅdÔêµ®ô`¬ÜýYîÙRñÖqÔÁ7ÂNwkØ´¹åB@ÂyrêåÔWV¤|qUwLâÑ T0D¡LÙÂv ªCKátÕC^ÇèÉ^m®0Y¡¸
TªÂºHï±x Ò+Di~¡½(D5 rìúX|£¯Ø°h3Äìq%°·MÇ[Ès¨s
0ßpòCPtDb®Ì¬ör=¡M!
´ôWë ..C<v¢LÄAp͹ËÛogiWÔjû¼ýf1ºXWn|((¾b
=·ðê8LîQO¬õ]¹Ðw+
alÔÅ¡ÃØjb«ip
£ï£·
Ë\G%ØVvL ÁZDÄs¡.g(Uܬh¨Ö@yËßjù²KpIg 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ø
½ââÆXÇEAÒ¥ÿjàÃTÔQñÛ¦B;ÀWQP«gÖ0@®
9ó6® ÌóT¹tñ¸gT+U¡§p¶±u<JÙØÔ*ÝDlnÄ
·ÀbBäb at t0`ÑMõO¡wä ¹ff)Ý·&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,<¼Dyu65æÜ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µ%ÈÑr00xçhÇ]>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Ðü¸YX6Ü2,JCR¡{D·ê£H8É*ªsµÓìð¶0ÊÛRë¨eÀÍ6F¬fÏ ÀÌÖdÒHJDñªìíZÑK'j
ÜL£e4/fD#¨¢%$|èÙ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æ"ïiPõID¨!0P9Êþ.ä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