spi: show spi test time and data rate after test
authorHuibin Hong <huibin.hong@rock-chips.com>
Thu, 19 Mar 2015 09:56:59 +0000 (17:56 +0800)
committerHuibin Hong <huibin.hong@rock-chips.com>
Thu, 19 Mar 2015 09:56:59 +0000 (17:56 +0800)
Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
drivers/spi/spi-rockchip-test.c

index 58411e4279ace097f137797dcba55751952e8075..0dfca6766764e270a62ce726ef5afc58bcd4081f 100755 (executable)
@@ -43,6 +43,8 @@ struct spi_test_data {
 };\r
 \r
 static struct spi_test_data *g_spi_test_data[MAX_SPI_DEV_NUM];\r
+ktime_t ktime_get(void);\r
+ktime_t k1,k2;\r
 \r
 \r
 static ssize_t spi_test_write(struct file *file, \r
@@ -80,7 +82,7 @@ static ssize_t spi_test_write(struct file *file,
        }\r
 \r
        spi = g_spi_test_data[nr]->spi;\r
-\r
+       k1 = ktime_get();\r
        for(i=0; i<5000; i++)\r
        {\r
                ret = spi_write(spi, txbuf, 256);\r
@@ -91,9 +93,10 @@ static ssize_t spi_test_write(struct file *file,
                if(i%500==0)\r
                printk("%s:test %d times\n\n",__func__,i+1);\r
        }\r
-       \r
+       k2 = ktime_get();\r
+       k2 = ktime_sub(k2, k1);\r
        if(!ret)\r
-       printk("%s:bus_num=%d,chip_select=%d,ok\n",__func__,spi->master->bus_num, spi->chip_select);\r
+       printk("%s:bus_num=%d,chip_select=%d,ok cost:%dus data rate:%d Kbits/s\n",__func__,spi->master->bus_num, spi->chip_select, ktime_to_us(k2), 1536*5000*8/ktime_to_ms(k2));\r
        else\r
        printk("%s:bus_num=%d,chip_select=%d,error\n",__func__,spi->master->bus_num, spi->chip_select);\r
        \r
@@ -159,8 +162,8 @@ static int rockchip_spi_test_probe(struct spi_device *spi)
 {      \r
        int ret;\r
        int id = 0;\r
-       static struct dw_spi_chip *spi_chip_data;\r
-       struct spi_test_data *spi_test_data;\r
+       struct dw_spi_chip *spi_chip_data = NULL;\r
+       struct spi_test_data *spi_test_data = NULL;\r
        \r
        if(!spi)        \r
        return -ENOMEM;\r