public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [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