Patent ID: 8677218

Claim:
A method, comprising: deciding whether to adjust data associated with a decoder, wherein: deciding whether to adjust the data associated with the decoder includes one or more of the following: using a schedule, using a defect detector configured to detect defects using a finite impulse response (FIR) signal, or using a set of one or more programmable registers; and the defect detector is configured to detect deep defects based at least in part on one or more of the following: a run of 0's, a run of 1's or a Nyquist pattern; in the event it is decided to adjust the data associated with the decoder: adjusting the data to obtain adjusted data, including by: sorting, based on length, a list which includes any detected runs of 0's, any detected runs of 1's and any detected Nyquist patterns; during a first iteration: (1) adjusting data corresponding to that defect in the sorted list having the longest length; and (2) not adjusting data corresponding to all other defects, if any, in the sorted list; and during a second iteration subsequent to the first iteration: (1) adjusting data corresponding to those defects in the sorted list having the longest length and the second longest length; and (2) not adjusting data corresponding to all other defects, if any, in the sorted list; and performing decoding using the decoder and the adjusted data; and in the event it is decided to not adjust the data associated with the decoder, performing decoding using the decoder and the data associated with the decoder.