Lines Matching full:setting

24  * setting range can be acked or unacked. And the setting range may merge,
27 * more complicated when the setting range covers multiple already set bad block
32 * for setting a large range of bad blocks, we can handle it by dividing the
39 * When setting a range of bad blocks to the bad table, the simplified situations
41 * prefix E, and the setting bad blocks range is naming with prefix S)
43 * 1) A setting range is not overlapped or adjacent to any other already set bad
52 * free slot from the bad blocks table to mark the setting range S. The
57 * 2) A setting range starts exactly at a start LBA of an already set bad blocks
59 * 2.1) The setting range size < already set range size
66 * 2.1.1) If S and E are both acked or unacked range, the setting range S can
71 * 2.1.2) If S is unacked setting and E is acked, the setting will be denied, and
76 * 2.1.3) If S is acked setting and E is unacked, range S can overwrite on E.
82 * 2.2) The setting range size == already set range size
83 * 2.2.1) If S and E are both acked or unacked range, the setting range S can
88 * 2.2.2) If S is unacked setting and E is acked, the setting will be denied, and
93 * 2.2.3) If S is acked setting and E is unacked, range S can overwrite all of
98 * 2.3) The setting range size > already set range size
105 * For such situation, the setting range S can be treated as two parts, the
107 * part (S2) is the rest of setting range.
114 * Now we only focus on how to handle the setting range S1 and already set
117 * 3) A setting range starts before the start LBA of an already set bad blocks
125 * For this situation, the setting range S can be divided into two parts, the
138 * 4) A setting range starts after the start LBA of an already set bad blocks
140 * 4.1) If the setting range S exactly matches the tail part of already set bad
153 * 4.1.2) If range E is acked and the setting range S is unacked, the setting
158 * 4.1.3) If range E is unacked, and the setting range S is acked, then S may
163 * 4.2) If the setting range S stays in middle of an already set range E, like
176 * 4.2.2) If range E is acked and the setting range S is unacked, the setting
181 * 4.2.3) If range E is unacked, and the setting range S is acked, then S will
187 * 4.3) If the setting bad blocks range S is overlapped with an already set bad
205 * Now in this loop the setting range S1 and already set range E can be
208 * 5) A setting bad blocks range S is adjacent to one or more already set bad
210 * 5.1) Front merge: If the already set bad blocks range E is before setting
219 * values are same, the setting range S can front merges into range E. The
224 * 5.1.2) Otherwise these two ranges cannot merge, just insert the setting
240 * first part of setting range S will fail because no more available slot
242 * setting method should be go though all the setting bad blocks range and
245 * setting bad blocks ranges as many as possible.
261 * origin setting range S. Now the setting range S3 can be inserted into the
266 * to merge into a larger range. The setting bad blocks range S is acked,
290 * 6.3) Behind merge: If the already set bad blocks range E is behind the setting
293 * tail, except for the tail part of range S. When the setting range S are
303 * For the above special situation, when the setting range S are all handled
307 * values are same, the setting range S can behind merges into range E. The
312 * 6.3.2) Otherwise these two ranges cannot merge, just insert the setting range
320 * the bad block range setting conditions. Maybe there is some rare corner case
326 * which starts before or at current setting range. Since the setting bad blocks
336 * setting does, but much more simpler. The only thing needs to be noticed is
353 * 2) The clearing range hits middle of an already setting bad blocks range in
448 * while-loop. The idea is similar to bad blocks range setting but much
1338 * false: failed to set badblocks (out of space). Parital setting will be