@ -2328,6 +2328,31 @@ static int mmc_test_profile_sglen_r_nonblock_perf(struct mmc_test_card *test)
return mmc_test_rw_multiple_sg_len ( test , & test_data ) ;
}
/*
* eMMC hardware reset .
*/
static int mmc_test_hw_reset ( struct mmc_test_card * test )
{
struct mmc_card * card = test - > card ;
struct mmc_host * host = card - > host ;
int err ;
err = mmc_hw_reset_check ( host ) ;
if ( ! err )
return RESULT_OK ;
if ( err = = - ENOSYS )
return RESULT_FAIL ;
if ( err ! = - EOPNOTSUPP )
return err ;
if ( ! mmc_can_reset ( card ) )
return RESULT_UNSUP_CARD ;
return RESULT_UNSUP_HOST ;
}
static const struct mmc_test_case mmc_test_cases [ ] = {
{
. name = " Basic write (no data verification) " ,
@ -2650,6 +2675,11 @@ static const struct mmc_test_case mmc_test_cases[] = {
. run = mmc_test_profile_sglen_r_nonblock_perf ,
. cleanup = mmc_test_area_cleanup ,
} ,
{
. name = " eMMC hardware reset " ,
. run = mmc_test_hw_reset ,
} ,
} ;
static DEFINE_MUTEX ( mmc_test_lock ) ;