提交 ed3afafd 编写于 作者: G Graeme Russ 提交者: Tom Rix

i386: Misc PCI fixups

Change PCI_REGION_MEMORY to PCI_REGION_SYS_MEMORY (Originally done in
commit ff4e66e9, regressed by commit 6d7f610b)

Cast PCI_ROM_ADDRESS_MASK to u32

Wrap probe_pci_video() call inside #ifdef CONFIG_VIDEO

Change call to pci_find_class() to pci_find_devices(). This is based on a
patch submitted on 1st March 2007 (Patch that fixes the compilation errors
for sc520_cdp board) by mushtaq_k

This patch requires that PCI_VIDEO_VENDOR_ID and PCI_VIDEO_DEVICE_ID be
specified in the board config file.  Dummy values have been added for the
SC520 CDP board to enable compilation, but since I do not have one of these,
I do know what the values should be
Signed-off-by: NGraeme Russ <graeme.russ@gmail.com>
上级 a219983d
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
#include <asm/io.h> #include <asm/io.h>
#include <asm/pci.h> #include <asm/pci.h>
#include <asm/ic/sc520.h> #include <asm/ic/sc520.h>
#include <asm/ic/pci.h>
#include <ali512x.h> #include <ali512x.h>
#include <spi.h> #include <spi.h>
#include <netdev.h> #include <netdev.h>
......
...@@ -124,7 +124,7 @@ void pci_sc520_init(struct pci_controller *hose) ...@@ -124,7 +124,7 @@ void pci_sc520_init(struct pci_controller *hose)
SC520_PCI_MEMORY_BUS, SC520_PCI_MEMORY_BUS,
SC520_PCI_MEMORY_PHYS, SC520_PCI_MEMORY_PHYS,
SC520_PCI_MEMORY_SIZE, SC520_PCI_MEMORY_SIZE,
PCI_REGION_MEM | PCI_REGION_MEMORY); PCI_REGION_MEM | PCI_REGION_SYS_MEMORY);
/* PCI memory space */ /* PCI memory space */
pci_set_region(hose->regions + 1, pci_set_region(hose->regions + 1,
......
...@@ -206,6 +206,8 @@ ...@@ -206,6 +206,8 @@
************************************************************/ ************************************************************/
#ifndef GRUSS_TESTING #ifndef GRUSS_TESTING
#define CONFIG_VIDEO /* To enable video controller support */ #define CONFIG_VIDEO /* To enable video controller support */
#define PCI_VIDEO_VENDOR_ID 0 /*Use the appropriate vendor ID*/
#define PCI_VIDEO_DEVICE_ID 0 /*Use the appropriate Device ID*/
#else #else
#undef CONFIG_VIDEO #undef CONFIG_VIDEO
#endif #endif
......
...@@ -60,7 +60,7 @@ int pci_shadow_rom(pci_dev_t dev, unsigned char *dest) ...@@ -60,7 +60,7 @@ int pci_shadow_rom(pci_dev_t dev, unsigned char *dest)
vendor, device, class_code); vendor, device, class_code);
#endif #endif
/* Enable the rom addess decoder */ /* Enable the rom addess decoder */
pci_write_config_dword(dev, PCI_ROM_ADDRESS, PCI_ROM_ADDRESS_MASK); pci_write_config_dword(dev, PCI_ROM_ADDRESS, (u32)PCI_ROM_ADDRESS_MASK);
pci_read_config_dword(dev, PCI_ROM_ADDRESS, &addr_reg); pci_read_config_dword(dev, PCI_ROM_ADDRESS, &addr_reg);
if (!addr_reg) { if (!addr_reg) {
......
...@@ -76,18 +76,22 @@ void print_bios_bios_stat(void) ...@@ -76,18 +76,22 @@ void print_bios_bios_stat(void)
} }
#endif #endif
#ifdef CONFIG_VIDEO
#define PCI_CLASS_VIDEO 3 #define PCI_CLASS_VIDEO 3
#define PCI_CLASS_VIDEO_STD 0 #define PCI_CLASS_VIDEO_STD 0
#define PCI_CLASS_VIDEO_PROG_IF_VGA 0 #define PCI_CLASS_VIDEO_PROG_IF_VGA 0
static struct pci_device_id supported[] = {
{PCI_VIDEO_VENDOR_ID, PCI_VIDEO_DEVICE_ID},
{}
};
static u32 probe_pci_video(void) static u32 probe_pci_video(void)
{ {
pci_dev_t devbusfn; pci_dev_t devbusfn;
if ((devbusfn = pci_find_class(PCI_CLASS_VIDEO, if ((devbusfn = pci_find_devices(supported, 0) != -1)) {
PCI_CLASS_VIDEO_STD,
PCI_CLASS_VIDEO_PROG_IF_VGA, 0)) != -1) {
u32 old; u32 old;
u32 addr; u32 addr;
...@@ -103,7 +107,7 @@ static u32 probe_pci_video(void) ...@@ -103,7 +107,7 @@ static u32 probe_pci_video(void)
/* Test the ROM decoder, do the device support a rom? */ /* Test the ROM decoder, do the device support a rom? */
pci_read_config_dword(devbusfn, PCI_ROM_ADDRESS, &old); pci_read_config_dword(devbusfn, PCI_ROM_ADDRESS, &old);
pci_write_config_dword(devbusfn, PCI_ROM_ADDRESS, PCI_ROM_ADDRESS_MASK); pci_write_config_dword(devbusfn, PCI_ROM_ADDRESS, (u32)PCI_ROM_ADDRESS_MASK);
pci_read_config_dword(devbusfn, PCI_ROM_ADDRESS, &addr); pci_read_config_dword(devbusfn, PCI_ROM_ADDRESS, &addr);
pci_write_config_dword(devbusfn, PCI_ROM_ADDRESS, old); pci_write_config_dword(devbusfn, PCI_ROM_ADDRESS, old);
...@@ -133,11 +137,6 @@ static u32 probe_pci_video(void) ...@@ -133,11 +137,6 @@ static u32 probe_pci_video(void)
return 0; return 0;
} }
#endif
#ifdef CONFIG_VIDEO
static int probe_isa_video(void) static int probe_isa_video(void)
{ {
u32 ptr; u32 ptr;
...@@ -220,3 +219,4 @@ int video_bios_init(void) ...@@ -220,3 +219,4 @@ int video_bios_init(void)
} }
#endif #endif
#endif
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册