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 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.