|
@@ -743,7 +743,7 @@ static const struct mmc_test_case mmc_test_cases[] = {
|
|
|
|
|
|
static struct mutex mmc_test_lock;
|
|
static struct mutex mmc_test_lock;
|
|
|
|
|
|
-static void mmc_test_run(struct mmc_test_card *test)
|
|
|
|
|
|
+static void mmc_test_run(struct mmc_test_card *test, int testcase)
|
|
{
|
|
{
|
|
int i, ret;
|
|
int i, ret;
|
|
|
|
|
|
@@ -753,6 +753,9 @@ static void mmc_test_run(struct mmc_test_card *test)
|
|
mmc_claim_host(test->card->host);
|
|
mmc_claim_host(test->card->host);
|
|
|
|
|
|
for (i = 0;i < ARRAY_SIZE(mmc_test_cases);i++) {
|
|
for (i = 0;i < ARRAY_SIZE(mmc_test_cases);i++) {
|
|
|
|
+ if (testcase && ((i + 1) != testcase))
|
|
|
|
+ continue;
|
|
|
|
+
|
|
printk(KERN_INFO "%s: Test case %d. %s...\n",
|
|
printk(KERN_INFO "%s: Test case %d. %s...\n",
|
|
mmc_hostname(test->card->host), i + 1,
|
|
mmc_hostname(test->card->host), i + 1,
|
|
mmc_test_cases[i].name);
|
|
mmc_test_cases[i].name);
|
|
@@ -824,9 +827,12 @@ static ssize_t mmc_test_store(struct device *dev,
|
|
{
|
|
{
|
|
struct mmc_card *card;
|
|
struct mmc_card *card;
|
|
struct mmc_test_card *test;
|
|
struct mmc_test_card *test;
|
|
|
|
+ int testcase;
|
|
|
|
|
|
card = container_of(dev, struct mmc_card, dev);
|
|
card = container_of(dev, struct mmc_card, dev);
|
|
|
|
|
|
|
|
+ testcase = simple_strtol(buf, NULL, 10);
|
|
|
|
+
|
|
test = kzalloc(sizeof(struct mmc_test_card), GFP_KERNEL);
|
|
test = kzalloc(sizeof(struct mmc_test_card), GFP_KERNEL);
|
|
if (!test)
|
|
if (!test)
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
@@ -836,7 +842,7 @@ static ssize_t mmc_test_store(struct device *dev,
|
|
test->buffer = kzalloc(BUFFER_SIZE, GFP_KERNEL);
|
|
test->buffer = kzalloc(BUFFER_SIZE, GFP_KERNEL);
|
|
if (test->buffer) {
|
|
if (test->buffer) {
|
|
mutex_lock(&mmc_test_lock);
|
|
mutex_lock(&mmc_test_lock);
|
|
- mmc_test_run(test);
|
|
|
|
|
|
+ mmc_test_run(test, testcase);
|
|
mutex_unlock(&mmc_test_lock);
|
|
mutex_unlock(&mmc_test_lock);
|
|
}
|
|
}
|
|
|
|
|