public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Stephen Hemminger <shemminger@osdl.org>
To: linux-kernel@vger.kernel.org
Subject: Re: [PATCH 6/10] VIOC: New Network Device Driver
Date: Mon, 9 Oct 2006 12:03:24 -0700	[thread overview]
Message-ID: <20061009120324.56bac955@freekitty> (raw)
In-Reply-To: 200610091109.39793.misha@fabric7.com

On Mon, 9 Oct 2006 11:09:39 -0700
Misha Tomushev <misha@fabric7.com> wrote:

> On Sunday 08 October 2006 12:27 am, Pavel Machek wrote:
> > Hi!
> >
> > > +	ecmd->phy_address = 0;	/* !!! Stole from e1000 */
> > > +	ecmd->speed = 3;	/* !!! Stole from e1000 */
> >
> > Eh?
> You are right. Will fix.
> >
> > > +static void vnic_get_regs(struct net_device *netdev,
> > > +			  struct ethtool_regs *regs, void *p)
> > > +{
> > > +	struct vnic_device *vnicdev = netdev->priv;
> > > +	struct vioc_device *viocdev = vnicdev->viocdev;
> > > +	char *regs_buff = p;
> > > +
> > > +	memset(regs_buff, 0, VNIC_REGS_CNT * VNIC_REGS_LINE_LEN);
> > > +
> > > +	regs->version = 1;
> > > +
> > > +	sprintf(regs_buff, "%08Lx = %08x\n",
> > > +		GETRELADDR(VREG_BMC_GLOBAL, VIOC_BMC, 0),
> > > +		VIOC_READ_REG(VREG_BMC_GLOBAL, VIOC_BMC, 0, viocdev));
> > > +	regs_buff += strlen(regs_buff);
> > > +
> > > +	sprintf(regs_buff, "%08Lx = %08x\n",
> > > +		GETRELADDR(VREG_BMC_DEBUG, VIOC_BMC, 0),
> > > +		VIOC_READ_REG(VREG_BMC_DEBUG, VIOC_BMC, 0, viocdev));
> > > +	regs_buff += strlen(regs_buff);
> > > +
> > > +	sprintf(regs_buff, "%08Lx = %08x\n",
> > > +		GETRELADDR(VREG_BMC_DEBUGPRIV, VIOC_BMC, 0),
> > > +		VIOC_READ_REG(VREG_BMC_DEBUGPRIV, VIOC_BMC, 0, viocdev));
> > > +	regs_buff += strlen(regs_buff);
> > > +
> > > +	sprintf(regs_buff, "%08Lx = %08x\n",
> > > +		GETRELADDR(VREG_BMC_FABRIC, VIOC_BMC, 0),
> > > +		VIOC_READ_REG(VREG_BMC_FABRIC, VIOC_BMC, 0, viocdev));
> > > +	regs_buff += strlen(regs_buff);
> > > +
> > > +	sprintf(regs_buff, "%08Lx = %08x\n",
> > > +		GETRELADDR(VREG_BMC_VNIC_EN, VIOC_BMC, 0),
> > > +		VIOC_READ_REG(VREG_BMC_VNIC_EN, VIOC_BMC, 0, viocdev));
> > > +	regs_buff += strlen(regs_buff);
> > > +
> > > +	sprintf(regs_buff, "%08Lx = %08x\n",
> > > +		GETRELADDR(VREG_BMC_PORT_EN, VIOC_BMC, 0),
> > > +		VIOC_READ_REG(VREG_BMC_PORT_EN, VIOC_BMC, 0, viocdev));
> > > +	regs_buff += strlen(regs_buff);
> > > +
> > > +	sprintf(regs_buff, "%08Lx = %08x\n",
> > > +		GETRELADDR(VREG_BMC_VNIC_CFG, VIOC_BMC, 0),
> > > +		VIOC_READ_REG(VREG_BMC_VNIC_CFG, VIOC_BMC, 0, viocdev));
> > > +	regs_buff += strlen(regs_buff);
> > > +
> > > +	sprintf(regs_buff, "%08Lx = %08x\n",
> > > +		GETRELADDR(VREG_IHCU_RXDQEN, VIOC_IHCU, 0),
> > > +		VIOC_READ_REG(VREG_IHCU_RXDQEN, VIOC_IHCU, 0, viocdev));
> > > +	regs_buff += strlen(regs_buff);
> > > +
> > > +	sprintf(regs_buff, "%08Lx = %08x\n",
> > > +		GETRELADDR(VREG_VENG_VLANTAG, VIOC_VENG, vnicdev->vnic_id),
> > > +		VIOC_READ_REG(VREG_VENG_VLANTAG, VIOC_VENG, vnicdev->vnic_id,
> > > +			      viocdev));
> > > +	regs_buff += strlen(regs_buff);
> > > +
> > > +	sprintf(regs_buff, "%08Lx = %08x\n",
> > > +		GETRELADDR(VREG_VENG_TXD_CTL, VIOC_VENG, vnicdev->vnic_id),
> > > +		VIOC_READ_REG(VREG_VENG_TXD_CTL, VIOC_VENG, vnicdev->vnic_id,
> > > +			      viocdev));
> > > +	regs_buff += strlen(regs_buff);
> > > +
> > > +}
> >
> > This looks ugly. What interface is that?
> This is the interface between  the driver and ethtool.
> Using the text buffer is one way to keep changed limited to one side (driver). Ultimately, I think that this ethtool function (dumping hw registers) should become more generic,
> as opposed to what it is now - unique for every individual driver.
> > 							Pavel
> 

Please just dump binary like other drivers.  The code for ethtool allows per device
decode. Move the decode to there.  

Yes, ethtool source does need a more generic register description language.

-- 
Stephen Hemminger <shemminger@osdl.org>

  reply	other threads:[~2006-10-09 19:03 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-05 18:05 [PATCH 6/10] VIOC: New Network Device Driver Misha Tomushev
2006-10-08  7:27 ` Pavel Machek
2006-10-09 18:09   ` Misha Tomushev
2006-10-09 19:03     ` Stephen Hemminger [this message]
2006-10-13 17:51       ` Misha Tomushev

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20061009120324.56bac955@freekitty \
    --to=shemminger@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox