fsldma: remove internal self-test from Freescale Elo DMA driver
authorTimur Tabi <timur@freescale.com>
Tue, 23 Sep 2008 22:55:56 +0000 (15:55 -0700)
committerDan Williams <dan.j.williams@intel.com>
Tue, 23 Sep 2008 22:55:56 +0000 (15:55 -0700)
commit59f647c25a4f27c1e5c84710e0608b36303089f9
tree654f611ff5b8ff98e7233e6a31ececd2af69b7bb
parent6fdb8bd47111d3f94be221082b725ec2dec1d5c7
fsldma: remove internal self-test from Freescale Elo DMA driver

The Freescale Elo DMA driver runs an internal self-test before registering
the channels with the DMA engine.  This self-test has a fundemental flaw in
that it calls the DMA engine's callback functions directly before the
registration.  However, the registration initializes some variables that the
callback functions uses, namely the device struct.

The code works today because there are two device structs: the one created
by the DMA engine, and one created by the Open Firmware (OF) subsystem.  The
self-test currently uses the device struct created by OF.  However, in the
future, some of the device structs created by OF will be eliminated.
This means that the self-test will only have access to the device struct
created by the DMA engine.  But this device struct isn't initialized when
the self-test runs, and this causes a kernel panic.

Since there is already a DMA test module (dmatest), the internal self-test
code is not useful anyway.  It is extremely unlikely that the test will fail
in normal usage.  It may have been helpful during development, but not any more.

Cc: Kumar Gala <galak@kernel.crashing.org>
Cc: Li Yang <leoli@freescale.com>
Cc: Scott Wood <scottwood@freescale.com>
Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/dma/fsldma.c