[PATCH 1/6] DMA: AT91: Serial: Add parameter for serial dma use

Elen Song elen.song at atmel.com
Tue Oct 30 02:39:37 EDT 2012


On 2012-10-29 19:42, Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 17:09 Mon 29 Oct     , Elen Song wrote:
>> Signed-off-by: Elen Song <elen.song at atmel.com>
>> ---
>>   arch/arm/mach-at91/include/mach/board.h |    2 ++
>>   drivers/tty/serial/atmel_serial.c       |    1 +
>>   include/linux/platform_data/dma-atmel.h |   10 ++++++++++
>>   3 files changed, 13 insertions(+)
> you will have to rebase this over a clean if the platofrm_data I'll send today
> or tomorrow that will move all the platform_data to inclide/linux

ok, please cc me in the mail list.
>
> btw your patch broke the avr32

You mean compile error, driver crash, or I need  a macro to distinguish 
avr32 to at91sam9 ?
I only add a few variables that avr32 will not use, it seems no 
affection to avr32, you think?
>
> Best Regards.
> J.
>> diff --git a/arch/arm/mach-at91/include/mach/board.h b/arch/arm/mach-at91/include/mach/board.h
>> index c55a436..a2188a6 100644
>> --- a/arch/arm/mach-at91/include/mach/board.h
>> +++ b/arch/arm/mach-at91/include/mach/board.h
>> @@ -129,6 +129,8 @@ struct atmel_uart_data {
>>   	short			use_dma_tx;	/* use transmit DMA? */
>>   	short			use_dma_rx;	/* use receive DMA? */
>>   	void __iomem		*regs;		/* virt. base address, if any */
>> +	struct at_dma_slave     *dma_tx_slave;
>> +	struct at_dma_slave     *dma_rx_slave;
>>   	struct serial_rs485	rs485;		/* rs485 settings */
>>   };
>>   extern void __init at91_add_device_serial(void);
>> diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c
>> index 3d7e1ee..1b1bd4f 100644
>> --- a/drivers/tty/serial/atmel_serial.c
>> +++ b/drivers/tty/serial/atmel_serial.c
>> @@ -45,6 +45,7 @@
>>   
>>   #include <asm/mach/serial_at91.h>
>>   #include <mach/board.h>
>> +#include <linux/platform_data/dma-atmel.h>
>>   
>>   #ifdef CONFIG_ARM
>>   #include <mach/cpu.h>
>> diff --git a/include/linux/platform_data/dma-atmel.h b/include/linux/platform_data/dma-atmel.h
>> index cab0997..bb05302 100644
>> --- a/include/linux/platform_data/dma-atmel.h
>> +++ b/include/linux/platform_data/dma-atmel.h
>> @@ -26,11 +26,21 @@ struct at_dma_platform_data {
>>   /**
>>    * struct at_dma_slave - Controller-specific information about a slave
>>    * @dma_dev: required DMA master device
>> + * @tx_reg: physical address of data register used for
>> + *      memory-to-peripheral transfers
>> + * @rx_reg: physical address of data register used for
>> + *      peripheral-to-memory transfers
>> + * @reg_width: peripheral register width
>>    * @cfg: Platform-specific initializer for the CFG register
>> + * @ctrla: Platform-specific initializer for the CTRLA register
>>    */
>>   struct at_dma_slave {
>>   	struct device		*dma_dev;
>> +	dma_addr_t              tx_reg;
>> +	dma_addr_t              rx_reg;
>> +	u32			reg_width;
>>   	u32			cfg;
>> +	u32                     ctrla;
>>   };
>>   
>>   
>> -- 
>> 1.7.9.5
>>




More information about the linux-arm-kernel mailing list