mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-21 22:51:37 +00:00
Ran lindent and cleaned up whitespace issues.
Format for 80-columns too.
This commit is contained in:
parent
333961ae70
commit
89875e96ba
1 changed files with 453 additions and 439 deletions
158
drivers/tsec.c
158
drivers/tsec.c
|
@ -1,5 +1,4 @@
|
|||
/*
|
||||
* tsec.c
|
||||
* Freescale Three Speed Ethernet Controller driver
|
||||
*
|
||||
* This software may be used and distributed according to the
|
||||
|
@ -42,7 +41,6 @@ struct tsec_info_struct {
|
|||
unsigned int phyregidx;
|
||||
};
|
||||
|
||||
|
||||
/* The tsec_info structure contains 3 values which the
|
||||
* driver uses to determine how to operate a given ethernet
|
||||
* device. The information needed is:
|
||||
|
@ -111,7 +109,8 @@ static RTXBD rtx __attribute__ ((aligned(8)));
|
|||
#error "rtx must be 64-bit aligned"
|
||||
#endif
|
||||
|
||||
static int tsec_send(struct eth_device* dev, volatile void *packet, int length);
|
||||
static int tsec_send(struct eth_device *dev,
|
||||
volatile void *packet, int length);
|
||||
static int tsec_recv(struct eth_device *dev);
|
||||
static int tsec_init(struct eth_device *dev, bd_t * bd);
|
||||
static void tsec_halt(struct eth_device *dev);
|
||||
|
@ -153,7 +152,8 @@ int tsec_initialize(bd_t *bis, int index, char *devname)
|
|||
privlist[index] = priv;
|
||||
priv->regs = (volatile tsec_t *)(TSEC_BASE_ADDR + index * TSEC_SIZE);
|
||||
priv->phyregs = (volatile tsec_t *)(TSEC_BASE_ADDR +
|
||||
tsec_info[index].phyregidx*TSEC_SIZE);
|
||||
tsec_info[index].phyregidx *
|
||||
TSEC_SIZE);
|
||||
|
||||
priv->phyaddr = tsec_info[index].phyaddr;
|
||||
priv->flags = tsec_info[index].flags;
|
||||
|
@ -172,7 +172,6 @@ int tsec_initialize(bd_t *bis, int index, char *devname)
|
|||
|
||||
eth_register(dev);
|
||||
|
||||
|
||||
/* Reset the MAC */
|
||||
priv->regs->maccfg1 |= MACCFG1_SOFT_RESET;
|
||||
priv->regs->maccfg1 &= ~(MACCFG1_SOFT_RESET);
|
||||
|
@ -186,11 +185,11 @@ int tsec_initialize(bd_t *bis, int index, char *devname)
|
|||
return init_phy(dev);
|
||||
}
|
||||
|
||||
|
||||
/* Initializes data structures and registers for the controller,
|
||||
* and brings the interface up. Returns the link status, meaning
|
||||
* that it returns success if the link is up, failure otherwise.
|
||||
* This allows u-boot to find the first active controller. */
|
||||
* This allows u-boot to find the first active controller.
|
||||
*/
|
||||
int tsec_init(struct eth_device *dev, bd_t * bd)
|
||||
{
|
||||
uint tempval;
|
||||
|
@ -234,7 +233,6 @@ int tsec_init(struct eth_device* dev, bd_t * bd)
|
|||
|
||||
}
|
||||
|
||||
|
||||
/* Write value to the device's PHY through the registers
|
||||
* specified in priv, modifying the register specified in regnum.
|
||||
* It will wait for the write to be done (or for a timeout to
|
||||
|
@ -254,7 +252,6 @@ void write_phy_reg(struct tsec_private *priv, uint regnum, uint value)
|
|||
while ((regbase->miimind & MIIMIND_BUSY) && timeout--) ;
|
||||
}
|
||||
|
||||
|
||||
/* Reads register regnum on the device's PHY through the
|
||||
* registers specified in priv. It lowers and raises the read
|
||||
* command, and waits for the data to become valid (miimind
|
||||
|
@ -288,7 +285,6 @@ uint read_phy_reg(struct tsec_private *priv, uint regnum)
|
|||
return value;
|
||||
}
|
||||
|
||||
|
||||
/* Discover which PHY is attached to the device, and configure it
|
||||
* properly. If the PHY is not recognized, then return 0
|
||||
* (failure). Otherwise, return 1
|
||||
|
@ -297,16 +293,13 @@ static int init_phy(struct eth_device *dev)
|
|||
{
|
||||
struct tsec_private *priv = (struct tsec_private *)dev->priv;
|
||||
struct phy_info *curphy;
|
||||
volatile tsec_t *regs = (volatile tsec_t *)(TSEC_BASE_ADDR);
|
||||
|
||||
/* Assign a Physical address to the TBI */
|
||||
|
||||
{
|
||||
volatile tsec_t *regs = (volatile tsec_t *)(TSEC_BASE_ADDR);
|
||||
regs->tbipa = TBIPA_VALUE;
|
||||
regs = (volatile tsec_t *)(TSEC_BASE_ADDR + TSEC_SIZE);
|
||||
regs->tbipa = TBIPA_VALUE;
|
||||
asm("sync");
|
||||
}
|
||||
|
||||
/* Reset MII (due to new addresses) */
|
||||
priv->phyregs->miimcfg = MIIMCFG_RESET;
|
||||
|
@ -335,9 +328,10 @@ static int init_phy(struct eth_device *dev)
|
|||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/* Returns which value to write to the control register. */
|
||||
/* For 10/100, the value is slightly different */
|
||||
/*
|
||||
* Returns which value to write to the control register.
|
||||
* For 10/100, the value is slightly different
|
||||
*/
|
||||
uint mii_cr_init(uint mii_reg, struct tsec_private * priv)
|
||||
{
|
||||
if (priv->flags & TSEC_GIGABIT)
|
||||
|
@ -346,20 +340,23 @@ uint mii_cr_init(uint mii_reg, struct tsec_private *priv)
|
|||
return MIIM_CR_INIT;
|
||||
}
|
||||
|
||||
|
||||
/* Parse the status register for link, and then do
|
||||
* auto-negotiation */
|
||||
* auto-negotiation
|
||||
*/
|
||||
uint mii_parse_sr(uint mii_reg, struct tsec_private * priv)
|
||||
{
|
||||
/*
|
||||
* Wait if PHY is capable of autonegotiation and autonegotiation is not complete
|
||||
* Wait if PHY is capable of autonegotiation and autonegotiation
|
||||
* is not complete.
|
||||
*/
|
||||
mii_reg = read_phy_reg(priv, MIIM_STATUS);
|
||||
if ((mii_reg & PHY_BMSR_AUTN_ABLE) && !(mii_reg & PHY_BMSR_AUTN_COMP)) {
|
||||
if ((mii_reg & PHY_BMSR_AUTN_ABLE)
|
||||
&& !(mii_reg & PHY_BMSR_AUTN_COMP)) {
|
||||
int i = 0;
|
||||
|
||||
puts("Waiting for PHY auto negotiation to complete");
|
||||
while (!((mii_reg & PHY_BMSR_AUTN_COMP) && (mii_reg & MIIM_STATUS_LINK))) {
|
||||
while (!((mii_reg & PHY_BMSR_AUTN_COMP)
|
||||
&& (mii_reg & MIIM_STATUS_LINK))) {
|
||||
/*
|
||||
* Timeout reached ?
|
||||
*/
|
||||
|
@ -385,9 +382,9 @@ uint mii_parse_sr(uint mii_reg, struct tsec_private *priv)
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* Parse the 88E1011's status register for speed and duplex
|
||||
* information */
|
||||
* information
|
||||
*/
|
||||
uint mii_parse_88E1011_psr(uint mii_reg, struct tsec_private * priv)
|
||||
{
|
||||
uint speed;
|
||||
|
@ -441,9 +438,9 @@ uint mii_parse_88E1011_psr(uint mii_reg, struct tsec_private *priv)
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* Parse the cis8201's status register for speed and duplex
|
||||
* information */
|
||||
* information
|
||||
*/
|
||||
uint mii_parse_cis8201(uint mii_reg, struct tsec_private * priv)
|
||||
{
|
||||
uint speed;
|
||||
|
@ -468,8 +465,10 @@ uint mii_parse_cis8201(uint mii_reg, struct tsec_private *priv)
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Parse the vsc8244's status register for speed and duplex
|
||||
* information */
|
||||
* information
|
||||
*/
|
||||
uint mii_parse_vsc8244(uint mii_reg, struct tsec_private * priv)
|
||||
{
|
||||
uint speed;
|
||||
|
@ -495,9 +494,9 @@ uint mii_parse_vsc8244(uint mii_reg, struct tsec_private *priv)
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* Parse the DM9161's status register for speed and duplex
|
||||
* information */
|
||||
* information
|
||||
*/
|
||||
uint mii_parse_dm9161_scsr(uint mii_reg, struct tsec_private * priv)
|
||||
{
|
||||
if (mii_reg & (MIIM_DM9161_SCSR_100F | MIIM_DM9161_SCSR_100H))
|
||||
|
@ -513,8 +512,9 @@ uint mii_parse_dm9161_scsr(uint mii_reg, struct tsec_private *priv)
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* Hack to write all 4 PHYs with the LED values */
|
||||
/*
|
||||
* Hack to write all 4 PHYs with the LED values
|
||||
*/
|
||||
uint mii_cis8204_fixled(uint mii_reg, struct tsec_private * priv)
|
||||
{
|
||||
uint phyid;
|
||||
|
@ -543,7 +543,8 @@ uint mii_cis8204_setmode(uint mii_reg, struct tsec_private *priv)
|
|||
|
||||
/* Initialized required registers to appropriate values, zeroing
|
||||
* those we don't care about (unless zero is bad, in which case,
|
||||
* choose a more appropriate value) */
|
||||
* choose a more appropriate value)
|
||||
*/
|
||||
static void init_registers(volatile tsec_t * regs)
|
||||
{
|
||||
/* Clear IEVENT */
|
||||
|
@ -586,9 +587,9 @@ static void init_registers(volatile tsec_t *regs)
|
|||
|
||||
}
|
||||
|
||||
|
||||
/* Configure maccfg2 based on negotiated speed and duplex
|
||||
* reported by PHY handling code */
|
||||
* reported by PHY handling code
|
||||
*/
|
||||
static void adjust_link(struct eth_device *dev)
|
||||
{
|
||||
struct tsec_private *priv = (struct tsec_private *)dev->priv;
|
||||
|
@ -632,9 +633,9 @@ static void adjust_link(struct eth_device *dev)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/* Set up the buffers and their descriptors, and bring up the
|
||||
* interface */
|
||||
* interface
|
||||
*/
|
||||
static void startup_tsec(struct eth_device *dev)
|
||||
{
|
||||
int i;
|
||||
|
@ -677,7 +678,8 @@ static void startup_tsec(struct eth_device *dev)
|
|||
/* This returns the status bits of the device. The return value
|
||||
* is never checked, and this is what the 8260 driver did, so we
|
||||
* do the same. Presumably, this would be zero if there were no
|
||||
* errors */
|
||||
* errors
|
||||
*/
|
||||
static int tsec_send(struct eth_device *dev, volatile void *packet, int length)
|
||||
{
|
||||
int i;
|
||||
|
@ -695,7 +697,8 @@ static int tsec_send(struct eth_device* dev, volatile void *packet, int length)
|
|||
|
||||
rtx.txbd[txIdx].bufPtr = (uint) packet;
|
||||
rtx.txbd[txIdx].length = length;
|
||||
rtx.txbd[txIdx].status |= (TXBD_READY | TXBD_LAST | TXBD_CRC | TXBD_INTERRUPT);
|
||||
rtx.txbd[txIdx].status |=
|
||||
(TXBD_READY | TXBD_LAST | TXBD_CRC | TXBD_INTERRUPT);
|
||||
|
||||
/* Tell the DMA to go */
|
||||
regs->tstat = TSTAT_CLEAR_THALT;
|
||||
|
@ -735,7 +738,8 @@ static int tsec_recv(struct eth_device* dev)
|
|||
rtx.rxbd[rxIdx].length = 0;
|
||||
|
||||
/* Set the wrap bit if this is the last element in the list */
|
||||
rtx.rxbd[rxIdx].status = RXBD_EMPTY | (((rxIdx + 1) == PKTBUFSRX) ? RXBD_WRAP : 0);
|
||||
rtx.rxbd[rxIdx].status =
|
||||
RXBD_EMPTY | (((rxIdx + 1) == PKTBUFSRX) ? RXBD_WRAP : 0);
|
||||
|
||||
rxIdx = (rxIdx + 1) % PKTBUFSRX;
|
||||
}
|
||||
|
@ -749,7 +753,6 @@ static int tsec_recv(struct eth_device* dev)
|
|||
|
||||
}
|
||||
|
||||
|
||||
/* Stop the interface */
|
||||
static void tsec_halt(struct eth_device *dev)
|
||||
{
|
||||
|
@ -767,7 +770,6 @@ static void tsec_halt(struct eth_device* dev)
|
|||
phy_run_commands(priv, priv->phyinfo->shutdown);
|
||||
}
|
||||
|
||||
|
||||
struct phy_info phy_info_M88E1011S = {
|
||||
0x01410c6,
|
||||
"Marvell 88E1011S",
|
||||
|
@ -792,7 +794,8 @@ struct phy_info phy_info_M88E1011S = {
|
|||
/* Auto-negotiate */
|
||||
{MIIM_STATUS, miim_read, &mii_parse_sr},
|
||||
/* Read the status */
|
||||
{MIIM_88E1011_PHY_STATUS, miim_read, &mii_parse_88E1011_psr},
|
||||
{MIIM_88E1011_PHY_STATUS, miim_read,
|
||||
&mii_parse_88E1011_psr},
|
||||
{miim_end,}
|
||||
},
|
||||
(struct phy_cmd[]){ /* shutdown */
|
||||
|
@ -824,7 +827,8 @@ struct phy_info phy_info_M88E1111S = {
|
|||
/* Auto-negotiate */
|
||||
{MIIM_STATUS, miim_read, &mii_parse_sr},
|
||||
/* Read the status */
|
||||
{MIIM_88E1011_PHY_STATUS, miim_read, &mii_parse_88E1011_psr},
|
||||
{MIIM_88E1011_PHY_STATUS, miim_read,
|
||||
&mii_parse_88E1011_psr},
|
||||
{miim_end,}
|
||||
},
|
||||
(struct phy_cmd[]){ /* shutdown */
|
||||
|
@ -837,12 +841,10 @@ static unsigned int m88e1145_setmode(uint mii_reg, struct tsec_private *priv)
|
|||
unsigned int temp;
|
||||
uint mii_data = read_phy_reg(priv, mii_reg);
|
||||
|
||||
|
||||
/* Setting MIIM_88E1145_PHY_EXT_CR */
|
||||
if (priv->flags & TSEC_REDUCED)
|
||||
return mii_data |
|
||||
MIIM_M88E1145_RGMII_RX_DELAY |
|
||||
MIIM_M88E1145_RGMII_TX_DELAY;
|
||||
MIIM_M88E1145_RGMII_RX_DELAY | MIIM_M88E1145_RGMII_TX_DELAY;
|
||||
else
|
||||
return mii_data;
|
||||
}
|
||||
|
@ -862,7 +864,8 @@ static struct phy_info phy_info_M88E1145 = {
|
|||
{MIIM_CONTROL, MIIM_CONTROL_RESET, NULL},
|
||||
{MIIM_GBIT_CONTROL, MIIM_GBIT_CONTROL_INIT, NULL},
|
||||
{MIIM_ANAR, MIIM_ANAR_INIT, NULL},
|
||||
{MIIM_88E1011_PHY_SCR, MIIM_88E1011_PHY_MDI_X_AUTO, NULL},
|
||||
{MIIM_88E1011_PHY_SCR, MIIM_88E1011_PHY_MDI_X_AUTO,
|
||||
NULL},
|
||||
{MIIM_88E1145_PHY_EXT_CR, 0, &m88e1145_setmode},
|
||||
{MIIM_CONTROL, MIIM_CONTROL_RESET, NULL},
|
||||
{MIIM_CONTROL, MIIM_CONTROL_INIT, NULL},
|
||||
|
@ -873,9 +876,11 @@ static struct phy_info phy_info_M88E1145 = {
|
|||
{MIIM_STATUS, miim_read, NULL},
|
||||
/* Auto-negotiate */
|
||||
{MIIM_STATUS, miim_read, &mii_parse_sr},
|
||||
{MIIM_88E1111_PHY_LED_CONTROL, MIIM_88E1111_PHY_LED_DIRECT, NULL},
|
||||
{MIIM_88E1111_PHY_LED_CONTROL,
|
||||
MIIM_88E1111_PHY_LED_DIRECT, NULL},
|
||||
/* Read the Status */
|
||||
{MIIM_88E1011_PHY_STATUS, miim_read, &mii_parse_88E1011_psr},
|
||||
{MIIM_88E1011_PHY_STATUS, miim_read,
|
||||
&mii_parse_88E1011_psr},
|
||||
{miim_end,}
|
||||
},
|
||||
(struct phy_cmd[]){ /* shutdown */
|
||||
|
@ -883,18 +888,20 @@ static struct phy_info phy_info_M88E1145 = {
|
|||
},
|
||||
};
|
||||
|
||||
|
||||
struct phy_info phy_info_cis8204 = {
|
||||
0x3f11,
|
||||
"Cicada Cis8204",
|
||||
6,
|
||||
(struct phy_cmd[]){ /* config */
|
||||
/* Override PHY config settings */
|
||||
{MIIM_CIS8201_AUX_CONSTAT, MIIM_CIS8201_AUXCONSTAT_INIT, NULL},
|
||||
{MIIM_CIS8201_AUX_CONSTAT,
|
||||
MIIM_CIS8201_AUXCONSTAT_INIT, NULL},
|
||||
/* Configure some basic stuff */
|
||||
{MIIM_CONTROL, MIIM_CONTROL_INIT, &mii_cr_init},
|
||||
{MIIM_CIS8204_SLED_CON, MIIM_CIS8204_SLEDCON_INIT, &mii_cis8204_fixled},
|
||||
{MIIM_CIS8204_EPHY_CON, MIIM_CIS8204_EPHYCON_INIT, &mii_cis8204_setmode},
|
||||
{MIIM_CIS8204_SLED_CON, MIIM_CIS8204_SLEDCON_INIT,
|
||||
&mii_cis8204_fixled},
|
||||
{MIIM_CIS8204_EPHY_CON, MIIM_CIS8204_EPHYCON_INIT,
|
||||
&mii_cis8204_setmode},
|
||||
{miim_end,}
|
||||
},
|
||||
(struct phy_cmd[]){ /* startup */
|
||||
|
@ -903,7 +910,8 @@ struct phy_info phy_info_cis8204 = {
|
|||
/* Auto-negotiate */
|
||||
{MIIM_STATUS, miim_read, &mii_parse_sr},
|
||||
/* Read the status */
|
||||
{MIIM_CIS8201_AUX_CONSTAT, miim_read, &mii_parse_cis8201},
|
||||
{MIIM_CIS8201_AUX_CONSTAT, miim_read,
|
||||
&mii_parse_cis8201},
|
||||
{miim_end,}
|
||||
},
|
||||
(struct phy_cmd[]){ /* shutdown */
|
||||
|
@ -918,9 +926,11 @@ struct phy_info phy_info_cis8201 = {
|
|||
4,
|
||||
(struct phy_cmd[]){ /* config */
|
||||
/* Override PHY config settings */
|
||||
{MIIM_CIS8201_AUX_CONSTAT, MIIM_CIS8201_AUXCONSTAT_INIT, NULL},
|
||||
{MIIM_CIS8201_AUX_CONSTAT,
|
||||
MIIM_CIS8201_AUXCONSTAT_INIT, NULL},
|
||||
/* Set up the interface mode */
|
||||
{MIIM_CIS8201_EXT_CON1, MIIM_CIS8201_EXTCON1_INIT, NULL},
|
||||
{MIIM_CIS8201_EXT_CON1, MIIM_CIS8201_EXTCON1_INIT,
|
||||
NULL},
|
||||
/* Configure some basic stuff */
|
||||
{MIIM_CONTROL, MIIM_CONTROL_INIT, &mii_cr_init},
|
||||
{miim_end,}
|
||||
|
@ -931,7 +941,8 @@ struct phy_info phy_info_cis8201 = {
|
|||
/* Auto-negotiate */
|
||||
{MIIM_STATUS, miim_read, &mii_parse_sr},
|
||||
/* Read the status */
|
||||
{MIIM_CIS8201_AUX_CONSTAT, miim_read, &mii_parse_cis8201},
|
||||
{MIIM_CIS8201_AUX_CONSTAT, miim_read,
|
||||
&mii_parse_cis8201},
|
||||
{miim_end,}
|
||||
},
|
||||
(struct phy_cmd[]){ /* shutdown */
|
||||
|
@ -954,7 +965,8 @@ struct phy_info phy_info_VSC8244 = {
|
|||
/* Auto-negotiate */
|
||||
{MIIM_STATUS, miim_read, &mii_parse_sr},
|
||||
/* Read the status */
|
||||
{MIIM_VSC8244_AUX_CONSTAT, miim_read, &mii_parse_vsc8244},
|
||||
{MIIM_VSC8244_AUX_CONSTAT, miim_read,
|
||||
&mii_parse_vsc8244},
|
||||
{miim_end,}
|
||||
},
|
||||
(struct phy_cmd[]){ /* shutdown */
|
||||
|
@ -962,7 +974,6 @@ struct phy_info phy_info_VSC8244 = {
|
|||
},
|
||||
};
|
||||
|
||||
|
||||
struct phy_info phy_info_dm9161 = {
|
||||
0x0181b88,
|
||||
"Davicom DM9161E",
|
||||
|
@ -972,7 +983,8 @@ struct phy_info phy_info_dm9161 = {
|
|||
/* Do not bypass the scrambler/descrambler */
|
||||
{MIIM_DM9161_SCR, MIIM_DM9161_SCR_INIT, NULL},
|
||||
/* Clear 10BTCSR to default */
|
||||
{MIIM_DM9161_10BTCSR, MIIM_DM9161_10BTCSR_INIT, NULL},
|
||||
{MIIM_DM9161_10BTCSR, MIIM_DM9161_10BTCSR_INIT,
|
||||
NULL},
|
||||
/* Configure some basic stuff */
|
||||
{MIIM_CONTROL, MIIM_CR_INIT, NULL},
|
||||
/* Restart Auto Negotiation */
|
||||
|
@ -985,7 +997,8 @@ struct phy_info phy_info_dm9161 = {
|
|||
/* Auto-negotiate */
|
||||
{MIIM_STATUS, miim_read, &mii_parse_sr},
|
||||
/* Read the status */
|
||||
{MIIM_DM9161_SCSR, miim_read, &mii_parse_dm9161_scsr},
|
||||
{MIIM_DM9161_SCSR, miim_read,
|
||||
&mii_parse_dm9161_scsr},
|
||||
{miim_end,}
|
||||
},
|
||||
(struct phy_cmd[]){ /* shutdown */
|
||||
|
@ -1045,7 +1058,8 @@ static struct phy_info phy_info_lxt971 = {
|
|||
};
|
||||
|
||||
/* Parse the DP83865's link and auto-neg status register for speed and duplex
|
||||
* information */
|
||||
* information
|
||||
*/
|
||||
uint mii_parse_dp83865_lanr(uint mii_reg, struct tsec_private *priv)
|
||||
{
|
||||
switch (mii_reg & MIIM_DP83865_SPD_MASK) {
|
||||
|
@ -1086,7 +1100,8 @@ struct phy_info phy_info_dp83865 = {
|
|||
/* Auto-negotiate */
|
||||
{MIIM_STATUS, miim_read, &mii_parse_sr},
|
||||
/* Read the link and auto-neg status */
|
||||
{MIIM_DP83865_LANR, miim_read, &mii_parse_dp83865_lanr},
|
||||
{MIIM_DP83865_LANR, miim_read,
|
||||
&mii_parse_dp83865_lanr},
|
||||
{miim_end,}
|
||||
},
|
||||
(struct phy_cmd[]){ /* shutdown */
|
||||
|
@ -1109,10 +1124,10 @@ struct phy_info *phy_info[] = {
|
|||
NULL
|
||||
};
|
||||
|
||||
|
||||
/* Grab the identifier of the device's PHY, and search through
|
||||
* all of the known PHYs to see if one matches. If so, return
|
||||
* it, if not, return NULL */
|
||||
* it, if not, return NULL
|
||||
*/
|
||||
struct phy_info *get_phy_info(struct eth_device *dev)
|
||||
{
|
||||
struct tsec_private *priv = (struct tsec_private *)dev->priv;
|
||||
|
@ -1135,8 +1150,7 @@ struct phy_info * get_phy_info(struct eth_device *dev)
|
|||
theInfo = phy_info[i];
|
||||
}
|
||||
|
||||
if(theInfo == NULL)
|
||||
{
|
||||
if (theInfo == NULL) {
|
||||
printf("%s: PHY id %x is not supported!\n", dev->name, phy_ID);
|
||||
return NULL;
|
||||
} else {
|
||||
|
@ -1146,9 +1160,9 @@ struct phy_info * get_phy_info(struct eth_device *dev)
|
|||
return theInfo;
|
||||
}
|
||||
|
||||
|
||||
/* Execute the given series of commands on the given device's
|
||||
* PHY, running functions as necessary*/
|
||||
* PHY, running functions as necessary
|
||||
*/
|
||||
void phy_run_commands(struct tsec_private *priv, struct phy_cmd *cmd)
|
||||
{
|
||||
int i;
|
||||
|
@ -1181,7 +1195,6 @@ void phy_run_commands(struct tsec_private *priv, struct phy_cmd *cmd)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/* Relocate the function pointers in the phy cmd lists */
|
||||
static void relocate_cmds(void)
|
||||
{
|
||||
|
@ -1209,7 +1222,9 @@ static void relocate_cmds(void)
|
|||
j = 0;
|
||||
for (; cmdlistptr <= &phy_info[i]->shutdown; cmdlistptr++) {
|
||||
k = 0;
|
||||
for(cmd=*cmdlistptr;cmd->mii_reg != miim_end;cmd++) {
|
||||
for (cmd = *cmdlistptr;
|
||||
cmd->mii_reg != miim_end;
|
||||
cmd++) {
|
||||
/* Only relocate non-NULL pointers */
|
||||
if (cmd->funct)
|
||||
cmd->funct += gd->reloc_off;
|
||||
|
@ -1223,7 +1238,6 @@ static void relocate_cmds(void)
|
|||
relocated = 1;
|
||||
}
|
||||
|
||||
|
||||
#if defined(CONFIG_MII) || (CONFIG_COMMANDS & CFG_CMD_MII) \
|
||||
&& !defined(BITBANGMII)
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue