From: Michael Williamson <michael.williamson-wZX4cNJlHJ2sVWG7oymsAA@public.gmane.org>
To: "Nori, Sekhar" <nsekhar-l0cyMroinI0@public.gmane.org>
Cc: Grant Likely
<grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>,
"spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org"
<spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>,
"davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/@public.gmane.org"
<davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/@public.gmane.org>,
Brian Niebuhr <bniebuhr3-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Subject: Re: [PATCH v5 1/1] davinci: spi: replace existing driver
Date: Mon, 11 Oct 2010 14:09:35 -0400 [thread overview]
Message-ID: <4CB352DF.70104@criticallink.com> (raw)
In-Reply-To: <B85A65D85D7EB246BE421B3FB0FBB59302343630D8-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
On 10/11/2010 12:57 PM, Nori, Sekhar wrote:
> Hi Mike,
>
> On Sat, Oct 09, 2010 at 18:25:54, Michael Williamson wrote:
>> On 10/08/2010 03:22 PM, Michael Williamson wrote:
>
>>> On 10/6/2010 11:37 AM, Nori, Sekhar wrote:
>
>>>> On Mon, Sep 20, 2010 at 23:12:53, Michael Williamson wrote:
>
>>>>
>>>> I just finished pushing the DMA related patches to the git branch[1].
>>>> I have not tested yet, but feel free to give it a go (maybe I will get
>>>> lucky again!).
>>>>
>>>
>>>
>>> I gave it a go for our platform. The good news is, polled and interrupt driven mode still work!
>>> The bad news is that DMA mode hangs up the kernel on the first read attempt, stalled waiting
>>> for the transfer completion notification (hmmm.... I think this was a spot where things were
>>> tweaked a bit? :) )
>>>
>>> I'll see if I can narrow it down some more if you don't get to it first.
>>>
>>
>> I think I found it. This patch (below, and on [2]) got it working for me. The Rx DMA
>> size on transfer requests with no receive buffer provided needs to match the requested
>> size (and the transmit size), not the size of the temporary buffer. All good as the
>> DMA address increment is 0 in this case.
>>
>> I'll try to do some more testing next week, but so far so good.
>
> Sorry, I couldn’t get to testing even today. Should be on it
> tomorrow.
>
>>
>> ---
>> diff --git a/drivers/spi/davinci_spi.c b/drivers/spi/davinci_spi.c
>> index 662ebbe..8206df1 100755
>> --- a/drivers/spi/davinci_spi.c
>> +++ b/drivers/spi/davinci_spi.c
>> @@ -632,13 +632,11 @@ static int davinci_spi_bufs(struct spi_device *spi, struct spi_transfer *t)
>> * source address never increments.
>> */
>>
>> - if (t->rx_buf) {
>> + rx_buf_count = davinci_spi->rcount;
>> + if (t->rx_buf)
>> rx_buf = t->rx_buf;
>> - rx_buf_count = davinci_spi->rcount;
>> - } else {
>> + else
>> rx_buf = davinci_spi->rx_tmp_buf;
>> - rx_buf_count = sizeof(davinci_spi->rx_tmp_buf);
>> - }
>>
>> t->rx_dma = dma_map_single(&spi->dev, rx_buf, rx_buf_count,
>> DMA_FROM_DEVICE);
>
> Hmm, looks like the Tx and Rx DMA must always run for the same duration. I was
> under the impression Tx is required to keep the clock running, and so must always
> run for the length of transfer requested, but Rx DMA can finish earlier.
>
That may be true. The scenario I was seeing was a requested Tx length of 1 with no
Rx buffer supplied. The length of the internal buffer was bigger than 1, so the resulting
Rx DMA size in the a_b_cnt was greater than the Tx size, and it stalled.
> I guess replacing the line:
>
> param.a_b_cnt = rx_buf_count << 16 | data_type;
>
> with
>
> param.a_b_cnt = davinci_spi->rcount << 16 | data_type;
>
> will also fix the issue?
>
A better fix. should be fine.
>>
>>>
>>>> Also, do you have patches adding SPI support for DA850 platform?
>>>> I can include these patches on this branch so others who will be
>>>> testing don\x19t have to repeat the work.
>>>>
>>>
>>>
>>> I cloned your repository at [1] and published the additions needed to made to test it on the
>>> mitydsp-l138 platform (da850 based) at [2] (never mind the UART one at the end). I had to add
>>> clock support for the spi devices and define the platform SPI resources/registration routines.
>>> I'd appreciate a quick peek at those to make sure that I didn't make any errors. The spi
>>> registration may be refactorable (sp?) to support da830, I didn't look to closely at that.
>>>
>>> If any of it is usable, great.
>
> Sure it is! I checked-in your patches with some modifications to my
> branch. The most notable change being usage of da8xx instead of da850 since
> the same code should work on da830 as well. Apart from this there are
> some cosmetic changes (patches squashed, some non-relevant hunks dropped
> etc). Do update the patches in your tree if you are OK with the changes.
>
OK. I'll try to rebase off your tree and retest.
-Mike
_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
next prev parent reply other threads:[~2010-10-11 18:09 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-28 22:18 [PATCH v5 0/1] davinci: spi: replace existing driver Brian Niebuhr
[not found] ` <1280355490-11878-1-git-send-email-bniebuhr-JaPwekKOx1yaMJb+Lgu22Q@public.gmane.org>
2010-07-28 22:18 ` [PATCH v5 1/1] " Brian Niebuhr
[not found] ` <1280355490-11878-2-git-send-email-bniebuhr-JaPwekKOx1yaMJb+Lgu22Q@public.gmane.org>
2010-08-01 5:12 ` Grant Likely
[not found] ` <AANLkTimu+G-5wTrdQ6YiWi60i+5uN9sydfsZKMKQX7_f-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-08-02 14:10 ` Brian Niebuhr
[not found] ` <AANLkTim-FB6YrGSTmDQhmnS+Qw-dGm7D-pH7iCzy0-Td-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-08-02 15:53 ` Nori, Sekhar
[not found] ` <B85A65D85D7EB246BE421B3FB0FBB59301E7ED0A13-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-08-20 11:06 ` Caglar Akyuz
[not found] ` <201008201406.33473.caglarakyuz-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2010-08-20 14:46 ` Todd Fischer
2010-08-20 17:19 ` Grant Likely
2010-08-23 4:28 ` Nori, Sekhar
[not found] ` <B85A65D85D7EB246BE421B3FB0FBB59301E8350B45-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-08-23 4:40 ` Grant Likely
2010-08-23 8:54 ` Caglar Akyuz
[not found] ` <201008231154.10411.caglarakyuz-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2010-08-23 9:30 ` Nori, Sekhar
[not found] ` <B85A65D85D7EB246BE421B3FB0FBB59301E8350E47-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-09-13 23:45 ` Michael Williamson
[not found] ` <4C8EB795.1080607-wZX4cNJlHJ2sVWG7oymsAA@public.gmane.org>
2010-09-14 5:43 ` Nori, Sekhar
[not found] ` <B85A65D85D7EB246BE421B3FB0FBB59301F6DF4C95-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-09-14 6:04 ` Caglar Akyuz
[not found] ` <201009140904.59555.caglarakyuz-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2010-09-14 7:14 ` Nori, Sekhar
[not found] ` <B85A65D85D7EB246BE421B3FB0FBB59301F6DF4D9B-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-09-14 13:10 ` Michael Williamson
[not found] ` <4C8F7460.6050006-wZX4cNJlHJ2sVWG7oymsAA@public.gmane.org>
2010-09-14 13:26 ` Nori, Sekhar
[not found] ` <B85A65D85D7EB246BE421B3FB0FBB59301F6DF50C1-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-09-18 13:08 ` Michael Williamson
[not found] ` <4C94B9BD.4010606-wZX4cNJlHJ2sVWG7oymsAA@public.gmane.org>
2010-09-18 13:16 ` Michael Williamson
2010-09-20 15:08 ` Nori, Sekhar
[not found] ` <B85A65D85D7EB246BE421B3FB0FBB59301F6F5385B-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-09-20 17:42 ` Michael Williamson
[not found] ` <4C979D1D.1070707-wZX4cNJlHJ2sVWG7oymsAA@public.gmane.org>
2010-09-27 17:35 ` Nori, Sekhar
2010-10-06 15:37 ` Nori, Sekhar
[not found] ` <B85A65D85D7EB246BE421B3FB0FBB59302342050C7-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-10-07 3:55 ` Michael Williamson
2010-10-08 19:22 ` Michael Williamson
[not found] ` <4CAF6F86.40201-wZX4cNJlHJ2sVWG7oymsAA@public.gmane.org>
2010-10-09 12:55 ` Michael Williamson
[not found] ` <4CB0665A.3000309-wZX4cNJlHJ2sVWG7oymsAA@public.gmane.org>
2010-10-11 16:57 ` Nori, Sekhar
[not found] ` <B85A65D85D7EB246BE421B3FB0FBB59302343630D8-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-10-11 18:09 ` Michael Williamson [this message]
[not found] ` <4CB352DF.70104-wZX4cNJlHJ2sVWG7oymsAA@public.gmane.org>
2010-10-12 12:14 ` Nori, Sekhar
2010-10-12 0:31 ` Michael Williamson
2010-08-03 7:33 ` Grant Likely
2010-08-03 7:55 ` Christophe Aeschlimann
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=4CB352DF.70104@criticallink.com \
--to=michael.williamson-wzx4cnjlhj2svwg7oymsaa@public.gmane.org \
--cc=bniebuhr3-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/@public.gmane.org \
--cc=grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org \
--cc=nsekhar-l0cyMroinI0@public.gmane.org \
--cc=spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).