From mboxrd@z Thu Jan 1 00:00:00 1970 From: richardretanubun Date: Tue, 16 Sep 2008 08:49:20 -0400 Subject: [U-Boot] [U-boot] [PATCHv2 1/2] NET: QE: UEC: Make uec_miiphy_read() and uec_miiphy_write() use the devname arg. In-Reply-To: <48C0B5F3.2090506@gmail.com> References: <48A9D199.9030909@ruggedcom.com> <48A9E2E9.1030703@gmail.com> <48A9F79C.4020308@ruggedcom.com> <48C0B5F3.2090506@gmail.com> Message-ID: <48CFAB50.9010605@ruggedcom.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Ben, Ben Warren wrote: > Hi Richard, > > richardretanubun wrote: >> Hi Ben, >> >> Thanks for the feedback. I've made the changes you suggested. >> Here is the patch re-pasted (please let me know if this is not the >> proper way to submit patch v2). >> -------------------------------------------- >> > I started to fix this up so that it would apply, but it's been badly > mangled by your mailer. Would you mind please re-sending? If you're > using Thunderbird or Evolution, select the "preformat" text type when > you paste the patch. If using something else, please just attach the > patch file. > Sorry for replying so late (and twice, I forgot to cc the mailing list). Here is the patch in preformat form and also attached, just in case. > regards, > Ben > > Thanks for all your help Richard ------------------------------------- Added a new function uec_miiphy_find_dev_by_name to allow uec_miiphy_read and uec_miiphy_write to use the passed devname and not hardcoded to devlist[0] Signed-off-by: Richard Retanubun diff --git a/drivers/qe/uec.c b/drivers/qe/uec.c index 344c649..9b0b3bc 100644 --- a/drivers/qe/uec.c +++ b/drivers/qe/uec.c @@ -639,16 +639,51 @@ static void phy_change(struct eth_device *dev) && !defined(BITBANGMII) /* + * Find a device index from the devlist by name + * + * Returns: + * The index where the device is located, -1 on error + */ +static int uec_miiphy_find_dev_by_name(char *devname) +{ + int i; + + + for (i = 0; i < MAXCONTROLLERS; i++) { + if (strncmp(devname, devlist[i]->name, strlen(devname)) == 0) { + break; + } + } + + /* If device cannot be found, returns -1 */ + if (i == MAXCONTROLLERS) { + debug ("%s: device %s not found in devlist\n", __FUNCTION__, devname); + i = -1; + } + + return i; +} + +/* * Read a MII PHY register. * * Returns: * 0 on success */ static int uec_miiphy_read(char *devname, unsigned char addr, - unsigned char reg, unsigned short *value) + unsigned char reg, unsigned short *value) { - *value = uec_read_phy_reg(devlist[0], addr, reg); + int devindex = 0; + + if (devname == NULL || value == NULL) { + debug("%s: NULL pointer given\n", __FUNCTION__); + } else { + devindex = uec_miiphy_find_dev_by_name(devname); + if (devindex >= 0) { + *value = uec_read_phy_reg(devlist[devindex], addr, reg); + } + } return 0; } @@ -659,13 +694,21 @@ static int uec_miiphy_read(char *devname, unsigned char addr, * 0 on success */ static int uec_miiphy_write(char *devname, unsigned char addr, - unsigned char reg, unsigned short value) + unsigned char reg, unsigned short value) { - uec_write_phy_reg(devlist[0], addr, reg, value); + int devindex = 0; + + if (devname == NULL) { + debug("%s: NULL pointer given\n", __FUNCTION__); + } else { + devindex = uec_miiphy_find_dev_by_name(devname); + if (devindex >= 0) { + uec_write_phy_reg(devlist[devindex], addr, reg, value); + } + } return 0; } - #endif static int uec_set_mac_address(uec_private_t *uec, u8 *mac_addr) -------------- next part -------------- A non-text attachment was scrubbed... Name: qe_uec_miiphy_not_hardcode.patch Type: text/x-patch Size: 2441 bytes Desc: not available Url : http://lists.denx.de/pipermail/u-boot/attachments/20080916/6fb10861/attachment.bin