summaryrefslogtreecommitdiffstats
path: root/sys/dev/ed
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2005-09-06 22:46:41 +0000
committerimp <imp@FreeBSD.org>2005-09-06 22:46:41 +0000
commit7cd18dbbe8d0fa354c1d4b0bffce6181daef5707 (patch)
treeb3c7cc6c36f795b93e70c5f5f9f3861027fd1563 /sys/dev/ed
parent442673342bd080723a76ac84ac326b6f8b1fafd0 (diff)
downloadFreeBSD-src-7cd18dbbe8d0fa354c1d4b0bffce6181daef5707.zip
FreeBSD-src-7cd18dbbe8d0fa354c1d4b0bffce6181daef5707.tar.gz
Go ahead and | in ED_CR_PAGE_0, even though this doesn't change things
at all. It makes the code clearer. fix a comment comments about why we need to write i/o address to certain registers.
Diffstat (limited to 'sys/dev/ed')
-rw-r--r--sys/dev/ed/if_ed_pccard.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/sys/dev/ed/if_ed_pccard.c b/sys/dev/ed/if_ed_pccard.c
index 0c4ddae..9afa700 100644
--- a/sys/dev/ed/if_ed_pccard.c
+++ b/sys/dev/ed/if_ed_pccard.c
@@ -401,7 +401,8 @@ ax88x90_geteprom(struct ed_softc *sc)
struct {
unsigned char offset, value;
} pg_seq[] = {
- {ED_P0_CR, ED_CR_RD2|ED_CR_STP},/* Select Page0 */
+ /* Select Page0 */
+ {ED_P0_CR, ED_CR_RD2 | ED_CR_STP | ED_CR_PAGE_0},
{ED_P0_DCR, 0x01},
{ED_P0_RBCR0, 0x00}, /* Clear the count regs. */
{ED_P0_RBCR1, 0x00},
@@ -413,14 +414,15 @@ ax88x90_geteprom(struct ed_softc *sc)
{ED_P0_RBCR1, 0x00},
{ED_P0_RSAR0, 0x00},
{ED_P0_RSAR1, 0x04},
- {ED_P0_CR ,ED_CR_RD0 | ED_CR_STA},
+ {ED_P0_CR, ED_CR_RD0 | ED_CR_STA | ED_CR_PAGE_0},
};
+ /* XXX The Linux axnet_cs driver does the following differently */
/* Reset Card */
tmp = ed_asic_inb(sc, ED_NOVELL_RESET);
ed_asic_outb(sc, ED_NOVELL_RESET, tmp);
DELAY(5000);
- ed_asic_outb(sc, ED_P0_CR, ED_CR_RD2 | ED_CR_STP);
+ ed_asic_outb(sc, ED_P0_CR, ED_CR_RD2 | ED_CR_STP | ED_CR_PAGE_0);
DELAY(5000);
/* Card Settings */
@@ -541,9 +543,10 @@ ed_pccard_ax88x90(device_t dev)
sc->nic_offset = ED_NOVELL_NIC_OFFSET;
sc->chip_type = ED_CHIP_TYPE_AX88190;
- /*
+ /* XXX
* Set Attribute Memory IOBASE Register. Is this a deficiency in
- * the PC Card layer, or an ax88190 specific issue? xxx
+ * the PC Card layer, or an ax88190 specific issue? The card
+ * definitely doesn't work without it.
*/
iobase = rman_get_start(sc->port_res);
ed_pccard_memwrite(dev, ED_AX88190_IOBASE0, iobase & 0xff);
OpenPOWER on IntegriCloud