Re: [RFC][PATCH] Xilinx uartlite serial driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>>>>> "David" == David H Lynch <dhlii@xxxxxxxxxx> writes:

Hi,

 David> 	Your ulite_console_write performance is pretty slow -
 David> almost an order of magnitude slower than what I am seeing in
 David> my driver. I beleive it is because you are waiting for the Tx
 David> FIFO to be empty before and after sending each character
 David> rather than only waiting while the Tx FIFO is full.

Really? The implementation is basically a copy of 8250.c, so I would
imagine that would get similar performance. Perhaps it's related to
your specific setup?

The driver only waits before sending a character, not afterwards.

 David> 	That may also be an issue in the rest of the driver but I have been
 David> unable to get it to through registering the driver.
 David> 	I suspect that is because your driver is a platform driver, but you did
 David> not provide patches to the arch/ppc/platforms/4xx/virtex.* or
 David> xilinx_ml???.* to setup the platform device structure.

No, because the Xilinx boards don't have any uartlite devices.

 David> 	If you could provide a copy I would appreciate it.

Sure, just add something like this to your board code (with your base
address/irq ofcause):
	
static struct resource uartlite_resources[] = {
       [0] = {
           .start  = 0xa1000003,
           .end    = 0xa1000012,
           .flags  = IORESOURCE_MEM,
       },
       [1] = {
           .start  = 2,
           .end    = 2,
           .flags  = IORESOURCE_IRQ,
       },
};

static struct platform_device uartlite = {
       .name              = "uartlite",
       .id                = 0,
       .num_resources     = ARRAY_SIZE(uartlite_resources),
       .resource          = uartlite_resources,
       .dev.platform_data = 0,
};

static struct platform_device *my_devices[] __initdata = {
       &uartlite,
       .
       .
       .
};

static int __init
my_platform_add_devices(void)
{
        return platform_add_devices(my_devices, ARRAY_SIZE(my_devices));

}

arch_initcall(my_platform_add_devices);

-- 
Bye, Peter Korsgaard
-
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux