All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Ball <cjb@laptop.org>
To: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Cc: linux-mmc@vger.kernel.org, linux-sh@vger.kernel.org,
	Magnus Damm <magnus.damm@gmail.com>
Subject: Re: [PATCH v2] mmc: sh_mobile_sdhi: support modular mmc-core with non-standard hotplug
Date: Thu, 15 Mar 2012 23:18:14 -0400	[thread overview]
Message-ID: <87fwd9cjyh.fsf@laptop.org> (raw)
In-Reply-To: <Pine.LNX.4.64.1203091012150.7852@axis700.grange> (Guennadi Liakhovetski's message of "Fri, 9 Mar 2012 10:16:00 +0100 (CET)")

Hi Guennadi,

On Fri, Mar 09 2012, Guennadi Liakhovetski wrote:
> Currently if a platform wants to implement a non-standard card-detection
> method, it would need to call tmio_mmc_cd_wakeup(), which is an inline
> function, calling mmc_detect_change(). For this the platform would have
> to link mmc_core statically into the kernel, losing the ability to build
> it as a module. This patch adds a callback to the sh_mobile_sdhi driver,
> which eliminates this dependency.
>
> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> ---
>
> v2:
>
> 1. remove a call to tmio_mmc_cd_wakeup(), call mmc_detect_change() 
>    directly instead
> 2. document the new struct sh_mobile_sdhi_ops
>
>  drivers/mmc/host/sh_mobile_sdhi.c  |   11 ++++++++++-
>  include/linux/mmc/sh_mobile_sdhi.h |   11 ++++++++++-
>  2 files changed, 20 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c
> index dd288d6..8352054 100644
> --- a/drivers/mmc/host/sh_mobile_sdhi.c
> +++ b/drivers/mmc/host/sh_mobile_sdhi.c
> @@ -100,6 +100,15 @@ static int sh_mobile_sdhi_write16_hook(struct tmio_mmc_host *host, int addr)
>  	return 0;
>  }
>  
> +static void sh_mobile_sdhi_cd_wakeup(const struct platform_device *pdev)
> +{
> +	mmc_detect_change(dev_get_drvdata(&pdev->dev), msecs_to_jiffies(100));
> +}
> +
> +static const struct sh_mobile_sdhi_ops sdhi_ops = {
> +	.cd_wakeup = sh_mobile_sdhi_cd_wakeup,
> +};
> +
>  static int __devinit sh_mobile_sdhi_probe(struct platform_device *pdev)
>  {
>  	struct sh_mobile_sdhi *priv;
> @@ -121,7 +130,7 @@ static int __devinit sh_mobile_sdhi_probe(struct platform_device *pdev)
>  	p->pdata = mmc_data;
>  
>  	if (p->init) {
> -		ret = p->init(pdev);
> +		ret = p->init(pdev, &sdhi_ops);
>  		if (ret)
>  			goto einit;
>  	}

This patch doesn't apply because the "if (p->init)" conditional isn't in
mmc-next.  Maybe you're depending on a patch that I haven't taken yet?

> diff --git a/include/linux/mmc/sh_mobile_sdhi.h b/include/linux/mmc/sh_mobile_sdhi.h
> index 686b85b..e94e620 100644
> --- a/include/linux/mmc/sh_mobile_sdhi.h
> +++ b/include/linux/mmc/sh_mobile_sdhi.h
> @@ -10,6 +10,14 @@ struct tmio_mmc_data;
>  #define SH_MOBILE_SDHI_IRQ_SDCARD	"sdcard"
>  #define SH_MOBILE_SDHI_IRQ_SDIO		"sdio"
>  
> +/**
> + * struct sh_mobile_sdhi_ops - SDHI driver callbacks
> + * @cd_wakeup:		trigger a card-detection run
> + */
> +struct sh_mobile_sdhi_ops {
> +	void (*cd_wakeup)(const struct platform_device *pdev);
> +};
> +
>  struct sh_mobile_sdhi_info {
>  	int dma_slave_tx;
>  	int dma_slave_rx;
> @@ -22,7 +30,8 @@ struct sh_mobile_sdhi_info {
>  	int (*get_cd)(struct platform_device *pdev);
>  
>  	/* callbacks for board specific setup code */
> -	int (*init)(struct platform_device *pdev);
> +	int (*init)(struct platform_device *pdev,
> +		    const struct sh_mobile_sdhi_ops *ops);
>  	void (*cleanup)(struct platform_device *pdev);
>  };

- Chris.
-- 
Chris Ball   <cjb@laptop.org>   <http://printf.net/>
One Laptop Per Child

WARNING: multiple messages have this Message-ID (diff)
From: Chris Ball <cjb@laptop.org>
To: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Cc: linux-mmc@vger.kernel.org, linux-sh@vger.kernel.org,
	Magnus Damm <magnus.damm@gmail.com>
Subject: Re: [PATCH v2] mmc: sh_mobile_sdhi: support modular mmc-core with non-standard hotplug
Date: Fri, 16 Mar 2012 03:18:14 +0000	[thread overview]
Message-ID: <87fwd9cjyh.fsf@laptop.org> (raw)
In-Reply-To: <Pine.LNX.4.64.1203091012150.7852@axis700.grange> (Guennadi Liakhovetski's message of "Fri, 9 Mar 2012 10:16:00 +0100 (CET)")

Hi Guennadi,

On Fri, Mar 09 2012, Guennadi Liakhovetski wrote:
> Currently if a platform wants to implement a non-standard card-detection
> method, it would need to call tmio_mmc_cd_wakeup(), which is an inline
> function, calling mmc_detect_change(). For this the platform would have
> to link mmc_core statically into the kernel, losing the ability to build
> it as a module. This patch adds a callback to the sh_mobile_sdhi driver,
> which eliminates this dependency.
>
> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> ---
>
> v2:
>
> 1. remove a call to tmio_mmc_cd_wakeup(), call mmc_detect_change() 
>    directly instead
> 2. document the new struct sh_mobile_sdhi_ops
>
>  drivers/mmc/host/sh_mobile_sdhi.c  |   11 ++++++++++-
>  include/linux/mmc/sh_mobile_sdhi.h |   11 ++++++++++-
>  2 files changed, 20 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c
> index dd288d6..8352054 100644
> --- a/drivers/mmc/host/sh_mobile_sdhi.c
> +++ b/drivers/mmc/host/sh_mobile_sdhi.c
> @@ -100,6 +100,15 @@ static int sh_mobile_sdhi_write16_hook(struct tmio_mmc_host *host, int addr)
>  	return 0;
>  }
>  
> +static void sh_mobile_sdhi_cd_wakeup(const struct platform_device *pdev)
> +{
> +	mmc_detect_change(dev_get_drvdata(&pdev->dev), msecs_to_jiffies(100));
> +}
> +
> +static const struct sh_mobile_sdhi_ops sdhi_ops = {
> +	.cd_wakeup = sh_mobile_sdhi_cd_wakeup,
> +};
> +
>  static int __devinit sh_mobile_sdhi_probe(struct platform_device *pdev)
>  {
>  	struct sh_mobile_sdhi *priv;
> @@ -121,7 +130,7 @@ static int __devinit sh_mobile_sdhi_probe(struct platform_device *pdev)
>  	p->pdata = mmc_data;
>  
>  	if (p->init) {
> -		ret = p->init(pdev);
> +		ret = p->init(pdev, &sdhi_ops);
>  		if (ret)
>  			goto einit;
>  	}

This patch doesn't apply because the "if (p->init)" conditional isn't in
mmc-next.  Maybe you're depending on a patch that I haven't taken yet?

> diff --git a/include/linux/mmc/sh_mobile_sdhi.h b/include/linux/mmc/sh_mobile_sdhi.h
> index 686b85b..e94e620 100644
> --- a/include/linux/mmc/sh_mobile_sdhi.h
> +++ b/include/linux/mmc/sh_mobile_sdhi.h
> @@ -10,6 +10,14 @@ struct tmio_mmc_data;
>  #define SH_MOBILE_SDHI_IRQ_SDCARD	"sdcard"
>  #define SH_MOBILE_SDHI_IRQ_SDIO		"sdio"
>  
> +/**
> + * struct sh_mobile_sdhi_ops - SDHI driver callbacks
> + * @cd_wakeup:		trigger a card-detection run
> + */
> +struct sh_mobile_sdhi_ops {
> +	void (*cd_wakeup)(const struct platform_device *pdev);
> +};
> +
>  struct sh_mobile_sdhi_info {
>  	int dma_slave_tx;
>  	int dma_slave_rx;
> @@ -22,7 +30,8 @@ struct sh_mobile_sdhi_info {
>  	int (*get_cd)(struct platform_device *pdev);
>  
>  	/* callbacks for board specific setup code */
> -	int (*init)(struct platform_device *pdev);
> +	int (*init)(struct platform_device *pdev,
> +		    const struct sh_mobile_sdhi_ops *ops);
>  	void (*cleanup)(struct platform_device *pdev);
>  };

- Chris.
-- 
Chris Ball   <cjb@laptop.org>   <http://printf.net/>
One Laptop Per Child

  parent reply	other threads:[~2012-03-16  3:18 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-27 14:12 [PATCH] mmc: sh_mobile_sdhi: support modular mmc-core with non-standard hotplug Guennadi Liakhovetski
2012-02-27 14:12 ` Guennadi Liakhovetski
2012-03-09  9:16 ` [PATCH v2] " Guennadi Liakhovetski
2012-03-09  9:16   ` Guennadi Liakhovetski
2012-03-09 13:51   ` Magnus Damm
2012-03-09 13:51     ` Magnus Damm
2012-03-16 16:22     ` Chris Ball
2012-03-16 16:22       ` Chris Ball
2012-03-16  3:18   ` Chris Ball [this message]
2012-03-16  3:18     ` Chris Ball
2012-03-16  9:27     ` Guennadi Liakhovetski
2012-03-16  9:27       ` Guennadi Liakhovetski

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=87fwd9cjyh.fsf@laptop.org \
    --to=cjb@laptop.org \
    --cc=g.liakhovetski@gmx.de \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=magnus.damm@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.