* [U-Boot] [U-boot] [PATCH 1/2] NET: QE: UEC: Make uec_miiphy_read() and uec_miiphy_write() use the devname arg.
@ 2008-08-18 19:46 richardretanubun
2008-08-18 21:00 ` Ben Warren
0 siblings, 1 reply; 11+ messages in thread
From: richardretanubun @ 2008-08-18 19:46 UTC (permalink / raw)
To: u-boot
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 <RichardRetanubun_at_ruggedcom.com>
diff --git a/drivers/qe/uec.c b/drivers/qe/uec.c
index 344c649..d14566e 100644
--- a/drivers/qe/uec.c
+++ b/drivers/qe/uec.c
@@ -639,6 +639,32 @@ 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, else 0
+ */
+static int uec_miiphy_find_dev_by_name(char *devname)
+{
+ int i = 0;
+
+
+ for (i = 0; i < MAXCONTROLLERS; i++) {
+ if (strncmp(devname, devlist[i]->name, strlen(devname)) == 0) {
+ break;
+ }
+ }
+
+ // If device cannot be found, default to 0
+ if (i == MAXCONTROLLERS) {
+ debug ("%s: device %s not found in devlist\n", __FUNCTION__, devname);
+ i = 0;
+ }
+
+ return (i);
+}
+
+/*
* Read a MII PHY register.
*
* Returns:
@@ -647,8 +673,15 @@ static void phy_change(struct eth_device *dev)
static int uec_miiphy_read(char *devname, unsigned char addr,
unsigned char reg, unsigned short *value)
{
- *value = uec_read_phy_reg(devlist[0], addr, reg);
+ int i = 0;
+
+ if (devname == NULL || value == NULL) {
+ debug("%s: NULL pointer given\n", __FUNCTION__);
+ } else {
+ i = uec_miiphy_find_dev_by_name(devname);
+ *value = uec_read_phy_reg(devlist[i], addr, reg);
+ }
return 0;
}
@@ -661,11 +694,17 @@ static int uec_miiphy_read(char *devname, unsigned char addr,
static int uec_miiphy_write(char *devname, unsigned char addr,
unsigned char reg, unsigned short value)
{
- uec_write_phy_reg(devlist[0], addr, reg, value);
+ int i = 0;
+
+ if (devname == NULL) {
+ debug("%s: NULL pointer given\n", __FUNCTION__);
+ } else {
+ i = uec_miiphy_find_dev_by_name(devname);
+ uec_write_phy_reg(devlist[i], addr, reg, value);
+ }
return 0;
}
-
#endif
static int uec_set_mac_address(uec_private_t *uec, u8 *mac_addr)
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [U-Boot] [U-boot] [PATCH 1/2] NET: QE: UEC: Make uec_miiphy_read() and uec_miiphy_write() use the devname arg.
2008-08-18 19:46 [U-Boot] [U-boot] [PATCH 1/2] NET: QE: UEC: Make uec_miiphy_read() and uec_miiphy_write() use the devname arg richardretanubun
@ 2008-08-18 21:00 ` Ben Warren
2008-08-18 22:28 ` [U-Boot] [U-boot] [PATCHv2 " richardretanubun
0 siblings, 1 reply; 11+ messages in thread
From: Ben Warren @ 2008-08-18 21:00 UTC (permalink / raw)
To: u-boot
richardretanubun wrote:
> 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 <RichardRetanubun_at_ruggedcom.com>
>
> diff --git a/drivers/qe/uec.c b/drivers/qe/uec.c
> index 344c649..d14566e 100644
> --- a/drivers/qe/uec.c
> +++ b/drivers/qe/uec.c
> @@ -639,6 +639,32 @@ 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, else 0
>
But index 0 is a valid device. Return -1 on failure and check for it.
> + */
> +static int uec_miiphy_find_dev_by_name(char *devname)
> +{
> + int i = 0;
>
No need to initialize this variable.
> +
> +
> + for (i = 0; i < MAXCONTROLLERS; i++) {
> + if (strncmp(devname, devlist[i]->name, strlen(devname)) == 0) {
> + break;
> + }
> + }
> +
> + // If device cannot be found, default to 0
>
No C++ - style comments please.
> + if (i == MAXCONTROLLERS) {
> + debug ("%s: device %s not found in devlist\n", __FUNCTION__, devname);
> + i = 0;
>
As mentioned above, don't set to a valid index on failure. -1 is
standard for this type of thing.
> + }
> +
> + return (i);
>
No brackets needed around return value.
> +}
> +
> +/*
> * Read a MII PHY register.
> *
> * Returns:
> @@ -647,8 +673,15 @@ static void phy_change(struct eth_device *dev)
> static int uec_miiphy_read(char *devname, unsigned char addr,
> unsigned char reg, unsigned short *value)
> {
> - *value = uec_read_phy_reg(devlist[0], addr, reg);
> + int i = 0;
>
This isn't a good variable name except for iterators. Please use
something more meaningful.
> +
>
> + if (devname == NULL || value == NULL) {
> + debug("%s: NULL pointer given\n", __FUNCTION__);
> + } else {
> + i = uec_miiphy_find_dev_by_name(devname);
>
Bail if i<0
> + *value = uec_read_phy_reg(devlist[i], addr, reg);
> + }
> return 0;
> }
>
> @@ -661,11 +694,17 @@ static int uec_miiphy_read(char *devname, unsigned char addr,
> static int uec_miiphy_write(char *devname, unsigned char addr,
> unsigned char reg, unsigned short value)
> {
> - uec_write_phy_reg(devlist[0], addr, reg, value);
> + int i = 0;
> +
>
> + if (devname == NULL) {
> + debug("%s: NULL pointer given\n", __FUNCTION__);
> + } else {
> + i = uec_miiphy_find_dev_by_name(devname);
> + uec_write_phy_reg(devlist[i], addr, reg, value);
> + }
>
Same comments as with other function.
> return 0;
> }
> -
> #endif
>
> static int uec_set_mac_address(uec_private_t *uec, u8 *mac_addr)
>
>
regards,
Ben
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] [U-boot] [PATCHv2 1/2] NET: QE: UEC: Make uec_miiphy_read() and uec_miiphy_write() use the devname arg.
2008-08-18 21:00 ` Ben Warren
@ 2008-08-18 22:28 ` richardretanubun
2008-09-05 4:30 ` Ben Warren
0 siblings, 1 reply; 11+ messages in thread
From: richardretanubun @ 2008-08-18 22:28 UTC (permalink / raw)
To: u-boot
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).
--------------------------------------------
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 <RichardRetanubun_at_ruggedcom.com>
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)
Ben Warren wrote:
> richardretanubun wrote:
>> 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 <RichardRetanubun_at_ruggedcom.com>
>>
>> diff --git a/drivers/qe/uec.c b/drivers/qe/uec.c
>> index 344c649..d14566e 100644
>> --- a/drivers/qe/uec.c
>> +++ b/drivers/qe/uec.c
>> @@ -639,6 +639,32 @@ 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, else 0
>>
> But index 0 is a valid device. Return -1 on failure and check for it.
>> + */
>> +static int uec_miiphy_find_dev_by_name(char *devname)
>> +{
>> + int i = 0;
>>
> No need to initialize this variable.
>> +
>> +
>> + for (i = 0; i < MAXCONTROLLERS; i++) {
>> + if (strncmp(devname, devlist[i]->name, strlen(devname)) == 0) {
>> + break;
>> + }
>> + }
>> +
>> + // If device cannot be found, default to 0
>>
> No C++ - style comments please.
>> + if (i == MAXCONTROLLERS) {
>> + debug ("%s: device %s not found in devlist\n", __FUNCTION__,
>> devname);
>> + i = 0;
>>
> As mentioned above, don't set to a valid index on failure. -1 is
> standard for this type of thing.
>> + }
>> +
>> + return (i);
>>
> No brackets needed around return value.
>> +}
>> +
>> +/*
>> * Read a MII PHY register.
>> *
>> * Returns:
>> @@ -647,8 +673,15 @@ static void phy_change(struct eth_device *dev)
>> static int uec_miiphy_read(char *devname, unsigned char addr,
>> unsigned char reg, unsigned short *value)
>> {
>> - *value = uec_read_phy_reg(devlist[0], addr, reg);
>> + int i = 0;
>>
> This isn't a good variable name except for iterators. Please use
> something more meaningful.
>> +
>>
>> + if (devname == NULL || value == NULL) {
>> + debug("%s: NULL pointer given\n", __FUNCTION__);
>> + } else {
>> + i = uec_miiphy_find_dev_by_name(devname);
>>
> Bail if i<0
>> + *value = uec_read_phy_reg(devlist[i], addr, reg);
>> + }
>> return 0;
>> }
>>
>> @@ -661,11 +694,17 @@ static int uec_miiphy_read(char *devname,
>> unsigned char addr,
>> static int uec_miiphy_write(char *devname, unsigned char addr,
>> unsigned char reg, unsigned short value)
>> {
>> - uec_write_phy_reg(devlist[0], addr, reg, value);
>> + int i = 0;
>> +
>>
>> + if (devname == NULL) {
>> + debug("%s: NULL pointer given\n", __FUNCTION__);
>> + } else {
>> + i = uec_miiphy_find_dev_by_name(devname);
>> + uec_write_phy_reg(devlist[i], addr, reg, value);
>> + }
>>
> Same comments as with other function.
>> return 0;
>> }
>> -
>> #endif
>>
>> static int uec_set_mac_address(uec_private_t *uec, u8 *mac_addr)
>>
>>
> regards,
> Ben
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [U-Boot] [U-boot] [PATCHv2 1/2] NET: QE: UEC: Make uec_miiphy_read() and uec_miiphy_write() use the devname arg.
2008-08-18 22:28 ` [U-Boot] [U-boot] [PATCHv2 " richardretanubun
@ 2008-09-05 4:30 ` Ben Warren
2008-09-16 12:49 ` richardretanubun
0 siblings, 1 reply; 11+ messages in thread
From: Ben Warren @ 2008-09-05 4:30 UTC (permalink / raw)
To: u-boot
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 starte 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.
regards,
Ben
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] [U-boot] [PATCHv2 1/2] NET: QE: UEC: Make uec_miiphy_read() and uec_miiphy_write() use the devname arg.
2008-09-05 4:30 ` Ben Warren
@ 2008-09-16 12:49 ` richardretanubun
2008-09-24 22:10 ` richardretanubun
0 siblings, 1 reply; 11+ messages in thread
From: richardretanubun @ 2008-09-16 12:49 UTC (permalink / raw)
To: u-boot
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 <RichardRetanubun_at_ruggedcom.com>
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
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] [U-boot] [PATCHv2 1/2] NET: QE: UEC: Make uec_miiphy_read() and uec_miiphy_write() use the devname arg.
2008-09-16 12:49 ` richardretanubun
@ 2008-09-24 22:10 ` richardretanubun
2008-09-26 6:46 ` Ben Warren
0 siblings, 1 reply; 11+ messages in thread
From: richardretanubun @ 2008-09-24 22:10 UTC (permalink / raw)
To: u-boot
Hi Ben,
Sorry I keep mangling the patch.
I made an updated version based on the latest files from the git-tree.
If you don't mind, can you try applying it?
Thanks for all the help
-Richard
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] [U-boot] [PATCHv2 1/2] NET: QE: UEC: Make uec_miiphy_read() and uec_miiphy_write() use the devname arg.
2008-09-24 22:10 ` richardretanubun
@ 2008-09-26 6:46 ` Ben Warren
2008-09-26 12:52 ` richardretanubun
0 siblings, 1 reply; 11+ messages in thread
From: Ben Warren @ 2008-09-26 6:46 UTC (permalink / raw)
To: u-boot
richardretanubun wrote:
> Hi Ben,
>
> Sorry I keep mangling the patch. I made an updated version based on
> the latest files from the git-tree.
>
> If you don't mind, can you try applying it?
>
Good news and bad news:
good news: it applies clean
bad news: you'll need to resubmit with the patch description above your
signed-off-by, and stuff like 'Hi Ben ... ' below the --- line.
When we use 'git am' to apply patches, it includes everything above
'---' in the changelog and discards everything below that's not patch code.
> Thanks for all the help
>
thanks for your patience.
> -Richard
regards,
Ben
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] [U-boot] [PATCHv2 1/2] NET: QE: UEC: Make uec_miiphy_read() and uec_miiphy_write() use the devname arg.
2008-09-26 6:46 ` Ben Warren
@ 2008-09-26 12:52 ` richardretanubun
2008-09-26 12:59 ` richardretanubun
0 siblings, 1 reply; 11+ messages in thread
From: richardretanubun @ 2008-09-26 12:52 UTC (permalink / raw)
To: u-boot
Signed-of-by: Richard Retanubun <RichardRetanubun@RugggedCom.com>
---
drivers/qe/uec.c | 46 +++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 43 insertions(+), 3 deletions(-)
diff --git a/drivers/qe/uec.c b/drivers/qe/uec.c
index 344c649..e3fbbb0 100644
--- a/drivers/qe/uec.c
+++ b/drivers/qe/uec.c
@@ -639,6 +639,31 @@ 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:
@@ -647,8 +672,16 @@ static void phy_change(struct eth_device *dev)
static int uec_miiphy_read(char *devname, unsigned char addr,
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;
}
@@ -661,11 +694,18 @@ static int uec_miiphy_read(char *devname, unsigned char addr,
static int uec_miiphy_write(char *devname, unsigned char addr,
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)
--
1.5.5.GIT
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [U-Boot] [U-boot] [PATCHv2 1/2] NET: QE: UEC: Make uec_miiphy_read() and uec_miiphy_write() use the devname arg.
2008-09-26 12:52 ` richardretanubun
@ 2008-09-26 12:59 ` richardretanubun
2008-10-06 19:36 ` richardretanubun
0 siblings, 1 reply; 11+ messages in thread
From: richardretanubun @ 2008-09-26 12:59 UTC (permalink / raw)
To: u-boot
The current uec_miiphy_read and uec_miiphy_write hardcode access devlist[0]
This patch makes these function use the devname argument that is passed in to
allow access to the phy registers of other devices in devlist[].
Signed-of-by: Richard Retanubun <RichardRetanubun@RugggedCom.com>
---
Hi Ben,
I'm hoping the 7th try will do it. I forgot to add the commit message before.
drivers/qe/uec.c | 46 +++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 43 insertions(+), 3 deletions(-)
diff --git a/drivers/qe/uec.c b/drivers/qe/uec.c
index 344c649..e3fbbb0 100644
--- a/drivers/qe/uec.c
+++ b/drivers/qe/uec.c
@@ -639,6 +639,31 @@ 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:
@@ -647,8 +672,16 @@ static void phy_change(struct eth_device *dev)
static int uec_miiphy_read(char *devname, unsigned char addr,
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;
}
@@ -661,11 +694,18 @@ static int uec_miiphy_read(char *devname, unsigned char addr,
static int uec_miiphy_write(char *devname, unsigned char addr,
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)
--
1.5.5.GIT
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [U-Boot] [U-boot] [PATCHv2 1/2] NET: QE: UEC: Make uec_miiphy_read() and uec_miiphy_write() use the devname arg.
2008-09-26 12:59 ` richardretanubun
@ 2008-10-06 19:36 ` richardretanubun
2008-10-14 5:52 ` Ben Warren
0 siblings, 1 reply; 11+ messages in thread
From: richardretanubun @ 2008-10-06 19:36 UTC (permalink / raw)
To: u-boot
richardretanubun wrote:
> The current uec_miiphy_read and uec_miiphy_write hardcode access devlist[0]
> This patch makes these function use the devname argument that is passed in to
> allow access to the phy registers of other devices in devlist[].
>
> Signed-of-by: Richard Retanubun <RichardRetanubun@RugggedCom.com>
> ---
> Hi Ben,
>
> I'm hoping the 7th try will do it. I forgot to add the commit message before.
[snip]
Hi Ben,
Apologies for nagging, just checking if you get a chance to re-re-re-apply my 7th attempt? :)
Gratefully-Embarrassed,
- Richard
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] [U-boot] [PATCHv2 1/2] NET: QE: UEC: Make uec_miiphy_read() and uec_miiphy_write() use the devname arg.
2008-10-06 19:36 ` richardretanubun
@ 2008-10-14 5:52 ` Ben Warren
0 siblings, 0 replies; 11+ messages in thread
From: Ben Warren @ 2008-10-14 5:52 UTC (permalink / raw)
To: u-boot
richardretanubun wrote:
> richardretanubun wrote:
>
>> The current uec_miiphy_read and uec_miiphy_write hardcode access
>> devlist[0]
>> This patch makes these function use the devname argument that is
>> passed in to
>> allow access to the phy registers of other devices in devlist[].
>>
>> Signed-of-by: Richard Retanubun <RichardRetanubun@RugggedCom.com>
>> ---
>> Hi Ben,
>>
>> I'm hoping the 7th try will do it. I forgot to add the commit message
>> before.
> [snip]
>
>
> Hi Ben,
> Apologies for nagging, just checking if you get a chance to
> re-re-re-apply my 7th attempt? :)
>
> Gratefully-Embarrassed,
>
> - Richard
>
>
Applied to net/next. Lucky #7
cheers,
Ben
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2008-10-14 5:52 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-18 19:46 [U-Boot] [U-boot] [PATCH 1/2] NET: QE: UEC: Make uec_miiphy_read() and uec_miiphy_write() use the devname arg richardretanubun
2008-08-18 21:00 ` Ben Warren
2008-08-18 22:28 ` [U-Boot] [U-boot] [PATCHv2 " richardretanubun
2008-09-05 4:30 ` Ben Warren
2008-09-16 12:49 ` richardretanubun
2008-09-24 22:10 ` richardretanubun
2008-09-26 6:46 ` Ben Warren
2008-09-26 12:52 ` richardretanubun
2008-09-26 12:59 ` richardretanubun
2008-10-06 19:36 ` richardretanubun
2008-10-14 5:52 ` Ben Warren
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox