Merge branch 'lsk-v4.4-eas-v5.2' of git://git.linaro.org/arm/eas/kernel.git
[firefly-linux-kernel-4.4.55.git] / drivers / mmc / core / debugfs.c
index 35c2f85b1956ead16a75673d6e29e0aa137aaaed..164da9e6b0e81d66b77e8ebe292f169a6ec52990 100644 (file)
@@ -126,6 +126,12 @@ static int mmc_ios_show(struct seq_file *s, void *data)
        case MMC_TIMING_SD_HS:
                str = "sd high-speed";
                break;
+       case MMC_TIMING_UHS_SDR12:
+               str = "sd uhs SDR12";
+               break;
+       case MMC_TIMING_UHS_SDR25:
+               str = "sd uhs SDR25";
+               break;
        case MMC_TIMING_UHS_SDR50:
                str = "sd uhs SDR50";
                break;
@@ -135,8 +141,15 @@ static int mmc_ios_show(struct seq_file *s, void *data)
        case MMC_TIMING_UHS_DDR50:
                str = "sd uhs DDR50";
                break;
+       case MMC_TIMING_MMC_DDR52:
+               str = "mmc DDR52";
+               break;
        case MMC_TIMING_MMC_HS200:
-               str = "mmc high-speed SDR200";
+               str = "mmc HS200";
+               break;
+       case MMC_TIMING_MMC_HS400:
+               str = mmc_card_hs400es(host->card) ?
+               "mmc HS400 enhanced strobe" : "mmc HS400";
                break;
        default:
                str = "invalid";
@@ -160,6 +173,25 @@ static int mmc_ios_show(struct seq_file *s, void *data)
        }
        seq_printf(s, "signal voltage:\t%u (%s)\n", ios->chip_select, str);
 
+       switch (ios->drv_type) {
+       case MMC_SET_DRIVER_TYPE_A:
+               str = "driver type A";
+               break;
+       case MMC_SET_DRIVER_TYPE_B:
+               str = "driver type B";
+               break;
+       case MMC_SET_DRIVER_TYPE_C:
+               str = "driver type C";
+               break;
+       case MMC_SET_DRIVER_TYPE_D:
+               str = "driver type D";
+               break;
+       default:
+               str = "invalid";
+               break;
+       }
+       seq_printf(s, "driver type:\t%u (%s)\n", ios->drv_type, str);
+
        return 0;
 }
 
@@ -224,11 +256,6 @@ void mmc_add_host_debugfs(struct mmc_host *host)
                        &mmc_clock_fops))
                goto err_node;
 
-#ifdef CONFIG_MMC_CLKGATE
-       if (!debugfs_create_u32("clk_delay", (S_IRUSR | S_IWUSR),
-                               root, &host->clk_delay))
-               goto err_node;
-#endif
 #ifdef CONFIG_FAIL_MMC_REQUEST
        if (fail_request)
                setup_fault_attr(&fail_default_attr, fail_request);
@@ -258,13 +285,13 @@ static int mmc_dbg_card_status_get(void *data, u64 *val)
        u32             status;
        int             ret;
 
-       mmc_claim_host(card->host);
+       mmc_get_card(card);
 
        ret = mmc_send_status(data, &status);
        if (!ret)
                *val = status;
 
-       mmc_release_host(card->host);
+       mmc_put_card(card);
 
        return ret;
 }
@@ -285,15 +312,9 @@ static int mmc_ext_csd_open(struct inode *inode, struct file *filp)
        if (!buf)
                return -ENOMEM;
 
-       ext_csd = kmalloc(512, GFP_KERNEL);
-       if (!ext_csd) {
-               err = -ENOMEM;
-               goto out_free;
-       }
-
-       mmc_claim_host(card->host);
-       err = mmc_send_ext_csd(card, ext_csd);
-       mmc_release_host(card->host);
+       mmc_get_card(card);
+       err = mmc_get_ext_csd(card, &ext_csd);
+       mmc_put_card(card);
        if (err)
                goto out_free;
 
@@ -308,7 +329,6 @@ static int mmc_ext_csd_open(struct inode *inode, struct file *filp)
 
 out_free:
        kfree(buf);
-       kfree(ext_csd);
        return err;
 }