25 Jul, 2008
2 commits
-
Simply enabling DAC blanking without turning off the CRT seems to be resulting
in characters remaining on the screen when the monitor blanks. This patch
turns off the CRT for all modes, and also powers down the DACs when vsync
and/or hsync are disabled.Signed-off-by: Jordan Crouse
Acked-by: Andres Salomon
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
We never sent the gamma stuff upstream, and don't really care about it.
However, lx_[gs]_et_gamma prototypes snuck into lxfb.h anyways; there are
no definitions for them. Drop the dead code.Signed-off-by: Andres Salomon
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
15 May, 2008
1 commit
-
The following patch caused a regression with OLPC panels:
commit 3888d4639e78802c4ec1086127124e890461b9e4
lxfb: extend PLL table to support dotclocks below 25 MHzExtends the PLL frequency table of the AMD Geode-LX frame buffer driver to
make use of the DIV4 bit, thus adding support for dotclocks between 6 and 25
MHz. These are needed for small LCDs (e.g. 320x240). Also inserts some
intermediate steps between pre-existing frequencies.The problem was the insertion of intermediate steps into the frequency
table; they would cause the wrong frequency to be matched. This patch
drops those intermediate frequencies while keeping the sub-25MHz
frequencies.Signed-off-by: Andres Salomon
Signed-off-by: Jens Rottmann
Tested-by: Andres Salomon
Acked-by: Jordan Crouse
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
28 Apr, 2008
23 commits
-
Since there's no way to autodetect panel modes, we're forced to hardcode them
in the driver and add a big fat #ifdef. The OLPC DCON needs a specific mode
line (at 1200x900). This adds it to both gxfb and lxfb.(Jordan said: We could probably detect the panel mode, but there isn't any
reason to since the panel timings are well known and won't change. While OFW
detection would be good computer science fu, it would be a wasted effort since
its so easy to hard code them into the table.)Signed-off-by: Andres Salomon
Cc: Jordan Crouse
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
If there's no VSA2 (ie, if we're using tinybios or OpenFirmware), use the
GLIU's P2D Range Offset Descriptor to determine how much memory we have
available for the framebuffer.Originally based on a patch by Jordan Crouse. Tested with OpenFirmware;
Pascal informs me that tinybios has a stub that fills in P2D_RO0.Signed-off-by: Andres Salomon
Cc: Jordan Crouse
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
..Rather than using magic constants.
Signed-off-by: Andres Salomon
Cc: Jordan Crouse
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
The Display Control's CRT_EN can be shut off when we enter FB_BLANK_POWERDOWN
in an attempt to save additional power.Signed-off-by: Andres Salomon
Cc: Jordan Crouse
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
By default disable VT switch, but allow it to be overridden via the
'vt_switch' module arg.Signed-off-by: Andres Salomon
Cc: "Antonino A. Daplas"
Cc: Jordan Crouse
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Match other fb drivers (including gxfb). Also, document the current boot
arguments in Documentation/fb/lxfb.txt.Signed-off-by: Andres Salomon
Cc: "Antonino A. Daplas"
Cc: Jordan Crouse
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This adds the ability to suspend/resume the lxfb driver, which includes:
- Register and palette saving code; registers are stored in lxfb_par.
A few MSR values are saved as well.
- lx_powerup and lx_powerdown functions which restore/save registers and
enable/disable graphic engines.
- lxfb_suspend/lxfb_resumeOriginally based on a patch by Jordan Crouse.
[akpm@linux-foundation.org: be conventional, save an ifdef]
Signed-off-by: Andres Salomon
Cc: "Antonino A. Daplas"
Cc: Jordan Crouse
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Finally, move the MSR bitfields around in lxfb.h, and rename them. Alas, most
of that crap appears to be undocumented.Signed-off-by: Andres Salomon
Cc: "Antonino A. Daplas"
Cc: Jordan Crouse
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Finally drop the last remnants of df_regs, using vp_regs instead. Also, drop
panel_width and panel_height from lxfb_par; they're unused.Signed-off-by: Andres Salomon
Cc: "Antonino A. Daplas"
Cc: Jordan Crouse
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
- Rename various bitfield defines to match the data sheet names.
- Rename DF_ register definitions to VP_ to match the data sheet;
ie, DF_PAR -> VP_PAR.
- for GP/DC registers, rather than defining to specific addresses, use
an enum to number them sequentially and just multiply by 4 (bytes) to
access them (in read_*/write_* functions).
- for VP/FP registers, use an enum and multiple by 8 (bytes). They're
64bit registers.Signed-off-by: Andres Salomon
Cc: "Antonino A. Daplas"
Cc: Jordan Crouse
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This creates read_gp/write_gp, read_dc/write_dc, read_vp/write_vp, and
read_fp/write_fp for reading and updating those registers. Note that we don't
follow the 'DF' naming; those will be renamed to VP shortly.Signed-off-by: Andres Salomon
Cc: "Antonino A. Daplas"
Cc: Jordan Crouse
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Extends the PLL frequency table of the AMD Geode-LX frame buffer driver to
make use of the DIV4 bit, thus adding support for dotclocks between 6 and 25
MHz. These are needed for small LCDs (e.g. 320x240). Also inserts some
intermediate steps between pre-existing frequencies.Signed-off-by: Jens Rottmann
Cc: Jordan Crouse
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Prior to suspend, we allocate and switch to a new VT; after suspend, we switch
back to the original VT. This can be slow, and is completely unnecessary if
the framebuffer we're using can restore video properly.This adds a hook that allows drivers to select whether or not to do this vt
switch, and changes the gxfb driver to call this hook. It also adds a module
param to gxfb to allow controlling of the vt switch (defaulting to no switch).(Note: I'm not convinced that console_sem is the best way to protect this, but
we should probably have some form of locking..)[akpm@linux-foundation.org: build fix]
Signed-off-by: Andres Salomon
Cc: Jordan Crouse
Cc: "Antonino A. Daplas"
Cc: Pavel Machek
Cc: "Rafael J. Wysocki"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This adds the ability to suspend/resume the gxfb driver, which includes:
- The addition of a Graphics Processor register table in gxfb.h, and
associated GP handling.
- Register and palette saving code; registers are stored in gxfb_par.
A few MSR values are saved as well.
- gx_powerup and gx_powerdown functions which restore/save registers and
enable/disable graphic engines.
- gxfb_suspend/gxfb_resumeOriginally based on a patch by Jordan Crouse.
Signed-off-by: Andres Salomon
Cc: Jordan Crouse
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
We want to stop sharing stuff with gx1fb; it makes little sense. There were
fields in geodefb_par that weren't being used, there was little point to the
DC/VP ops callbacks, etc. This implements the following:- Create gxfb_par (based on geodefb_par), place it in gxfb.h
- Drop display_gx.h and video_gx.h. The last few patches moved most
stuff into gxfb.h anyways, so there was very little left.
- Drop the geode_{dc,vid}_ops stuff. Un-static functions, add
declarations to gxfb.h.Signed-off-by: Andres Salomon
Cc: Jordan Crouse
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This continues the gxfb header cleanups. MSRs are defined in geode.h; the
specific bits we care about are defined in gxfb.h.Signed-off-by: Andres Salomon
Cc: Jordan Crouse
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This does the following in preparation for register saving:
- moves the register definitions from video_gx.h and display_gx.h into
gxfb.h.
- renames GX_* registers to match their section (ie, VP_).
- renames register bitfields to match the data sheet (ie,
DC_DCFG_TGEN -> DC_DISPLAY_CFG_TGEN).
- for DC registers, rather than defining to specific addresses, use
an enum to number them sequentially and just multiply by 4(bytes) to
access them (in read_dc/write_dc).
- for VP and FP registers, use an enum and multiple by 8 (bytes). They're
64bit registers.Signed-off-by: Andres Salomon
Cc: Jordan Crouse
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This creates read_dc/write_dc, read_vp/write_vp, and read_fp/write_fp for
reading and updating those registers. It creates gxfb.h to house these.We also drop a no-op readl() from gx_set_mode. Other than that, there should
be no functionality change.Signed-off-by: Andres Salomon
Cc: Jordan Crouse
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Use a command line option (vram) rather than hardcoding the vram size. LxFB
already does this; it's useful for machines that can't query the BIOS for fb
size. This patch originated from David Woodhouse, was modified by Jordan
Crouse, and was then modified further by me.This also adds some gxfb documentation in Documentation/fb.
Signed-off-by: Andres Salomon
Cc: Jordan Crouse
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Drop the class/class_mask stuff; it's unnecessary as long as the vendor and
device IDs match.Signed-off-by: Andres Salomon
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
When the FP strap is enabled, don't turn on the CRT DACs - that will save
about 35 mA of power.Updated/cleaned up by Andres Salomon.
Signed-off-by: Andres Salomon
Signed-off-by: Jordan Crouse
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
While running in flatpanel mode it is important to change the FP sync bits (VG
register 0x408) rather then the CRT sync bits (VG register 0x008). This patch
keeps the CRT sync bits at default when a flatpanel exists.Note that this also fixes inverted logic; we want CRT_VSYNC_POL to be set (ie,
vsync is normally high) when FB_SYNC_VERT_HIGH_ACT is unset.Signed-off-by: Jordan Crouse
Signed-off-by: Andres Salomon
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This cleans up a few MSR-using drivers in the following manner:
- Ensures MSRs are all defined in asm/geode.h, rather than in misc
places
- Makes the naming consistent; cs553[56] ones begin with MSR_,
GX-specific ones start with MSR_GX_, and LX-specific ones start
with MSR_LX_. Also, make the names match the data sheet.
- Use MSR names rather than numbers in source code
- Document the fact that the LX's MSR_PADSEL has the wrong value
in the data sheet. That's, uh, good to note.Signed-off-by: Andres Salomon
Acked-by: Jordan Crouse
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
07 Feb, 2008
1 commit
-
geode_modedb[] can become static.
Signed-off-by: Adrian Bunk
Cc: Jordan Crouse
Cc: Antonino Daplas
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
15 Nov, 2007
1 commit
-
A relatively recent version of the Geode LX datasheet listed the wrong
address for one of the MSRs that controls TFT panels, resulting in
breakage. This patch corrects the MSR address.Signed-off-by: Jordan Crouse
Cc: "Antonino A. Daplas"
Cc: "H. Peter Anvin"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
20 Oct, 2007
1 commit
-
cpu_data is currently an array defined using NR_CPUS. This means that
we overallocate since we will rarely really use maximum configured cpus.
When NR_CPU count is raised to 4096 the size of cpu_data becomes
3,145,728 bytes.These changes were adopted from the sparc64 (and ia64) code. An
additional field was added to cpuinfo_x86 to be a non-ambiguous cpu
index. This corresponds to the index into a cpumask_t as well as the
per_cpu index. It's used in various places like show_cpuinfo().cpu_data is defined to be the boot_cpu_data structure for the NON-SMP
case.Signed-off-by: Mike Travis
Acked-by: Christoph Lameter
Cc: Andi Kleen
Cc: James Bottomley
Cc: Dmitry Torokhov
Cc: "Antonino A. Daplas"
Cc: Mark M. Hoffman
Signed-off-by: Andrew Morton
Signed-off-by: Ingo Molnar
Signed-off-by: Thomas Gleixner
17 Oct, 2007
1 commit
-
drivers/video/geode/lxfb_core.c: In function 'lxfb_setup':
drivers/video/geode/lxfb_core.c:564: warning: unused variable 'opt'Signed-off-by: Eugene Teo
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
01 Aug, 2007
1 commit
-
Add framebuffer support for the AMD Geode LX graphics engine.
Signed-off-by: Jordan Crouse
Signed-off-by: Antonino Daplas
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
13 Feb, 2007
1 commit
-
Juergen Beisert reported that the following option doesn't work for him
video=gx1fb:1024x768-16@60
though sisfb was able to parse similar option correctly.
Signed-off-by: Alexey Dobriyan
Cc: Jordan Crouse
Cc: "Antonino A. Daplas"
Cc: James Simmons
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
09 Dec, 2006
6 commits
-
For Geode devices without a flatpanel aware BIOS, this enables the flatpanel
power and data.Signed-off-by: Jordan Crouse
Cc: "Antonino A. Daplas"
Acked-by: James Simmons
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Use the right MSR and bits to detect if the GX is strapped for TFT or CRT
Signed-off-by: Jordan Crouse
Cc: "Antonino A. Daplas"
Acked-by: James Simmons
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Add support for command line options for setting the mode and various
settings.[akpm@osdl.org: cleanups]
Signed-off-by: Jordan Crouse
Cc: "Antonino A. Daplas"
Acked-by: James Simmons
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Support TFT panels by correctly setting up the flat panel registers
[akpm@osdl.org: cleanups]
Signed-off-by: Jordan Crouse
Cc: "Antonino A. Daplas"
Acked-by: James Simmons
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
We cannot assume that the BIOS will be correctly setting up the hardware, so
set some bits in various display registers to enable video output. Allow an
advanced user to specify a frambuffer size, rather then probing the BIOS. All
of these fixes were prompted by the OLPC effort.[akpm@osdl.org: cleanups]
Signed-off-by: Jordan Crouse
Cc: "Antonino A. Daplas"
Acked-by: James Simmons
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Use the Geode GX BIOS virtual registers to get the actual size of the
framebuffer.Signed-off-by: Jordan Crouse
Cc: "Antonino A. Daplas"
Acked-by: James Simmons
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
08 Dec, 2006
1 commit
-
Rename a poorly worded PCI ID for the Geode GX and CS5535 companion chips.
The graphics processor and host bridge actually live in the northbridge on
the integrated processor, not in the companion chip.Signed-off-by: Jordan Crouse
Acked-by: Alan Cox
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
11 Jul, 2006
1 commit
-
MAX_NR_CONSOLES, fg_console, want_console and last_console are more of a
function of the VT layer than the TTY one. Moving these to vt.h and vt_kern.h
allows all of the framebuffer and VT console drivers to remove their
dependency on tty.h.[akpm@osdl.org: fix alpha build]
Signed-off-by: Jon Smirl
Signed-off-by: Antonino Daplas
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds