@ -1480,7 +1480,16 @@ static int sdr_nonworking_phase(uint32_t *grp, uint32_t *bit_chk,
}
}
static int sdr_find_window_centre ( const u32 grp , const u32 work_bgn ,
/**
* sdr_find_window_center ( ) - Find center of the working DQS window .
* @ grp : Read / Write group
* @ work_bgn : First working settings
* @ work_end : Last working settings
* @ val : VFIFO value
*
* Find center of the working DQS enable window .
*/
static int sdr_find_window_center ( const u32 grp , const u32 work_bgn ,
const u32 work_end , const u32 val )
{
u32 bit_chk , work_mid , v = val ;
@ -1525,23 +1534,19 @@ static int sdr_find_window_centre(const u32 grp, const u32 work_bgn,
if ( rw_mgr_mem_calibrate_read_test_all_ranks ( grp , 1 ,
PASS_ONE_BIT ,
& bit_chk , 0 ) ) {
break ;
debug_cond ( DLEVEL = = 2 ,
" %s:%d center: found: vfifo=%u ptap=%u dtap=%u \n " ,
__func__ , __LINE__ , v , p , d ) ;
return 0 ;
}
/* fiddle with FIFO */
/* Fiddle with FIFO. */
rw_mgr_incr_vfifo ( grp , & v ) ;
}
if ( i > = VFIFO_SIZE ) {
debug_cond ( DLEVEL = = 2 , " %s:%d center: failed. \n " ,
__func__ , __LINE__ ) ;
return 0 ;
} else {
debug_cond ( DLEVEL = = 2 ,
" %s:%d center: found: vfifo=%u ptap=%u dtap=%u \n " ,
__func__ , __LINE__ , v , p , d ) ;
return 1 ;
}
debug_cond ( DLEVEL = = 2 , " %s:%d center: failed. \n " ,
__func__ , __LINE__ ) ;
return - EINVAL ;
}
/* find a good dqs enable to use */
@ -1759,8 +1764,8 @@ static uint32_t rw_mgr_mem_calibrate_vfifo_find_dqs_en_phase(uint32_t grp)
/* ******************************************** */
/* * step 6: Find the centre of the window * */
if ( sdr_find_window_centre ( grp , work_bgn , work_end , v ) = = 0 )
return 0 ;
if ( sdr_find_window_centre ( grp , work_bgn , work_end , v ) )
return 0 ; /* FIXME: Old code, return 0 means failure :-( */
return 1 ;
}