144 Commits

Author SHA1 Message Date
Alan Cox
3caa89e933 gma500: resync with Medfield progress
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-15 19:05:08 +02:00
Alan Cox
f75c7538c5 gma500: Use the mrst helpers and power control for mode commit
We want to hit the MM panel backlight when appropriate

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-15 19:05:08 +02:00
Alan Cox
83c871ee2b gma500@ Fix backlight range error
If we go out of range we break the pm counts on the error path

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-15 19:05:08 +02:00
Alan Cox
f642062fc7 gma500: More Moorestown muddle meddling means MM maybe might modeset
There are a least three different species we need to deal with and right
now it seems the only way to sort them out is via DMI. Encapsulate the
entire pile somewhere private and out of the way.

Hopefully a saner method will emerge later.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-15 19:05:08 +02:00
Alan Cox
1e585b52fd gma500: Add the Oaktrail HDMI support
This differs enough from the Cedarview HDMI sufficiently to want to keep
them separated.

We need to sort out the power management for Oaktrail/Moorestown in order
to plumb this lot into the register handling logic.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-15 19:05:08 +02:00
Alan Cox
80e2f055e0 gma500: Fix cdv warning on unused variable
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-15 19:05:07 +02:00
Octavian Purdila
6e4b308a28 gma500: skip getting modes via DDC on Moorestown
Moorestown does not have a DDC bus, skip getting modes via DDC. This
fixes the following bug:

BUG: unable to handle kernel NULL pointer dereference at 00000010
IP: [<c1172ff7>] i2c_transfer+0x17/0xb0
*pde = 00000000
Oops: 0000 [#1]

Call Trace:
 [<c1153ae9>] drm_do_probe_ddc_edid+0x59/0x90
 [<c1153cb4>] drm_get_edid+0x24/0x250
 [<c11805d2>] psb_intel_ddc_get_modes+0x22/0x60
 [<c117fe11>] psb_intel_lvds_get_modes+0x21/0x80

Signed-off-by: Octavian Purdila <octavian.purdila@intel.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-15 19:05:07 +02:00
Octavian Purdila
173b3de9a5 gma500: fix compile warnings when CONFIG_BACKLIGHT_CLASS_DEVICE is not defined
Signed-off-by: Octavian Purdila <octavian.purdila@intel.com>
[Fixed up for other changes, and tidied some existing variable names]
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-15 19:05:07 +02:00
Alan Cox
3de78a9dbf gma500: Make crtc count a property of the device
Octavian Purdila posted a patch that sets num_crtc to 1 for Moorestown, but
Oaktrail has 2 so we need to split Oaktrail/Moorestown more sensibly, and
also cope with some other differences later on.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-15 19:05:07 +02:00
Octavian Purdila
a458ca1edc gma500: remove the legacy PM method
PCI core only prefer one of legacy PM and new PM. And since runtime pm
is implemented, which requires the new PM method, we should remove the
legacy PM method.

Signed-off-by: Octavian Purdila <octavian.purdila@intel.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-15 19:05:07 +02:00
Alan Cox
7d7b7adf6b gma500: allow the creation of 'stolen' memory objects
For things like cursors and many kinds of framebuffer set up we are actually
best using the stolen memory when possible.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-15 19:05:06 +02:00
Alan Cox
7dfe43c52d gma500: add an mmap ioctl
This does the same as the dumb mmap but we want them separated in the ABI
in case a future extension to the dumb interface means we can't treat them
the same way.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-15 19:05:06 +02:00
Alan Cox
bd7b9f91dd gma500: Move the 2D operations into DRM
We currently have a test hack framebuffer mode ioctl, turn that into a DRM
interface.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-15 19:05:06 +02:00
Alan Cox
c5c44531ad gma500: Cursor interface
We need to provide an interface to create additional buffers for the cursor

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-15 19:05:06 +02:00
Alan Cox
66dca5178c gma500: Fix dependencies
ACPI Video is used by GMA500 so we need to depend upon it

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-15 19:05:01 +02:00
Alan Cox
78010c75d2 gma500: Sort out dither
Ubuntu users reported that dithering was not being set on Poulsbo, and they
have a point as we set one variable and check another which is never set.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Tested-by: Luca Forina <luca.forina@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-15 19:05:00 +02:00
Alan Cox
f00dfacb51 gma500: don't dynamically allocate the psb_gtt struct
It's part of the psb_device so just make it part of the struct not a
pointer. This does cause a bit of noise shuffling indirections.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-15 19:05:00 +02:00
Alan Cox
18a4ca2a11 gma500: Final polish
This completes the clean up all the non Medfield C files to the point where
checkpatch approves of them barring some silly 80 column whining.

The Medfield stuff is still in a lot of flux but the rest is now ready for
general tidy and review.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-15 19:05:00 +02:00
Dan Carpenter
c3314080fe gma500: remove unneeded check in mdfld_crtc_mode_set()
The list cursor is never NULL in a list_for_each_entry() loop.

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-08 13:45:00 -07:00
Dan Carpenter
d75758b3d1 gma500: reversed test in mdfld_dbi_dsr_exit()
We should only cleanup "dsr_info" if it's non-NULL obviously and not
the other way around.

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-08 13:44:59 -07:00
Dan Carpenter
fc5ace7ed2 Staging: gma500: typo in array initialization
There is a comma missing here between the strings so they were
concatenated by mistake.

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-08 13:44:59 -07:00
Alan Cox
983e4d3432 gma500: Fix unused variable in cdv support
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-08 13:44:58 -07:00
Alan Cox
9fce362385 gma500; clean mid files
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-08 13:44:58 -07:00
Alan Cox
e913972423 gma500: tidy the mrst files
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-08 13:44:57 -07:00
Alan Cox
0cf0db5e3d gma500: tidy up the CDV files
We are close to having PSB and CDV ready for moving from staging so it's
time to get the polish out.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-08 13:44:57 -07:00
Patrik Jakobsson
2b9428e203 gma500: Mask out bits not part of the page table base address
Otherwise we can't ioremap the gtt and the screen gets garbled.

Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-08 13:44:57 -07:00
Alan Cox
5ed836acd2 gma500: Fix symbol clash with i915
Randy Dunlap reports:
| when both CONFIG_DRM_I915=y and CONFIG_DRM_PSB=y:
| drivers/staging/built-in.o: In function `intel_opregion_init':
| (.text+0x47943): multiple definition of `intel_opregion_init'
| drivers/gpu/built-in.o:(.text+0x17277a): first defined here

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-08 13:44:57 -07:00
Alan Cox
75ec9bb006 gma500: psb_intel_lvds style
Fixed some stylistic uglies noticed while fixing the previous bug

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-08 13:44:56 -07:00
Alan Cox
d3cf695c58 gma500: Re-order checks and dereferences in psb_intel_lvds
Dan Carpenter reports:

Smatch complains about 6a7afe3acc4b "gma500: continue abstracting
platform specific code"

drivers/staging/gma500/psb_intel_lvds.c +579 psb_intel_lvds_set_property(7)
	warn: variable dereferenced before check 'encoder'

	--- a/drivers/staging/gma500/psb_intel_lvds.c
	+++ b/drivers/staging/gma500/psb_intel_lvds.c
	@@ -575,11 +575,12 @@ int psb_intel_lvds_set_property(struct drm_connector *connector,
					       struct drm_property *property,
					       uint64_t value)
	 {
	-       struct drm_encoder *pEncoder = connector->encoder;
	+       struct drm_encoder *encoder = connector->encoder;
	+       struct drm_psb_private *dev_priv = encoder->dev->dev_private;
						   ^^^^^^^^^^^^
dereference encoder here.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-08 13:44:56 -07:00
Jesper Juhl
fa3b1c8812 gma500: strip unneeded version headers
Remove unneeded version.h includes from drivers/staging/gma500/

It was pointed out by 'make versioncheck' that some includes of
linux/version.h are not needed in drivers/staging/gma500/.
This patch removes them.

Signed-off-by: Jesper Juhl <jj@chaosbits.net>
[updated for all th file cleanup and movement]
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-08 13:44:55 -07:00
Alan Cox
11aba30403 gma500: oops.. thou shalt stg add...
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05 19:51:50 -07:00
Alan Cox
0ad91794cc gma500: Update the TODO list
This is now horribly out of date

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05 19:51:49 -07:00
Jani Nikula
7d4df4ef4a gma500: fix build without backlight device support
gma500: fix build without backlight device support

Fix unmatched curly brackets when CONFIG_BACKLIGHT_CLASS_DEVICE is not
defined.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05 08:55:42 -07:00
Alan Cox
9fdc5ff8b9 gma500: power can be touched in IRQ state
So we need to use a spinlock here

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05 08:20:45 -07:00
Alan Cox
398c442489 gma500: Fix missing memory check
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05 08:20:45 -07:00
Alan Cox
52b6ba09ee gma500: Workaround for Medfield/Cedarview cursor bug
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05 08:20:45 -07:00
Alan Cox
6a8ca6f5ff gma500: Fix backlight crash
We need to check the NULL case earlier.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05 08:20:44 -07:00
Alan Cox
a11c3ec7e9 gma500: Add the HDMI bits
This adds the basic HDMI support for Cedarview.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05 08:20:44 -07:00
Alan Cox
93b68b6773 gma500: begin adding CDV specific code
A lot of the intel_display stuff is duplicated, but we will add it first,
clean it up and then investigate the best way to merge stuff.

This first block integrates the various basic chunks of the CDV display setup.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05 08:20:44 -07:00
Alan Cox
4bc5925315 gma500: move the power header
At this point we now have the file naming making somewhat more sense
although the dependancies are not as clean as would be ideal

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05 08:20:44 -07:00
Alan Cox
0cc729bf21 gma500: move the BIOS header
We can move this to patch up as well. Shuffle the relevant includes as we
go

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05 08:20:44 -07:00
Alan Cox
0c453db26c gma500: tidying up the power stuff a spot
In particular don't destroy static mutexes, it upsets things

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05 08:20:44 -07:00
Alan Cox
72786d5fb1 gma500: move the i2c code
This again is similar to upstream so give it a sensible name ready to look
at any merging or synchronization

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05 08:20:43 -07:00
Alan Cox
641b41858b gma500: the MMU code is also generic
Move this over. In actual fact there are some underlying differences as
some devices have more MMU contexts, but for our 2D purposes we don't
actually care.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05 08:20:43 -07:00
Alan Cox
3682a08049 gma500: move opregion files
We've now sorted them out so they can go into the generic code. In actual
fact only the non MID devices use the functions but they are small and
having the name match i915 is going to help any future merging type work.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05 08:20:43 -07:00
Alan Cox
b21fb57908 gma500: tidy up the opregion and lid code
This is leaking an io mapping and also referencing stuff directly that
should not be directly accessed. Sort it out

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05 08:20:43 -07:00
Alan Cox
3835ce2e69 gma500: Rename the psb_intel_bios code
This is generic for the PC class devices and also very similar to the i915
intel_bios.c so rename it. That way the commonality will be obvious and we
can look at merging them one day, or at least synching them up.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05 08:20:43 -07:00
Alan Cox
0bbfa259ac gma500: begin the config based split
We don't want to carry all the extra gunk around on every device so use the
splitting work so far to tidy this up. Poulsbo is still mandatory as it is
used in bits by the other drivers and not neatly modularised.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05 08:20:43 -07:00
Alan Cox
63e21a5bfc gma500: the GEM and GTT code is device independant
Rename the gem and gtt files accordingly.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05 08:20:42 -07:00
Alan Cox
c3f5005164 gma500: The 2D code is now also device independent
Rename

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-07-05 08:20:42 -07:00