This coding style error was detected using the checkpatch.pl script
Signed-off-by: Gary Servin <garyservin@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This patch replace some magic numbers. I believe it makes
the driver more readable.
The magic number 0x26 is the XO system embedded controller
(EC) command 'DCON power enable/disable'.
Number 0x41, and 0x42 are special memory controller settings
register. The 0x41 initialize bit sequence 0x101 means:
enable memory power down function and special SDRAM clock
delay for synchronize SDRAM output and clock signal.
The 0x42 initialize squence 0x101 is wrong. According to
the specification Bit 8 is reserved, thus not in use.
I removed it.
Signed-off-by: Jens Frederich <jfrederich@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Previously we registered a notifier block to inform us of any framebuffer
device changes; if the screen was blanked or unblanked, we'd put the DCON
to sleep or wake it up.
Turns out that the backlight code registers a notifier block as well
and calls the update_status hook, so we can just use that to put the DCON
to sleep. For those status updates where the blanking isn't changed,
dcon_sleep will do nothing.
Signed-off-by: Andres Salomon <dilinger@queued.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Another global variable (dcon_wait_queue) moved into the dcon_priv struct.
In the process, replace an instance of a manually implemented
wait_event_timeout. This code came from Jordan's original gxfb_dcon.c
driver waaaay back in 2006; well past time for a replacement.
Signed-off-by: Andres Salomon <dilinger@queued.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Change ->read_status() by separating the error handling and the
status bits. This also fixes a signedness bug in dcon_interrupt()
that would break the error handling.
Signed-off-by: Xi Wang <xi.wang@gmail.com>
Acked-by: Andres Salomon <dilinger@queued.net>
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
- Move bl_val and bl_dev into dcon_priv struct....
- The only time we ever read the backlight val from the dcon is
at probe time. Rather than calling dcon_get_backlight for that, just
read from the register.
- Drop dcon_get_backlight; it's just returning dcon->bl_val.
- Rename dcon_set_backlight_hw to dcon_set_backlight, and drop the
old dcon_set_backlight function. Move contents of old dcon_set_backlight
function into dconbl_set.
- Shuffle backlight_ops callbacks around to be closer to struct, and
rename them.
- Make use of new backlight_properties arg to backlight_device_register,
drop old code that set this manually.
Signed-off-by: Andres Salomon <dilinger@queued.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Global variables dcon_switched, dcon_irq_time, and dcon_load_time can all be moved
into the dcon_priv struct now that dcon_interrupt has access to dcon_priv.
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This moves dcon_source and dcon_pending into the dcon_priv struct.
Because these variables are used by the IRQ handler (which is
registered in the model-specific callbacks), we end up needing
to move dcon_priv into olpc_dcon.h. This also changes the IRQ
registration to use the dcon_priv pointer as dev_id, instead of
dcon_driver.
Signed-off-by: Andres Salomon <dilinger@queued.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This adds CONFIG_FB_OLPC_DCON_1 and CONFIG_FB_OLPC_DCON_1_5 options for
allowing selection of XO-1 and/or XO-1.5 DCON support. In the process,
it also forces the xo_1.c and xo_1_5.c files to build as separate units,
correctly selects between XO-1 and XO-1.5 at runtime, and adds some
hacks to allow xo_1_5.c to build.
This isn't the cleanest patch, but it'll get better as more global
variables are dropped.
Signed-off-by: Andres Salomon <dilinger@queued.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Global variables for display mode and the current sleep state
can go into dcon_priv as well.
Signed-off-by: Andres Salomon <dilinger@queued.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
..and store it in dcon_priv. This renames it to 'monochrome',
which I think is much clearer. Previously, "echo 1 > output"
toggled mono mode, while "echo 0 > output" enabled color.
"Echo 1 > monochrome" makes more sense to me.
Signed-off-by: Andres Salomon <dilinger@queued.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Drop the old geode_gpio crud, as well as the raw outl() calls; instead,
use the Linux GPIO API where possible, and the cs5535_gpio API in other
places.
Note that we don't actually clean up the driver properly yet (once loaded,
it always remains loaded). That'll come later..
This patch is necessary for building the driver.
Signed-off-by: Andres Salomon <dilinger@queued.net>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This adds DCON support for the OLPC XO. The DCON is found in XO-1 and
XO-1.5 hardware. The XO-1 has a CS5536 southbridge, while the XO-1.5
has a Via chipset; the GPIO magic that's necessary to communicate with
the DCON chip is unfortunately different across both platforms. This
driver supports both.
This driver is in bad state atm, so I'm requesting its inclusion into
staging so it can be cleaned up while staying in the kernel tree.
Original driver by Dave Woodhouse, and modified extensively by
Jordan Crouse, myself, Deepak Saxena, Paul Fox, Daniel Drake, and
probably others that I've missed.
Signed-off-by: Andres Salomon <dilinger@queued.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>