ARM64: DTS: Fix Firefly board audio driver
[firefly-linux-kernel-4.4.55.git] / drivers / nvme / host / pci.c
index c851bc53831c1267c0cccab074e5cd141b1d5825..4cbc1807edfc3175417051eea08fdc66a3a6697d 100644 (file)
@@ -1633,10 +1633,15 @@ static int nvme_wait_ready(struct nvme_dev *dev, u64 cap, bool enabled)
  */
 static int nvme_disable_ctrl(struct nvme_dev *dev, u64 cap)
 {
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
+
        dev->ctrl_config &= ~NVME_CC_SHN_MASK;
        dev->ctrl_config &= ~NVME_CC_ENABLE;
        writel(dev->ctrl_config, &dev->bar->cc);
 
+       if (pdev->vendor == 0x1c58 && pdev->device == 0x0003)
+               msleep(NVME_QUIRK_DELAY_AMOUNT);
+
        return nvme_wait_ready(dev, cap, false);
 }
 
@@ -2217,8 +2222,8 @@ static int nvme_kthread(void *data)
                                                        csts & NVME_CSTS_CFS) {
                                if (!__nvme_reset(dev)) {
                                        dev_warn(dev->dev,
-                                               "Failed status: %x, reset controller\n",
-                                               readl(&dev->bar->csts));
+                                               "Failed status: 0x%x, reset controller\n",
+                                               csts);
                                }
                                continue;
                        }
@@ -2290,6 +2295,13 @@ static void nvme_alloc_ns(struct nvme_dev *dev, unsigned nsid)
        disk->queue = ns->queue;
        disk->driverfs_dev = dev->device;
        disk->flags = GENHD_FL_EXT_DEVT;
+#ifdef CONFIG_ARCH_ROCKCHIP
+       disk->is_rk_disk = true;
+#else
+       disk->is_rk_disk = false;
+#endif
+
+       disk->is_rk_disk = false;
        sprintf(disk->disk_name, "nvme%dn%d", dev->instance, nsid);
 
        /*