diff --git a/patches/vmebridge.diff b/patches/vmebridge.diff index 97399b5032bcab4b6fad5ea22b403148f06dc9f4..495ee384f2b7648a8001c5239d0f831411936ed2 100644 --- a/patches/vmebridge.diff +++ b/patches/vmebridge.diff @@ -9,7 +9,7 @@ index 12f3e818..698891fd 100644 obj-m = vmebus.o diff --git a/vmebridge-ng/driver/bridges/pldz002/pldz002.h b/vmebridge-ng/driver/bridges/pldz002/pldz002.h -index 2085412a..4f677665 100644 +index ef62175f..b54802af 100644 --- a/vmebridge-ng/driver/bridges/pldz002/pldz002.h +++ b/vmebridge-ng/driver/bridges/pldz002/pldz002.h @@ -8,7 +8,6 @@ @@ -21,7 +21,7 @@ index 2085412a..4f677665 100644 #include "vmebus.h" #include "vme_bridge.h" diff --git a/vmebridge-ng/driver/bridges/pldz002/pldz002_irq.c b/vmebridge-ng/driver/bridges/pldz002/pldz002_irq.c -index 77f82113..5b7b877d 100644 +index 23f65a04..0e1eb723 100644 --- a/vmebridge-ng/driver/bridges/pldz002/pldz002_irq.c +++ b/vmebridge-ng/driver/bridges/pldz002/pldz002_irq.c @@ -17,6 +17,7 @@ @@ -33,7 +33,7 @@ index 77f82113..5b7b877d 100644 static struct interrupt_stats int_stats[] = { {.name = "SPURIOUS"}, diff --git a/vmebridge-ng/driver/vme_bridge.c b/vmebridge-ng/driver/vme_bridge.c -index 7eb67794..6ad97a2f 100644 +index 84df7f0a..48a6de8a 100644 --- a/vmebridge-ng/driver/vme_bridge.c +++ b/vmebridge-ng/driver/vme_bridge.c @@ -503,10 +503,12 @@ out_err: @@ -66,7 +66,7 @@ index 7eb67794..6ad97a2f 100644 return ret ? ret : count; } -@@ -1164,9 +1171,13 @@ static void vme_initialize_device(struct vme_dev *vme_dev) +@@ -1166,9 +1173,13 @@ static void vme_initialize_device(struct vme_dev *vme_dev) * It tells if a device belong to a driver that generated the * device itself */ @@ -81,7 +81,7 @@ index 7eb67794..6ad97a2f 100644 return (dev->platform_data == vme_driver); } -@@ -1184,7 +1195,8 @@ void vme_unregister_driver(struct vme_driver *vme_driver) +@@ -1186,7 +1197,8 @@ void vme_unregister_driver(struct vme_driver *vme_driver) * until we remove them all */ dev = driver_find_device(&vme_driver->driver, NULL, @@ -125,7 +125,7 @@ index 781f66c4..4ef0ac1a 100644 + #endif diff --git a/vmebridge-ng/driver/vme_dmaengine.c b/vmebridge-ng/driver/vme_dmaengine.c -index 779289e0..fc11ee66 100644 +index d7f3cc65..cbe21c36 100644 --- a/vmebridge-ng/driver/vme_dmaengine.c +++ b/vmebridge-ng/driver/vme_dmaengine.c @@ -36,6 +36,7 @@ @@ -175,7 +175,7 @@ index 779289e0..fc11ee66 100644 /** * Allocate resources for the given channel. This function must keep the -@@ -313,13 +335,11 @@ static void vme_dmaengine_issue_pending(struct dma_chan *dchan) +@@ -328,13 +350,11 @@ static void vme_dmaengine_issue_pending(struct dma_chan *dchan) * It allows drivers to send commands to the engine. * For the time being we only support the TERMINATE command */ @@ -187,33 +187,33 @@ index 779289e0..fc11ee66 100644 - struct vme_dma_chan *vdchan = to_vme_dma_chan(dchan); - struct vme_bridge_dma_mgr *dma_mgr = - to_vme_bridge_dma_mgr(vdchan->dchan.device); - int err = 0; + int ret = 0; switch (cmd) { -@@ -331,11 +351,11 @@ static int vme_dmaengine_device_control(struct dma_chan *dchan, +@@ -346,11 +366,11 @@ static int vme_dmaengine_device_control(struct dma_chan *dchan, * Pause works only with linked-list mode. This engine will * perform *only* linked-list transfers. So, pause always work */ -- dma_mgr->ops->dma_set_ctrl(vdchan, VME_DMA_PAUSE); +- ret = dma_mgr->ops->dma_set_ctrl(vdchan, VME_DMA_PAUSE); + vme_dma_pause(dchan); udelay(10); break; case DMA_RESUME: -- dma_mgr->ops->dma_set_ctrl(vdchan, VME_DMA_START); +- ret = dma_mgr->ops->dma_set_ctrl(vdchan, VME_DMA_START); + vme_dma_start(dchan); break; default: - err = -ENXIO; -@@ -344,7 +364,7 @@ static int vme_dmaengine_device_control(struct dma_chan *dchan, + ret = -ENXIO; +@@ -359,7 +379,7 @@ static int vme_dmaengine_device_control(struct dma_chan *dchan, - return err; + return ret; } - +#endif /** * The DMA transfer is complete, remove it from the list and try to run -@@ -497,8 +517,25 @@ int vme_dmaengine_init(struct vme_bridge_device *vbridge) +@@ -542,8 +562,25 @@ int vme_dmaengine_init(struct vme_bridge_device *vbridge) vme_dmaengine_free_chan_resources; dma_mgr->dma.device_prep_slave_sg = vme_dmaengine_prep_slave_sg;