Merge /spare/repo/linux-2.6/
This commit is contained in:
@ -7,21 +7,26 @@
|
||||
*
|
||||
* Copyright 2003-2004 Red Hat, Inc.
|
||||
*
|
||||
* The contents of this file are subject to the Open
|
||||
* Software License version 1.1 that can be found at
|
||||
* http://www.opensource.org/licenses/osl-1.1.txt and is included herein
|
||||
* by reference.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms
|
||||
* of the GNU General Public License version 2 (the "GPL") as distributed
|
||||
* in the kernel source COPYING file, in which case the provisions of
|
||||
* the GPL are applicable instead of the above. If you wish to allow
|
||||
* the use of your version of this file only under the terms of the
|
||||
* GPL and not to allow others to use your version of this file under
|
||||
* the OSL, indicate your decision by deleting the provisions above and
|
||||
* replace them with the notice and other provisions required by the GPL.
|
||||
* If you do not delete the provisions above, a recipient may use your
|
||||
* version of this file under either the OSL or the GPL.
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
*
|
||||
* libata documentation is available via 'make {ps|pdf}docs',
|
||||
* as Documentation/DocBook/libata.*
|
||||
*
|
||||
* Hardware information only available under NDA.
|
||||
*
|
||||
*/
|
||||
|
||||
@ -206,6 +211,10 @@ static struct pci_device_id pdc_ata_pci_tbl[] = {
|
||||
board_20319 },
|
||||
{ PCI_VENDOR_ID_PROMISE, 0x3319, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
|
||||
board_20319 },
|
||||
{ PCI_VENDOR_ID_PROMISE, 0x3519, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
|
||||
board_20319 },
|
||||
{ PCI_VENDOR_ID_PROMISE, 0x3d17, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
|
||||
board_20319 },
|
||||
{ PCI_VENDOR_ID_PROMISE, 0x3d18, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
|
||||
board_20319 },
|
||||
|
||||
@ -357,11 +366,15 @@ static void pdc_qc_prep(struct ata_queued_cmd *qc)
|
||||
|
||||
static void pdc_eng_timeout(struct ata_port *ap)
|
||||
{
|
||||
struct ata_host_set *host_set = ap->host_set;
|
||||
u8 drv_stat;
|
||||
struct ata_queued_cmd *qc;
|
||||
unsigned long flags;
|
||||
|
||||
DPRINTK("ENTER\n");
|
||||
|
||||
spin_lock_irqsave(&host_set->lock, flags);
|
||||
|
||||
qc = ata_qc_from_tag(ap, ap->active_tag);
|
||||
if (!qc) {
|
||||
printk(KERN_ERR "ata%u: BUG: timeout without command\n",
|
||||
@ -395,6 +408,7 @@ static void pdc_eng_timeout(struct ata_port *ap)
|
||||
}
|
||||
|
||||
out:
|
||||
spin_unlock_irqrestore(&host_set->lock, flags);
|
||||
DPRINTK("EXIT\n");
|
||||
}
|
||||
|
||||
@ -477,7 +491,8 @@ static irqreturn_t pdc_interrupt (int irq, void *dev_instance, struct pt_regs *r
|
||||
VPRINTK("port %u\n", i);
|
||||
ap = host_set->ports[i];
|
||||
tmp = mask & (1 << (i + 1));
|
||||
if (tmp && ap && (!(ap->flags & ATA_FLAG_PORT_DISABLED))) {
|
||||
if (tmp && ap &&
|
||||
!(ap->flags & (ATA_FLAG_PORT_DISABLED | ATA_FLAG_NOINTR))) {
|
||||
struct ata_queued_cmd *qc;
|
||||
|
||||
qc = ata_qc_from_tag(ap, ap->active_tag);
|
||||
|
Reference in New Issue
Block a user