spectra: enable device before poking it
PATCH 1/1 spectra: enable device before poking it
From: Alan Cox <[email protected]>
Otherwise if it is off at boot time things don't go to plan.
Signed-off-by Alan Cox <[email protected]>
---
drivers/staging/spectra/lld_nand.c | 18 ++++++++++-------- 1 files changed, 10 insertions(+), 8 deletions(-)
drivers/staging/spectra/lld_nand.c +10 -8
@@ -2397,6 +2397,12 @@ static int nand_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)struct mrst_nand_info *pndev = &info;u32 int_mask; + ret =pci_enable_device (dev); +if (ret) { +printk (KERN_ERR "Spectra: pci_enable_device failed.\n" ); +return ret; + } +nand_dbg_print (NAND_DBG_WARN ,"%s, Line %d, Function: %s\n" , __FILE__, __LINE__, __func__);
@@ -2404,7 +2410,7 @@ static int nand_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) GLOB_HWCTL_REG_SIZE);if (!FlashReg) {printk (KERN_ERR "Spectra: ioremap_nocache failed!" ); -return -ENOMEM ; + goto failed_disable; }nand_dbg_print (NAND_DBG_WARN , "Spectra: Remapped reg base address: "
@@ -2416,7 +2422,7 @@ static int nand_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)if (!FlashMem) {printk (KERN_ERR "Spectra: ioremap_nocache failed!" );iounmap (FlashReg); -return -ENOMEM ; + goto failed_disable; }nand_dbg_print (NAND_DBG_WARN , "Spectra: Remapped flash base address: "
@@ -2479,11 +2485,6 @@ static int nand_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)iowrite32 (0 , FlashReg +TWO_ROW_ADDR_CYCLES );iowrite32 (1 , FlashReg +ECC_ENABLE ); enable_ecc =1 ; - ret =pci_enable_device (dev); -if (ret) { -printk (KERN_ERR "Spectra: pci_enable_device failed.\n" ); - goto failed_req_csr; - }pci_set_master (dev); pndev->dev = dev;
@@ -2558,9 +2559,10 @@ static int nand_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) failed_remap_csr:pci_release_regions (dev); failed_req_csr: -pci_disable_device (dev);iounmap (FlashMem);iounmap (FlashReg); +failed_disable: +pci_disable_device (dev);return ret; }