All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Brown <broonie@kernel.org>
To: Jan Glauber <jglauber@cavium.com>
Cc: linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org,
	"Steven J. Hill" <steven.hill@cavium.com>,
	David Daney <david.daney@cavium.com>
Subject: Re: [PATCH 6/6] spi: octeon: Add thunderx driver
Date: Sun, 24 Jul 2016 22:04:52 +0100	[thread overview]
Message-ID: <20160724210452.GB6345@sirena.org.uk> (raw)
In-Reply-To: <f87d7a5ef8a713fb6e64c5d9471e7e5bf2051d18.1469174814.git.jglauber@cavium.com>

[-- Attachment #1: Type: text/plain, Size: 1524 bytes --]

On Sat, Jul 23, 2016 at 12:42:55PM +0200, Jan Glauber wrote:

> +config SPI_THUNDERX
> +	tristate "Cavium ThunderX SPI controller"
> +	depends on 64BIT && PCI && !CAVIUM_OCTEON_SOC

This is a *weird* and most likely broken set of dependencies - why
exclude this if we're on Octeon (or Octeon happens to have been enabled
in a config)?

> +static void thunderx_spi_clock_enable(struct device *dev, struct octeon_spi *p)
> +{
> +	int ret;
> +
> +	p->clk = devm_clk_get(dev, NULL);
> +	if (IS_ERR(p->clk)) {
> +		p->clk = NULL;
> +		goto skip;
> +	}

This is really not clever - we should be requesting clocks on probe, not
only when we're trying to enable them, and using devm_ outside of probe
paths is usually a warning sign too.  Now, this is actually called from
probe so it works out fine but obviously it'd be better to improve the
power management to only enable the clock when needed and at that point
this function will be used and we'll fall into a bad pattern.

Given how tiny this function is and that we've not bothered splitting
out any of the other resource acquisition it's probably better to just
inline it into probe.

> +	dev_info(&pdev->dev, "Cavium SPI bus driver probed\n");

Again, this is just adding noise to the boot log.

> +#define PCI_DEVICE_ID_THUNDERX_SPI      0xa00b
> +
> +static const struct pci_device_id thunderx_spi_pci_id_table[] = {
> +	{ PCI_DEVICE(PCI_VENDOR_ID_CAVIUM, PCI_DEVICE_ID_THUNDERX_SPI) },
> +	{ 0, }
> +};

The define for the device ID doesn't seem to be adding much here.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Jan Glauber <jglauber-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org>
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	"Steven J. Hill"
	<steven.hill-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org>,
	David Daney <david.daney-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org>
Subject: Re: [PATCH 6/6] spi: octeon: Add thunderx driver
Date: Sun, 24 Jul 2016 22:04:52 +0100	[thread overview]
Message-ID: <20160724210452.GB6345@sirena.org.uk> (raw)
In-Reply-To: <f87d7a5ef8a713fb6e64c5d9471e7e5bf2051d18.1469174814.git.jglauber-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 1524 bytes --]

On Sat, Jul 23, 2016 at 12:42:55PM +0200, Jan Glauber wrote:

> +config SPI_THUNDERX
> +	tristate "Cavium ThunderX SPI controller"
> +	depends on 64BIT && PCI && !CAVIUM_OCTEON_SOC

This is a *weird* and most likely broken set of dependencies - why
exclude this if we're on Octeon (or Octeon happens to have been enabled
in a config)?

> +static void thunderx_spi_clock_enable(struct device *dev, struct octeon_spi *p)
> +{
> +	int ret;
> +
> +	p->clk = devm_clk_get(dev, NULL);
> +	if (IS_ERR(p->clk)) {
> +		p->clk = NULL;
> +		goto skip;
> +	}

This is really not clever - we should be requesting clocks on probe, not
only when we're trying to enable them, and using devm_ outside of probe
paths is usually a warning sign too.  Now, this is actually called from
probe so it works out fine but obviously it'd be better to improve the
power management to only enable the clock when needed and at that point
this function will be used and we'll fall into a bad pattern.

Given how tiny this function is and that we've not bothered splitting
out any of the other resource acquisition it's probably better to just
inline it into probe.

> +	dev_info(&pdev->dev, "Cavium SPI bus driver probed\n");

Again, this is just adding noise to the boot log.

> +#define PCI_DEVICE_ID_THUNDERX_SPI      0xa00b
> +
> +static const struct pci_device_id thunderx_spi_pci_id_table[] = {
> +	{ PCI_DEVICE(PCI_VENDOR_ID_CAVIUM, PCI_DEVICE_ID_THUNDERX_SPI) },
> +	{ 0, }
> +};

The define for the device ID doesn't seem to be adding much here.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

  reply	other threads:[~2016-07-24 21:05 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-23 10:42 [PATCH 0/6] SPI ThunderX driver Jan Glauber
2016-07-23 10:42 ` Jan Glauber
2016-07-23 10:42 ` [PATCH 1/6] spi: octeon: Convert driver to use readq()/writeq() functions Jan Glauber
2016-07-23 10:42 ` [PATCH 2/6] spi: octeon: Store system clock freqency in struct octeon_spi Jan Glauber
2016-07-23 10:42 ` [PATCH 3/6] spi: octeon: Put register offsets into a struct Jan Glauber
2016-07-23 10:42 ` [PATCH 4/6] spi: octeon: Move include file from arch/mips to drivers/spi Jan Glauber
2016-07-23 10:42 ` [PATCH 5/6] spi: octeon: Split driver into Octeon specific and common parts Jan Glauber
2016-07-24 18:38   ` Paul Gortmaker
2016-07-25 11:32     ` Jan Glauber
2016-07-25 11:32       ` Jan Glauber
2016-07-24 20:54   ` Mark Brown
2016-07-24 20:54     ` Mark Brown
2016-07-25 11:37     ` Jan Glauber
2016-07-25 11:37       ` Jan Glauber
2016-07-25 17:49     ` [PATCH v2] " Jan Glauber
2016-07-25 17:49       ` Jan Glauber
2016-07-23 10:42 ` [PATCH 6/6] spi: octeon: Add thunderx driver Jan Glauber
2016-07-24 21:04   ` Mark Brown [this message]
2016-07-24 21:04     ` Mark Brown
2016-07-25 15:51     ` Jan Glauber
2016-07-25 15:51       ` Jan Glauber
2016-07-25 16:16       ` Mark Brown
2016-07-25 16:31         ` David Daney
2016-07-25 16:31           ` David Daney
2016-07-25 17:56           ` [PATCH v2] " Jan Glauber
2016-07-27 18:08             ` Mark Brown
2016-07-27 18:08               ` Mark Brown
2016-07-28  8:12               ` Jan Glauber
2016-07-28  8:12                 ` Jan Glauber
2016-07-28 13:58                 ` Mark Brown
2016-07-28 13:58                   ` Mark Brown
2016-07-27 18:12           ` [PATCH 6/6] " Mark Brown
2016-07-27 18:12             ` Mark Brown
2016-07-27 18:25             ` David Daney
2016-07-27 18:25               ` David Daney
2016-07-27 19:08               ` Mark Brown
2016-07-27 19:08                 ` Mark Brown
2016-07-25 16:20       ` Mark Brown

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=20160724210452.GB6345@sirena.org.uk \
    --to=broonie@kernel.org \
    --cc=david.daney@cavium.com \
    --cc=jglauber@cavium.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=steven.hill@cavium.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.