Commit Graph

54 Commits

Author SHA1 Message Date
Alan Cox
f92e88343e gma500: Fix dumb create crash
The error path from gtt_alloc returns NULL not a ptr error. The underlying
fail is caused by a bug in the size calculation. With these two fixed it
passes kmstest, although it's not really doing anything useful yet.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-05-10 11:16:46 -07:00
Alan Cox
ea1ce3762b gma500: sort out the file operations
Route everything via the proper DRM layer calls. This fixes the crash in
plymouth and is also necessary to begin supporting libkms.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-05-10 11:16:45 -07:00
Alan Cox
b644c7ce18 gma500: The MID devices have the register offset different
This is another small step towards getting Moorestown/Oaktrail support to
work but for Moorestown at least we still need to sort out GEM backed base
framebuffer, which means figuring out why GEM explodes early on at the
moment.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-05-06 09:27:35 -07:00
Alan Cox
9886eb59f8 gma500: allow non stolen page backed framebuffer
For Moorestown at least we may not have stolen RAM with which to back the
initial framebuffer. Allow a GEM backing.

At this point we should have all the bits in place needed to make it work once
it has been debugged.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-25 17:13:49 -07:00
Alan Cox
541c81ab4b gma500: prune some unused variables
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-25 17:13:49 -07:00
Alan Cox
e1684a048b gma500: GEM - now we have the basics we shall stick pins in it
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-25 17:13:49 -07:00
Alan Cox
ed7ea13efb gma500: GEMify the frame buffer base bits
This then kills off the old bo_ interfaces

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-25 17:13:49 -07:00
Alan Cox
0dfac1ceb4 gma500: Begin the GEMification of the cursor code
Do a first pass over the cursor code and rework it to use GEM objects for
the cursor buffer as we need.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-25 17:13:48 -07:00
Alan Cox
6a62730c7a gma500: Add support for inserting and removing pages from the GART
There are two chunks of code we need to do this. The first one is the code
to insert and remove the pages from the GART, the second is the code to build
page table lists from the GEM object. Surprisingly this latter one doesn't seem
to have a nice GEM helper.

While we are at it we can begin dismantling the semi redundant struct pg,
and finish pruning out the old now unused gtt code as well as the last bits
of helper glue from the old driver base.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-25 17:13:48 -07:00
Alan Cox
f20ee24445 gma500: begin adding GEM
This puts in place the infrastructure for GEM allocators. Our implementation
is fairly simplistic at this point and we don't deal with things like
evicting objects from the GART to make space, nor compaction.

We extent our gtt_range struct to include a GEM object and that allows GEM
to do all the handle management and most of the memory mapping work for us.

This patch also doesn't load GEM pages into the GART so the GEM side isn't
very useful. Before we can do that a fair bit of work is needed reworking the
internal GTT code.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-25 17:13:48 -07:00
Alan Cox
f11dd9b14f gma500: add the ability to request backed space or not
We will will need this for doing a GEM allocator. It should also avoid any
crashes with the current code if the stolen area is too small.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-25 17:13:47 -07:00
Alan Cox
cb0ff05aa1 gma500: Tidy up the allocations
Now we can do allocations we need to shuffle the fb resource into the fb so
we can one day have multiple frame buffer objects.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-25 17:12:58 -07:00
Alan Cox
8d9c134c6e gma500: Add a gtt allocator
At the moment we don't do any page backing for the GTT so only the stolen
area pages will actually work. That is fine for our initial framebuffer and
a bit of testing but will need resolution (including alternate mmap methods
and the like for s/g areas) eventually.

Rather than use some of the overcomplex stuff in the DRM we use the existing
Linux resource allocators to hand out framebuffers and the like. This also has
the nice result that /proc/iomem shows the allocations.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-25 17:12:58 -07:00
Alan Cox
36207d1167 gma500: backlight warning
The current bl code checks for backlight types and warns if they are not
properly set. Set ours to avoid the warning spew

(This one alone is probably 2.6.39 candidate)

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-25 17:12:57 -07:00
Alan Cox
4df25c69c9 gma500: prepare to do some actual memory management
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-25 17:12:57 -07:00
Alan Cox
a563a8c251 gma500: ioctl first pass
Go through the remaining ioctls and check they make sense

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-25 17:12:56 -07:00
Greg Kroah-Hartman
32235b07b5 Staging: merge 2.6.39-rc3 into staging-next
This was done to handle a number of conflicts, the majority of which
were caused by the big "fix spelling issues" patch.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-13 12:14:05 -07:00
Alan Cox
8a789f8c30 staging: gma500: Add oaktrail
Oaktrail needs a couple of slight plumbing tweaks

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:41:13 -07:00
Alan Cox
cb048d5586 staging: gma500: enable the 2D op stuff
Well one of them anyway - not yet sure why the other fails

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:41:12 -07:00
Alan Cox
636fa5c78c staging: gma500: psb_reset actually holds lid functions
So rename the file something sensible

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:36:35 -07:00
Alan Cox
9c6ac29cb0 staging: gma500: Set the TWOD base
2D accel still doesn't work but now it doesn't crash either

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:36:34 -07:00
Alan Cox
3350dead09 staging: gma500: cleanup the SDVO messages
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:36:32 -07:00
Alan Cox
c3460fd3ec staging: gma500: begin tidying up the power management
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:36:30 -07:00
Alan Cox
a3461ee16c staging: gma500: prune more unused fields
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:36:27 -07:00
Alan Cox
9917294623 staging: gma500: Add a test ioctl for issuing 2D accel ops via user space
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:36:25 -07:00
Alan Cox
ad9f792e67 staging: gma500: Fix some set up bugs found by comparing driver versions
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:36:23 -07:00
Alan Cox
0c6b262753 staging: gma500: kill some more #if 0 bits
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:36:22 -07:00
Alan Cox
b0e2326ca7 staging: gma500: Another file we don't need
Zap... bang

And take out a few more variables that are now dead

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:36:20 -07:00
Alan Cox
c34433b19d staging: gma500: turn on psb SDVO
Keep this as its own commit for bisection purposes

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:27:50 -07:00
Justin P. Mattock
8fc5945f8f staging: gma500: Remove extra semi-colon.
The patch below removes an extra semi-colon from various parts
of the kernel. Please have a look when you have time, and let
me know if its legit or not.

Signed-off-by: Justin P. Mattock <justinmattock@gmail.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:27:49 -07:00
Alan Cox
aea74b6567 staging: gma500: kill off TTM
We are not using TTM, we are not going to use TTM either

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:27:49 -07:00
Alan Cox
0b35c063b2 staging: gma500: pull mrst firmware stuff into its own header
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:27:48 -07:00
Alan Cox
5c7d3a7aba staging: gma500: Clean up more unused structures and code
We don't need the 3D validation stuff so it and all the related gunge can
depart. While we are at it prune some unused definitions.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:27:48 -07:00
Alan Cox
1163a0b88c staging: gma500: We don't support the CI either
The camera interface is also not covered (and we won't be using TTM anyway
even if it ever re-emerges) so it to can go

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:27:47 -07:00
Alan Cox
7e2c6c433e staging: gma500: delete the RAR handling
RAR registers are used on MID platforms for various protected video
playback activities using video playback engines we don't support.

So Rasputin can keep his Rars

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:27:47 -07:00
Alan Cox
c69a20369b staging: gma500: Add Moorestown identifiers
Turn it on, turn it up, turn it loose

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:27:46 -07:00
Alan Cox
427096db84 staging: gma500: Moorestown does its setup differently
Grovel the firmware via the Moorestown interfaces and read the other bits
off the fuses.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:27:46 -07:00
Alan Cox
e68e8c711b staging: gma500: enable Moorestown CRTC handling
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:27:45 -07:00
Alan Cox
9ba06b5fab staging: gma500: add framebuffer setup
For Moorestown we want to use the mrst LVDS setup not the Poulsbo setup

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:27:45 -07:00
Alan Cox
a7cf87e64a staging: gma500: Add Moorestown backlight support
Which is of course different to Poulsbo.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:27:44 -07:00
Alan Cox
f4f7868bf9 staging: gma500: Makefiles
Build the new files now all the changes they need are present. They won't
yet be used but the plumbing is next step.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:27:44 -07:00
Alan Cox
d3fc13d8fb staging: gma500: Add moorestown specific data to the device structure
Moorestown needs somewhere to stash various pipe config registers and the
firmware and fuse configurations

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:27:43 -07:00
Alan Cox
a9100caeea staging: gma500: Add moorestown config structures
We have a set of firmware passed descriptors and things we need to grovel
through for video configuration. This differs from the setup for the PC
style Poulsbo hardware.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:27:43 -07:00
Alan Cox
c9981d941c staging: gma500: Make some of the lvds operations non-static
We need these as they are also used by the Moorestown LVDS display support.
Make the various needed symbols visible in the headers

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:27:42 -07:00
Alan Cox
54edcea62d staging: gma500: Add moorestown lvds driver code
Add the new files needed for the GMA500 driver to support Moorestown LVDS
displays. Don't wire them in yet.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:27:42 -07:00
Alan Cox
2627aaa679 staging: gma500: begin adding Moorestown support
The Moorestown systems have some graphics differences we care about and some
we don't need to.

To start with it has a single pipe and that pipe can be used for LVDS

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-05 11:27:41 -07:00
Lucas De Marchi
25985edced Fix common misspellings
Fixes generated by 'codespell' and manually reviewed.

Signed-off-by: Lucas De Marchi <lucas.demarchi@profusion.mobi>
2011-03-31 11:26:23 -03:00
Marek Belisko
bc54f3393c staging: gma500: fix build errors
This patch will fix following compilation error:

drivers/staging/gma500/psb_drv.c:1635: error: unknown field ‘pci_driver’ specified in initializer
drivers/staging/gma500/psb_drv.c:1636: error: unknown field ‘name’ specified in initializer
drivers/staging/gma500/psb_drv.c:1636: warning: initialization from incompatible pointer type
drivers/staging/gma500/psb_drv.c:1637: error: unknown field ‘id_table’ specified in initializer
drivers/staging/gma500/psb_drv.c:1637: warning: excess elements in union initializer
drivers/staging/gma500/psb_drv.c:1637: warning: (near initialization for ‘driver.kdriver’)
drivers/staging/gma500/psb_drv.c:1638: error: unknown field ‘resume’ specified in initializer
drivers/staging/gma500/psb_drv.c:1638: warning: excess elements in union initializer
drivers/staging/gma500/psb_drv.c:1638: warning: (near initialization for ‘driver.kdriver’)
drivers/staging/gma500/psb_drv.c:1639: error: unknown field ‘suspend’ specified in initializer
drivers/staging/gma500/psb_drv.c:1639: warning: excess elements in union initializer
drivers/staging/gma500/psb_drv.c:1639: warning: (near initialization for ‘driver.kdriver’)
drivers/staging/gma500/psb_drv.c:1640: error: unknown field ‘probe’ specified in initializer
drivers/staging/gma500/psb_drv.c:1640: warning: excess elements in union initializer
drivers/staging/gma500/psb_drv.c:1640: warning: (near initialization for ‘driver.kdriver’)
drivers/staging/gma500/psb_drv.c:1641: error: unknown field ‘remove’ specified in initializer
drivers/staging/gma500/psb_drv.c:1641: warning: excess elements in union initializer
drivers/staging/gma500/psb_drv.c:1641: warning: (near initialization for ‘driver.kdriver’)
drivers/staging/gma500/psb_drv.c:1643: error: unknown field ‘driver’ specified in initializer
drivers/staging/gma500/psb_drv.c:1643: warning: excess elements in union initializer
drivers/staging/gma500/psb_drv.c:1643: warning: (near initialization for ‘driver.kdriver’)
drivers/staging/gma500/psb_drv.c: In function ‘psb_init’:
drivers/staging/gma500/psb_drv.c:1664: error: implicit declaration of function ‘drm_init’
drivers/staging/gma500/psb_drv.c: In function ‘psb_exit’:
drivers/staging/gma500/psb_drv.c:1669: error: implicit declaration of function ‘drm_exit’

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-03-07 13:28:47 -08:00
Alan Cox
487e873dd3 staging: gma500: Resync the patch queue with GregKH's space cleanup.
Remove all sorts of bits we can get rid of. We are now a very simple KMS
driver relying on the stolen memory for our framebuffer base (which is for
the moment hardcoded).

To support multiple frame buffers and some accel bits we will need some kind
of memory allocator, possibly a minimal use of GEM.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-03-07 13:28:05 -08:00
Dan Carpenter
0e83f46d38 staging: gma500: fix some swapped gotos
These gotos were swapped.  In the original code, the first would result
in a NULL dereference and the second would result in a memory leak.

Signed-off-by: Dan Carpenter <error27@gmail.com>
Cc: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-02-28 19:00:30 -08:00