summaryrefslogtreecommitdiff
path: root/linux-2.6.10
diff options
context:
space:
mode:
authorJean-Philippe Save2009-03-10 18:48:53 +0100
committerJean-Philippe Save2009-03-10 18:48:53 +0100
commit27ff1ccefcd34a1e9071cfbe93323f0d8918de1f (patch)
tree2aaeee6e7a467fba829de39f2f39d4e503ebf301 /linux-2.6.10
parentcc4550d3291415dd04e252914373343e75b755d0 (diff)
parent8eac39738371f037520535ac8cd9c9e4b2980172 (diff)
automerge
Diffstat (limited to 'linux-2.6.10')
-rw-r--r--linux-2.6.10/drivers/net/ks8001/KS8001.c18
-rw-r--r--linux-2.6.10/drivers/net/ks8001/KS8001_dma.c2
-rw-r--r--linux-2.6.10/drivers/net/ks8001/KS8001_mii.h1
3 files changed, 12 insertions, 9 deletions
diff --git a/linux-2.6.10/drivers/net/ks8001/KS8001.c b/linux-2.6.10/drivers/net/ks8001/KS8001.c
index d765a5aa50..e24ced6f4f 100644
--- a/linux-2.6.10/drivers/net/ks8001/KS8001.c
+++ b/linux-2.6.10/drivers/net/ks8001/KS8001.c
@@ -368,7 +368,7 @@ static int ks8001_restore_mac_register (struct net_device *dev)
* Parameters : dev->network device structure
* Return value : error code.
*/
-static void ks8001_an_complete (struct net_device *dev)
+static void ks8001_an_complete (struct net_device *dev)
{
Private* pr = (Private*)dev->priv;
Synopsys *tc = &pr->synopsys;
@@ -378,7 +378,7 @@ static void ks8001_an_complete (struct net_device *dev)
int fd_used;
//Check the duplex mode (result of the Autonegotiation)
- if(pr->phy_oui==OUI_ICS && pr->phy_model==ICS_MODEL_1893BF) //using QPDSR instead of BMCR
+ if(pr->phy_oui==OUI_ICS && ((pr->phy_model==ICS_MODEL_1893BF) || (pr->phy_model==ICS_MODEL_1893CF))) //using QPDSR instead of BMCR
{
data = SynopsysMiiRead(tc, MII_QPDSR);
s100_used = data & QPDSR_SPEED100;
@@ -473,7 +473,7 @@ static int ks8001_autonegotiate (struct net_device *dev, int wait)
volatile uint32_t data;
//As we get no interrupt from the phy, we have to poll the status register
- if(pr->phy_oui == OUI_ICS && pr->phy_model == ICS_MODEL_1893BF) //using QPDSR instead of BMCR
+ if(pr->phy_oui == OUI_ICS && ((pr->phy_model == ICS_MODEL_1893BF) || (pr->phy_model==ICS_MODEL_1893CF))) //using QPDSR instead of BMCR
{
do
{
@@ -534,7 +534,7 @@ static void ks8001_setup_ethernet_address (struct net_device *dev)
debugp(DRV_NAME ": hardware ethernet addr =%02X:%02X:%02X:%02X:%02X:%02X\n",(data2) & 0xFF, (data2>>8) & 0xFF,
(data2>>16) & 0xFF, (data2>>24) & 0xFF,
(data) & 0xFF, (data>>8) & 0xFF);
-}//ks8001_setup_ethernet_address
+}//ks8001_setup_ethernet_address
/**
* Function : ks8001_on_link_up
@@ -623,7 +623,7 @@ static int ks8001_scan_link (struct net_device *dev)
SynopsysMiiRead(tc, MII_BMSR); //TODO:Dummy Read
- if(pr->phy_oui == OUI_ICS && pr->phy_model == ICS_MODEL_1893BF)
+ if(pr->phy_oui == OUI_ICS && ((pr->phy_model == ICS_MODEL_1893BF) || (pr->phy_model==ICS_MODEL_1893CF)))
return SynopsysMiiRead (tc, MII_QPDSR) & QPDSR_LSTATUS;
else
return SynopsysMiiRead (tc, MII_BMSR) & BMSR_LSTATUS;
@@ -1166,6 +1166,8 @@ static int ks8001_open (struct net_device *dev)
pr->phy_rev = (pr->phy_id >> 0) & 0x0000000f;
if(pr->phy_oui == OUI_ICS && pr->phy_model == ICS_MODEL_1893BF)
printk(DRV_NAME ": PHY for %s is ICS1893BF rev %u\n", dev->name, pr->phy_rev);
+ else if(pr->phy_oui == OUI_ICS && pr->phy_model == ICS_MODEL_1893CF)
+ printk(DRV_NAME ": PHY for %s is ICS1893CF rev %u\n", dev->name, pr->phy_rev);
else if(pr->phy_oui == OUI_JVA && pr->phy_model == ICS_MODEL_1893BF)
printk(DRV_NAME ": PHY for %s is ICS_NO rev %u\n", dev->name, pr->phy_rev);
else if(pr->phy_oui == OUI_MICREL && pr->phy_model == MICREL_MODEL_KS8721)
@@ -1262,7 +1264,7 @@ static int ks8001_try_init (struct net_device *dev)
macBase = configBase + MAC_OFFSET; // MAC address offset
dmaBase = configBase + DMA_OFFSET; // DMA address offset
- //Try to find valid PHY address
+ //Try to find valid PHY address
for(i = 1; i < 32; i++)
{
SynopsysInit(&pr->synopsys, configBase, macBase, dmaBase, i);
@@ -1408,7 +1410,7 @@ static int ks8001_readproc_internals (char *buf, char **start, off_t offset,
p = buf;
p += sprintf (p, "TBD\n");
- /*
+ /*
* DISPLAY_INTRN(dma_isr);
* DISPLAY_INTRN(dma_poll_rx);
* DISPLAY_INTRN(dma_poll_tx);
@@ -1554,7 +1556,7 @@ static int ks8001_readproc_regs_qpdsr (char *buf, char **start, off_t offset,
* if (priv->phy_oui==OUI_ICS && priv->phy_model==ICS_MODEL_1893BF)
* {
* reg = mdio_read(dev, PHY_ADDR, MII_QPDSR);
- *
+ *
* p += sprintf(p,"PHY Quick Poll Status Register: 0x%4.4x\n", reg);
* p += sprintf(p,"17.15 Reg Rate ................ %d Mbit/s\n", (reg & QPDSR_SPEED100)?100:10);
* p += sprintf(p,"17.14 Mode .................... %s\n", (reg & QPDSR_FULLDPLX)?"full duplex":"half duplex");
diff --git a/linux-2.6.10/drivers/net/ks8001/KS8001_dma.c b/linux-2.6.10/drivers/net/ks8001/KS8001_dma.c
index e379859f43..9da1ac2a73 100644
--- a/linux-2.6.10/drivers/net/ks8001/KS8001_dma.c
+++ b/linux-2.6.10/drivers/net/ks8001/KS8001_dma.c
@@ -263,7 +263,7 @@ struct syeth_dma_rb * syeth_dma_rx_rb_static_alloc (struct net_device_stats * st
/* dma descriptors */
rb->cur = 0;
rb->dcount = ETH_RX_RING_SIZE;
- rb->skblength = ETH_LEN;
+ rb->skblength = PKT_BUF_SZ;
rb->dsize = ETH_RX_DMAREG_SIZE;
rb->stats = st;
rb->d.rx = (struct syeth_dma_rx_t*)ETH_RX_DMAREG_BASE;
diff --git a/linux-2.6.10/drivers/net/ks8001/KS8001_mii.h b/linux-2.6.10/drivers/net/ks8001/KS8001_mii.h
index b9afef2732..61fbe55dbc 100644
--- a/linux-2.6.10/drivers/net/ks8001/KS8001_mii.h
+++ b/linux-2.6.10/drivers/net/ks8001/KS8001_mii.h
@@ -5,6 +5,7 @@
#define OUI_ICS (0x00057D) //00A0BE
#define OUI_JVA (0x00BEEF)
#define ICS_MODEL_1893BF (0x04)
+#define ICS_MODEL_1893CF (0x05)
//specific regs
#define MII_NEXTPAGE (0x07) //Autonegotiation Next Page
#define MII_NEXTPAGELPA (0x08) //Autonegotiation Next Page Link Partner