RE: [PATCH v3 04/18] irqchip: add nps Internal and external irqchips

2015-12-02 Thread Noam Camus
>From: Marc Zyngier [mailto:marc.zyng...@arm.com] 
>Sent: Tuesday, December 01, 2015 3:29 PM

> +  interrupt source. The value shall be 1.

>So you never have to encode the interrupt trigger type? Do you only support 
>edge or level?
I Always use level sensitive.

> +
> +#define NPS_GIM_P_EN 0x100   /* Peripheral interrupts source enable */
> +#define NPS_GIM_P_BLK0x118   /* Peripheral interrupts blocking for 
> sources */

>>Are these the interrupts the peripherals are using? If yes, they really have 
>>nothing to do here...
I will move this from here 
>> +__asm__ __volatile__ (
>> +"   .word %0\n"
>> +:
>> +: "i"(CTOP_INST_RSPI_GIC_0_R12)
>> +: "memory");

>Silly question: why cannot you just write the actual instruction instead of 
>shoving the instruction like this? Also, .inst would be more appropriate...
[Noam Camus] Since this is instruction that yet is not part of up-streamed 
binutils of ARC.  Now ARC maintainer can build our kernel with generic ARC 
toolchain. 

>> +static int nps400_irq_map(struct irq_domain *d, unsigned int irq,
>> +  irq_hw_number_t hw)
>> +{
>> +switch (irq) {
>> +case TIMER0_IRQ:
>> +#if defined(CONFIG_SMP)
>> +case IPI_IRQ:
>> +#endif
>> +irq_set_chip_and_handler(irq, &nps400_irq_chip_percpu,
>> + handle_percpu_irq);
>> +break;
>> +default:
>> +irq_set_chip_and_handler(irq, &nps400_irq_chip_fasteoi,
>> + handle_fasteoi_irq);
>> +break;
>> +}

>No. This is just wrong. Either you get per interrupt information from the 
>device tree to configure the interrupt the right way, or you have different 
>interrupt controllers for each device.
I am not sure how you want me to get it from DTB? Please refer to some 
reference.

>But using the Linux irq number is always wrong. You should only consider the 
>hwirq.
I will change

> +
> + nps400_root_domain = irq_domain_add_legacy(node, NR_CPU_IRQS, 0, 0,
> +&nps400_irq_ops, NULL);

>And that's why you can get away with the above horror. Don't use legacy 
>domains. This stuff is by no mean legacy.
So what is my alternative here?

-Noam

___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc


Re: Non existing DMA functions in ARC: dma_alloc_attrs, dma_free_attrs, dma_mmap_attrs

2015-12-02 Thread Carlos Palminha
Hi Vineet,

I cherry picked those commits and now i'm getting a different error.

any clue? Am i testing "untested" code?! :)

Regards,
C.Palminha

---
  CC  init/do_mounts.o
In file included from include/linux/skbuff.h:34:0,
 from include/linux/icmpv6.h:4,
 from include/linux/ipv6.h:71,
 from include/net/ipv6.h:16,
 from include/linux/sunrpc/clnt.h:27,
 from include/linux/nfs_fs.h:30,
 from init/do_mounts.c:32:
include/linux/dma-mapping.h: In function ‘dma_set_coherent_mask’:
include/linux/dma-mapping.h:104:2: error: implicit declaration of function 
‘dma_supported’ [-Werror=implicit-function-declaration]
  if (!dma_supported(dev, mask))
  ^
include/linux/dma-mapping.h: In function ‘dma_set_mask_and_coherent’:
include/linux/dma-mapping.h:119:2: error: implicit declaration of function 
‘dma_set_mask’ [-Werror=implicit-function-declaration]
  int rc = dma_set_mask(dev, mask);
  ^
include/linux/dma-mapping.h: In function ‘dma_zalloc_coherent’:
include/linux/dma-mapping.h:190:2: error: implicit declaration of function 
‘dma_alloc_coherent’ [-Werror=implicit-function-declaration]
  void *ret = dma_alloc_coherent(dev, size, dma_handle,
  ^
include/linux/dma-mapping.h:190:14: warning: initialization makes pointer from 
integer without a cast [enabled by default]
  void *ret = dma_alloc_coherent(dev, size, dma_handle,
  ^
In file included from include/linux/icmpv6.h:4:0,
 from include/linux/ipv6.h:71,
 from include/net/ipv6.h:16,
 from include/linux/sunrpc/clnt.h:27,
 from include/linux/nfs_fs.h:30,
 from init/do_mounts.c:32:
include/linux/skbuff.h: In function ‘skb_frag_dma_map’:
include/linux/skbuff.h:2510:2: error: implicit declaration of function 
‘dma_map_page’ [-Werror=implicit-function-declaration]
  return dma_map_page(dev, skb_frag_page(frag),



On 02-12-2015 13:19, Carlos Palminha wrote:
> Hi Vineet,
> 
> I'm using drm-next (its currently based on 4.4-rc3).
> 
> Regarding linux-next DMA patches I assume you are talking about these 3 
> commits:
> * 19ab4d3aff0426058fe36aae4ac56320a6e4c6be
> * 8ee24f794c2dfff85930f25eab4f11a9bde7f920
> * c27a81903ba596c879a45e3028135a4f37fb1837
> 
> Regards,
> C.Palminha
> 
> -Original Message-
> From: Vineet Gupta 
> Sent: quarta-feira, 2 de Dezembro de 2015 06:32
> To: Carlos Palminha; linux-snps-arc@lists.infradead.org
> Cc: Alexey Brodkin
> Subject: Re: Non existing DMA functions in ARC: dma_alloc_attrs, 
> dma_free_attrs, dma_mmap_attrs
> 
> On Wednesday 02 December 2015 01:09 AM, Carlos Palminha wrote:
>> Hi guys,
>>
>> I'm bringing up a new ARC PGU driver for DRM framework with latest kernel 
>> tree.
>> I'm using ARC AXS101 as a base and selected one the DRM required config: 
>> HAVE_DMA_ATTRS due to some memory allocation helpers in DRM.
>>
>> I'm getting some errors with DMA functions not implemented in ARC: 
>> dma_alloc_attrs, dma_free_attrs, dma_mmap_attrs
>>
>> Any clue?
>>
>> Regards,
>> C.Palminha
>>
>> ---
>> include/linux/dma-mapping.h: In function 'dma_alloc_writecombine':
>> include/linux/dma-mapping.h:283:2: error: implicit declaration of function 
>> 'dma_alloc_attrs' [-Werror=implicit-function-declaration]
>>   return dma_alloc_attrs(dev, size, dma_addr, gfp, &attrs);
> 
> This is because ARC port current lacks support for dma_attr_t and associated 
> helpers.
> There is a series in flight in linux-next, by Christoph, which already 
> addresses that.
> 
> You can either cherry-pick those or in the interim use the hack attached.
> 
> P.S. Per your comment at top, I'm assuming you are working off of mainline 
> 4.3 or 4.4
> 
> -Vineet
> 

___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc

RE: Non existing DMA functions in ARC: dma_alloc_attrs, dma_free_attrs, dma_mmap_attrs

2015-12-02 Thread Carlos Palminha
Hi Vineet,

I'm using drm-next (its currently based on 4.4-rc3).

Regarding linux-next DMA patches I assume you are talking about these 3 commits:
* 19ab4d3aff0426058fe36aae4ac56320a6e4c6be
* 8ee24f794c2dfff85930f25eab4f11a9bde7f920
* c27a81903ba596c879a45e3028135a4f37fb1837

Regards,
C.Palminha

-Original Message-
From: Vineet Gupta 
Sent: quarta-feira, 2 de Dezembro de 2015 06:32
To: Carlos Palminha; linux-snps-arc@lists.infradead.org
Cc: Alexey Brodkin
Subject: Re: Non existing DMA functions in ARC: dma_alloc_attrs, 
dma_free_attrs, dma_mmap_attrs

On Wednesday 02 December 2015 01:09 AM, Carlos Palminha wrote:
> Hi guys,
>
> I'm bringing up a new ARC PGU driver for DRM framework with latest kernel 
> tree.
> I'm using ARC AXS101 as a base and selected one the DRM required config: 
> HAVE_DMA_ATTRS due to some memory allocation helpers in DRM.
>
> I'm getting some errors with DMA functions not implemented in ARC: 
> dma_alloc_attrs, dma_free_attrs, dma_mmap_attrs
>
> Any clue?
>
> Regards,
> C.Palminha
>
> ---
> include/linux/dma-mapping.h: In function 'dma_alloc_writecombine':
> include/linux/dma-mapping.h:283:2: error: implicit declaration of function 
> 'dma_alloc_attrs' [-Werror=implicit-function-declaration]
>   return dma_alloc_attrs(dev, size, dma_addr, gfp, &attrs);

This is because ARC port current lacks support for dma_attr_t and associated 
helpers.
There is a series in flight in linux-next, by Christoph, which already 
addresses that.

You can either cherry-pick those or in the interim use the hack attached.

P.S. Per your comment at top, I'm assuming you are working off of mainline 4.3 
or 4.4

-Vineet


___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc


Re: Non existing DMA functions in ARC: dma_alloc_attrs, dma_free_attrs, dma_mmap_attrs

2015-12-02 Thread Vineet Gupta
On Thursday 03 December 2015 05:54 AM, Carlos Palminha wrote:
> Hi Vineet,
>
> I cherry picked those commits and now i'm getting a different error.
>
> any clue? Am i testing "untested" code?! :)
>
> Regards,
> C.Palminha
>
> ---
>   CC  init/do_mounts.o
> In file included from include/linux/skbuff.h:34:0,
>  from include/linux/icmpv6.h:4,
>  from include/linux/ipv6.h:71,
>  from include/net/ipv6.h:16,
>  from include/linux/sunrpc/clnt.h:27,
>  from include/linux/nfs_fs.h:30,
>  from init/do_mounts.c:32:
> include/linux/dma-mapping.h: In function ‘dma_set_coherent_mask’:
> include/linux/dma-mapping.h:104:2: error: implicit declaration of function 
> ‘dma_supported’ [-Werror=implicit-function-declaration]
>   if (!dma_supported(dev, mask))
>   ^
> include/linux/dma-mapping.h: In function ‘dma_set_mask_and_coherent’:
> include/linux/dma-mapping.h:119:2: error: implicit declaration of function 
> ‘dma_set_mask’ [-Werror=implicit-function-declaration]
>   int rc = dma_set_mask(dev, mask);
>   ^
> include/linux/dma-mapping.h: In function ‘dma_zalloc_coherent’:
> include/linux/dma-mapping.h:190:2: error: implicit declaration of function 
> ‘dma_alloc_coherent’ [-Werror=implicit-function-declaration]
>   void *ret = dma_alloc_coherent(dev, size, dma_handle,
>   ^
> include/linux/dma-mapping.h:190:14: warning: initialization makes pointer 
> from integer without a cast [enabled by default]
>   void *ret = dma_alloc_coherent(dev, size, dma_handle,
>   ^
> In file included from include/linux/icmpv6.h:4:0,
>  from include/linux/ipv6.h:71,
>  from include/net/ipv6.h:16,
>  from include/linux/sunrpc/clnt.h:27,
>  from include/linux/nfs_fs.h:30,
>  from init/do_mounts.c:32:
> include/linux/skbuff.h: In function ‘skb_frag_dma_map’:
> include/linux/skbuff.h:2510:2: error: implicit declaration of function 
> ‘dma_map_page’ [-Werror=implicit-function-declaration]
>   return dma_map_page(dev, skb_frag_page(frag),

I'm not sure what exact code you are building off - linux-next of today builds
just fine !
Can u not baseline ur work off linux-next

-Vineet


>
>
> On 02-12-2015 13:19, Carlos Palminha wrote:
>> Hi Vineet,
>>
>> I'm using drm-next (its currently based on 4.4-rc3).
>>
>> Regarding linux-next DMA patches I assume you are talking about these 3 
>> commits:
>> * 19ab4d3aff0426058fe36aae4ac56320a6e4c6be
>> * 8ee24f794c2dfff85930f25eab4f11a9bde7f920
>> * c27a81903ba596c879a45e3028135a4f37fb1837
>>
>> Regards,
>> C.Palminha
>>
>> -Original Message-
>> From: Vineet Gupta 
>> Sent: quarta-feira, 2 de Dezembro de 2015 06:32
>> To: Carlos Palminha; linux-snps-arc@lists.infradead.org
>> Cc: Alexey Brodkin
>> Subject: Re: Non existing DMA functions in ARC: dma_alloc_attrs, 
>> dma_free_attrs, dma_mmap_attrs
>>
>> On Wednesday 02 December 2015 01:09 AM, Carlos Palminha wrote:
>>> Hi guys,
>>>
>>> I'm bringing up a new ARC PGU driver for DRM framework with latest kernel 
>>> tree.
>>> I'm using ARC AXS101 as a base and selected one the DRM required config: 
>>> HAVE_DMA_ATTRS due to some memory allocation helpers in DRM.
>>>
>>> I'm getting some errors with DMA functions not implemented in ARC: 
>>> dma_alloc_attrs, dma_free_attrs, dma_mmap_attrs
>>>
>>> Any clue?
>>>
>>> Regards,
>>> C.Palminha
>>>
>>> ---
>>> include/linux/dma-mapping.h: In function 'dma_alloc_writecombine':
>>> include/linux/dma-mapping.h:283:2: error: implicit declaration of function 
>>> 'dma_alloc_attrs' [-Werror=implicit-function-declaration]
>>>   return dma_alloc_attrs(dev, size, dma_addr, gfp, &attrs);
>> This is because ARC port current lacks support for dma_attr_t and associated 
>> helpers.
>> There is a series in flight in linux-next, by Christoph, which already 
>> addresses that.
>>
>> You can either cherry-pick those or in the interim use the hack attached.
>>
>> P.S. Per your comment at top, I'm assuming you are working off of mainline 
>> 4.3 or 4.4
>>
>> -Vineet
>>


___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc