All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomasz Figa <tomasz.figa@gmail.com>
To: Naveen Krishna Ch <ch.naveen@samsung.com>
Cc: linux-crypto@vger.kernel.org, linux-samsung-soc@vger.kernel.org,
	linux-kernel@vger.kernel.org, vzapolskiy@gmail.com,
	herbert@gondor.apana.org.au, naveenkrishna.ch@gmail.com,
	cpgs@samsung.com, "David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH 2/5] crypto:s5p-sss: Add device tree and Exynos5 support
Date: Wed, 08 Jan 2014 01:25:05 +0100	[thread overview]
Message-ID: <5114267.LR2mpjRmaP@flatron> (raw)
In-Reply-To: <1389095509-14357-3-git-send-email-ch.naveen@samsung.com>

Hi Naveen,

Please see my comments inline.

On Tuesday 07 of January 2014 17:21:46 Naveen Krishna Ch wrote:
> This patch adds device tree support along with a new
> compatible string to support Exynos5 SoCs (SSS_VER_5).
> 
> Also, Documentation under devicetree/bindings added.
> 
> Signed-off-by: Naveen Krishna Ch <ch.naveen@samsung.com>
> CC: Herbert Xu <herbert@gondor.apana.org.au>
> CC: David S. Miller <davem@davemloft.net>
> CC: Vladimir Zapolskiy <vzapolskiy@gmail.com>
> TO: <linux-crypto@vger.kernel.org>
> CC: <linux-samsung-soc@vger.kernel.org>
> ---
>  .../devicetree/bindings/crypto/samsung-sss.txt     |   24 ++++++++++++
>  drivers/crypto/s5p-sss.c                           |   40 ++++++++++++++++++++
>  2 files changed, 64 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/crypto/samsung-sss.txt
> 
> diff --git a/Documentation/devicetree/bindings/crypto/samsung-sss.txt b/Documentation/devicetree/bindings/crypto/samsung-sss.txt
> new file mode 100644
> index 0000000..8871a29
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/crypto/samsung-sss.txt
> @@ -0,0 +1,24 @@
> +Samsung SoC SSS crypto Module

A sentence or two explaining what this module is would be nice.

> +
> +Required properties:
> +
> +- compatible : Should contain entries for this and backward compatible
> +  SSS versions:
> +  - "samsung,exynos-secss" for S5PV210.
> +  - "samsung,s5p-secss" for Exynos5 series SoCs.

Hmm, this doesn't make any sense, Exynos for S5PV210 and S5P for
Exynos5...

Please use specific compatible strings containing names of first SoC in
which given compatible IP block appeared. E.g. "samsung,s5pv210-secss"
and "samsung,exynos5250-secss" (if S5PV210 and Exynos5 have been first
respectively).

> +  TBD: SSS module on Exynos5 SoCs supports other algorithms,
> +  support for the is yet to be added in the driver.

This has nothing to do with DT bindings.

> +- reg : Offset and length of the register set for the module
> +- interrupts : the interrupt-specifier for the SSS module.

It should be specified how many entries should be specified and what are
their meanings.

> +- clocks : the required gating clock for the SSS module.
> +- clock-names : the gating clock name requested in the SSS driver.

The name should be specified and no dependency on the driver should be
made (it's the driver that should follow the bindings, not the other
way around).

> +
> +Example:
> +	/* SSS_VER_5 */
> +	sss: sss {

Should be sss: sss@10830000 as per ePAPR recommendation about node naming.

> +		compatible = "samsung,exynos-secss";
> +		reg = <0x10830000 0x10000>;
> +		interrupts = <0 112 0>;
> +		clocks = <&clock 471>;
> +		clock-names = "secss";
> +	};
> diff --git a/drivers/crypto/s5p-sss.c b/drivers/crypto/s5p-sss.c
> index dda4551..dcb9fc1 100644
> --- a/drivers/crypto/s5p-sss.c
> +++ b/drivers/crypto/s5p-sss.c
> @@ -22,6 +22,7 @@
>  #include <linux/scatterlist.h>
>  #include <linux/dma-mapping.h>
>  #include <linux/io.h>
> +#include <linux/of.h>
>  #include <linux/crypto.h>
>  #include <linux/interrupt.h>
>  
> @@ -173,10 +174,45 @@ struct s5p_aes_dev {
>  	struct crypto_queue         queue;
>  	bool                        busy;
>  	spinlock_t                  lock;
> +
> +	/* To support SSS versions across Samsung SoCs */
> +	unsigned int		    version;
>  };
>  
>  static struct s5p_aes_dev *s5p_dev;
>  
> +enum sss_version {
> +	SSS_VER_4,	/* SSS found on S5PV210 */
> +	SSS_VER_5,	/* SSS found on Exynos5 Series SoCs */
> +};
> +
> +static struct platform_device_id s5p_sss_ids[] = {

static const struct platform_device_id

> +	{
> +		.name		= "s5p-secss",
> +		.driver_data	= SSS_VER_4,
> +	}, { },
> +};
> +MODULE_DEVICE_TABLE(platform, s5p_sss_ids);
> +

#ifdef CONFIG_OF

> +static struct of_device_id s5p_sss_dt_match[] = {

static const struct of_device_id

> +	{ .compatible = "samsung,s5p-secss", .data = (void *)SSS_VER_4 },
> +	{ .compatible = "samsung,exynos-secss", .data = (void *)SSS_VER_5 },

Does this driver already support SSS version 5 at this stage? Aren't
further patches needed for this?

> +	{ },
> +};
> +MODULE_DEVICE_TABLE(of, s5p_sss_dt_match);

#endif

> +
> +static inline unsigned int find_s5p_sss_version(struct platform_device *pdev)
> +{
> +#ifdef CONFIG_OF
> +	if (pdev->dev.of_node) {

Please use IS_ENABLED() helper inside the if instead of #ifdef.

> +		const struct of_device_id *match;
> +		match = of_match_node(s5p_sss_dt_match, pdev->dev.of_node);
> +		return (unsigned int)match->data;
> +	}
> +#endif
> +	return platform_get_device_id(pdev)->driver_data;
> +}
> +
>  static void s5p_set_dma_indata(struct s5p_aes_dev *dev, struct scatterlist *sg)
>  {
>  	SSS_WRITE(dev, FCBRDMAS, sg_dma_address(sg));
> @@ -580,6 +616,8 @@ static int s5p_aes_probe(struct platform_device *pdev)
>  				     resource_size(res), pdev->name))
>  		return -EBUSY;
>  
> +	pdata->version = find_s5p_sss_version(pdev);

Instead of storing a version number, I would rather consider using
a variant struct containing version-specific data.

> +
>  	pdata->clk = devm_clk_get(dev, "secss");
>  	if (IS_ERR(pdata->clk)) {
>  		dev_err(dev, "failed to find secss clock source\n");
> @@ -674,9 +712,11 @@ static int s5p_aes_remove(struct platform_device *pdev)
>  static struct platform_driver s5p_aes_crypto = {
>  	.probe	= s5p_aes_probe,
>  	.remove	= s5p_aes_remove,
> +	.id_table	= s5p_sss_ids,
>  	.driver	= {
>  		.owner	= THIS_MODULE,
>  		.name	= "s5p-secss",
> +		.of_match_table = s5p_sss_dt_match,

of_match_ptr() macro should be used instead of passing s5p_sss_dt_match
directly.

Best regards,
Tomasz

  reply	other threads:[~2014-01-08  0:25 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-07 11:51 [PATCH 0/5] crypto:s5p-sss: Add DT and Exynos5 support Naveen Krishna Ch
2014-01-07 11:51 ` [PATCH 1/5] crypto:s5p-sss: Use platform_get_irq() instead of _byname() Naveen Krishna Ch
2014-01-08  0:14   ` Tomasz Figa
2014-01-09  4:58   ` [PATCH 1/6 v2] " Naveen Krishna Chatradhi
2014-01-10 11:41   ` [PATCH 1/8 v3] " Naveen Krishna Chatradhi
2014-01-10 15:15     ` Tomasz Figa
2014-01-15  9:14   ` [PATCH 1/8 v4] " Naveen Krishna Chatradhi
2014-01-23 10:19     ` Naveen Krishna Ch
2014-01-23 10:19       ` Naveen Krishna Ch
2014-01-29  9:19   ` [PATCH 1/9 v5] " Naveen Krishna Chatradhi
2014-02-07  5:21   ` [PATCH 1/9 v6] " Naveen Krishna Chatradhi
2014-01-07 11:51 ` [PATCH 2/5] crypto:s5p-sss: Add device tree and Exynos5 support Naveen Krishna Ch
2014-01-08  0:25   ` Tomasz Figa [this message]
2014-01-09  4:59   ` [PATCH 2/6 v2] crypto:s5p-sss: Add device tree support Naveen Krishna Chatradhi
2014-01-09 14:14     ` Tomasz Figa
2014-01-10  6:07       ` Naveen Krishna Ch
2014-01-10  6:07         ` Naveen Krishna Ch
2014-01-10  6:20         ` Sachin Kamat
2014-01-10  6:20           ` Sachin Kamat
2014-01-10 13:44         ` Tomasz Figa
2014-01-10 13:44           ` Tomasz Figa
2014-01-10 11:42     ` [PATCH 2/8 v3] " Naveen Krishna Chatradhi
2014-01-15  9:14     ` [PATCH 2/8 v4] " Naveen Krishna Chatradhi
2014-01-23 10:20       ` Naveen Krishna Ch
2014-01-23 10:20         ` Naveen Krishna Ch
2014-01-23 10:28       ` Sylwester Nawrocki
2014-01-23 17:41         ` Mark Rutland
2014-01-23 17:41           ` Mark Rutland
2014-01-23 17:47           ` Sylwester Nawrocki
2014-01-23 17:47             ` Sylwester Nawrocki
2014-01-23 17:59             ` Mark Rutland
2014-01-23 17:59               ` Mark Rutland
2014-01-29  9:20     ` [PATCH 2/9 v5] " Naveen Krishna Chatradhi
2014-02-06 14:36       ` Tomasz Figa
2014-02-07  5:21     ` [PATCH 2/9 v6] " Naveen Krishna Chatradhi
2014-01-07 11:51 ` [PATCH 3/5] crypto:s5p-sss: Add support for SSS module on Exynos5 Naveen Krishna Ch
2014-01-08  0:29   ` Tomasz Figa
2014-01-09  4:59   ` [PATCH 3/6 v2] crypto:s5p-sss: Add support for SSS module on Exynos Naveen Krishna Chatradhi
2014-01-09  9:32     ` Sachin Kamat
2014-01-15  9:15     ` [PATCH 3/8 v4] " Naveen Krishna Chatradhi
2014-01-24 14:09       ` Tomasz Figa
2014-01-29  9:21     ` [PATCH 3/9 v5] " Naveen Krishna Chatradhi
2014-02-06 14:39       ` Tomasz Figa
2014-01-10 11:42   ` [PATCH 3/8 v3] " Naveen Krishna Chatradhi
2014-01-10 15:44     ` Tomasz Figa
2014-01-13 21:06       ` Vladimir Zapolskiy
2014-01-14  6:16         ` Naveen Krishna Ch
2014-01-14  6:16           ` Naveen Krishna Ch
2014-01-07 11:51 ` [PATCH 4/5] crypto:s5p-sss: Exynos5 SoCs too can select SSS driver Naveen Krishna Ch
2014-01-08  0:30   ` Tomasz Figa
2014-01-09  4:27     ` Naveen Krishna Ch
2014-01-09  4:27       ` Naveen Krishna Ch
2014-01-09  4:59   ` [PATCH 4/6 v2] crypto:s5p-sss: Kconfig: Let Exynos SoCs " Naveen Krishna Chatradhi
2014-01-09  9:29     ` Sachin Kamat
2014-01-15  9:15     ` [PATCH 4/8 v4] " Naveen Krishna Chatradhi
2014-01-29  9:22     ` [PATCH 4/9 v5] " Naveen Krishna Chatradhi
2014-02-06 14:41       ` Tomasz Figa
2014-01-10 11:43   ` [PATCH 4/8 v3] " Naveen Krishna Chatradhi
2014-01-10 15:47     ` Tomasz Figa
2014-02-07  5:23   ` [PATCH 4/9 v6] " Naveen Krishna Chatradhi
2014-01-07 11:51 ` [PATCH 5/5] ARM: exynos5420: add dt node for sss module Naveen Krishna Ch
2014-01-08  0:32   ` Tomasz Figa
2014-01-09  4:26     ` Naveen Krishna Ch
2014-01-09  4:26       ` Naveen Krishna Ch
2014-01-09  5:00   ` [PATCH 5/6 v2] ARM: dts: " Naveen Krishna Chatradhi
2014-01-10 11:44     ` [PATCH 6/8 v3] ARM: dts: exynos5250/5420: " Naveen Krishna Chatradhi
2014-01-10 16:00       ` Tomasz Figa
2014-01-10 11:43   ` [PATCH 5/8 v3] clk:exynos-5250: Add gate clock for SSS module Naveen Krishna Chatradhi
2014-01-10 15:58     ` Tomasz Figa
2014-01-15  9:05       ` Naveen Krishna Ch
2014-01-15  9:05         ` Naveen Krishna Ch
2014-01-15  9:16     ` [PATCH 5/8 v4] clk: samsung: exynos5250/5420: " Naveen Krishna Chatradhi
2014-01-23 10:20       ` Naveen Krishna Ch
2014-01-23 10:20         ` Naveen Krishna Ch
2014-01-24 15:26       ` Tomasz Figa
2014-01-29  9:24     ` [PATCH 5/9 v5] clk: samsung " Naveen Krishna Chatradhi
2014-02-06 14:43       ` Tomasz Figa
2014-02-07  5:24     ` [PATCH 5/9 v6] " Naveen Krishna Chatradhi
2014-02-07  5:24   ` [PATCH 6/9 v6] ARM: dts: exynos5250/5420: add dt node for sss module Naveen Krishna Chatradhi
2014-02-13 23:28     ` Kukjin Kim
2014-02-13 23:32       ` Kukjin Kim
2014-02-14  4:13         ` Naveen Krishna Ch
2014-02-14  4:13           ` Naveen Krishna Ch
2014-02-14 10:54       ` Tomasz Figa
2014-02-17  8:56         ` Naveen Krishna Ch
2014-02-17  8:56           ` Naveen Krishna Ch
2014-01-10 11:41 ` [PATCH 0/8 v3] crypto:s5p-sss: Add DT and Exynos support Naveen Krishna Chatradhi

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=5114267.LR2mpjRmaP@flatron \
    --to=tomasz.figa@gmail.com \
    --cc=ch.naveen@samsung.com \
    --cc=cpgs@samsung.com \
    --cc=davem@davemloft.net \
    --cc=herbert@gondor.apana.org.au \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=naveenkrishna.ch@gmail.com \
    --cc=vzapolskiy@gmail.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.