Changeset 1620


Ignore:
Timestamp:
02/19/10 19:53:18 (11 years ago)
Author:
landlord
Message:

Speed up ATR fetching for SH4 by removing unneccesary code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/csctapi/ifd_sci.c

    r1584 r1620  
    4040    int n = 0;
    4141    SCI_PARAMETERS params;
    42 #ifdef SH4
    43     struct timeval tv, tv_spent;
    44     int atr_size = 2, TDi_exists = 0;
    45 #endif
    4642   
    4743    memset(&params,0,sizeof(SCI_PARAMETERS));
     
    4945    params.ETU = 372;
    5046    params.EGT = 3; //not sure why this value is chosen
    51 #ifdef SH4     
    52     params.fs = 9; //not sure why this value is chosen
    53 #else
    5447    params.fs = 5;
    55 #endif
    5648    params.T = 0;
    5749   
     
    5951    call (ioctl(reader[ridx].handle, IOCTL_SET_RESET)<0);
    6052
    61 #ifdef SH4
    62     gettimeofday(&tv,0);
    63     memcpy(&tv_spent,&tv,sizeof(struct timeval));
    64 
    65     while(n<atr_size && (tv_spent.tv_sec-tv.tv_sec)<10)
    66         {
    67         if(!IO_Serial_Read(ATR_TIMEOUT, 1, buf+n))
    68             n++;
    69         gettimeofday(&tv_spent,0);
    70         if(n==2) // format character
    71         {
    72             // high nibble = TA1 , TB1 , TC1 , TD1
    73             if(buf[n-1] & 0x10)
    74                 atr_size++;
    75             if(buf[n-1] & 0x20)
    76                 atr_size++;
    77             if(buf[n-1] & 0x40)
    78                 atr_size++;
    79             if(buf[n-1] & 0x80)
    80             {
    81                 atr_size++;
    82                 TDi_exists=atr_size;
    83             }
    84             atr_size+=(buf[n-1] & 0x0F); // historical bytes
    85         }
    86         if( (TDi_exists>0) && (n==TDi_exists) )
    87         {
    88             TDi_exists=0;
    89             // high nibble = TA1 , TB1 , TC1 , TD1
    90             if(buf[n-1] & 0x10)
    91                 atr_size++;
    92             if(buf[n-1] & 0x20)
    93                 atr_size++;
    94             if(buf[n-1] & 0x40)
    95                 atr_size++;
    96             if(buf[n-1] & 0x80)
    97             {
    98                 atr_size++;
    99                 TDi_exists=atr_size;
    100             }
    101         }
    102     }           
    103 #else
    10453    while(n<SCI_MAX_ATR_SIZE && !IO_Serial_Read(ATR_TIMEOUT, 1, buf+n))
    10554    {
     
    10958    if ((buf[0] !=0x3B) && (buf[0] != 0x3F) && (n>9 && !memcmp(buf+4, "IRDETO", 6))) //irdeto S02 reports FD as first byte on dreambox SCI, not sure about SH4 or phoenix
    11059        buf[0] = 0x3B;
    111 #endif
    11260   
    11361    if(n==0) {
Note: See TracChangeset for help on using the changeset viewer.