From 6dc9cfc88e514e367ff2413d8859b2337e286ce9 Mon Sep 17 00:00:00 2001 From: Zheng Da Date: Tue, 6 Apr 2010 04:36:51 +0200 Subject: Use pci_set_master in linux. --- libdde_linux26/lib/src/arch/l4/pci.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'libdde_linux26/lib/src/arch/l4') diff --git a/libdde_linux26/lib/src/arch/l4/pci.c b/libdde_linux26/lib/src/arch/l4/pci.c index d5a1414f..1cd64a7d 100644 --- a/libdde_linux26/lib/src/arch/l4/pci.c +++ b/libdde_linux26/lib/src/arch/l4/pci.c @@ -132,13 +132,21 @@ void pci_fixup_device(enum pci_fixup_pass pass, struct pci_dev *dev) //WARN_UNIMPL; } -void pci_set_master(struct pci_dev *dev) +static unsigned int pcibios_max_latency = 255; + +void pcibios_set_master(struct pci_dev *dev) { - CHECK_INITVAR(dde26_pci); - WARN_UNIMPL; + u8 lat; + pci_read_config_byte(dev, PCI_LATENCY_TIMER, &lat); + if (lat < 16) + lat = (64 <= pcibios_max_latency) ? 64 : pcibios_max_latency; + else if (lat > pcibios_max_latency) + lat = pcibios_max_latency; + else + return; + pci_write_config_byte(dev, PCI_LATENCY_TIMER, lat); } - int pci_create_sysfs_dev_files(struct pci_dev *pdev) { return 0; -- cgit v1.2.3