Jonas Aaberg
69f93faa57
DMAENGINE: ste_dma40: fix possible use of uninitialized variable
...
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-09-22 14:53:46 -07:00
Jonas Aaberg
9dbfbd35ce
DMAENGINE: ste_dma40: corrected is_paused behavior
...
The handling of pause detection was slightly incorrect.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-09-22 14:53:46 -07:00
Jonas Aaberg
767a9675c4
DMAENGINE: ste_dma40: code clean-up
...
This patch includes non functional code clean up changes,
file header updates and a few magic numbers got defined.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-09-22 14:53:46 -07:00
Jonas Aaberg
aa182ae262
DMAENGINE: ste_dma40: added support for link jobs in hw
...
If a new job is added on a physical channel that already has
a job, the new job is linked in hw to the old job instead of
queueing up the jobs.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-09-22 14:53:45 -07:00
Jonas Aaberg
3ae0267fd5
DMAENGINE: ste_dma40: removed a few magic numbers
...
Make sure to extract the revision field explicitly and document
what bits are being accessed here without magic numbers.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-09-22 14:53:45 -07:00
Jonas Aaberg
0246e77b4d
DMAENGINE: ste_dma40: fix bug related to callback handling
...
The callback got called even when it was not supposed to. Also
removed some not needed interrupt trigger on/off code.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-09-22 14:53:45 -07:00
Jonas Aaberg
b55912c66a
DMAENGINE: ste_dma40: Code clean-up and removed an unneeded suspend request
...
This patch cleans up some code and removes a suspend request that was pointless
since the hw was never configured nor running when it was called.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-09-22 14:53:45 -07:00
Jonas Aaberg
1b00348d5d
DMAENGINE: ste_dma40: No need reading, masking and setting a set register
...
Removes an unnecessary register read and a few lines of code.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-09-22 14:53:45 -07:00
Jonas Aaberg
be8cb7dfd9
DMAENGINE: ste_dma40: Fix failed to restart logical channel bug
...
A transfer that runs in the different direction on the same
channel will now be resumed when the other is suspend/stopped.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-09-22 14:53:44 -07:00
Linus Walleij
0747c7bae5
DMAENGINE: ste_dma40: config checks
...
Added various configuration checks.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-09-22 14:53:44 -07:00
Linus Walleij
95e1400fa1
DMAENGINE: add runtime slave config to DMA40 v3
...
This extends the DMA engine driver for the DMA40 used in the
U8500 platform with the generic runtime slave configuration
interface.
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-08-04 14:14:05 -07:00
Linus Walleij
f41855929c
DMAENGINE: ste_dma40: support older silicon
...
This makes sure the DMA40 driver will also work on the oldest
silicon revisions that have the on-chip memory on another location
in the DB8500 and also requires explicit suspend before starting
or resuming a logical channel.
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
[added parenthesis to the definition of U8500_DMA_LCPA_BASE_ED]
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-06-22 18:06:42 -07:00
Jonas Aaberg
6b7acd8442
DMAENGINE: ste_dma40: support disabling physical channels
...
This makes it possible to disable physical channels.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-06-22 18:01:57 -07:00
Jonas Aaberg
d181b3a8cb
DMAENGINE: ste_dma40: fix suspend bug
...
This fixes a bug when suspending channels: first make the checks,
then suspend the channel, not the other way around.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-06-22 18:01:56 -07:00
Linus Walleij
508849ade2
DMAENGINE: ste_dma40: allocate LCLA dynamically
...
Switch to allocating LCLA in memory instead of having a fixed
address.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-06-22 18:01:55 -07:00
Jonas Aaberg
1d392a7ba4
DMAENGINE: ste_dma40: no premature stop
...
Correct bug that could cause paused channels to stop.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-06-22 18:01:55 -07:00
Jonas Aaberg
2123a61e17
DMAENGINE: ste_dma40: interrupts only on dst
...
We don't want interrupts when the source is done, only when
the destination is done and everything is complete at the
recieveing end of a transfer.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-06-22 18:01:55 -07:00
Jonas Aaberg
0c32269d81
DMAENGINE: ste_dma40: avoid doing unnessecary suspend
...
Avoid doing unnessecary suspend when modifying logical channels.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-06-22 18:01:54 -07:00
Jonas Aaberg
2292b880e4
DMAENGINE: ste_dma40: lock fix
...
Fix up some locking issues found by enabling lock debugging.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-06-22 18:01:54 -07:00
Jonas Aaberg
0d0f6b8bbb
DMAENGINE: ste_dma40: deny ops on non-alloc channels
...
Added checks to deny operating on none-allocated channels.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-06-22 18:01:54 -07:00
Jonas Aaberg
2a6143407d
DMAENGINE: ste_dma40: various cosmetic clean-ups
...
This cleans up some extra newlines, removes some code duplication
and moves the code to comply better with checkpatch.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-06-22 18:01:54 -07:00
Jonas Aaberg
ff0b12baa5
DMAENGINE: ste_dma40: improve allocation error handling
...
Better error handling when channel allocation fails.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-06-22 18:01:54 -07:00
Jonas Aaberg
c675b1b424
DMAENGINE: ste_dma40: use kmem cache
...
Use kmem cache instead of own cache, reducing code duplication
and bug sources.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-06-22 18:01:53 -07:00
Per Friden
a8be8627a3
DMAENGINE: ste_dma40: moved freeing of client owned desc
...
fixed typo and moved freeing of client owned desc to free_dma.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-06-22 18:01:53 -07:00
Linus Walleij
ef1872ec65
DMAENGINE: ste_dma40: only write phy channel config first time
...
We only need to write the configuration to a physical channel if
it is free, else it is already written.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-06-22 18:01:53 -07:00
Per Friden
941b77a3b6
DMAENGINE: ste_dma40: fixed lli_max=1 issue
...
Fixed lli_max=1 issue in case of full lcla, currently this case
is not properly handled.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-06-22 18:01:53 -07:00
Linus Walleij
058276303d
DMAENGINE: extend the control command to include an arg
...
This adds an argument to the DMAengine control function, so that
we can later provide control commands that need some external data
passed in through an argument akin to the ioctl() operation
prototype.
[dan.j.williams@intel.com: fix up some missed conversions]
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2010-05-17 16:30:42 -07:00
Marcin Mielczarczyk
4aed79b281
DMAENGINE: DMA40 fix for allocation of logical channel 0
...
Fix for allocation failure of logical channel when event line
happens to be number 0.
Signed-off-by: Marcin Mielczarczyk <marcin.mielczarczyk@tieto.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-05-17 15:45:06 -07:00
Jonas Aaberg
a5ebca4769
DMAENGINE: DMA40 support paused channel status
...
Support determining whether a channel is paused or
not using the status function.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-05-17 15:45:03 -07:00
Linus Walleij
8d318a50b3
DMAENGINE: Support for ST-Ericssons DMA40 block v3
...
This is a straightforward driver for the ST-Ericsson DMA40 DMA
controller found in U8500, implemented akin to the existing
COH 901 318 driver.
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Acked-by: Srinidh Kasagar <srinidhi.kasagar@stericsson.com >
Cc: STEricsson_nomadik_linux@list.st.com
Cc: Alessandro Rubini <rubini@unipv.it >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-04-14 14:49:20 -07:00