@ -49,7 +49,60 @@ int board_mmc_getcd(u8 *cd, struct mmc *mmc)__attribute__((weak,
int mmc_send_cmd ( struct mmc * mmc , struct mmc_cmd * cmd , struct mmc_data * data )
{
# ifdef CONFIG_MMC_TRACE
int ret ;
int i ;
u8 * ptr ;
printf ( " CMD_SEND:%d \n " , cmd - > cmdidx ) ;
printf ( " \t \t ARG \t \t \t 0x%08X \n " , cmd - > cmdarg ) ;
printf ( " \t \t FLAG \t \t \t %d \n " , cmd - > flags ) ;
ret = mmc - > send_cmd ( mmc , cmd , data ) ;
switch ( cmd - > resp_type ) {
case MMC_RSP_NONE :
printf ( " \t \t MMC_RSP_NONE \n " ) ;
break ;
case MMC_RSP_R1 :
printf ( " \t \t MMC_RSP_R1,5,6,7 \t 0x%08X \n " ,
cmd - > response [ 0 ] ) ;
break ;
case MMC_RSP_R1b :
printf ( " \t \t MMC_RSP_R1b \t \t 0x%08X \n " ,
cmd - > response [ 0 ] ) ;
break ;
case MMC_RSP_R2 :
printf ( " \t \t MMC_RSP_R2 \t \t 0x%08X \n " ,
cmd - > response [ 0 ] ) ;
printf ( " \t \t \t \t 0x%08X \n " ,
cmd - > response [ 1 ] ) ;
printf ( " \t \t \t \t 0x%08X \n " ,
cmd - > response [ 2 ] ) ;
printf ( " \t \t \t \t 0x%08X \n " ,
cmd - > response [ 3 ] ) ;
printf ( " \n " ) ;
printf ( " \t \t \t \t \t DUMPING DATA \n " ) ;
for ( i = 0 ; i < 4 ; i + + ) {
int j ;
printf ( " \t \t \t \t \t %03d - " , i * 4 ) ;
ptr = & cmd - > response [ i ] ;
ptr + = 3 ;
for ( j = 0 ; j < 4 ; j + + )
printf ( " %02X " , * ptr - - ) ;
printf ( " \n " ) ;
}
break ;
case MMC_RSP_R3 :
printf ( " \t \t MMC_RSP_R3,4 \t \t 0x%08X \n " ,
cmd - > response [ 0 ] ) ;
break ;
default :
printf ( " \t \t ERROR MMC rsp not supported \n " ) ;
break ;
}
return ret ;
# else
return mmc - > send_cmd ( mmc , cmd , data ) ;
# endif
}
int mmc_send_status ( struct mmc * mmc , int timeout )
@ -80,6 +133,10 @@ int mmc_send_status(struct mmc *mmc, int timeout)
}
} while ( timeout - - ) ;
# ifdef CONFIG_MMC_TRACE
status = ( cmd . response [ 0 ] & MMC_STATUS_CURR_STATE ) > > 9 ;
printf ( " CURR STATE:%d \n " , status ) ;
# endif
if ( ! timeout ) {
printf ( " Timeout waiting card ready \n " ) ;
return TIMEOUT ;