All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ulf Hansson <ulf.hansson@linaro.org>
To: Adrian Hunter <adrian.hunter@intel.com>
Cc: linux-mmc <linux-mmc@vger.kernel.org>
Subject: Re: [PATCH 3/4] mmc: sdhci-acpi: Let devices define their own private data
Date: Mon, 30 Oct 2017 12:40:27 +0100	[thread overview]
Message-ID: <CAPDyKFqeowHBVdBdboxPpKP0DJ=Gh=OP9w7inaGmtJD4P-09HQ@mail.gmail.com> (raw)
In-Reply-To: <1508409706-27026-4-git-send-email-adrian.hunter@intel.com>

On 19 October 2017 at 12:41, Adrian Hunter <adrian.hunter@intel.com> wrote:
> Let devices define their own private data to facilitate device-specific
> operations. The size of the private structure is specified in the
> sdhci_acpi_slot structure, then sdhci_acpi_probe() will allocate extra
> space for it, and sdhci_acpi_priv() can be used to get a reference to it.
>
> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>

Thanks, applied for next!

Kind regards
Uffe

> ---
>  drivers/mmc/host/sdhci-acpi.c | 16 ++++++++++++++--
>  1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c
> index 640be5b618fc..5bb5880403b2 100644
> --- a/drivers/mmc/host/sdhci-acpi.c
> +++ b/drivers/mmc/host/sdhci-acpi.c
> @@ -73,6 +73,7 @@ struct sdhci_acpi_slot {
>         unsigned int    caps2;
>         mmc_pm_flag_t   pm_caps;
>         unsigned int    flags;
> +       size_t          priv_size;
>         int (*probe_slot)(struct platform_device *, const char *, const char *);
>         int (*remove_slot)(struct platform_device *);
>  };
> @@ -82,8 +83,14 @@ struct sdhci_acpi_host {
>         const struct sdhci_acpi_slot    *slot;
>         struct platform_device          *pdev;
>         bool                            use_runtime_pm;
> +       unsigned long                   private[0] ____cacheline_aligned;
>  };
>
> +static inline void *sdhci_acpi_priv(struct sdhci_acpi_host *c)
> +{
> +       return (void *)c->private;
> +}
> +
>  static inline bool sdhci_acpi_flag(struct sdhci_acpi_host *c, unsigned int flag)
>  {
>         return c->slot && (c->slot->flags & flag);
> @@ -393,11 +400,13 @@ static const struct sdhci_acpi_slot *sdhci_acpi_get_slot(const char *hid,
>  static int sdhci_acpi_probe(struct platform_device *pdev)
>  {
>         struct device *dev = &pdev->dev;
> +       const struct sdhci_acpi_slot *slot;
>         struct acpi_device *device, *child;
>         struct sdhci_acpi_host *c;
>         struct sdhci_host *host;
>         struct resource *iomem;
>         resource_size_t len;
> +       size_t priv_size;
>         const char *hid;
>         const char *uid;
>         int err;
> @@ -409,6 +418,8 @@ static int sdhci_acpi_probe(struct platform_device *pdev)
>         hid = acpi_device_hid(device);
>         uid = acpi_device_uid(device);
>
> +       slot = sdhci_acpi_get_slot(hid, uid);
> +
>         /* Power on the SDHCI controller and its children */
>         acpi_device_fix_up_power(device);
>         if (!sdhci_acpi_no_fixup_child_power(hid, uid)) {
> @@ -431,13 +442,14 @@ static int sdhci_acpi_probe(struct platform_device *pdev)
>         if (!devm_request_mem_region(dev, iomem->start, len, dev_name(dev)))
>                 return -ENOMEM;
>
> -       host = sdhci_alloc_host(dev, sizeof(struct sdhci_acpi_host));
> +       priv_size = slot ? slot->priv_size : 0;
> +       host = sdhci_alloc_host(dev, sizeof(struct sdhci_acpi_host) + priv_size);
>         if (IS_ERR(host))
>                 return PTR_ERR(host);
>
>         c = sdhci_priv(host);
>         c->host = host;
> -       c->slot = sdhci_acpi_get_slot(hid, uid);
> +       c->slot = slot;
>         c->pdev = pdev;
>         c->use_runtime_pm = sdhci_acpi_flag(c, SDHCI_ACPI_RUNTIME_PM);
>
> --
> 1.9.1
>

  reply	other threads:[~2017-10-30 11:40 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-19 10:41 [PATCH 0/4] mmc: sdhci-acpi: Fix voltage switch for some Intel host controllers Adrian Hunter
2017-10-19 10:41 ` [PATCH 1/4] mmc: sdhci-acpi: Use helper function acpi_device_uid() Adrian Hunter
2017-10-20 10:03   ` Ulf Hansson
2017-10-19 10:41 ` [PATCH 2/4] mmc: sdhci-acpi: Tidy Intel slot probe functions into one Adrian Hunter
2017-10-20 10:03   ` Ulf Hansson
2017-10-19 10:41 ` [PATCH 3/4] mmc: sdhci-acpi: Let devices define their own private data Adrian Hunter
2017-10-30 11:40   ` Ulf Hansson [this message]
2017-10-19 10:41 ` [PATCH 4/4] mmc: sdhci-acpi: Fix voltage switch for some Intel host controllers Adrian Hunter
2017-10-20  9:16   ` Ulf Hansson
2017-10-20 11:11     ` Adrian Hunter
2017-10-30 11:40   ` Ulf Hansson

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='CAPDyKFqeowHBVdBdboxPpKP0DJ=Gh=OP9w7inaGmtJD4P-09HQ@mail.gmail.com' \
    --to=ulf.hansson@linaro.org \
    --cc=adrian.hunter@intel.com \
    --cc=linux-mmc@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 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.