Skip to content

Commit

Permalink
x86_64: introduce handle_quirks() for various chipset quirks
Browse files Browse the repository at this point in the history
Move the aic94xx split completion timeout handling there.

Signed-off-by: Muli Ben-Yehuda <muli@il.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Muli Ben-Yehuda authored and Linus Torvalds committed Jul 22, 2007
1 parent 9882234 commit b8d2ea1
Showing 1 changed file with 17 additions and 8 deletions.
25 changes: 17 additions & 8 deletions arch/x86_64/kernel/pci-calgary.c
Original file line number Diff line number Diff line change
Expand Up @@ -807,6 +807,20 @@ static void __init calgary_set_split_completion_timeout(void __iomem *bbar,
readq(target); /* flush */
}

static void __init calgary_handle_quirks(struct pci_dev* dev)
{
unsigned char busnum = dev->bus->number;
struct iommu_table *tbl = dev->sysdata;

/*
* Give split completion a longer timeout on bus 1 for aic94xx
* http://bugzilla.kernel.org/show_bug.cgi?id=7180
*/
if (busnum == 1)
calgary_set_split_completion_timeout(tbl->bbar, busnum,
CCR_2SEC_TIMEOUT);
}

static void __init calgary_enable_translation(struct pci_dev *dev)
{
u32 val32;
Expand All @@ -831,14 +845,6 @@ static void __init calgary_enable_translation(struct pci_dev *dev)
writel(cpu_to_be32(val32), target);
readl(target); /* flush */

/*
* Give split completion a longer timeout on bus 1 for aic94xx
* http://bugzilla.kernel.org/show_bug.cgi?id=7180
*/
if (busnum == 1)
calgary_set_split_completion_timeout(bbar, busnum,
CCR_2SEC_TIMEOUT);

init_timer(&tbl->watchdog_timer);
tbl->watchdog_timer.function = &calgary_watchdog;
tbl->watchdog_timer.data = (unsigned long)dev;
Expand Down Expand Up @@ -890,6 +896,9 @@ static int __init calgary_init_one(struct pci_dev *dev)

pci_dev_get(dev);
dev->bus->self = dev;

calgary_handle_quirks(dev);

calgary_enable_translation(dev);

return 0;
Expand Down

0 comments on commit b8d2ea1

Please sign in to comment.