All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Williams <dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
Cc: Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
	treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org,
	pdeschrijver-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	"dmaengine-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<dmaengine-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Vinod Koul <vinod.koul-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Andy Shevchenko
	<andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Subject: Re: [PATCH 11/31] dma: add channel request API that supports deferred probe
Date: Fri, 15 Nov 2013 13:05:45 -0800	[thread overview]
Message-ID: <CAPcyv4i8+AjHfwo0WGyyMC1JR8ty_OUrfDZXcnpUPr5cz2hkoQ@mail.gmail.com> (raw)
In-Reply-To: <CAPcyv4heN3PFc+n2RDBviA0zvyU4jfi5VLOcQVR6oRPi1woPTA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

[ Also adding Andy to comment on the acpi-dma.c question ]

On Fri, Nov 15, 2013 at 1:01 PM, Dan Williams <dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> wrote:
> [ adding dmaengine list and Vinod ]
>
> On Fri, Nov 15, 2013 at 12:54 PM, Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org> wrote:
>> From: Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
>>
>> dma_request_slave_channel() simply returns NULL whenever DMA channel
>> lookup fails. Lookup could fail for two distinct reasons:
>>
>> a) No DMA specification exists for the channel name.
>>    This includes situations where no DMA specifications exist at all, or
>>    other general lookup problems.
>>
>> b) A DMA specification does exist, yet the driver for that channel is not
>>    yet registered.
>>
>> Case (b) should trigger deferred probe in client drivers. However, since
>> they have no way to differentiate the two situations, it cannot.
>>
>> Implement new function dma_request_slave_channel_or_err(), which performs
>> identically to dma_request_slave_channel(), except that it returns an
>> error-pointer rather than NULL, which allows callers to detect when
>> deferred probe should occur.
>>
>> Eventually, all drivers should be converted to this new API, the old API
>> removed, and the new API renamed to the more desirable name. This patch
>> doesn't convert the existing API and all drivers in one go, since some
>> drivers call dma_request_slave_channel() then dma_request_channel() if
>> that fails. That would require modifying dma_request_channel() in the
>> same way, which would then require modifying close to 100 drivers at once,
>> rather than just the 15-20 or so that use dma_request_slave_channel(),
>> which might be tenable in a single patch.
>>
>> acpi_dma_request_slave_chan_by_index() doesn't actually implement
>> deferred probe. Perhaps it should?
>>
>> Cc: treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org
>> Cc: pdeschrijver-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org
>> Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
>> Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
>> Cc: Dan Williams <dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
>> Signed-off-by: Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
>> ---
>> This patch is part of a series with strong internal depdendencies. I'm
>> looking for an ack so that I can take the entire series through the Tegra
>> and arm-soc trees. The series will be part of a stable branch that can be
>> merged into other subsystems if needed to avoid/resolve dependencies.
>> ---
>>  drivers/dma/acpi-dma.c    | 12 ++++++------
>>  drivers/dma/dmaengine.c   | 44 ++++++++++++++++++++++++++++++++++++++++----
>>  drivers/dma/of-dma.c      | 12 +++++++-----
>>  include/linux/dmaengine.h |  7 +++++++
>>  include/linux/of_dma.h    |  9 ++++++---
>>  5 files changed, 66 insertions(+), 18 deletions(-)
>>
>> diff --git a/drivers/dma/acpi-dma.c b/drivers/dma/acpi-dma.c
>> index e69b03c0fa50..c83d40f14467 100644
>> --- a/drivers/dma/acpi-dma.c
>> +++ b/drivers/dma/acpi-dma.c
>> @@ -334,7 +334,7 @@ static int acpi_dma_parse_fixed_dma(struct acpi_resource *res, void *data)
>>   * @dev:       struct device to get DMA request from
>>   * @index:     index of FixedDMA descriptor for @dev
>>   *
>> - * Returns pointer to appropriate dma channel on success or NULL on error.
>> + * Returns pointer to appropriate dma channel on success or an error pointer.
>>   */
>>  struct dma_chan *acpi_dma_request_slave_chan_by_index(struct device *dev,
>>                 size_t index)
>> @@ -349,10 +349,10 @@ struct dma_chan *acpi_dma_request_slave_chan_by_index(struct device *dev,
>>
>>         /* Check if the device was enumerated by ACPI */
>>         if (!dev || !ACPI_HANDLE(dev))
>> -               return NULL;
>> +               return ERR_PTR(-ENODEV);
>>
>>         if (acpi_bus_get_device(ACPI_HANDLE(dev), &adev))
>> -               return NULL;
>> +               return ERR_PTR(-ENODEV);
>>
>>         memset(&pdata, 0, sizeof(pdata));
>>         pdata.index = index;
>> @@ -367,7 +367,7 @@ struct dma_chan *acpi_dma_request_slave_chan_by_index(struct device *dev,
>>         acpi_dev_free_resource_list(&resource_list);
>>
>>         if (dma_spec->slave_id < 0 || dma_spec->chan_id < 0)
>> -               return NULL;
>> +               return ERR_PTR(-ENODEV);
>>
>>         mutex_lock(&acpi_dma_lock);
>>
>> @@ -403,7 +403,7 @@ EXPORT_SYMBOL_GPL(acpi_dma_request_slave_chan_by_index);
>>   * translate the names "tx" and "rx" here based on the most common case where
>>   * the first FixedDMA descriptor is TX and second is RX.
>>   *
>> - * Returns pointer to appropriate dma channel on success or NULL on error.
>> + * Returns pointer to appropriate dma channel on success or an error pointer.
>>   */
>>  struct dma_chan *acpi_dma_request_slave_chan_by_name(struct device *dev,
>>                 const char *name)
>> @@ -415,7 +415,7 @@ struct dma_chan *acpi_dma_request_slave_chan_by_name(struct device *dev,
>>         else if (!strcmp(name, "rx"))
>>                 index = 1;
>>         else
>> -               return NULL;
>> +               return ERR_PTR(-ENODEV);
>>
>>         return acpi_dma_request_slave_chan_by_index(dev, index);
>>  }
>> diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c
>> index ea806bdc12ef..5e7f8af2f0ec 100644
>> --- a/drivers/dma/dmaengine.c
>> +++ b/drivers/dma/dmaengine.c
>> @@ -540,6 +540,8 @@ EXPORT_SYMBOL_GPL(dma_get_slave_channel);
>>   * @mask: capabilities that the channel must satisfy
>>   * @fn: optional callback to disposition available channels
>>   * @fn_param: opaque parameter to pass to dma_filter_fn
>> + *
>> + * Returns pointer to appropriate dma channel on success or NULL.
>>   */
>>  struct dma_chan *__dma_request_channel(const dma_cap_mask_t *mask,
>>                                        dma_filter_fn fn, void *fn_param)
>> @@ -588,24 +590,58 @@ struct dma_chan *__dma_request_channel(const dma_cap_mask_t *mask,
>>  EXPORT_SYMBOL_GPL(__dma_request_channel);
>>
>>  /**
>> - * dma_request_slave_channel - try to allocate an exclusive slave channel
>> + * __dma_request_slave_channel - try to allocate an exclusive slave
>> + *   channel
>>   * @dev:       pointer to client device structure
>>   * @name:      slave channel name
>> + *
>> + * Returns pointer to appropriate dma channel on success or an error pointer.
>>   */
>> -struct dma_chan *dma_request_slave_channel(struct device *dev, const char *name)
>> +static struct dma_chan *__dma_request_slave_channel(struct device *dev,
>> +                                       const char *name, bool defer)
>>  {
>>         /* If device-tree is present get slave info from here */
>>         if (dev->of_node)
>> -               return of_dma_request_slave_channel(dev->of_node, name);
>> +               return of_dma_request_slave_channel(dev->of_node, name, defer);
>>
>>         /* If device was enumerated by ACPI get slave info from here */
>>         if (ACPI_HANDLE(dev))
>>                 return acpi_dma_request_slave_chan_by_name(dev, name);
>>
>> -       return NULL;
>> +       return ERR_PTR(-ENODEV);
>> +}
>> +
>> +/**
>> + * dma_request_slave_channel - try to allocate an exclusive slave channel
>> + * @dev:       pointer to client device structure
>> + * @name:      slave channel name
>> + *
>> + * Returns pointer to appropriate dma channel on success or NULL.
>> + */
>> +struct dma_chan *dma_request_slave_channel(struct device *dev,
>> +                                          const char *name)
>> +{
>> +       struct dma_chan *ch = __dma_request_slave_channel(dev, name, false);
>> +       if (IS_ERR(ch))
>> +               return NULL;
>> +       return ch;
>>  }
>>  EXPORT_SYMBOL_GPL(dma_request_slave_channel);
>>
>> +/**
>> + * dma_request_slave_channel_or_err - try to allocate an exclusive slave channel
>> + * @dev:       pointer to client device structure
>> + * @name:      slave channel name
>> + *
>> + * Returns pointer to appropriate dma channel on success or an error pointer.
>> + */
>> +struct dma_chan *dma_request_slave_channel_or_err(struct device *dev,
>> +                                                 const char *name)
>> +{
>> +       return __dma_request_slave_channel(dev, name, true);
>> +}
>> +EXPORT_SYMBOL_GPL(dma_request_slave_channel_or_err);
>> +
>>  void dma_release_channel(struct dma_chan *chan)
>>  {
>>         mutex_lock(&dma_list_mutex);
>> diff --git a/drivers/dma/of-dma.c b/drivers/dma/of-dma.c
>> index 0b88dd3d05f4..928141f6f21b 100644
>> --- a/drivers/dma/of-dma.c
>> +++ b/drivers/dma/of-dma.c
>> @@ -143,10 +143,10 @@ static int of_dma_match_channel(struct device_node *np, const char *name,
>>   * @np:                device node to get DMA request from
>>   * @name:      name of desired channel
>>   *
>> - * Returns pointer to appropriate dma channel on success or NULL on error.
>> + * Returns pointer to appropriate dma channel on success or an error pointer.
>>   */
>>  struct dma_chan *of_dma_request_slave_channel(struct device_node *np,
>> -                                             const char *name)
>> +                                             const char *name, bool defer)
>>  {
>>         struct of_phandle_args  dma_spec;
>>         struct of_dma           *ofdma;
>> @@ -155,14 +155,14 @@ struct dma_chan *of_dma_request_slave_channel(struct device_node *np,
>>
>>         if (!np || !name) {
>>                 pr_err("%s: not enough information provided\n", __func__);
>> -               return NULL;
>> +               return ERR_PTR(-ENODEV);
>>         }
>>
>>         count = of_property_count_strings(np, "dma-names");
>>         if (count < 0) {
>>                 pr_err("%s: dma-names property of node '%s' missing or empty\n",
>>                         __func__, np->full_name);
>> -               return NULL;
>> +               return ERR_PTR(-ENODEV);
>>         }
>>
>>         for (i = 0; i < count; i++) {
>> @@ -181,11 +181,13 @@ struct dma_chan *of_dma_request_slave_channel(struct device_node *np,
>>
>>                 of_node_put(dma_spec.np);
>>
>> +               if (!ofdma && defer)
>> +                       return ERR_PTR(-EPROBE_DEFER);
>>                 if (chan)
>>                         return chan;
>>         }
>>
>> -       return NULL;
>> +       return ERR_PTR(-ENODEV);
>>  }
>>
>>  /**
>> diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
>> index 41cf0c399288..b908b0fda72b 100644
>> --- a/include/linux/dmaengine.h
>> +++ b/include/linux/dmaengine.h
>> @@ -1041,6 +1041,8 @@ void dma_issue_pending_all(void);
>>  struct dma_chan *__dma_request_channel(const dma_cap_mask_t *mask,
>>                                         dma_filter_fn fn, void *fn_param);
>>  struct dma_chan *dma_request_slave_channel(struct device *dev, const char *name);
>> +struct dma_chan *dma_request_slave_channel_or_err(struct device *dev,
>> +                                                 const char *name);
>>  void dma_release_channel(struct dma_chan *chan);
>>  #else
>>  static inline struct dma_chan *dma_find_channel(enum dma_transaction_type tx_type)
>> @@ -1068,6 +1070,11 @@ static inline struct dma_chan *dma_request_slave_channel(struct device *dev,
>>  {
>>         return NULL;
>>  }
>> +static inline struct dma_chan *dma_request_slave_channel_or_err(
>> +                                       struct device *dev, const char *name)
>> +{
>> +       return ERR_PTR(-ENODEV);
>> +}
>>  static inline void dma_release_channel(struct dma_chan *chan)
>>  {
>>  }
>> diff --git a/include/linux/of_dma.h b/include/linux/of_dma.h
>> index ae36298ba076..0504461574c6 100644
>> --- a/include/linux/of_dma.h
>> +++ b/include/linux/of_dma.h
>> @@ -38,7 +38,8 @@ extern int of_dma_controller_register(struct device_node *np,
>>                 void *data);
>>  extern void of_dma_controller_free(struct device_node *np);
>>  extern struct dma_chan *of_dma_request_slave_channel(struct device_node *np,
>> -                                                    const char *name);
>> +                                                    const char *name,
>> +                                                    bool defer);
>>  extern struct dma_chan *of_dma_simple_xlate(struct of_phandle_args *dma_spec,
>>                 struct of_dma *ofdma);
>>  #else
>> @@ -54,8 +55,10 @@ static inline void of_dma_controller_free(struct device_node *np)
>>  {
>>  }
>>
>> -static inline struct dma_chan *of_dma_request_slave_channel(struct device_node *np,
>> -                                                    const char *name)
>> +static inline struct dma_chan *of_dma_request_slave_channel(
>> +                                       struct device_node *np,
>> +                                       const char *name,
>> +                                       bool defer)
>>  {
>>         return NULL;
>>  }
>> --
>> 1.8.1.5
>>

WARNING: multiple messages have this Message-ID (diff)
From: dan.j.williams@intel.com (Dan Williams)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 11/31] dma: add channel request API that supports deferred probe
Date: Fri, 15 Nov 2013 13:05:45 -0800	[thread overview]
Message-ID: <CAPcyv4i8+AjHfwo0WGyyMC1JR8ty_OUrfDZXcnpUPr5cz2hkoQ@mail.gmail.com> (raw)
In-Reply-To: <CAPcyv4heN3PFc+n2RDBviA0zvyU4jfi5VLOcQVR6oRPi1woPTA@mail.gmail.com>

[ Also adding Andy to comment on the acpi-dma.c question ]

On Fri, Nov 15, 2013 at 1:01 PM, Dan Williams <dan.j.williams@intel.com> wrote:
> [ adding dmaengine list and Vinod ]
>
> On Fri, Nov 15, 2013 at 12:54 PM, Stephen Warren <swarren@wwwdotorg.org> wrote:
>> From: Stephen Warren <swarren@nvidia.com>
>>
>> dma_request_slave_channel() simply returns NULL whenever DMA channel
>> lookup fails. Lookup could fail for two distinct reasons:
>>
>> a) No DMA specification exists for the channel name.
>>    This includes situations where no DMA specifications exist at all, or
>>    other general lookup problems.
>>
>> b) A DMA specification does exist, yet the driver for that channel is not
>>    yet registered.
>>
>> Case (b) should trigger deferred probe in client drivers. However, since
>> they have no way to differentiate the two situations, it cannot.
>>
>> Implement new function dma_request_slave_channel_or_err(), which performs
>> identically to dma_request_slave_channel(), except that it returns an
>> error-pointer rather than NULL, which allows callers to detect when
>> deferred probe should occur.
>>
>> Eventually, all drivers should be converted to this new API, the old API
>> removed, and the new API renamed to the more desirable name. This patch
>> doesn't convert the existing API and all drivers in one go, since some
>> drivers call dma_request_slave_channel() then dma_request_channel() if
>> that fails. That would require modifying dma_request_channel() in the
>> same way, which would then require modifying close to 100 drivers at once,
>> rather than just the 15-20 or so that use dma_request_slave_channel(),
>> which might be tenable in a single patch.
>>
>> acpi_dma_request_slave_chan_by_index() doesn't actually implement
>> deferred probe. Perhaps it should?
>>
>> Cc: treding at nvidia.com
>> Cc: pdeschrijver at nvidia.com
>> Cc: linux-tegra at vger.kernel.org
>> Cc: linux-arm-kernel at lists.infradead.org
>> Cc: Dan Williams <dan.j.williams@intel.com>
>> Signed-off-by: Stephen Warren <swarren@nvidia.com>
>> ---
>> This patch is part of a series with strong internal depdendencies. I'm
>> looking for an ack so that I can take the entire series through the Tegra
>> and arm-soc trees. The series will be part of a stable branch that can be
>> merged into other subsystems if needed to avoid/resolve dependencies.
>> ---
>>  drivers/dma/acpi-dma.c    | 12 ++++++------
>>  drivers/dma/dmaengine.c   | 44 ++++++++++++++++++++++++++++++++++++++++----
>>  drivers/dma/of-dma.c      | 12 +++++++-----
>>  include/linux/dmaengine.h |  7 +++++++
>>  include/linux/of_dma.h    |  9 ++++++---
>>  5 files changed, 66 insertions(+), 18 deletions(-)
>>
>> diff --git a/drivers/dma/acpi-dma.c b/drivers/dma/acpi-dma.c
>> index e69b03c0fa50..c83d40f14467 100644
>> --- a/drivers/dma/acpi-dma.c
>> +++ b/drivers/dma/acpi-dma.c
>> @@ -334,7 +334,7 @@ static int acpi_dma_parse_fixed_dma(struct acpi_resource *res, void *data)
>>   * @dev:       struct device to get DMA request from
>>   * @index:     index of FixedDMA descriptor for @dev
>>   *
>> - * Returns pointer to appropriate dma channel on success or NULL on error.
>> + * Returns pointer to appropriate dma channel on success or an error pointer.
>>   */
>>  struct dma_chan *acpi_dma_request_slave_chan_by_index(struct device *dev,
>>                 size_t index)
>> @@ -349,10 +349,10 @@ struct dma_chan *acpi_dma_request_slave_chan_by_index(struct device *dev,
>>
>>         /* Check if the device was enumerated by ACPI */
>>         if (!dev || !ACPI_HANDLE(dev))
>> -               return NULL;
>> +               return ERR_PTR(-ENODEV);
>>
>>         if (acpi_bus_get_device(ACPI_HANDLE(dev), &adev))
>> -               return NULL;
>> +               return ERR_PTR(-ENODEV);
>>
>>         memset(&pdata, 0, sizeof(pdata));
>>         pdata.index = index;
>> @@ -367,7 +367,7 @@ struct dma_chan *acpi_dma_request_slave_chan_by_index(struct device *dev,
>>         acpi_dev_free_resource_list(&resource_list);
>>
>>         if (dma_spec->slave_id < 0 || dma_spec->chan_id < 0)
>> -               return NULL;
>> +               return ERR_PTR(-ENODEV);
>>
>>         mutex_lock(&acpi_dma_lock);
>>
>> @@ -403,7 +403,7 @@ EXPORT_SYMBOL_GPL(acpi_dma_request_slave_chan_by_index);
>>   * translate the names "tx" and "rx" here based on the most common case where
>>   * the first FixedDMA descriptor is TX and second is RX.
>>   *
>> - * Returns pointer to appropriate dma channel on success or NULL on error.
>> + * Returns pointer to appropriate dma channel on success or an error pointer.
>>   */
>>  struct dma_chan *acpi_dma_request_slave_chan_by_name(struct device *dev,
>>                 const char *name)
>> @@ -415,7 +415,7 @@ struct dma_chan *acpi_dma_request_slave_chan_by_name(struct device *dev,
>>         else if (!strcmp(name, "rx"))
>>                 index = 1;
>>         else
>> -               return NULL;
>> +               return ERR_PTR(-ENODEV);
>>
>>         return acpi_dma_request_slave_chan_by_index(dev, index);
>>  }
>> diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c
>> index ea806bdc12ef..5e7f8af2f0ec 100644
>> --- a/drivers/dma/dmaengine.c
>> +++ b/drivers/dma/dmaengine.c
>> @@ -540,6 +540,8 @@ EXPORT_SYMBOL_GPL(dma_get_slave_channel);
>>   * @mask: capabilities that the channel must satisfy
>>   * @fn: optional callback to disposition available channels
>>   * @fn_param: opaque parameter to pass to dma_filter_fn
>> + *
>> + * Returns pointer to appropriate dma channel on success or NULL.
>>   */
>>  struct dma_chan *__dma_request_channel(const dma_cap_mask_t *mask,
>>                                        dma_filter_fn fn, void *fn_param)
>> @@ -588,24 +590,58 @@ struct dma_chan *__dma_request_channel(const dma_cap_mask_t *mask,
>>  EXPORT_SYMBOL_GPL(__dma_request_channel);
>>
>>  /**
>> - * dma_request_slave_channel - try to allocate an exclusive slave channel
>> + * __dma_request_slave_channel - try to allocate an exclusive slave
>> + *   channel
>>   * @dev:       pointer to client device structure
>>   * @name:      slave channel name
>> + *
>> + * Returns pointer to appropriate dma channel on success or an error pointer.
>>   */
>> -struct dma_chan *dma_request_slave_channel(struct device *dev, const char *name)
>> +static struct dma_chan *__dma_request_slave_channel(struct device *dev,
>> +                                       const char *name, bool defer)
>>  {
>>         /* If device-tree is present get slave info from here */
>>         if (dev->of_node)
>> -               return of_dma_request_slave_channel(dev->of_node, name);
>> +               return of_dma_request_slave_channel(dev->of_node, name, defer);
>>
>>         /* If device was enumerated by ACPI get slave info from here */
>>         if (ACPI_HANDLE(dev))
>>                 return acpi_dma_request_slave_chan_by_name(dev, name);
>>
>> -       return NULL;
>> +       return ERR_PTR(-ENODEV);
>> +}
>> +
>> +/**
>> + * dma_request_slave_channel - try to allocate an exclusive slave channel
>> + * @dev:       pointer to client device structure
>> + * @name:      slave channel name
>> + *
>> + * Returns pointer to appropriate dma channel on success or NULL.
>> + */
>> +struct dma_chan *dma_request_slave_channel(struct device *dev,
>> +                                          const char *name)
>> +{
>> +       struct dma_chan *ch = __dma_request_slave_channel(dev, name, false);
>> +       if (IS_ERR(ch))
>> +               return NULL;
>> +       return ch;
>>  }
>>  EXPORT_SYMBOL_GPL(dma_request_slave_channel);
>>
>> +/**
>> + * dma_request_slave_channel_or_err - try to allocate an exclusive slave channel
>> + * @dev:       pointer to client device structure
>> + * @name:      slave channel name
>> + *
>> + * Returns pointer to appropriate dma channel on success or an error pointer.
>> + */
>> +struct dma_chan *dma_request_slave_channel_or_err(struct device *dev,
>> +                                                 const char *name)
>> +{
>> +       return __dma_request_slave_channel(dev, name, true);
>> +}
>> +EXPORT_SYMBOL_GPL(dma_request_slave_channel_or_err);
>> +
>>  void dma_release_channel(struct dma_chan *chan)
>>  {
>>         mutex_lock(&dma_list_mutex);
>> diff --git a/drivers/dma/of-dma.c b/drivers/dma/of-dma.c
>> index 0b88dd3d05f4..928141f6f21b 100644
>> --- a/drivers/dma/of-dma.c
>> +++ b/drivers/dma/of-dma.c
>> @@ -143,10 +143,10 @@ static int of_dma_match_channel(struct device_node *np, const char *name,
>>   * @np:                device node to get DMA request from
>>   * @name:      name of desired channel
>>   *
>> - * Returns pointer to appropriate dma channel on success or NULL on error.
>> + * Returns pointer to appropriate dma channel on success or an error pointer.
>>   */
>>  struct dma_chan *of_dma_request_slave_channel(struct device_node *np,
>> -                                             const char *name)
>> +                                             const char *name, bool defer)
>>  {
>>         struct of_phandle_args  dma_spec;
>>         struct of_dma           *ofdma;
>> @@ -155,14 +155,14 @@ struct dma_chan *of_dma_request_slave_channel(struct device_node *np,
>>
>>         if (!np || !name) {
>>                 pr_err("%s: not enough information provided\n", __func__);
>> -               return NULL;
>> +               return ERR_PTR(-ENODEV);
>>         }
>>
>>         count = of_property_count_strings(np, "dma-names");
>>         if (count < 0) {
>>                 pr_err("%s: dma-names property of node '%s' missing or empty\n",
>>                         __func__, np->full_name);
>> -               return NULL;
>> +               return ERR_PTR(-ENODEV);
>>         }
>>
>>         for (i = 0; i < count; i++) {
>> @@ -181,11 +181,13 @@ struct dma_chan *of_dma_request_slave_channel(struct device_node *np,
>>
>>                 of_node_put(dma_spec.np);
>>
>> +               if (!ofdma && defer)
>> +                       return ERR_PTR(-EPROBE_DEFER);
>>                 if (chan)
>>                         return chan;
>>         }
>>
>> -       return NULL;
>> +       return ERR_PTR(-ENODEV);
>>  }
>>
>>  /**
>> diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
>> index 41cf0c399288..b908b0fda72b 100644
>> --- a/include/linux/dmaengine.h
>> +++ b/include/linux/dmaengine.h
>> @@ -1041,6 +1041,8 @@ void dma_issue_pending_all(void);
>>  struct dma_chan *__dma_request_channel(const dma_cap_mask_t *mask,
>>                                         dma_filter_fn fn, void *fn_param);
>>  struct dma_chan *dma_request_slave_channel(struct device *dev, const char *name);
>> +struct dma_chan *dma_request_slave_channel_or_err(struct device *dev,
>> +                                                 const char *name);
>>  void dma_release_channel(struct dma_chan *chan);
>>  #else
>>  static inline struct dma_chan *dma_find_channel(enum dma_transaction_type tx_type)
>> @@ -1068,6 +1070,11 @@ static inline struct dma_chan *dma_request_slave_channel(struct device *dev,
>>  {
>>         return NULL;
>>  }
>> +static inline struct dma_chan *dma_request_slave_channel_or_err(
>> +                                       struct device *dev, const char *name)
>> +{
>> +       return ERR_PTR(-ENODEV);
>> +}
>>  static inline void dma_release_channel(struct dma_chan *chan)
>>  {
>>  }
>> diff --git a/include/linux/of_dma.h b/include/linux/of_dma.h
>> index ae36298ba076..0504461574c6 100644
>> --- a/include/linux/of_dma.h
>> +++ b/include/linux/of_dma.h
>> @@ -38,7 +38,8 @@ extern int of_dma_controller_register(struct device_node *np,
>>                 void *data);
>>  extern void of_dma_controller_free(struct device_node *np);
>>  extern struct dma_chan *of_dma_request_slave_channel(struct device_node *np,
>> -                                                    const char *name);
>> +                                                    const char *name,
>> +                                                    bool defer);
>>  extern struct dma_chan *of_dma_simple_xlate(struct of_phandle_args *dma_spec,
>>                 struct of_dma *ofdma);
>>  #else
>> @@ -54,8 +55,10 @@ static inline void of_dma_controller_free(struct device_node *np)
>>  {
>>  }
>>
>> -static inline struct dma_chan *of_dma_request_slave_channel(struct device_node *np,
>> -                                                    const char *name)
>> +static inline struct dma_chan *of_dma_request_slave_channel(
>> +                                       struct device_node *np,
>> +                                       const char *name,
>> +                                       bool defer)
>>  {
>>         return NULL;
>>  }
>> --
>> 1.8.1.5
>>

  parent reply	other threads:[~2013-11-15 21:05 UTC|newest]

Thread overview: 359+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-15 20:53 [PATCH 00/31] ARM: tegra: use common reset and DMA bindings Stephen Warren
2013-11-15 20:53 ` Stephen Warren
2013-11-15 20:54 ` [PATCH 08/31] pci: tegra: use reset framework Stephen Warren
2013-11-15 20:54   ` Stephen Warren
2013-11-15 21:16   ` Bjorn Helgaas
2013-11-15 21:16     ` Bjorn Helgaas
     [not found]   ` <1384548866-13141-9-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-29 13:29     ` Thierry Reding
2013-11-29 13:29       ` Thierry Reding
2013-11-29 13:29       ` Thierry Reding
     [not found]       ` <20131129132957.GU22771-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2013-11-29 13:33         ` Thierry Reding
2013-11-29 13:33           ` Thierry Reding
2013-11-29 13:33           ` Thierry Reding
2013-11-15 20:54 ` [PATCH 09/31] drm/tegra: " Stephen Warren
2013-11-15 20:54   ` Stephen Warren
2013-11-29 13:42   ` Thierry Reding
2013-11-29 13:42     ` Thierry Reding
2013-11-15 20:54 ` [PATCH 10/31] ARM: tegra: pass reset to tegra_powergate_sequence_power_up() Stephen Warren
2013-11-15 20:54   ` Stephen Warren
     [not found]   ` <1384548866-13141-11-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-15 21:17     ` Bjorn Helgaas
2013-11-15 21:17       ` Bjorn Helgaas
2013-11-15 21:17       ` Bjorn Helgaas
2013-11-29 13:45   ` Thierry Reding
2013-11-29 13:45     ` Thierry Reding
2013-11-29 13:45     ` Thierry Reding
     [not found]     ` <20131129134532.GX22771-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2013-11-29 13:46       ` Thierry Reding
2013-11-29 13:46         ` Thierry Reding
2013-11-29 13:46         ` Thierry Reding
     [not found] ` <1384548866-13141-1-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-15 20:53   ` [PATCH 01/31] ARM: tegra: add missing clock documentation to DT bindings Stephen Warren
2013-11-15 20:53     ` Stephen Warren
     [not found]     ` <1384548866-13141-2-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-16 22:00       ` Marc Dietrich
2013-11-16 22:00         ` Marc Dietrich
2013-11-18 17:36         ` Stephen Warren
2013-11-18 17:36           ` Stephen Warren
2013-11-29 11:49       ` Thierry Reding
2013-11-29 11:49         ` Thierry Reding
     [not found]         ` <20131129114900.GN22771-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2013-12-01 19:05           ` Stephen Warren
2013-12-01 19:05             ` Stephen Warren
     [not found]             ` <529B8888.3010801-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-12-02  8:52               ` Thierry Reding
2013-12-02  8:52                 ` Thierry Reding
     [not found]                 ` <20131202085257.GA17834-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2013-12-03 18:31                   ` Stephen Warren
2013-12-03 18:31                     ` Stephen Warren
     [not found]                     ` <529E2364.6000205-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-12-04  8:48                       ` Thierry Reding
2013-12-04  8:48                         ` Thierry Reding
     [not found]                         ` <20131204084811.GF19943-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2013-12-04 17:34                           ` Stephen Warren
2013-12-04 17:34                             ` Stephen Warren
     [not found]                             ` <529F6799.1070609-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-12-04 19:27                               ` Thierry Reding
2013-12-04 19:27                                 ` Thierry Reding
2013-12-03 18:36           ` Stephen Warren
2013-12-03 18:36             ` Stephen Warren
     [not found]             ` <529E24A3.3080804-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-12-04  8:49               ` Thierry Reding
2013-12-04  8:49                 ` Thierry Reding
2013-11-15 20:53   ` [PATCH 02/31] ARM: tegra: document reset properties in " Stephen Warren
2013-11-15 20:53     ` Stephen Warren
     [not found]     ` <1384548866-13141-3-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-29 12:23       ` Thierry Reding
2013-11-29 12:23         ` Thierry Reding
     [not found]         ` <20131129122348.GO22771-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2013-12-01 19:06           ` Stephen Warren
2013-12-01 19:06             ` Stephen Warren
     [not found]             ` <529B88C9.60804-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-12-02  9:08               ` Thierry Reding
2013-12-02  9:08                 ` Thierry Reding
     [not found]                 ` <20131202090852.GD17834-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2013-12-03 18:48                   ` Stephen Warren
2013-12-03 18:48                     ` Stephen Warren
     [not found]                     ` <529E2781.5020504-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-12-04  8:56                       ` Thierry Reding
2013-12-04  8:56                         ` Thierry Reding
2013-11-15 20:53   ` [PATCH 03/31] ARM: tegra: document use of standard DMA " Stephen Warren
2013-11-15 20:53     ` Stephen Warren
     [not found]     ` <1384548866-13141-4-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-29 12:29       ` Thierry Reding
2013-11-29 12:29         ` Thierry Reding
     [not found]         ` <20131129122907.GP22771-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2013-12-01 19:09           ` Stephen Warren
2013-12-01 19:09             ` Stephen Warren
     [not found]             ` <529B897F.1010101-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-12-02  9:05               ` Thierry Reding
2013-12-02  9:05                 ` Thierry Reding
2013-12-03 18:52           ` Stephen Warren
2013-12-03 18:52             ` Stephen Warren
     [not found]             ` <529E2867.6090209-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-12-04  8:56               ` Thierry Reding
2013-12-04  8:56                 ` Thierry Reding
2013-11-15 20:53   ` [PATCH 04/31] ARM: tegra: update DT files to add reset properties Stephen Warren
2013-11-15 20:53     ` Stephen Warren
     [not found]     ` <1384548866-13141-5-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-29 13:00       ` Thierry Reding
2013-11-29 13:00         ` Thierry Reding
     [not found]         ` <20131129130031.GQ22771-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2013-12-01 19:15           ` Stephen Warren
2013-12-01 19:15             ` Stephen Warren
     [not found]             ` <529B8ABB.5040109-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-12-02  9:01               ` Thierry Reding
2013-12-02  9:01                 ` Thierry Reding
2013-12-03 18:59           ` Stephen Warren
2013-12-03 18:59             ` Stephen Warren
2013-11-15 20:54   ` [PATCH 05/31] ARM: tegra: update DT files to add DMA properties Stephen Warren
2013-11-15 20:54     ` Stephen Warren
     [not found]     ` <1384548866-13141-6-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-29 13:08       ` Thierry Reding
2013-11-29 13:08         ` Thierry Reding
2013-11-15 20:54   ` [PATCH 06/31] ARM: tegra: select the reset framework Stephen Warren
2013-11-15 20:54     ` Stephen Warren
     [not found]     ` <1384548866-13141-7-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-29 13:10       ` Thierry Reding
2013-11-29 13:10         ` Thierry Reding
2013-11-15 20:54   ` [PATCH 07/31] clk: tegra: implement a reset driver Stephen Warren
2013-11-15 20:54     ` Stephen Warren
     [not found]     ` <1384548866-13141-8-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-29 13:26       ` Thierry Reding
2013-11-29 13:26         ` Thierry Reding
     [not found]         ` <20131129132618.GT22771-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2013-12-03 19:07           ` Stephen Warren
2013-12-03 19:07             ` Stephen Warren
2013-11-15 20:54   ` [PATCH 11/31] dma: add channel request API that supports deferred probe Stephen Warren
2013-11-15 20:54     ` Stephen Warren
     [not found]     ` <1384548866-13141-12-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-15 21:01       ` Dan Williams
2013-11-15 21:01         ` Dan Williams
     [not found]         ` <CAPcyv4heN3PFc+n2RDBviA0zvyU4jfi5VLOcQVR6oRPi1woPTA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-11-15 21:05           ` Dan Williams [this message]
2013-11-15 21:05             ` Dan Williams
2013-11-18  9:18           ` Shevchenko, Andriy
2013-11-18  9:18             ` Shevchenko, Andriy
2013-11-18 17:42             ` Stephen Warren
2013-11-18 17:42               ` Stephen Warren
     [not found]               ` <528A5170.3090809-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-19 12:00                 ` Andy Shevchenko
2013-11-19 12:00                   ` Andy Shevchenko
2013-11-19 17:15                   ` Stephen Warren
2013-11-19 17:15                     ` Stephen Warren
     [not found]                     ` <528B9CAE.3040600-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-19 23:37                       ` Dan Williams
2013-11-19 23:37                         ` Dan Williams
     [not found]                         ` <CAPcyv4jR2MufF6PqB3cUwNdQZfzGWVdj1UunBkeyMYm-KvkpCQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-11-20  0:09                           ` Stephen Warren
2013-11-20  0:09                             ` Stephen Warren
     [not found]                             ` <528BFDD0.3090503-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-20  0:38                               ` Dan Williams
2013-11-20  0:38                                 ` Dan Williams
     [not found]                                 ` <CAPcyv4i7o0RP4ovG1S8RbiV9wqV+VZWX+2vBm3iKnVLCYfrnBQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-11-20 18:24                                   ` Stephen Warren
2013-11-20 18:24                                     ` Stephen Warren
     [not found]                                     ` <528CFE68.6060908-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-20 19:15                                       ` Dan Williams
2013-11-20 19:15                                         ` Dan Williams
     [not found]                                         ` <CAPcyv4hjJDOq+qEvuCG32PLQcWeHVyeVDCy=5UM8KX445OxY_w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-11-20 19:22                                           ` Stephen Warren
2013-11-20 19:22                                             ` Stephen Warren
     [not found]                                             ` <528D0C06.9080006-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-20 20:23                                               ` Williams, Dan J
2013-11-20 20:23                                                 ` Williams, Dan J
     [not found]                                                 ` <1384979000.2067.5.camel-p8uTFz9XbKgxhm4521IUFVnYeNYlB/vhral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2013-11-20 21:24                                                   ` Stephen Warren
2013-11-20 21:24                                                     ` Stephen Warren
     [not found]                                                     ` <528D28A1.2050307-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-21  3:22                                                       ` Dan Williams
2013-11-21  3:22                                                         ` Dan Williams
     [not found]                                                         ` <CAPcyv4jRYu7iTOuiXuj9F-t5dpF3ErVHT4X-PKrkJAYfn91a0w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-11-21  9:13                                                           ` Andy Shevchenko
2013-11-21  9:13                                                             ` Andy Shevchenko
2013-11-21 18:22                                                           ` Stephen Warren
2013-11-21 18:22                                                             ` Stephen Warren
     [not found]                                                             ` <528E4F55.9070204-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-22  6:54                                                               ` Dan Williams
2013-11-22  6:54                                                                 ` Dan Williams
     [not found]                                                                 ` <CAPcyv4jTUVjhFFXP8RL2jCqFj1MqxSCKQYvfdLHTj+1PRDDL3Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-11-22 17:34                                                                   ` Stephen Warren
2013-11-22 17:34                                                                     ` Stephen Warren
     [not found]                                                                     ` <528F95A9.2050305-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-22 18:04                                                                       ` Dan Williams
2013-11-22 18:04                                                                         ` Dan Williams
     [not found]                                                                         ` <CAPcyv4iXmBmcsHDc7yjxxbH7sO8m1nVoEO6PUibuDeb1Wtge+g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-11-22 18:10                                                                           ` Stephen Warren
2013-11-22 18:10                                                                             ` Stephen Warren
     [not found]                                                                             ` <528F9DF9.6080706-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-22 19:49                                                                               ` Dan Williams
2013-11-22 19:49                                                                                 ` Dan Williams
     [not found]                                                                                 ` <CAPcyv4ig3TWAYWsw5_-MWfKABma9-JCF=Gh-inuxeJF6su-NVw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-11-22 19:53                                                                                   ` Stephen Warren
2013-11-22 19:53                                                                                     ` Stephen Warren
     [not found]                                                                                     ` <528FB62C.2060607-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-22 20:46                                                                                       ` Dan Williams
2013-11-22 20:46                                                                                         ` Dan Williams
     [not found]                                                                                         ` <CAPcyv4h6iRNy=uv2vFdUVWXssW03uxpBzD34d3rG469zMEp0YQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-11-22 21:50                                                                                           ` Stephen Warren
2013-11-22 21:50                                                                                             ` Stephen Warren
     [not found]                                                                                             ` <528FD1C2.2030108-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-22 23:13                                                                                               ` Dan Williams
2013-11-22 23:13                                                                                                 ` Dan Williams
     [not found]                                                                                                 ` <CAPcyv4g_zW_hTi0JacH04bgF-5wv=W1RhRi4M55Qzxc=wEyETA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-11-22 23:45                                                                                                   ` Stephen Warren
2013-11-22 23:45                                                                                                     ` Stephen Warren
2013-11-23  0:40                                                                                   ` Russell King - ARM Linux
2013-11-23  0:40                                                                                     ` Russell King - ARM Linux
2013-11-23  0:34                                                                               ` Russell King - ARM Linux
2013-11-23  0:34                                                                                 ` Russell King - ARM Linux
     [not found]                                                                                 ` <20131123003442.GH16735-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-11-25 17:26                                                                                   ` Stephen Warren
2013-11-25 17:26                                                                                     ` Stephen Warren
     [not found]                                                                                     ` <5293883A.8050808-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-25 17:45                                                                                       ` Dan Williams
2013-11-25 17:45                                                                                         ` Dan Williams
     [not found]                                                                                         ` <CAA9_cmfMtp4WjRGVzfTxrwcNWP95+HE7DAYg_GeWfqi=L2K2aw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-11-25 18:00                                                                                           ` Russell King - ARM Linux
2013-11-25 18:00                                                                                             ` Russell King - ARM Linux
     [not found]                                                                                             ` <20131125180000.GR16735-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-11-25 18:07                                                                                               ` Stephen Warren
2013-11-25 18:07                                                                                                 ` Stephen Warren
2013-11-25 18:42                                                                                               ` Dan Williams
2013-11-25 18:42                                                                                                 ` Dan Williams
     [not found]                                                                                                 ` <CAA9_cmcqO-=7Gf53ygG3oYwC0=fQgF8xPL2Wywgw84Dz1ZKs6g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-11-25 19:00                                                                                                   ` Stephen Warren
2013-11-25 19:00                                                                                                     ` Stephen Warren
     [not found]                                                                                                     ` <52939E67.6040300-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-25 19:28                                                                                                       ` Dan Williams
2013-11-25 19:28                                                                                                         ` Dan Williams
     [not found]                                                                                                         ` <CAPcyv4hPy_zddiideTk9HNOZnKzkGqKeT4m6wDyckDmbkoMacA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-11-25 19:30                                                                                                           ` Stephen Warren
2013-11-25 19:30                                                                                                             ` Stephen Warren
     [not found]                                                                                                             ` <5293A573.2050704-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-25 19:45                                                                                                               ` Dan Williams
2013-11-25 19:45                                                                                                                 ` Dan Williams
     [not found]                                                                                                             ` <CAPcyv4ijv2=Fnp9mVKoAUGL9DLYh=6ZSsUd_PWxZqxQ7y Z61hA@mail.gmail.com>
     [not found]                                                                                                               ` <CAPcyv4ijv2=Fnp9mVKoAUGL9DLYh=6ZSsUd_PWxZqxQ7yZ61hA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-11-25 19:47                                                                                                                 ` Stephen Warren
2013-11-25 19:47                                                                                                                   ` Stephen Warren
2013-11-25 19:09                                                                                                   ` Russell King - ARM Linux
2013-11-25 19:09                                                                                                     ` Russell King - ARM Linux
2013-11-25 17:53                                                                                       ` Russell King - ARM Linux
2013-11-25 17:53                                                                                         ` Russell King - ARM Linux
     [not found]                                                                                         ` <20131125175330.GQ16735-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-11-25 17:57                                                                                           ` Stephen Warren
2013-11-25 17:57                                                                                             ` Stephen Warren
     [not found]                                                                                             ` <52938F75.7020108-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-25 20:28                                                                                               ` Gerhard Sittig
2013-11-25 20:28                                                                                                 ` Gerhard Sittig
     [not found]                                                                                                 ` <20131125202808.GN2760-kDjWylLy9wD0K7fsECOQyeGNnDKD8DIp@public.gmane.org>
2013-11-25 20:52                                                                                                   ` Russell King - ARM Linux
2013-11-25 20:52                                                                                                     ` Russell King - ARM Linux
     [not found]                                                                                                     ` <20131125205224.GT16735-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-11-28 21:20                                                                                                       ` NULL clock items (was: [PATCH 11/31] dma: add channel request API that supports deferred probe) Gerhard Sittig
2013-11-28 21:20                                                                                                         ` Gerhard Sittig
2013-11-22 23:45                                                               ` [PATCH 11/31] dma: add channel request API that supports deferred probe Dan Williams
2013-11-22 23:45                                                                 ` Dan Williams
     [not found]                                                                 ` <CAPcyv4gmo0k3n8==0oEs4NMKbEH4F9xHutRTURE7sVe=M7xwRg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-11-23  0:17                                                                   ` Stephen Warren
2013-11-23  0:17                                                                     ` Stephen Warren
     [not found]                                                                     ` <528FF402.6000503-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-23  0:37                                                                       ` Dan Williams
2013-11-23  0:37                                                                         ` Dan Williams
2013-11-15 23:08       ` Stephen Warren
2013-11-15 23:08         ` Stephen Warren
2013-11-22 23:50       ` Dan Williams
2013-11-22 23:50         ` Dan Williams
     [not found]         ` <CAPcyv4iL8LSXfpfAugCAVK11A5fvJ4kYZXneNC6V5HZeTRY+4g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-11-23  0:05           ` Stephen Warren
2013-11-23  0:05             ` Stephen Warren
2013-11-15 20:54   ` [PATCH 12/31] dma: tegra: use reset framework Stephen Warren
2013-11-15 20:54     ` Stephen Warren
     [not found]     ` <1384548866-13141-13-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-25 22:11       ` Stephen Warren
2013-11-25 22:11         ` Stephen Warren
2013-11-29 13:47       ` Thierry Reding
2013-11-29 13:47         ` Thierry Reding
2013-11-15 20:54   ` [PATCH 13/31] dma: tegra: register as an OF DMA controller Stephen Warren
2013-11-15 20:54     ` Stephen Warren
2013-11-20 15:28     ` Arnd Bergmann
2013-11-20 15:28       ` Arnd Bergmann
     [not found]       ` <201311201628.57951.arnd-r2nGTMty4D4@public.gmane.org>
2013-11-20 18:22         ` Stephen Warren
2013-11-20 18:22           ` Stephen Warren
2013-11-15 20:54   ` [PATCH 14/31] ASoC: dmaengine: support deferred probe for DMA channels Stephen Warren
2013-11-15 20:54     ` Stephen Warren
     [not found]     ` <1384548866-13141-15-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-16  9:29       ` Mark Brown
2013-11-16  9:29         ` Mark Brown
2013-11-16 10:49       ` [alsa-devel] " Lars-Peter Clausen
2013-11-16 10:49         ` Lars-Peter Clausen
     [not found]         ` <52874D9E.1010708-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
2013-11-18 17:59           ` Stephen Warren
2013-11-18 17:59             ` Stephen Warren
2013-11-15 20:54   ` [PATCH 15/31] ASoC: dmaengine: add custom DMA config to snd_dmaengine_pcm_config Stephen Warren
2013-11-15 20:54     ` Stephen Warren
     [not found]     ` <1384548866-13141-16-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-16  9:44       ` Mark Brown
2013-11-16  9:44         ` Mark Brown
2013-11-18 18:45         ` Stephen Warren
2013-11-18 18:45           ` Stephen Warren
2013-11-19  9:35           ` Mark Brown
2013-11-19  9:35             ` Mark Brown
2013-11-16 10:43       ` [alsa-devel] " Lars-Peter Clausen
2013-11-16 10:43         ` Lars-Peter Clausen
2013-11-15 20:54   ` [PATCH 16/31] ASoC: tegra: use reset framework Stephen Warren
2013-11-15 20:54     ` Stephen Warren
2013-11-16  9:55     ` Mark Brown
2013-11-16  9:55       ` Mark Brown
2013-11-18 17:21       ` Stephen Warren
2013-11-18 17:21         ` Stephen Warren
     [not found]         ` <528A4C8C.3030200-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-18 18:37           ` Mark Brown
2013-11-18 18:37             ` Mark Brown
     [not found]             ` <20131118183716.GR2674-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-11-25 21:56               ` Stephen Warren
2013-11-25 21:56                 ` Stephen Warren
     [not found]                 ` <5293C787.1030005-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-26 13:14                   ` Mark Brown
2013-11-26 13:14                     ` Mark Brown
     [not found]                     ` <20131126131410.GK14725-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-11-26 16:31                       ` Stephen Warren
2013-11-26 16:31                         ` Stephen Warren
2013-11-26 18:37                         ` Mark Brown
2013-11-26 18:37                           ` Mark Brown
     [not found]                           ` <20131126183739.GR14725-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-11-26 18:45                             ` Stephen Warren
2013-11-26 18:45                               ` Stephen Warren
2013-11-15 20:54   ` [PATCH 17/31] ASoC: tegra: call pm_runtime APIs around register accesses Stephen Warren
2013-11-15 20:54     ` Stephen Warren
     [not found]     ` <1384548866-13141-18-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-16 10:02       ` Mark Brown
2013-11-16 10:02         ` Mark Brown
     [not found]         ` <20131116100205.GG15393-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-11-18 17:25           ` Stephen Warren
2013-11-18 17:25             ` Stephen Warren
     [not found]             ` <528A4D9A.10809-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-18 18:39               ` Mark Brown
2013-11-18 18:39                 ` Mark Brown
     [not found]                 ` <20131118183947.GS2674-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-11-18 22:38                   ` Stephen Warren
2013-11-18 22:38                     ` Stephen Warren
     [not found]                     ` <528A96EC.4040409-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-19  9:53                       ` Mark Brown
2013-11-19  9:53                         ` Mark Brown
2013-11-15 20:54   ` [PATCH 18/31] ASoC: tegra: allocate AHUB FIFO during probe() not startup() Stephen Warren
2013-11-15 20:54     ` Stephen Warren
     [not found]     ` <1384548866-13141-19-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-16 10:04       ` Mark Brown
2013-11-16 10:04         ` Mark Brown
2013-11-29 14:40       ` Thierry Reding
2013-11-29 14:40         ` Thierry Reding
     [not found]         ` <20131129144025.GA9712-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2013-12-03 19:55           ` Stephen Warren
2013-12-03 19:55             ` Stephen Warren
     [not found]             ` <529E374B.8090903-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-12-04  9:00               ` Thierry Reding
2013-12-04  9:00                 ` Thierry Reding
2013-11-15 20:54   ` [PATCH 19/31] ASoC: tegra: convert to standard DMA DT bindings Stephen Warren
2013-11-15 20:54     ` Stephen Warren
     [not found]     ` <1384548866-13141-20-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-16 10:05       ` Mark Brown
2013-11-16 10:05         ` Mark Brown
2013-11-15 20:54   ` [PATCH 20/31] i2c: tegra: use reset framework Stephen Warren
2013-11-15 20:54     ` Stephen Warren
     [not found]     ` <1384548866-13141-21-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-15 22:20       ` Wolfram Sang
2013-11-15 22:20         ` Wolfram Sang
2013-11-29 14:46       ` Thierry Reding
2013-11-29 14:46         ` Thierry Reding
2013-11-15 20:54   ` [PATCH 21/31] staging: nvec: " Stephen Warren
2013-11-15 20:54     ` Stephen Warren
     [not found]     ` <1384548866-13141-22-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-16 22:33       ` Marc Dietrich
2013-11-16 22:33         ` Marc Dietrich
2013-11-29 14:47       ` Thierry Reding
2013-11-29 14:47         ` Thierry Reding
2013-11-19 23:23     ` Greg Kroah-Hartman
2013-11-19 23:23       ` Greg Kroah-Hartman
2013-11-15 20:54   ` [PATCH 22/31] spi: tegra: " Stephen Warren
2013-11-15 20:54     ` Stephen Warren
2013-11-16 10:07     ` Mark Brown
2013-11-16 10:07       ` Mark Brown
     [not found]     ` <1384548866-13141-23-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-29 14:48       ` Thierry Reding
2013-11-29 14:48         ` Thierry Reding
2013-11-15 20:54   ` [PATCH 23/31] spi: tegra: convert to standard DMA DT bindings Stephen Warren
2013-11-15 20:54     ` Stephen Warren
     [not found]     ` <1384548866-13141-24-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-16 10:14       ` Mark Brown
2013-11-16 10:14         ` Mark Brown
     [not found]         ` <20131116101422.GK15393-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-11-18 17:30           ` Stephen Warren
2013-11-18 17:30             ` Stephen Warren
2013-11-18 18:41             ` Mark Brown
2013-11-18 18:41               ` Mark Brown
2013-11-15 20:54   ` [PATCH 27/31] USB: EHCI: tegra: use reset framework Stephen Warren
2013-11-15 20:54     ` Stephen Warren
     [not found]     ` <1384548866-13141-28-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-16 18:12       ` Alan Stern
2013-11-16 18:12         ` Alan Stern
2013-11-19 23:24       ` Greg Kroah-Hartman
2013-11-19 23:24         ` Greg Kroah-Hartman
2013-11-29 14:51       ` Thierry Reding
2013-11-29 14:51         ` Thierry Reding
2013-11-15 20:54   ` [PATCH 28/31] ARM: tegra: remove legacy clock entries from DT Stephen Warren
2013-11-15 20:54     ` Stephen Warren
     [not found]     ` <1384548866-13141-29-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-29 14:53       ` Thierry Reding
2013-11-29 14:53         ` Thierry Reding
2013-11-15 20:54   ` [PATCH 29/31] ARM: tegra: remove legacy DMA " Stephen Warren
2013-11-15 20:54     ` Stephen Warren
     [not found]     ` <1384548866-13141-30-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-29 14:53       ` Thierry Reding
2013-11-29 14:53         ` Thierry Reding
2013-11-15 20:54   ` [PATCH 30/31] clk: tegra: remove legacy reset APIs Stephen Warren
2013-11-15 20:54     ` Stephen Warren
     [not found]     ` <1384548866-13141-31-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-29 14:55       ` Thierry Reding
2013-11-29 14:55         ` Thierry Reding
2013-11-15 20:54   ` [PATCH 31/31] clk: tegra: remove bogus PCIE_XCLK Stephen Warren
2013-11-15 20:54     ` Stephen Warren
     [not found]     ` <1384548866-13141-32-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-29 14:56       ` Thierry Reding
2013-11-29 14:56         ` Thierry Reding
2013-11-15 20:54 ` [PATCH 24/31] serial: tegra: use reset framework Stephen Warren
2013-11-15 20:54   ` Stephen Warren
2013-11-19 23:24   ` Greg Kroah-Hartman
2013-11-19 23:24     ` Greg Kroah-Hartman
     [not found]   ` <1384548866-13141-25-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-29 14:49     ` Thierry Reding
2013-11-29 14:49       ` Thierry Reding
2013-11-15 20:54 ` [PATCH 25/31] serial: tegra: convert to standard DMA DT bindings Stephen Warren
2013-11-15 20:54   ` Stephen Warren
     [not found]   ` <1384548866-13141-26-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-19 23:23     ` Greg Kroah-Hartman
2013-11-19 23:23       ` Greg Kroah-Hartman
2013-11-15 20:54 ` [PATCH 26/31] Input: tegra-kbc - use reset framework Stephen Warren
2013-11-15 20:54   ` Stephen Warren
2013-11-19 21:17   ` Dmitry Torokhov
2013-11-19 21:17     ` Dmitry Torokhov
     [not found]   ` <1384548866-13141-27-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-29 14:50     ` Thierry Reding
2013-11-29 14:50       ` Thierry Reding
2013-11-18  8:24 ` [PATCH 00/31] ARM: tegra: use common reset and DMA bindings Terje Bergström
2013-11-18  8:24   ` Terje Bergström
2013-11-20 15:37 ` Arnd Bergmann
2013-11-20 15:37   ` Arnd Bergmann
2013-11-20 15:37   ` Arnd Bergmann
2013-11-20 16:45   ` Stephen Warren
2013-11-20 16:45     ` Stephen Warren
2013-11-20 17:03     ` Arnd Bergmann
2013-11-20 17:03       ` Arnd Bergmann
2013-11-20 17:23       ` Stephen Warren
2013-11-20 17:23         ` Stephen Warren
2013-11-20 19:17     ` [Ac100] " Martino Brandolini
2013-12-12  0:11 ` Stephen Warren
2013-12-12  0:11   ` Stephen Warren

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=CAPcyv4i8+AjHfwo0WGyyMC1JR8ty_OUrfDZXcnpUPr5cz2hkoQ@mail.gmail.com \
    --to=dan.j.williams-ral2jqcrhueavxtiumwx3w@public.gmane.org \
    --cc=andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
    --cc=dmaengine-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=pdeschrijver-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org \
    --cc=swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=vinod.koul-ral2JQCrhuEAvxtiuMwx3w@public.gmane.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.