summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2007-09-02 14:02:19 +0200
committerStefan Roese <sr@denx.de>2007-09-02 14:02:19 +0200
commit1d1ab638f8b5961e4972d29394e573afb39667be (patch)
tree36fa9e8b01e05323e93a55a2cdc592fe69b5396c /drivers
parent81b73dec16fd1227369a191e725e10044a9d56b8 (diff)
parent60174746c668b309378a91488dded898e9553eae (diff)
downloadu-boot-imx-1d1ab638f8b5961e4972d29394e573afb39667be.zip
u-boot-imx-1d1ab638f8b5961e4972d29394e573afb39667be.tar.gz
u-boot-imx-1d1ab638f8b5961e4972d29394e573afb39667be.tar.bz2
Merge with git://www.denx.de/git/u-boot.git
Diffstat (limited to 'drivers')
-rw-r--r--drivers/dm9000x.c6
-rw-r--r--drivers/fsl_pci_init.c9
-rw-r--r--drivers/usb_ohci.c6
3 files changed, 13 insertions, 8 deletions
diff --git a/drivers/dm9000x.c b/drivers/dm9000x.c
index 78acb09..e0d531b 100644
--- a/drivers/dm9000x.c
+++ b/drivers/dm9000x.c
@@ -303,8 +303,8 @@ eth_init(bd_t * bd)
for (i = 0; i < 6; i++)
((u16 *) bd->bi_enetaddr)[i] = read_srom_word(i);
- if (!is_zero_ether_addr(bd->bi_enetaddr) &&
- !is_mutlicast_ether_addr(bd->bi_enetaddr)) {
+ if (is_zero_ether_addr(bd->bi_enetaddr) ||
+ is_multicast_ether_addr(bd->bi_enetaddr)) {
/* try reading from environment */
u8 i;
char *s, *e;
@@ -542,7 +542,7 @@ read_srom_word(int offset)
{
DM9000_iow(DM9000_EPAR, offset);
DM9000_iow(DM9000_EPCR, 0x4);
- udelay(200);
+ udelay(8000);
DM9000_iow(DM9000_EPCR, 0x0);
return (DM9000_ior(DM9000_EPDRL) + (DM9000_ior(DM9000_EPDRH) << 8));
}
diff --git a/drivers/fsl_pci_init.c b/drivers/fsl_pci_init.c
index 1084dc6..3a13eea 100644
--- a/drivers/fsl_pci_init.c
+++ b/drivers/fsl_pci_init.c
@@ -130,9 +130,14 @@ fsl_pci_init(struct pci_controller *hose)
}
- /* Call setup to allocate PCSRBAR window */
- pciauto_setup_device(hose, dev, 1, hose->pci_mem,
+ /* Use generic setup_device to initialize standard pci regs,
+ * but do not allocate any windows since any BAR found (such
+ * as PCSRBAR) is not in this cpu's memory space.
+ */
+
+ pciauto_setup_device(hose, dev, 0, hose->pci_mem,
hose->pci_prefetch, hose->pci_io);
+
#ifndef CONFIG_PCI_NOSCAN
printf (" Scanning PCI bus %02x\n", hose->current_busno);
hose->last_busno = pci_hose_scan_bus(hose,hose->current_busno);
diff --git a/drivers/usb_ohci.c b/drivers/usb_ohci.c
index f0a37b2..14984a5 100644
--- a/drivers/usb_ohci.c
+++ b/drivers/usb_ohci.c
@@ -669,7 +669,7 @@ static int ep_link (ohci_t *ohci, ed_t *edi)
ed_p = &(((ed_t *)ed_p)->hwNextED))
inter = ep_rev (6, ((ed_t *)ed_p)->int_interval);
ed->hwNextED = *ed_p;
- *ed_p = m32_swap(ed);
+ *ed_p = m32_swap((unsigned long)ed);
}
break;
}
@@ -687,11 +687,11 @@ static void periodic_unlink ( struct ohci *ohci, volatile struct ed *ed,
/* ED might have been unlinked through another path */
while (*ed_p != 0) {
- if (((struct ed *)m32_swap (ed_p)) == ed) {
+ if (((struct ed *)m32_swap ((unsigned long)ed_p)) == ed) {
*ed_p = ed->hwNextED;
break;
}
- ed_p = & (((struct ed *)m32_swap (ed_p))->hwNextED);
+ ed_p = & (((struct ed *)m32_swap ((unsigned long)ed_p))->hwNextED);
}
}
}