Skip to content

Commit

Permalink
staging: spectra: asynchronous init
Browse files Browse the repository at this point in the history
The spectra nand driver takes quite some time to initialize because
it needs to scan the whole nand disk to find the latest block table.
This patch initializes the spectra nand driver asynchronously so that
other things in the kernel can initialize in parallel to the scanning
operation.

Signed-off-by: Yong Wang <yong.y.wang@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Yong Wang authored and Greg Kroah-Hartman committed Nov 17, 2010
1 parent 6f5a416 commit 63fcf10
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions drivers/staging/spectra/ffsport.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
#include <linux/log2.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/async.h>

/**** Helper functions used for Div, Remainder operation on u64 ****/

Expand Down Expand Up @@ -729,7 +730,7 @@ static void create_sysfs_entry(struct device *dev)
}
*/

int register_spectra_ftl()
static void register_spectra_ftl_async(void *unused, async_cookie_t cookie)
{
int i;

Expand All @@ -738,7 +739,7 @@ int register_spectra_ftl()
if (PASS != GLOB_FTL_IdentifyDevice(&IdentifyDeviceData)) {
printk(KERN_ERR "Spectra: Unable to Read Flash Device. "
"Aborting\n");
return -ENOMEM;
return;
} else {
nand_dbg_print(NAND_DBG_WARN, "In GLOB_SBD_init: "
"Num blocks=%d, pagesperblock=%d, "
Expand Down Expand Up @@ -772,15 +773,19 @@ int register_spectra_ftl()
"Spectra: module loaded with major number %d\n",
GLOB_SBD_majornum);

return PASS;
return;

out_blk_register:
unregister_blkdev(GLOB_SBD_majornum, GLOB_SBD_NAME);
out_ftl_flash_register:
GLOB_FTL_Cache_Release();
printk(KERN_ERR "Spectra: Module load failed.\n");
}

return FAIL;
int register_spectra_ftl()
{
async_schedule(register_spectra_ftl_async, NULL);
return 0;
}
EXPORT_SYMBOL_GPL(register_spectra_ftl);

Expand Down

0 comments on commit 63fcf10

Please sign in to comment.