04 Jan, 2013
1 commit
-
CONFIG_HOTPLUG is going away as an option. As a result, the __dev*
markings need to be removed.This change removes the use of __devinit, __devexit_p, __devinitdata,
__devinitconst, and __devexit from these drivers.Based on patches originally written by Bill Pemberton, but redone by me
in order to handle some of the coding style issues better, by hand.Cc: Bill Pemberton
Signed-off-by: Greg Kroah-Hartman
19 Jul, 2012
3 commits
-
The API can be used to allocate and free MERAM blocks directly, without
going through ICBs.Signed-off-by: Laurent Pinchart
-
There's no reason to use abstract operation pointers to implement the
MERAM API. Replace them by direct function calls.Signed-off-by: Laurent Pinchart
-
The MERAM operations meram_register, meram_unregister and meram_update
handle LCDC cache. In preparation for "raw" MERAM allocation, rename
them to more appropriate names.Signed-off-by: Laurent Pinchart
13 Mar, 2012
12 commits
-
Supporting runtime PM is very nice, but that's not a reason not to
implement system suspend/resume properly.Reported-by: Guennadi Liakhovetski
Signed-off-by: Laurent Pinchart -
The meram_register(), meram_unregister() and meram_update() operations
check that the pointers they get from the caller are not NULL. Those
checks can be remove, as the caller already ensures that the pointers
are valid.The platform sanity checks can also be removed, as the operations can't
be accessed without valid platform data anyway.Signed-off-by: Laurent Pinchart
-
Remove the RGB or Y/C base address update from the meram_register()
operation, as this belongs to the meram_update() operation.Signed-off-by: Laurent Pinchart
-
Instead of manually specifying the ICBs to use in platform data,
allocate them automatically at runtime. The range of reserved ICBs (for
instance to be used through UIO), if any, is passed in the platform data
reserved_icbs field as a bitmask.The MERAM registration function now returns a pointer to an opaque MERAM
object, which is passed to the update and unregistration functions.Signed-off-by: Laurent Pinchart
-
Instead of requiring the users to hardcode MERAM allocation in platform
data, allocate blocks at runtime using genalloc.Signed-off-by: Laurent Pinchart
-
And rename a couple of constants to make prefixes more uniform.
Signed-off-by: Laurent Pinchart
-
Let the compiler decide which complex functions to inline, and constify
constant static arrays.Signed-off-by: Laurent Pinchart
-
The new structure stores ICB parameters for ICBs.
Instead of modifying the struct sh_mobile_meram_cfg instances passed by
callers, store the ICB parameters internally and make the public API
take const pointers to sh_mobile_meram_cfg.Signed-off-by: Laurent Pinchart
-
Make sure current_reg == 0/1 always mean register set A/B through all
the code.Signed-off-by: Laurent Pinchart
-
Many variables, such as loop counters, sizes and offsets, should be
unsigned integers. Make them so.Signed-off-by: Laurent Pinchart
-
The structure describe ICB configuration, no ICB objects themselves.
Rename it to sh_mobile_meram_icb_cfg in preparation for the addition of
an ICB structure.All the structure fields are unsigned integers, make them so.
Signed-off-by: Laurent Pinchart
-
Make sure the registers and MERAM spaces are reserved before using them.
Signed-off-by: Laurent Pinchart
04 Dec, 2011
1 commit
-
This patch converts the drivers in drivers/video/* to use the
module_platform_driver() macro which makes the code smaller and a bit
simpler.Cc: Ben Dooks
Cc: Manuel Lauss
Signed-off-by: Axel Lin
Acked-by: Wan ZongShun
Acked-by: Sascha Hauer
Acked-by: Lennert Buytenhek
Acked-by: Alexey Charkov
Acked-by: Damian Hobson-Garcia
Acked-by: Jingoo Han
Signed-off-by: Florian Tobias Schandinat
06 Sep, 2011
1 commit
-
When ICBs are unregistered and later reused they need to be reset to
avoid data corruption. Set the WBF, WF and RF bits to make sure ICBs get
reset properly.Signed-off-by: Laurent Pinchart
Signed-off-by: Florian Tobias Schandinat
19 Aug, 2011
7 commits
-
The drivers/video/sh_mobile_meram.h header contains unused definitions
and declarations. Move the only used macro to sh_mobile_meram.c, and
remove the header.Signed-off-by: Laurent Pinchart
-
To reset the ICB on resume the MExxCTL register needs to be OR'ed with
MExxCTL_WBF | MExxCTL_WF | MExxCTL_RF, no set to that value. Fix this.This fixes corruption at the bottom of the display when resuming from
runtime PM.Signed-off-by: Laurent Pinchart
-
Validate as much of the requested ICB configuration as possible outside
of the mutex-protected region when registering ICBs.Signed-off-by: Laurent Pinchart
-
Instead of hardcoding register values through the driver, define macros
for individual register bits using the register name and the bit name,
and use the macros.Signed-off-by: Laurent Pinchart
-
Save and reconfigure the MERAM registers when the MERAM is powered down
and restoredSigned-off-by: Damian Hobson-Garcia
-
There is no reason for sh_mobile_meram_priv to be in the .h file
since it should be private to sh_mobile_meram.cSigned-off-by: Damian Hobson-Garcia
-
Signed-off-by: Damian Hobson-Garcia
24 Jun, 2011
1 commit
-
The check was intended to test if we have a valid pointer to write into,
but it mistakenly checks the pointer contents instead.Since a valid pointer is mandatory for the chroma data if a YCbCr format
is used, the pointer check has been removed.Signed-off-by: Damian Hobson-Garcia
Signed-off-by: Paul Mundt
23 May, 2011
2 commits
-
Since the NV24 framebuffer has a CbCr plane that is twice as wide
as the Y plane, it needs to be handled as a special case.Signed-off-by: Damian Hobson-Garcia
Signed-off-by: Paul Mundt -
Based on the patch by Takanari Hayama
Adds support framework necessary to use Media RAM (MERAM)
caching functionality with the LCDC. The MERAM is accessed
through up to 4 Interconnect Buffers (ICBs).ICB numbers and MERAM address ranges to use are specified in
by filling in the .meram_cfg member of the LCDC platform dataSigned-off-by: Damian Hobson-Garcia
Signed-off-by: Paul Mundt