Messages in this thread |  | | | From | H Hartley Sweeten <> | | Date | Mon, 16 Apr 2012 13:59:08 -0500 | | Subject | RE: [PATCH] ep93xx: Implement double buffering for M2M DMA channels |
| |
On Wednesday, April 11, 2012 12:19 AM, Rafal Prylowski wrote: > On 2012-04-10 19:55, H Hartley Sweeten wrote: >> On Tuesday, April 10, 2012 10:29 AM, Mika Westerberg wrote: >>> On Fri, Mar 23, 2012 at 11:09:50AM -0500, H Hartley Sweeten wrote: >>> >>> Now that the spurious interrupts thing with VIC has been sorted out, should we >>> revisit this patch? Hartley, do you have any objections merging this? > > >> I have not had a chance to look at this with the VIC issue fixed. >> >> Last time I tried testing the double buffering patch my system would not boot >> correctly. I'll try to test this again shortly. >> >> Rafal, >> >> Could you repost the latest version of the patch? >> > > Hi, > > Here is the patch. It applies to current mainline (3.4rc2). The only thing that > has changed is additional call to ep93xx_dma_advance_active(..) before disabling > the channel.
Rafal,
This patch still doesn't work on my ep93xx system.
FWIW, I have two devices on my SPI bus:
static struct spi_board_info vision_spi_board_info[] __initdata = { { .modalias = "sst25l", .platform_data = &vision_spi_flash_data, .controller_data = &vision_spi_flash_hw, .max_speed_hz = 20000000, .bus_num = 0, .chip_select = 0, .mode = SPI_MODE_3, }, { .modalias = "mmc_spi", .platform_data = &vision_spi_mmc_data, .controller_data = &vision_spi_mmc_hw, .max_speed_hz = 20000000, .bus_num = 0, .chip_select = 1, .mode = SPI_MODE_3, }, }; static struct ep93xx_spi_info vision_spi_master __initdata = { .num_chipselect = ARRAY_SIZE(vision_spi_board_info), .use_dma = true, }; With your patch applied I get these relevant messages during boot:
sst25l spi0.0: sst25lf040a (512 KiB) Creating 3 MTD partitions on "SPI Flash": 0x000000000000-0x000000001000 : "SPI bootstrap" 0x000000001000-0x000000002000 : "Bootstrap config" 0x000000002000-0x000000080000 : "System config" ep93xx-spi ep93xx-spi.0: EP93xx SPI Controller at 0x808a0000 irq 53 mmc_spi spi0.1: SD/MMC host mmc0, no poweroff And /proc/interrupts shows this right after boot:
# cat /proc/interrupts CPU0 4: 4519 VIC ep93xx timer 17: 1268725 VIC ep93xx-spi-rx 18: 1277244 VIC ep93xx-spi-tx 29: 0 VIC ep93xx-keypad 33: 0 VIC rtc-isl1208 39: 176 VIC eth0 52: 112 VIC uart-pl010 53: 1 VIC ep93xx-spi 56: 0 VIC ohci_hcd:usb1 79: 0 GPIO mmc_spi:cd 87: 0 GPIO 0-0074
Without your patch I get this:
sst25l spi0.0: sst25lf040a (512 KiB) Creating 3 MTD partitions on "SPI Flash": 0x000000000000-0x000000001000 : "SPI bootstrap" 0x000000001000-0x000000002000 : "Bootstrap config" 0x000000002000-0x000000080000 : "System config" ep93xx-spi ep93xx-spi.0: EP93xx SPI Controller at 0x808a0000 irq 53 mmc_spi spi0.1: SD/MMC host mmc0, no poweroff mmc0: new SD card on SPI mmcblk0: mmc0:0000 S064B 60.6 MiB mmcblk0: p1 # cat /proc/interrupts CPU0 4: 1794 VIC ep93xx timer 17: 141 VIC ep93xx-spi-rx 18: 141 VIC ep93xx-spi-tx 29: 0 VIC ep93xx-keypad 33: 0 VIC rtc-isl1208 39: 100 VIC eth0 52: 109 VIC uart-pl010 53: 418 VIC ep93xx-spi 56: 0 VIC ohci_hcd:usb1 79: 0 GPIO mmc_spi:cd 87: 0 GPIO 0-0074 Err: 0
It appears your patch is causing an interrupt storm on my system.
Regards, Hartley
|  |