Re: [PATCH V4] dma: add channel request API that supports deferredprobe

From: Stephen Warren
Date: Tue Dec 10 2013 - 12:34:48 EST


On 12/10/2013 05:21 AM, Vinod Koul wrote:
> On Tue, Nov 26, 2013 at 10:04:22AM -0700, Stephen Warren wrote:
>> From: Stephen Warren <swarren@xxxxxxxxxx>
>>
>> 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_reason(), 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 either modifying dma_request_channel() in
>> the same way, or adding extra error-handling code to all affected
>> drivers, and there are close to 100 drivers using the other API, 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_name() doesn't currently implement
>> deferred probe. It should, but this will be addressed later.
>>
>> Acked-by: Dan Williams <dan.j.williams@xxxxxxxxx>
>> Signed-off-by: Stephen Warren <swarren@xxxxxxxxxx>
>
> Applied, to topic/defer_probe, this wont be rebased so feel free to merge

Could you also create a signed tag for Mark and myself to pull from? If
we just pull in random commits from your tree, it's not obvious to
anyone looking at the git history that we legitimately co-ordinated this.

The same comment goes for the topic/of branch.

Thanks!
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/