On 5/16/2012 10:24 PM, Scott Wood wrote:
On 05/16/2012 07:06 AM, Amit Virdi wrote:
+               if ((bits_ecc + bits_data)<= 8) {
+                       if (bits_data)
+                               memset(dat, 0xff, 512);
+                       return bits_data;

return bits_data + bits_ecc;


Ok.

+       i = 0;
+       while (num_err--) {
+               change_bit(0,&err_idx[i]);
+               change_bit(1,&err_idx[i]);

Where is change_bit defined?  I see __change_bit in
arch/arm/include/asm/bitops.h, but change_bit is defined as an extern

change_bit is defined in this patchset.

prototype.  In Linux change_bit (without the __) is defined as an atomic
operation, which probably isn't appropriate here.


Yes, as the interrupts are not enabled in the u-boot so this has virtually no effect. So effectively, I need to use __change_bit here.

Since __change_bit was not exported so we defined a wrapper "change_bit" to use it. Any other suggestion?

These two in particular could just be err_idx[i] ^= 3, right?


Correct. I'll take it.

+               if (err_idx[i]<  512 * 8) {
+                       change_bit(err_idx[i], dat);
+                       i++;
+               }

Increment i unconditionally.


Yeah, you are correct. Thanks for your inputs.


Regards
Amit Virdi
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to