Commit 5eab6aaaaf0149ada4afd1aebce1978e1cc5a3e7

Authored by Chuanxiao Dong
Committed by David Woodhouse
1 parent 7d8a26fd22

nand/denali: move all hardware initialization work to denali_hw_init

All hardware initialization will be done in denali_hw_init before
irq handler registered
Change mtd name from "DENALI NAND" to be "denali-nand" since whitespace in
name can cause problems if we use cmdlinepart

Signed-off-by: Chuanxiao Dong <chuanxiao.dong@intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>

Showing 1 changed file with 6 additions and 5 deletions Side-by-side Diff

drivers/mtd/nand/denali.c
... ... @@ -1364,18 +1364,18 @@
1364 1364 * */
1365 1365 denali->bbtskipbytes = ioread32(denali->flash_reg +
1366 1366 SPARE_AREA_SKIP_BYTES);
1367   - denali_irq_init(denali);
1368 1367 denali_nand_reset(denali);
1369 1368 iowrite32(0x0F, denali->flash_reg + RB_PIN_ENABLED);
1370 1369 iowrite32(CHIP_EN_DONT_CARE__FLAG,
1371 1370 denali->flash_reg + CHIP_ENABLE_DONT_CARE);
1372 1371  
1373   - iowrite32(0x0, denali->flash_reg + SPARE_AREA_SKIP_BYTES);
1374 1372 iowrite32(0xffff, denali->flash_reg + SPARE_AREA_MARKER);
1375 1373  
1376 1374 /* Should set value for these registers when init */
1377 1375 iowrite32(0, denali->flash_reg + TWO_ROW_ADDR_CYCLES);
1378 1376 iowrite32(1, denali->flash_reg + ECC_ENABLE);
  1377 + denali_nand_timing_set(denali);
  1378 + denali_irq_init(denali);
1379 1379 }
1380 1380  
1381 1381 /* Althogh controller spec said SLC ECC is forceb to be 4bit,
... ... @@ -1501,6 +1501,7 @@
1501 1501  
1502 1502 pci_set_master(dev);
1503 1503 denali->dev = dev;
  1504 + denali->mtd.dev.parent = &dev->dev;
1504 1505  
1505 1506 ret = pci_request_regions(dev, DENALI_NAND_NAME);
1506 1507 if (ret) {
... ... @@ -1525,6 +1526,8 @@
1525 1526 denali_hw_init(denali);
1526 1527 denali_drv_init(denali);
1527 1528  
  1529 + /* denali_isr register is done after all the hardware
  1530 + * initilization is finished*/
1528 1531 if (request_irq(dev->irq, denali_isr, IRQF_SHARED,
1529 1532 DENALI_NAND_NAME, denali)) {
1530 1533 printk(KERN_ERR "Spectra: Unable to allocate IRQ\n");
... ... @@ -1537,9 +1540,7 @@
1537 1540  
1538 1541 pci_set_drvdata(dev, denali);
1539 1542  
1540   - denali_nand_timing_set(denali);
1541   -
1542   - denali->mtd.name = "Denali NAND";
  1543 + denali->mtd.name = "denali-nand";
1543 1544 denali->mtd.owner = THIS_MODULE;
1544 1545 denali->mtd.priv = &denali->nand;
1545 1546