On Friday 22 April 2005 06.27, Andre Renaud wrote: > I am suffering from a similar problem when using the > CHIP_BUFFER_TEST macro - I have implemented the delay function > as: > static void isp1362_delay(struct device *dev, unsigned int delay) > { > (void) *(volatile unsigned long *)UNCACHED_PHYS_0; > }
I think you also need to actually use the result of the read to force a previous store operation to terminate. And I wonder if after this you do not need some looping to ensure a ~460ns delay. On a PCA-263 with the core clock at 500Mhz, I am using the following code: static void isp116x_delay(struct device * dev, int delay) { unsigned int temp = *(unsigned int *)UNCACHED_ADDR; dev = dev; __asm__ __volatile__ ( " mov %1, %1\n" "1: subs %0, %0, #5\n" " bgt 1b" : : "r" (delay), "r" (temp) : "cc"); } Robin ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel