Revision e7e11d8ba807d451857b5c68abe249c7fc2b980f authored by Alexander Stein on 29 May 2012, 22:07:30 UTC, committed by Linus Torvalds on 29 May 2012, 23:22:32 UTC
When issuing the following command:

  for I in 0 1 2 3 4 5 6 7; do
    echo 0 > /sys/class/leds/pca955x\:${I}/brightness;
  done

It is possible that all the pca955x_read_ls calls are done sequentially
before any pca955x_write_ls call is done.  This updates the LS only to
the last LED update in its set.

Fix this by using a global lock for the pca995x device during
pca955x_led_work.  Also used a struct for shared data betreen all LEDs.

[akpm@linux-foundation.org: revert unintentional rename of pca955x_ledsel()]
Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com>
Cc: Richard Purdie <rpurdie@rpsys.net>
Cc: Bryan Wu <bryan.wu@canonical.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 44e1e9f
Raw File
memory.txt
There are several classic problems related to memory on Linux
systems.

	1) There are some motherboards that will not cache above
	   a certain quantity of memory.  If you have one of these
	   motherboards, your system will be SLOWER, not faster
	   as you add more memory.  Consider exchanging your 
           motherboard.

All of these problems can be addressed with the "mem=XXXM" boot option
(where XXX is the size of RAM to use in megabytes).  
It can also tell Linux to use less memory than is actually installed.
If you use "mem=" on a machine with PCI, consider using "memmap=" to avoid
physical address space collisions.

See the documentation of your boot loader (LILO, grub, loadlin, etc.) about
how to pass options to the kernel.

There are other memory problems which Linux cannot deal with.  Random
corruption of memory is usually a sign of serious hardware trouble.
Try:

	* Reducing memory settings in the BIOS to the most conservative 
          timings.

	* Adding a cooling fan.

	* Not overclocking your CPU.

	* Having the memory tested in a memory tester or exchanged
	  with the vendor. Consider testing it with memtest86 yourself.
	
	* Exchanging your CPU, cache, or motherboard for one that works.
back to top