[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5675BB2F.6060107@candw.ms>
Date: Sat, 19 Dec 2015 16:16:47 -0400
From: Julian Margetson <runaway@...dw.ms>
To: Måns Rullgård <mans@...sr.com>
Cc: Andy Shevchenko <andy.shevchenko@...il.com>,
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Tejun Heo <tj@...nel.org>, linux-ide@...r.kernel.org,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 1/3] ata: sata_dwc_460ex: use "dmas" DT property to find
dma channel
On 12/19/2015 3:07 PM, Måns Rullgård wrote:
> Julian Margetson <runaway@...dw.ms> writes:
>
>> On 12/19/2015 1:19 PM, Måns Rullgård wrote:
>>> Julian Margetson <runaway@...dw.ms> writes:
>>>
>>>> On 12/19/2015 1:05 PM, Måns Rullgård wrote:
>>>>> Andy Shevchenko <andy.shevchenko@...il.com> writes:
>>>>>
>>>>>> On Sat, Dec 19, 2015 at 5:40 PM, Måns Rullgård <mans@...sr.com> wrote:
>>>>>>
>>>>>>> OK, I've found something. The dma setup errors are benign, caused by
>>>>>>> the driver calling dmaengine_prep_slave_sg() even for non-dma
>>>>>>> operations.
>>>>>> I suppose the following is a quick fix to avoid preparing descriptor
>>>>>> for non-DMA operations (not tested anyhow)
>>>>>>
>>>>>> a/drivers/ata/sata_dwc_460ex.c
>>>>>> +++ b/drivers/ata/sata_dwc_460ex.c
>>>>>> @@ -1041,6 +1041,9 @@ static void sata_dwc_qc_prep_by_tag(struct
>>>>>> ata_queued_cmd *qc, u8 tag)
>>>>>> __func__, ap->port_no, get_dma_dir_descript(qc->dma_dir),
>>>>>> qc->n_elem);
>>>>>>
>>>>>> + if (!is_slave_direction(qc->dma_dir))
>>>>>> + return;
>>>>>> +
>>>>>> desc = dma_dwc_xfer_setup(qc);
>>>>>> if (!desc) {
>>>>>> dev_err(ap->dev, "%s: dma_dwc_xfer_setup returns NULL\n",
>>>>> I already have a better patch sitting here.
>>>>>
>>>>>>> The real error is the lock recursion that's reported
>>>>>>> later. I wasn't seeing it since I was running a UP non-preempt kernel.
>>>>>>> With lock debugging enabled, I get the same error. This patch should
>>>>>>> fix it.
>>>>>>> - spin_lock_irqsave(&ap->host->lock, flags);
>>>>>>> hsdevp->cmd_issued[tag] = cmd_issued;
>>>>>>> - spin_unlock_irqrestore(&ap->host->lock, flags);
>>>>>>> +
>>>>>> This will create a second empty line, though I don't care it is so minor.
>>>>> The patch leaves one blank line before the following block comment. I
>>>>> think it looks better that way.
>>>>>
>>>> Still can't get the patch applied .
>>> Sorry, didn't realise it conflicted with an intervening patch I had in
>>> my tree. Try this one.
>>>
>>
>> =~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2015.12.19 14:44:52 =~=~=~=~=~=~=~=~=~=~=~=
>>
>> U-Boot 2015.a (May 16 2015 - 14:20:11)
>>
>> CPU: AMCC PowerPC 460EX Rev. B at 1155 MHz (PLB=231 OPB=115 EBC=115)
>> No Security/Kasumi support
>> Bootstrap Option H - Boot ROM Location I2C (Addr 0x52)
>> Internal PCI arbiter enabled
>> 32 kB I-Cache 32 kB D-Cache
>> Board: Sam460ex/cr, PCIe 4x + SATA-2
>> I2C: ready
>> DRAM: 2 GiB (ECC not enabled, 462 MHz, CL4)
>> PCI: Bus Dev VenId DevId Class Int
>> 00 04 1095 3512 0104 00
>> 00 06 126f 0501 0380 00
>> PCIE1: successfully set as root-complex
>> 02 00 1002 683f 0300 ff
>> Net: ppc_4xx_eth0
>> FPGA: Revision 03 (2010-10-07)
>> SM502: found
>> PERMD2:not found
>> VGA: 1
>> VESA: OK
>> [ 0.000000] Using Canyonlands machine description
>> [ 0.000000] Initializing cgroup subsys cpu
>> [ 0.000000] Linux version 4.4.0-rc5-Sam460ex (root@...ian-VirtualBox) (gcc version 4.8.2 (Ubuntu 4.8.2-16ubuntu3) ) #1 PREEMPT Sat Dec 19 14:25:55 AST 2015
>> [ 0.000000] Zone ranges:
>> [ 0.000000] DMA [mem 0x0000000000000000-0x000000002fffffff]
>> [ 0.000000] Normal empty
>> [ 0.000000] HighMem [mem 0x0000000030000000-0x000000007fffffff]
>> [ 0.000000] Movable zone start for each node
>> [ 0.000000] Early memory node ranges
>> [ 0.000000] node 0: [mem 0x0000000000000000-0x000000007fffffff]
>> [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000007fffffff]
>> [ 0.000000] MMU: Allocated 1088 bytes of context maps for 255 contexts
>> [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 522752
>> [ 0.000000] Kernel command line: root=/dev/sda8 console=ttyS0,115200 console=tty1 dw_dmac_core.dyndbg dw_dmac.dyndbg
> Please add ignore_log_level.
>
Had to truncate the kernel command line to add it.
View attachment "log5.log.log" of type "text/plain" (53526 bytes)
Powered by blists - more mailing lists