From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from metis.ext.pengutronix.de ([2001:6f8:1178:4:290:27ff:fe1d:cc33]) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1ShEjA-0000R7-GE for barebox@lists.infradead.org; Wed, 20 Jun 2012 06:49:21 +0000 Date: Wed, 20 Jun 2012 08:49:16 +0200 From: Sascha Hauer Message-ID: <20120620064916.GF28394@pengutronix.de> References: <1340030880-10062-1-git-send-email-js@sig21.net> <1340030880-10062-5-git-send-email-js@sig21.net> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1340030880-10062-5-git-send-email-js@sig21.net> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: barebox-bounces@lists.infradead.org Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: Re: [PATCH 4/6] miidev: consistent md and mw on phy regs To: Johannes Stezenbach Cc: barebox@lists.infradead.org On Mon, Jun 18, 2012 at 04:47:58PM +0200, Johannes Stezenbach wrote: > The dump generated by "md -w -s /dev/phy0" > suggests individual registers need to be > addressed by byte offset, not by register number. > E.g. to set the autonegotiation advertisement register > for 10Mbit only, use "mw -w -d /dev/phy0 8+2 0x0061". > The current mix of offset == register number, but > count == byte count is unintuitive. > > Also, to be consistent with "md" on /dev/mem, round up > the count so "8+1" also works to access one register. > However, no attempt is made to do read-modify-write > single byte writes. > > Signed-off-by: Johannes Stezenbach Nice catch. The current behaviour wasn't intended. I probably never tried to read phy registers with an offset from the command line. Sascha > --- > drivers/net/miidev.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/net/miidev.c b/drivers/net/miidev.c > index 98ad790..1c75b87 100644 > --- a/drivers/net/miidev.c > +++ b/drivers/net/miidev.c > @@ -204,11 +204,11 @@ static ssize_t miidev_read(struct cdev *cdev, void *_buf, size_t count, ulong of > uint16_t *buf = _buf; > struct mii_device *mdev = cdev->priv; > > - while (i > 1) { > - *buf = mii_read(mdev, mdev->address, offset); > + while (i > 0) { > + *buf = mii_read(mdev, mdev->address, offset / 2); > buf++; > i -= 2; > - offset++; > + offset += 2; > } > > return count; > @@ -220,11 +220,11 @@ static ssize_t miidev_write(struct cdev *cdev, const void *_buf, size_t count, u > const uint16_t *buf = _buf; > struct mii_device *mdev = cdev->priv; > > - while (i > 1) { > - mii_write(mdev, mdev->address, offset, *buf); > + while (i > 0) { > + mii_write(mdev, mdev->address, offset / 2, *buf); > buf++; > i -= 2; > - offset++; > + offset += 2; > } > > return count; > -- > 1.7.10.4 > > > _______________________________________________ > barebox mailing list > barebox@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/barebox > -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox