Commit graph

14 commits

Author SHA1 Message Date
Gary Servin 5556734959 staging: olpc_dcon: Trivial: Remove space before indentation.
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>
2014-02-07 10:35:30 -08:00
Jens Frederich 9467d11b0d Staging: olpc_dcon: fix typo in olpc_dcon.h
The backlight brightness register (DCON_REG_BRIGHT) address is 0xa.

Signed-off-by: Jens Frederich <jfrederich@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-08-19 15:29:23 -07:00
Jens Frederich 98d4f93c79 Staging: olpc_dcon: replace some magic numbers
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>
2013-08-15 17:22:27 -07:00
Andres Salomon 20b27c61b7 staging/olpc_dcon: drop fb_notifier code
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>
2012-10-22 11:39:21 -07:00
Andres Salomon c40f20da3b staging/olpc_dcon: move wait queue into dcon_priv struct
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>
2012-10-22 11:39:21 -07:00
Xi Wang 91762057f4 staging: olpc_dcon: ->read_status() API change
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>
2011-12-08 15:00:43 -08:00
Andres Salomon c59eef17f1 staging: olpc_dcon: clean up backlight handling
- 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>
2011-02-18 12:33:21 -08:00
Andres Salomon 309ef2a25e staging: olpc_dcon: move more global variables into dcon_priv
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>
2011-02-18 12:33:21 -08:00
Andres Salomon bbe963f1b9 staging: olpc_dcon: move more variables into dcon_priv
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>
2011-02-18 12:33:21 -08:00
Andres Salomon 097cd83a4c staging: olpc_dcon: add config options for XO_1 and XO_1_5, drop hardcoded XO-1 stuff
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>
2011-02-18 12:33:21 -08:00
Andres Salomon bada46e5ab staging: olpc_dcon: move more variables into dcon_priv
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>
2011-02-09 12:11:54 -08:00
Andres Salomon bb4103544e staging: olpc_dcon: change sysfs 'output' toggle to be clearer...
..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>
2011-02-09 12:11:54 -08:00
Andres Salomon 7637c9259f drivers/staging/olpc_dcon: convert to new cs5535 gpio API
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>
2011-01-13 08:03:13 -08:00
Andres Salomon eecb3e4e5d staging: olpc_dcon: add OLPC display controller (DCON) support
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>
2010-09-29 18:01:40 -07:00