* Re: [PATCH v2 7/8] video: mark nuc900fb_map_video_memory as __devinit
From: Florian Tobias Schandinat @ 2012-10-10 12:36 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1349813638-4617-8-git-send-email-arnd@arndb.de>
On 10/09/2012 08:13 PM, Arnd Bergmann wrote:
> nuc900fb_map_video_memory is called by an devinit function
> that may be called at run-time, but the function itself is
> marked __init and will be discarded after boot.
>
> To avoid calling into a function that may have been overwritten,
> mark nuc900fb_map_video_memory itself as __devinit.
>
> Without this patch, building nuc950_defconfig results in:
>
> WARNING: drivers/video/built-in.o(.devinit.text+0x26c): Section mismatch in reference from the function nuc900fb_probe() to the function .init.text:nuc900fb_map_video_memory()
> The function __devinit nuc900fb_probe() references
> a function __init nuc900fb_map_video_memory().
> If nuc900fb_map_video_memory is only used by nuc900fb_probe then
> annotate nuc900fb_map_video_memory with a matching annotation.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Cc: Wan ZongShun <mcuos.com@gmail.com>
> Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
> Cc: linux-fbdev@vger.kernel.org
Applied.
Thanks,
Florian Tobias Schandinat
> ---
> drivers/video/nuc900fb.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/video/nuc900fb.c b/drivers/video/nuc900fb.c
> index e10f551..b31b12b 100644
> --- a/drivers/video/nuc900fb.c
> +++ b/drivers/video/nuc900fb.c
> @@ -387,7 +387,7 @@ static int nuc900fb_init_registers(struct fb_info *info)
> * The buffer should be a non-cached, non-buffered, memory region
> * to allow palette and pixel writes without flushing the cache.
> */
> -static int __init nuc900fb_map_video_memory(struct fb_info *info)
> +static int __devinit nuc900fb_map_video_memory(struct fb_info *info)
> {
> struct nuc900fb_info *fbi = info->par;
> dma_addr_t map_dma;
^ permalink raw reply
* Re: [GIT PULL] OMAP DSS for v3.7
From: Florian Tobias Schandinat @ 2012-10-10 12:48 UTC (permalink / raw)
To: Tomi Valkeinen; +Cc: linux-omap, linux-fbdev
In-Reply-To: <1349120714.13060.8.camel@lappyti>
Hi Tomi,
On 10/01/2012 07:45 PM, Tomi Valkeinen wrote:
> Hi Florian,
>
> Here are omapdss changes for 3.7 merge window.
Merged.
> There's something funny with the diff stat, though. I can see a few
> changes there that I have not made, for example to
> drivers/video/console/fbcon.c. I believe they come from my "Merge branch
> 'fbdev-for-linus' of git://github.com/schandinat/linux-2.6", although I
> don't know why they show up in the diff stat.
Yeah, I know this sort of stuff, had some similar problem some time ago,
it happens when you base on multiple branches. Basically you created
your pull request as if you asked Linus to pull it as you started with a
commit that is in Linus' tree (but not in mine). If you would take the
HEAD of my tree you wouldn't see the fb stuff but others as you merged
from Linus in the meantime.
> Merge with v3.6 goes without conflicts, but there will be some conflicts
> with OMAP platform stuff, at least according to linux-next reports.
> Those conflicts are trivial, though.
Good.
Thanks,
Florian Tobias Schandinat
>
> Tomi
>
> The following changes since commit 4cbe5a555fa58a79b6ecbb6c531b8bab0650778d:
>
> Linux 3.6-rc4 (2012-09-01 10:39:58 -0700)
>
> are available in the git repository at:
>
> git://gitorious.org/linux-omap-dss2/linux.git tags/omapdss-for-3.7
>
> for you to fetch changes up to 13b1ba7de8d0ecc42e4f9c002d5b0c1a48f05e58:
>
> OMAPDSS: add missing include for string.h (2012-09-28 10:03:03 +0300)
>
> ----------------------------------------------------------------
> Omapdss driver changes for the 3.7 merge window.
>
> Notable changes:
>
> * Basic writeback support for DISPC level. Writeback is not yet usable, though,
> as we need higher level code to actually expose the writeback feature to
> userspace.
> * Rewriting the omapdss output drivers. We're trying to remove the hard links
> between the omapdss and the panels, and this rewrite work moves us closer to
> that goal.
> * Cleanup and restructuring patches that have been made while working on device
> tree support for omapdss. Device tree support is still some way ahead, but
> these patches are good cleanups in themselves.
> * Basic OMAP5 DSS support for DPI and DSI outputs.
> * Workaround for the problem that GFX overlay's fifo is too small for high
> resolution scenarios, causing underflows.
> * Cleanups that remove dependencies to omap platform code.
>
> ----------------------------------------------------------------
> Archit Taneja (70):
> OMAPDSS: APPLY: Constify timings argument in dss_mgr_set_timings
> OMAPDSS: DPI: Add locking for DPI interface
> OMAPDSS: Displays: Add locking in generic DPI panel driver
> OMAPDSS: DPI: Maintain our own timings field in driver data
> OMAPDSS: DPI displays: Take care of panel timings in the driver itself
> OMAPDSS: DSI: Maintain own copy of timings in driver data
> OMAPDSS: DSI: Add function to set panel size for command mode panels
> OMAPDSS: DSI: Update manager timings on a manual update
> OMAPDSS: HDMI: Use our own omap_video_timings field when setting interface timings
> OMAPDSS: HDMI: Add locking for hdmi interface set timing functions
> OMAPDSS: SDI: Create a function to set timings
> OMAPDSS: SDI: Maintain our own timings field in driver data
> OMAPDSS: VENC: Split VENC into interface and panel driver
> OMAPDSS: VENC: Maintain our own timings field in driver data
> OMAPDSS: RFBI: Remove partial update support
> OMAPDSS: RFBI: Add function to set panel size
> OMAPDSS: DSI: Maintain copy of pixel format in driver data
> OMAPDSS: RFBI: Maintain copy of pixel size in driver data
> OMAPDSS: RFBI: Maintain copy of number of data lines in driver data
> OMAPDSS: DPI: Maintain copy of number of data lines in driver data
> OMAPDSS: SDI: Maintain copy of data pairs in driver data
> OMAPDSS: DSI: Maintain copy of operation mode in driver data
> OMAPDSS: DSI: Rename dsi_videomode_data to dsi_videomode_timings
> OMAPDSS: DSI: Maintain copy of video mode timings in driver data
> OMAPDSS: RFBI: Maitain copy of rfbi timings in driver data
> OMAPDSS: VENC: Maintain copy of venc type in driver data
> OMAPDSS: VENC: Maintian copy of video output polarity info in private data
> OMAPFB: Clear framebuffers before they are registered
> OMAPDSS: Add basic omap5 features to dss and dispc
> OMAPDSS: DSI: Pass dsi platform device wherever possible
> OMAPDSS: APPLY: Remove omap_dss_device references in wait_for_go functions
> OMAPDSS: outputs: Create a new entity called outputs
> OMAPDSS: outputs: Create and register output instances
> OMAPDSS: output: Add set/unset device ops for omap_dss_output
> OMAPDSS: APPLY: Add manager set/unset output ops for omap_overlay_manager
> OMAPDSS: Remove manager->device references
> OMAP_VOUT: Remove manager->device references
> OMAPFB: remove manager->device references
> OMAPDRM: Remove manager->device references
> OMAPDSS: Create links between managers, outputs and devices
> OMAPDSS: DPI: Replace dssdev->manager with dssdev->output->manager references
> OMAPDSS: DSI: Remove dsi_pdev_map global struct
> OMAPDSS: DSI: Replace dssdev->manager with dssdev->output->manager references
> OMAPDSS: SDI: Replace dssdev->manager with dssdev->output->manager references
> OMAPDSS: RFBI: Replace dssdev->manager with dssdev->output->manager references
> OMAPDSS: VENC: Replace dssdev->manager with dssdev->output->manager references
> OMAPDSS: HDMI: Replace dssdev->manager with dssdev->output->manager references
> OMAPFB: Change dssdev->manager references
> OMAPDSS: MANAGER: Update display sysfs store
> OMAPDSS: OVERLAY/MANAGER: Get device via output
> OMAPDSS: APPLY: Remove omap_dss_device references from dss_ovl_enable/disable
> OMAPDSS: Remove old way of setting manager and device links
> OMAPDSS: DISPC: Constify omap_overlay_info in dispc_ovl_setup()
> OMAPDSS: DISPC: Simplify function names for setting pipeline input and output sizes
> OMAPDSS: DISPC: Pass overlay caps as a parameter to dispc plane functions
> OMAPDSS: OVERLAY: Add position and replication as overlay caps
> OMAPDSS: DISPC: Make dispc_ovl_setup call dispc_ovl_setup_common
> OMAPDSS: DISPC: Don't pass channel out when configuring overlays
> OMAPDSS: DIPSC: Relax scaling limitations when in memory to memory mode
> OMAPDSS: DISPC: Allow both upscaling and downscaling of chroma
> OMAPDSS: DISPC: Add writeback register offsets and dss features structs
> OMAPDSS: DISPC: Configure input and output sizes for writeback
> OMAPDSS: DISPC: Downscale chroma if plane is writeback
> OMAPDSS: DISPC: Don't set chroma resampling bit for writeback
> OMAPDSS: DISPC: Add function to set channel in for writeback
> OMAPDSS: DISPC: Configure overlay-like parameters in dispc_wb_setup
> OMAPDSS: DISPC: Configure writeback specific parameters in dispc_wb_setup()
> OMAPDSS: DISPC: Configure writeback FIFOs
> OMAPDSS: DISPC: Add manager like functions for writeback
> OMAPDSS: DISPC: Configure color conversion coefficients for writeback
>
> Chandrabhanu Mahapatra (8):
> OMAPDSS: DISPC: Cleanup cpu_is_xxxx checks
> OMAPDSS: DSS: Remove redundant functions
> OMAPDSS: DSS: Cleanup cpu_is_xxxx checks
> ARM: OMAP: Disable venc for OMAP4
> OMAPDSS: VENC: Remove cpu_is_xxxx checks
> OMAPDSS: DPI: Remove cpu_is_xxxx checks
> OMAPDSS: Correct DISPC_IRQ bit definitions for LCD3
> OMAPDSS: DISPC: Add predecimation limit for TILER based rotations
>
> Grazvydas Ignotas (1):
> OMAPFB: fix framebuffer console colors
>
> Jassi Brar (1):
> OMAPDSS: DISPC: Use msleep instead of blocking mdelay
>
> Raphaël Assénat (1):
> OMAPDSS: Do not require a VDDS_DSI regulator on AM35xx
>
> Ricardo Neri (2):
> OMAPDSS: HDMI: Disable PLL properly in case of error at power_on
> OMAPDSS: DISPC: Improvements to DIGIT sync signal selection
>
> Tomi Valkeinen (53):
> Merge output work from Archit
> OMAPDSS: HDMI: fix initial HDMI enable
> Merge tag 'v3.6-rc4'
> OMAPDSS: HDMI: Move GPIO handling to HDMI driver
> OMAPDSS: HDMI: Add delay to wait for 5V power
> OMAP4: TWL: add vdda_hdmi_dac regulator supply
> OMAPDSS: HDMI: use vdda_hdmi_dac
> OMAPDSS: Add DSI fclk maximum to dss_features
> OMAPDSS: DSI: calculate dsi clock
> OMAP: 4430SDP: remove DSI clock config from board file
> OMAPDSS: fix use of dssdev->caps
> OMAPDSS: Taal: use devm_* functions
> OMAPFB1: remove unnecessary includes
> OMAPFB1: remove a non-used table
> OMAPDSS: remove unnecessary includes
> OMAPFB: clear framebuffers with CPU
> OMAPDSS: VRAM: Remove clearing with sDMA
> OMAPDSS: Taal: Reogranize for device tree
> OMAPDSS: TFP410: use devm_gpio_request_one
> OMAPDSS: split overlay sysfs code
> OMAPDSS: split manager sysfs code
> OMAPDSS: clean up dss_mgr_set_lcd_config
> OMAPDSS: clean up dss_mgr_set_timings
> Revert "OMAPDSS: APPLY: add fifo-merge support"
> Revert "OMAPDSS: APPLY: add fifo merge support funcs"
> OMAPDSS: Improve fifo management code
> OMAPDSS: Use WB fifo for GFX overlay
> OMAPDSS: fix set_timings
> OMAPDSS: fix dss_ovl_unset_manager
> Merge miscellaneous omapdss changes
> Merge branch 'fbdev-for-linus' of git://github.com/schandinat/linux-2.6
> OMAPDSS: omap_dss_register_device() doesn't take display index
> OMAPDSS: Add dss_get_default_display_name()
> OMAPDSS: register only one display device per output
> OMAPDSS: explicitely initialize dssdev->channel for new displays
> OMAPDSS: handle errors in dss_init_device
> OMAPDSS: cleanup dss_recheck_connections
> OMAPDSS: cleanup dss_recheck_connections further
> OMAPDSS: alloc dssdevs dynamically
> OMAPDSS: DSI: improve DSI clock calcs for DISPC
> OMAPDSS: move dss feats to the end of dss.c
> OMAPDSS: Add support for DPI source selection
> OMAPDSS: DSI: Add FEAT_DSI_PLL_SELFREQDCO
> OMAPDSS: DSI: Add FEAT_DSI_PLL_REFSEL
> OMAPDSS: DSI: Add new linebuffer size for OMAP5
> OMAPDSS: DSI: Add code to disable PHY DCC
> OMAPDSS: DSI: make OMAP2_DSS_DSI depend on ARCH_OMAP5
> Merge omapdss single-dssdev series
> Merge OMAP5 DSS changes to omapdss
> OMAPDSS: DSI: fix tlpx_half reg field length
> Merge branch 'archit/outputs-for-3.7'
> Merge branch 'archit/wb-dispc-for-3.7'
> OMAPDSS: add missing include for string.h
>
> arch/arm/mach-omap2/board-4430sdp.c | 73 +-
> arch/arm/mach-omap2/board-omap4panda.c | 27 +-
> arch/arm/mach-omap2/display.c | 1 -
> arch/arm/mach-omap2/twl-common.c | 6 +
> drivers/media/video/omap/omap_vout.c | 75 +-
> drivers/staging/omapdrm/omap_drv.c | 5 +-
> drivers/video/auo_k190x.c | 2 -
> drivers/video/console/bitblit.c | 2 +-
> drivers/video/console/fbcon.c | 2 +-
> drivers/video/mb862xx/mb862xxfbdrv.c | 2 +
> drivers/video/omap/hwa742.c | 1 -
> drivers/video/omap/lcd_ams_delta.c | 1 -
> drivers/video/omap/lcd_palmte.c | 1 -
> drivers/video/omap/omapfb_main.c | 9 -
> drivers/video/omap2/displays/panel-acx565akm.c | 14 +-
> drivers/video/omap2/displays/panel-generic-dpi.c | 76 +-
> .../omap2/displays/panel-lgphilips-lb035q02.c | 3 +
> drivers/video/omap2/displays/panel-n8x0.c | 31 +-
> .../omap2/displays/panel-nec-nl8048hl11-01b.c | 3 +
> drivers/video/omap2/displays/panel-picodlp.c | 4 +
> .../video/omap2/displays/panel-sharp-ls037v7dw01.c | 3 +
> drivers/video/omap2/displays/panel-taal.c | 239 ++---
> drivers/video/omap2/displays/panel-tfp410.c | 20 +-
> .../video/omap2/displays/panel-tpo-td043mtea1.c | 7 +-
> drivers/video/omap2/dss/Kconfig | 2 +-
> drivers/video/omap2/dss/Makefile | 4 +-
> drivers/video/omap2/dss/apply.c | 330 ++-----
> drivers/video/omap2/dss/core.c | 91 +-
> drivers/video/omap2/dss/dispc.c | 1019 ++++++++++++++------
> drivers/video/omap2/dss/dispc.h | 37 +
> drivers/video/omap2/dss/display.c | 108 ++-
> drivers/video/omap2/dss/dpi.c | 181 +++-
> drivers/video/omap2/dss/dsi.c | 675 ++++++++++---
> drivers/video/omap2/dss/dss.c | 257 +++--
> drivers/video/omap2/dss/dss.h | 79 +-
> drivers/video/omap2/dss/dss_features.c | 278 +++++-
> drivers/video/omap2/dss/dss_features.h | 7 +
> drivers/video/omap2/dss/hdmi.c | 247 +++--
> drivers/video/omap2/dss/hdmi_panel.c | 31 +-
> drivers/video/omap2/dss/manager-sysfs.c | 512 ++++++++++
> drivers/video/omap2/dss/manager.c | 473 +--------
> drivers/video/omap2/dss/output.c | 148 +++
> drivers/video/omap2/dss/overlay-sysfs.c | 456 +++++++++
> drivers/video/omap2/dss/overlay.c | 492 +---------
> drivers/video/omap2/dss/rfbi.c | 222 +++--
> drivers/video/omap2/dss/sdi.c | 136 ++-
> drivers/video/omap2/dss/venc.c | 337 +++----
> drivers/video/omap2/dss/venc_panel.c | 251 +++++
> drivers/video/omap2/omapfb/omapfb-ioctl.c | 7 +-
> drivers/video/omap2/omapfb/omapfb-main.c | 34 +-
> drivers/video/omap2/omapfb/omapfb.h | 5 +-
> drivers/video/omap2/vram.c | 56 --
> include/video/omapdss.h | 112 ++-
> 53 files changed, 4592 insertions(+), 2602 deletions(-)
> create mode 100644 drivers/video/omap2/dss/manager-sysfs.c
> create mode 100644 drivers/video/omap2/dss/output.c
> create mode 100644 drivers/video/omap2/dss/overlay-sysfs.c
> create mode 100644 drivers/video/omap2/dss/venc_panel.c
>
^ permalink raw reply
* Re: [PATCHv2 1/3] OMAP: VRFB: convert vrfb to platform device
From: Kevin Hilman @ 2012-10-10 18:12 UTC (permalink / raw)
To: Tomi Valkeinen; +Cc: linux-omap, linux-fbdev, Tony Lindgren, Archit Taneja
In-Reply-To: <1349842027.5972.8.camel@lappyti>
Tomi Valkeinen <tomi.valkeinen@ti.com> writes:
> On Tue, 2012-10-09 at 13:37 -0700, Kevin Hilman wrote:
>> Hi Tomi,
>>
>> Tomi Valkeinen <tomi.valkeinen@ti.com> writes:
>>
>> > This patch converts vrfb library into a platform device, in an effort to
>> > remove omap dependencies.
>> >
>> > The platform device is registered in arch/arm/plat-omap/fb.c and
>> > assigned resources depending on whether running on omap2 or omap3.
>> >
>> > The vrfb driver will parse those resources and use them to access vrfb
>> > configuration registers and the vrfb virtual rotation areas.
>> >
>> > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
>> > Cc: Tony Lindgren <tony@atomide.com>
>>
>> [...]
>>
>> I was having a quick look at this for the context save/restore piece in
>> order to understand how this driver's context is being saved/restored.
>>
>> Looking at mainline, I don't see where omap_vrfb_restore_context() is
>> being called currently. Am I missing something?
>
> No, the driver is missing something. I noticed the same thing. It seems
> ctx restore for vrfb has never been functional in mainline. I don't
> really have any recollection if this was left out intentionally from
> mainline (possibly because we didn't have a good way to handle it at
> that point), or was it just a mistake.
>
> Nobody has complained about it, though, so it can't be a major problem
> =).
heh
> Vrfb is a platform device/driver after this patch. Do you see any
> problem with handling the context restore in runtime PM's runtime_resume
> callback?
No, that's the right way to handle it IMO. In fact, that's what I was
going to check on when reviewing this patch when I noticed that the
restore function wasn't being used.
> Hmm, I guess then we could have a problem if omapdss and
> omapfb are resumed before vrfb.
Possibly, but this could be handled by adding some sanity checks, or
having VRFB functions return -EAGAIN if it hasn't been resumed. Or
better yet, VRFB functions should be using runtime PM get/put
themselves, if they're used by omapdss/omapfb, a runtime resume (and
context restore) is forced. (disclaimer: I don't actually know how VRFB
works, so maybe this isn't possible.)
> Any way to manage the suspend/resume ordering of unrelated (i.e. no
> parent/child relation) devices?
No good way at the moment.
And to make things interesting: static suspend/resume ordering is not
dependent on parent/child. It's based on driver discover/probe order.
runtime PM ordering manages parent/child relationships.
Kevin
^ permalink raw reply
* [PATCH 3.6.0- 00/13] VIDEO: use module_platform_driver macro
From: Srinivas KANDAGATLA @ 2012-10-10 18:37 UTC (permalink / raw)
To: linux-fbdev
From: Srinivas Kandagatla <srinivas.kandagatla@st.com>
Running below Coccinelle lookup pattern like below on the
latest kernel showed about 52 hits. This patch series is a subset
of those 52 patches, so that it will be easy for maintainers to review.
Hopefully these patches will get rid of some code duplication in kernel.
@ @
- initfunc(void)
- { return platform_driver_register(&dr); }
...
- module_init(initfunc);
...
- exitfunc(void)
- { platform_driver_unregister(&dr); }
...
- module_exit(exitfunc);
+ module_platform_driver(dr);
Srinivas Kandagatla (13):
video/au1100fb: use module_platform_driver macro
video/au1200fb: use module_platform_driver macro
video/bf54x-lq043fb: use module_platform_driver macro
video/bfin-lq035q1: use module_platform_driver macro
video/bfin-t350mcqb: use module_platform_driver macro
video/broadsheetfb: use module_platform_driver macro
video/cobalt_lcdfb: use module_platform_driver macro
video/da8xx_fb: use module_platform_driver macro
video/ep93xx_fb: use module_platform_driver macro
video/grvga: use module_platform_driver macro
video/hecubafb: use module_platform_driver macro
video/jz4740_fb: use module_platform_driver macro
video/metronomefb: use module_platform_driver macro
drivers/video/au1100fb.c | 14 +-------------
drivers/video/au1200fb.c | 16 +---------------
drivers/video/bf54x-lq043fb.c | 14 +-------------
drivers/video/bfin-lq035q1-fb.c | 13 +------------
drivers/video/bfin-t350mcqb-fb.c | 14 +-------------
drivers/video/broadsheetfb.c | 14 +-------------
drivers/video/cobalt_lcdfb.c | 14 +-------------
drivers/video/da8xx-fb.c | 14 +-------------
drivers/video/ep93xx-fb.c | 14 +-------------
drivers/video/grvga.c | 15 +--------------
drivers/video/hecubafb.c | 14 +-------------
drivers/video/jz4740_fb.c | 13 +------------
drivers/video/metronomefb.c | 14 +-------------
13 files changed, 13 insertions(+), 170 deletions(-)
^ permalink raw reply
* [PATCH 3.6.0- 01/13] video/au1100fb: use module_platform_driver macro
From: Srinivas KANDAGATLA @ 2012-10-10 18:37 UTC (permalink / raw)
To: linux-fbdev
From: Srinivas Kandagatla <srinivas.kandagatla@st.com>
This patch removes some code duplication by using
module_platform_driver.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
---
drivers/video/au1100fb.c | 14 +-------------
1 files changed, 1 insertions(+), 13 deletions(-)
diff --git a/drivers/video/au1100fb.c b/drivers/video/au1100fb.c
index fe3b6ec..04e6529 100644
--- a/drivers/video/au1100fb.c
+++ b/drivers/video/au1100fb.c
@@ -677,19 +677,7 @@ static struct platform_driver au1100fb_driver = {
.suspend = au1100fb_drv_suspend,
.resume = au1100fb_drv_resume,
};
-
-static int __init au1100fb_load(void)
-{
- return platform_driver_register(&au1100fb_driver);
-}
-
-static void __exit au1100fb_unload(void)
-{
- platform_driver_unregister(&au1100fb_driver);
-}
-
-module_init(au1100fb_load);
-module_exit(au1100fb_unload);
+module_platform_driver(au1100fb_driver);
MODULE_DESCRIPTION(DRIVER_DESC);
MODULE_LICENSE("GPL");
--
1.7.0.4
^ permalink raw reply related
* [PATCH 3.6.0- 02/13] video/au1200fb: use module_platform_driver macro
From: Srinivas KANDAGATLA @ 2012-10-10 18:37 UTC (permalink / raw)
To: linux-fbdev
From: Srinivas Kandagatla <srinivas.kandagatla@st.com>
This patch removes some code duplication by using
module_platform_driver.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
---
drivers/video/au1200fb.c | 16 +---------------
1 files changed, 1 insertions(+), 15 deletions(-)
diff --git a/drivers/video/au1200fb.c b/drivers/video/au1200fb.c
index 7ca79f0..d1127eb 100644
--- a/drivers/video/au1200fb.c
+++ b/drivers/video/au1200fb.c
@@ -1878,21 +1878,7 @@ static struct platform_driver au1200fb_driver = {
.probe = au1200fb_drv_probe,
.remove = __devexit_p(au1200fb_drv_remove),
};
-
-/*-------------------------------------------------------------------------*/
-
-static int __init au1200fb_init(void)
-{
- return platform_driver_register(&au1200fb_driver);
-}
-
-static void __exit au1200fb_cleanup(void)
-{
- platform_driver_unregister(&au1200fb_driver);
-}
-
-module_init(au1200fb_init);
-module_exit(au1200fb_cleanup);
+module_platform_driver(au1200fb_driver);
MODULE_DESCRIPTION(DRIVER_DESC);
MODULE_LICENSE("GPL");
--
1.7.0.4
^ permalink raw reply related
* [PATCH 3.6.0- 03/13] video/bf54x-lq043fb: use module_platform_driver macro
From: Srinivas KANDAGATLA @ 2012-10-10 18:38 UTC (permalink / raw)
To: linux-fbdev
From: Srinivas Kandagatla <srinivas.kandagatla@st.com>
This patch removes some code duplication by using
module_platform_driver.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
---
drivers/video/bf54x-lq043fb.c | 14 +-------------
1 files changed, 1 insertions(+), 13 deletions(-)
diff --git a/drivers/video/bf54x-lq043fb.c b/drivers/video/bf54x-lq043fb.c
index dc2f004..a33cfaf 100644
--- a/drivers/video/bf54x-lq043fb.c
+++ b/drivers/video/bf54x-lq043fb.c
@@ -764,18 +764,6 @@ static struct platform_driver bfin_bf54x_driver = {
},
};
-static int __init bfin_bf54x_driver_init(void)
-{
- return platform_driver_register(&bfin_bf54x_driver);
-}
-
-static void __exit bfin_bf54x_driver_cleanup(void)
-{
- platform_driver_unregister(&bfin_bf54x_driver);
-}
-
MODULE_DESCRIPTION("Blackfin BF54x TFT LCD Driver");
MODULE_LICENSE("GPL");
-
-module_init(bfin_bf54x_driver_init);
-module_exit(bfin_bf54x_driver_cleanup);
+module_platform_driver(bfin_bf54x_driver);
--
1.7.0.4
^ permalink raw reply related
* [PATCH 3.6.0- 04/13] video/bfin-lq035q1: use module_platform_driver macro
From: Srinivas KANDAGATLA @ 2012-10-10 18:38 UTC (permalink / raw)
To: linux-fbdev
From: Srinivas Kandagatla <srinivas.kandagatla@st.com>
This patch removes some code duplication by using
module_platform_driver.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
---
drivers/video/bfin-lq035q1-fb.c | 13 +------------
1 files changed, 1 insertions(+), 12 deletions(-)
diff --git a/drivers/video/bfin-lq035q1-fb.c b/drivers/video/bfin-lq035q1-fb.c
index 353c02f..092ca6b 100644
--- a/drivers/video/bfin-lq035q1-fb.c
+++ b/drivers/video/bfin-lq035q1-fb.c
@@ -852,18 +852,7 @@ static struct platform_driver bfin_lq035q1_driver = {
#endif
},
};
-
-static int __init bfin_lq035q1_driver_init(void)
-{
- return platform_driver_register(&bfin_lq035q1_driver);
-}
-module_init(bfin_lq035q1_driver_init);
-
-static void __exit bfin_lq035q1_driver_cleanup(void)
-{
- platform_driver_unregister(&bfin_lq035q1_driver);
-}
-module_exit(bfin_lq035q1_driver_cleanup);
+module_platform_driver(bfin_lq035q1_driver);
MODULE_DESCRIPTION("Blackfin TFT LCD Driver");
MODULE_LICENSE("GPL");
--
1.7.0.4
^ permalink raw reply related
* [PATCH 3.6.0- 05/13] video/bfin-t350mcqb: use module_platform_driver macro
From: Srinivas KANDAGATLA @ 2012-10-10 18:38 UTC (permalink / raw)
To: linux-fbdev
From: Srinivas Kandagatla <srinivas.kandagatla@st.com>
This patch removes some code duplication by using
module_platform_driver.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
---
drivers/video/bfin-t350mcqb-fb.c | 14 +-------------
1 files changed, 1 insertions(+), 13 deletions(-)
diff --git a/drivers/video/bfin-t350mcqb-fb.c b/drivers/video/bfin-t350mcqb-fb.c
index 7a0c05f..b4518f8 100644
--- a/drivers/video/bfin-t350mcqb-fb.c
+++ b/drivers/video/bfin-t350mcqb-fb.c
@@ -666,18 +666,6 @@ static struct platform_driver bfin_t350mcqb_driver = {
},
};
-static int __init bfin_t350mcqb_driver_init(void)
-{
- return platform_driver_register(&bfin_t350mcqb_driver);
-}
-
-static void __exit bfin_t350mcqb_driver_cleanup(void)
-{
- platform_driver_unregister(&bfin_t350mcqb_driver);
-}
-
MODULE_DESCRIPTION("Blackfin TFT LCD Driver");
MODULE_LICENSE("GPL");
-
-module_init(bfin_t350mcqb_driver_init);
-module_exit(bfin_t350mcqb_driver_cleanup);
+module_platform_driver(bfin_t350mcqb_driver);
--
1.7.0.4
^ permalink raw reply related
* [PATCH 3.6.0- 06/13] video/broadsheetfb: use module_platform_driver macro
From: Srinivas KANDAGATLA @ 2012-10-10 18:38 UTC (permalink / raw)
To: linux-fbdev
From: Srinivas Kandagatla <srinivas.kandagatla@st.com>
This patch removes some code duplication by using
module_platform_driver.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
---
drivers/video/broadsheetfb.c | 14 +-------------
1 files changed, 1 insertions(+), 13 deletions(-)
diff --git a/drivers/video/broadsheetfb.c b/drivers/video/broadsheetfb.c
index c95b417..d69c5de 100644
--- a/drivers/video/broadsheetfb.c
+++ b/drivers/video/broadsheetfb.c
@@ -1217,19 +1217,7 @@ static struct platform_driver broadsheetfb_driver = {
.name = "broadsheetfb",
},
};
-
-static int __init broadsheetfb_init(void)
-{
- return platform_driver_register(&broadsheetfb_driver);
-}
-
-static void __exit broadsheetfb_exit(void)
-{
- platform_driver_unregister(&broadsheetfb_driver);
-}
-
-module_init(broadsheetfb_init);
-module_exit(broadsheetfb_exit);
+module_platform_driver(broadsheetfb_driver);
MODULE_DESCRIPTION("fbdev driver for Broadsheet controller");
MODULE_AUTHOR("Jaya Kumar");
--
1.7.0.4
^ permalink raw reply related
* [PATCH 3.6.0- 07/13] video/cobalt_lcdfb: use module_platform_driver macro
From: Srinivas KANDAGATLA @ 2012-10-10 18:38 UTC (permalink / raw)
To: linux-fbdev
From: Srinivas Kandagatla <srinivas.kandagatla@st.com>
This patch removes some code duplication by using
module_platform_driver.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
---
drivers/video/cobalt_lcdfb.c | 14 +-------------
1 files changed, 1 insertions(+), 13 deletions(-)
diff --git a/drivers/video/cobalt_lcdfb.c b/drivers/video/cobalt_lcdfb.c
index eae46f6..9d43f1c 100644
--- a/drivers/video/cobalt_lcdfb.c
+++ b/drivers/video/cobalt_lcdfb.c
@@ -396,19 +396,7 @@ static struct platform_driver cobalt_lcdfb_driver = {
.owner = THIS_MODULE,
},
};
-
-static int __init cobalt_lcdfb_init(void)
-{
- return platform_driver_register(&cobalt_lcdfb_driver);
-}
-
-static void __exit cobalt_lcdfb_exit(void)
-{
- platform_driver_unregister(&cobalt_lcdfb_driver);
-}
-
-module_init(cobalt_lcdfb_init);
-module_exit(cobalt_lcdfb_exit);
+module_platform_driver(cobalt_lcdfb_driver);
MODULE_LICENSE("GPL v2");
MODULE_AUTHOR("Yoichi Yuasa");
--
1.7.0.4
^ permalink raw reply related
* [PATCH 3.6.0- 08/13] video/da8xx_fb: use module_platform_driver macro
From: Srinivas KANDAGATLA @ 2012-10-10 18:38 UTC (permalink / raw)
To: linux-fbdev
From: Srinivas Kandagatla <srinivas.kandagatla@st.com>
This patch removes some code duplication by using
module_platform_driver.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
---
drivers/video/da8xx-fb.c | 14 +-------------
1 files changed, 1 insertions(+), 13 deletions(-)
diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
index 113d43a..40b8d9a 100644
--- a/drivers/video/da8xx-fb.c
+++ b/drivers/video/da8xx-fb.c
@@ -1449,19 +1449,7 @@ static struct platform_driver da8xx_fb_driver = {
.owner = THIS_MODULE,
},
};
-
-static int __init da8xx_fb_init(void)
-{
- return platform_driver_register(&da8xx_fb_driver);
-}
-
-static void __exit da8xx_fb_cleanup(void)
-{
- platform_driver_unregister(&da8xx_fb_driver);
-}
-
-module_init(da8xx_fb_init);
-module_exit(da8xx_fb_cleanup);
+module_platform_driver(da8xx_fb_driver);
MODULE_DESCRIPTION("Framebuffer driver for TI da8xx/omap-l1xx");
MODULE_AUTHOR("Texas Instruments");
--
1.7.0.4
^ permalink raw reply related
* [PATCH 3.6.0- 09/13] video/ep93xx_fb: use module_platform_driver macro
From: Srinivas KANDAGATLA @ 2012-10-10 18:38 UTC (permalink / raw)
To: linux-fbdev
From: Srinivas Kandagatla <srinivas.kandagatla@st.com>
This patch removes some code duplication by using
module_platform_driver.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
---
drivers/video/ep93xx-fb.c | 14 +-------------
1 files changed, 1 insertions(+), 13 deletions(-)
diff --git a/drivers/video/ep93xx-fb.c b/drivers/video/ep93xx-fb.c
index f2c092d..cfebe9f 100644
--- a/drivers/video/ep93xx-fb.c
+++ b/drivers/video/ep93xx-fb.c
@@ -631,19 +631,7 @@ static struct platform_driver ep93xxfb_driver = {
.owner = THIS_MODULE,
},
};
-
-static int __devinit ep93xxfb_init(void)
-{
- return platform_driver_register(&ep93xxfb_driver);
-}
-
-static void __exit ep93xxfb_exit(void)
-{
- platform_driver_unregister(&ep93xxfb_driver);
-}
-
-module_init(ep93xxfb_init);
-module_exit(ep93xxfb_exit);
+module_platform_driver(ep93xxfb_driver);
MODULE_DESCRIPTION("EP93XX Framebuffer Driver");
MODULE_ALIAS("platform:ep93xx-fb");
--
1.7.0.4
^ permalink raw reply related
* [PATCH 3.6.0- 10/13] video/grvga: use module_platform_driver macro
From: Srinivas KANDAGATLA @ 2012-10-10 18:39 UTC (permalink / raw)
To: linux-fbdev
From: Srinivas Kandagatla <srinivas.kandagatla@st.com>
This patch removes some code duplication by using
module_platform_driver.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
---
drivers/video/grvga.c | 15 +--------------
1 files changed, 1 insertions(+), 14 deletions(-)
diff --git a/drivers/video/grvga.c b/drivers/video/grvga.c
index 5245f9a..95dee4a 100644
--- a/drivers/video/grvga.c
+++ b/drivers/video/grvga.c
@@ -556,20 +556,7 @@ static struct platform_driver grvga_driver = {
.probe = grvga_probe,
.remove = __devexit_p(grvga_remove),
};
-
-
-static int __init grvga_init(void)
-{
- return platform_driver_register(&grvga_driver);
-}
-
-static void __exit grvga_exit(void)
-{
- platform_driver_unregister(&grvga_driver);
-}
-
-module_init(grvga_init);
-module_exit(grvga_exit);
+module_platform_driver(grvga_driver);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Aeroflex Gaisler");
--
1.7.0.4
^ permalink raw reply related
* [PATCH 3.6.0- 11/13] video/hecubafb: use module_platform_driver macro
From: Srinivas KANDAGATLA @ 2012-10-10 18:39 UTC (permalink / raw)
To: linux-fbdev
From: Srinivas Kandagatla <srinivas.kandagatla@st.com>
This patch removes some code duplication by using
module_platform_driver.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
---
drivers/video/hecubafb.c | 14 +-------------
1 files changed, 1 insertions(+), 13 deletions(-)
diff --git a/drivers/video/hecubafb.c b/drivers/video/hecubafb.c
index 614251a..12021ff 100644
--- a/drivers/video/hecubafb.c
+++ b/drivers/video/hecubafb.c
@@ -305,19 +305,7 @@ static struct platform_driver hecubafb_driver = {
.name = "hecubafb",
},
};
-
-static int __init hecubafb_init(void)
-{
- return platform_driver_register(&hecubafb_driver);
-}
-
-static void __exit hecubafb_exit(void)
-{
- platform_driver_unregister(&hecubafb_driver);
-}
-
-module_init(hecubafb_init);
-module_exit(hecubafb_exit);
+module_platform_driver(hecubafb_driver);
MODULE_DESCRIPTION("fbdev driver for Hecuba/Apollo controller");
MODULE_AUTHOR("Jaya Kumar");
--
1.7.0.4
^ permalink raw reply related
* [PATCH 3.6.0- 12/13] video/jz4740_fb: use module_platform_driver macro
From: Srinivas KANDAGATLA @ 2012-10-10 18:39 UTC (permalink / raw)
To: linux-fbdev
From: Srinivas Kandagatla <srinivas.kandagatla@st.com>
This patch removes some code duplication by using
module_platform_driver.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
---
drivers/video/jz4740_fb.c | 13 +------------
1 files changed, 1 insertions(+), 12 deletions(-)
diff --git a/drivers/video/jz4740_fb.c b/drivers/video/jz4740_fb.c
index 3c63fc2..66d0c3c 100644
--- a/drivers/video/jz4740_fb.c
+++ b/drivers/video/jz4740_fb.c
@@ -828,18 +828,7 @@ static struct platform_driver jzfb_driver = {
.pm = JZFB_PM_OPS,
},
};
-
-static int __init jzfb_init(void)
-{
- return platform_driver_register(&jzfb_driver);
-}
-module_init(jzfb_init);
-
-static void __exit jzfb_exit(void)
-{
- platform_driver_unregister(&jzfb_driver);
-}
-module_exit(jzfb_exit);
+module_platform_driver(jzfb_driver);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
--
1.7.0.4
^ permalink raw reply related
* [PATCH 3.6.0- 13/13] video/metronomefb: use module_platform_driver macro
From: Srinivas KANDAGATLA @ 2012-10-10 18:39 UTC (permalink / raw)
To: linux-fbdev
From: Srinivas Kandagatla <srinivas.kandagatla@st.com>
This patch removes some code duplication by using
module_platform_driver.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
---
drivers/video/metronomefb.c | 14 +-------------
1 files changed, 1 insertions(+), 13 deletions(-)
diff --git a/drivers/video/metronomefb.c b/drivers/video/metronomefb.c
index 97d45e5..2cd031f 100644
--- a/drivers/video/metronomefb.c
+++ b/drivers/video/metronomefb.c
@@ -770,21 +770,9 @@ static struct platform_driver metronomefb_driver = {
},
};
-static int __init metronomefb_init(void)
-{
- return platform_driver_register(&metronomefb_driver);
-}
-
-static void __exit metronomefb_exit(void)
-{
- platform_driver_unregister(&metronomefb_driver);
-}
-
module_param(user_wfm_size, uint, 0);
MODULE_PARM_DESC(user_wfm_size, "Set custom waveform size");
-
-module_init(metronomefb_init);
-module_exit(metronomefb_exit);
+module_platform_driver(metronomefb_driver);
MODULE_DESCRIPTION("fbdev driver for Metronome controller");
MODULE_AUTHOR("Jaya Kumar");
--
1.7.0.4
^ permalink raw reply related
* [PATCH] gbefb: fix compile error
From: Florian Tobias Schandinat @ 2012-10-11 0:38 UTC (permalink / raw)
To: linux-fbdev
Cc: Geert Uytterhoeven, linux-kernel, Florian Tobias Schandinat,
Damien Cassou
In-Reply-To: <505B9196.3040203@gmx.de>
The patch "drivers/video/gbefb.c: use devm_ functions" caused a
compile error.
drivers/video/gbefb.c:1159:16: error: implicit declaration of function
'devm_ioremap' [-Werror=implicit-function-declaration]
drivers/video/gbefb.c:1179:3: error: implicit declaration of function
'devm_ioremap_nocache' [-Werror=implicit-function-declaration]
Fix it by including linux/io.h which defines those functions.
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: Damien Cassou <damien.cassou@lifl.fr>
---
drivers/video/gbefb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/video/gbefb.c b/drivers/video/gbefb.c
index 9b79d38..8dc1f7a 100644
--- a/drivers/video/gbefb.c
+++ b/drivers/video/gbefb.c
@@ -20,6 +20,7 @@
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/module.h>
+#include <linux/io.h>
#ifdef CONFIG_X86
#include <asm/mtrr.h>
@@ -28,7 +29,6 @@
#include <asm/addrspace.h>
#endif
#include <asm/byteorder.h>
-#include <asm/io.h>
#include <asm/tlbflush.h>
#include <video/gbe.h>
--
1.7.10.4
^ permalink raw reply related
* Re: [PATCH 1/2] video: Add support for the Solomon SSD1307 OLED Controller
From: Florian Tobias Schandinat @ 2012-10-11 1:06 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <50618242.2070302@free-electrons.com>
Hi Maxime,
On 09/25/2012 10:06 AM, Maxime Ripard wrote:
> Hello Florian,
>
> Le 21/09/2012 16:04, Maxime Ripard a écrit :
>> Le 20/09/2012 18:33, Maxime Ripard a écrit :
>>> This patch adds support for the Solomon SSD1307 OLED
>>> controller found on the Crystalfontz CFA10036 board.
>>>
>>> This controller can drive a display with a resolution up
>>> to 128x39 and can operate over I2C or SPI.
>>>
>>> The current driver has only been tested on the CFA-10036,
>>> that is using this controller over I2C to driver a 96x16
>>> OLED screen.
>>>
>>> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
>>> Cc: Brian Lilly <brian@crystalfontz.com>
>>
>> Would you consider merging this patch or review it?
>> It has been around for quite some time now and has not received any
>> comments for at least the 2 last versions, so I guess there is not much
>> left holding it back (unless, of course, if you have some comments to
>> address), and I really would like to have it in 3.7.
>
> I guess we missed the 3.7 merge here. That's no big deal, but I sent the
> patch series on a regular basis, starting 07/17 (sent new versions on
> 07/31, 08/23, 09/05 and 09/20), addressed all the issues that were
> raised, and never got any feedback from you, either positive or
> negative. The patches affecting the MX28 device trees have already been
> merged by Shawn Guo into its tree, so only the driver and the bindings
> remain to be merged. So I'm kind of lost on what should I do here?
>
> Is it because I have an obviously broken driver or you don't have enough
> time, or you don't want to merge drivers for such type of low resolution
> controllers, or any other reason?
I don't see any reason to not support low resolutions, might be a nice
status monitor for embedded devices.
It's not your fault. It's just that for the past two months writing my
thesis reduced my free time (and hence the time that I could potentially
use for reviewing patches) to approximately zero. While I managed to get
some smaller patches done, there really wasn't any time to process the
3-4 completely new things pending and some scarier patches which touch
the core infrastructure.
I think that it should be better soon, at least my thesis is now done,
but I also have to fix up the rest of my life that was neglected while
writing, including my paid jobs.
Best regards,
Florian Tobias Schandinat
^ permalink raw reply
* Re: [PATCH V4 2/2] video: exynos_dp: device tree documentation
From: Ajay kumar @ 2012-10-11 6:50 UTC (permalink / raw)
To: Sylwester Nawrocki
Cc: Ajay Kumar, linux-samsung-soc, linux-fbdev, jg1.han,
devicetree-discuss, FlorianSchandinat, tomasz.figa, thomas.ab
In-Reply-To: <50749727.1020103@gmail.com>
Hi Sylwester,
On Wed, Oct 10, 2012 at 2:59 AM, Sylwester Nawrocki
<sylvester.nawrocki@gmail.com> wrote:
> Hi Ajay,
>
> On 10/10/2012 01:08 AM, Ajay Kumar wrote:
>> Add documentation for the DT bindings in exynos display port driver.
>>
>> Signed-off-by: Ajay Kumar<ajaykumar.rs@samsung.com>
>> ---
>> .../devicetree/bindings/video/exynos_dp.txt | 83 ++++++++++++++++++++
>> 1 files changed, 83 insertions(+), 0 deletions(-)
>> create mode 100644 Documentation/devicetree/bindings/video/exynos_dp.txt
>>
>> diff --git a/Documentation/devicetree/bindings/video/exynos_dp.txt b/Documentation/devicetree/bindings/video/exynos_dp.txt
>> new file mode 100644
>> index 0000000..a021963
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/video/exynos_dp.txt
>> @@ -0,0 +1,83 @@
>> +Exynos display port driver should configure the display port interface
>> +based on the type of panel connected to it.
>
> The bindings are supposed to describe devices, not drivers. So it
> might be better to say:
>
> "The Exynos display port interface should be configured based on the
> type of panel connected to it."
Ok. I will change it.
> From this documentation it is not clear which properties are required
> and which are optional for each node.
> I think, in the property names dashes should be used, rather than
> underscores. Dashes are much more common among existing bindings.
Ok. Will make use of dashes and mention optional properties.
>> +We use two nodes:
>> + -dptx_phy node
>> + -display-port-controller node
>> +
>> +For the dp-phy initialization, we use a dptx_phy node.
>> +Required properties for dptx_phy:
>> + -compatible:
>> + Should be "samsung,dp-phy".
>
> Is there a separate dptx-phy driver that is being matched with this
> compatible property ? Is the dptx-node going to be referenced by other
> nodes than display-port-controller ? If not, then you could likely drop
> the compatible property entirely and make the dptx-phy node a child
> node of display-port-controller, i.e.
>
> display-port-controller {
> compatible = "samsung,exynos5-dp";
> reg = <0x145b0000 0x10000>;
> interrupts =<10 3>;
> interrupt-parent =<&combiner>;
>
> dptx-phy {
> reg = <0x10040720>;
> samsung,enable_mask = <1>;
> };
> };
>
> Then the driver could just look for a child node named "dptx-phy" with
> e.g. of_find_node_by_name().
Ok. Will change it.
>> + -samsung,dptx_phy_reg:
>
> I think it's fine to use just 'reg' instead of this vendor specific name.
Ok.
>> + Base address of DP PHY register.
>> + -samsung,enable_mask:
>> + The bit-mask used to enable/disable DP PHY.
>> +
>> +For the Panel initialization, we read data from display-port-controller node.
>> +Required properties for display-port-controller:
>> + -compatible:
>> + Should be "samsung,exynos5-dp".
>> + -reg:
>> + physical base address of the controller and length
>> + of memory mapped region.
>> + -interrupts:
>> + Interrupt combiner values.
>> + -interrupt-parent:
>> + phandle to Interrupt combiner node.
>> + -samsung,dp_phy:
>> + phandle to dptx_phy node.
>> + -samsung,color_space:
>> + input video data format.
>> + COLOR_RGB = 0, COLOR_YCBCR422 = 1, COLOR_YCBCR444 = 2
>> + -samsung,dynamic_range:
>> + dynamic range for input video data.
>> + VESA = 0, CEA = 1
>> + -samsung,ycbcr_coeff:
>> + YCbCr co-efficients for input video.
>> + COLOR_YCBCR601 = 0, COLOR_YCBCR709 = 1
>> + -samsung,color_depth:
>> + Number of bits per colour component.
>> + COLOR_6 = 0, COLOR_8 = 1, COLOR_10 = 2, COLOR_12 = 3
>> + -samsung,link_rate:
>> + link rate supported by the panel.
>> + LINK_RATE_1_62GBPS = 0x6, LINK_RATE_2_70GBPS = 0x0A
>> + -samsung,lane_count:
>> + number of lanes supported by the panel.
>> + LANE_COUNT1 = 1, LANE_COUNT2 = 2, LANE_COUNT4 = 4
>> + -samsung,interlaced:
>> + Interlace scan mode.
>> + Progressive if defined, Interlaced if not defined
>> + -samsung,v_sync_polarity:
>> + VSYNC polarity configuration.
>> + High if defined, Low if not defined
>> + -samsung,h_sync_polarity:
>> + HSYNC polarity configuration.
>> + High if defined, Low if not defined
>
> So there is no common video bindings for things like these two ?
> In V4L2 we decided to use vsync-active, hsync-active [1], the video
> timings bindings [2] use hsync-active-high, hsync-active-high boolean
> properties. Perhaps it is worth to pick some of those standard
> definitions and use instead of the vendor specific ones ?
hsync-active-high and vsync-active-high seems to hold good in our case.
Also, are you asking us to just use only the standard names or use standard
helper functions as well? Since we use only hsync and vsync polarity and no
other LCD timing properties, I think we need not use standard helper functions
for parsing display timings!
>> +
>> +Example:
>> +
>> +SOC specific portion:
>> + dptx_phy: dptx_phy@0x10040720 {
>> + compatible = "samsung,dp-phy";
>> + samsung,dptx_phy_reg =<0x10040720>;
>
> reg = <0x10040720>;
Ok.
>> + samsung,enable_mask =<1>;
>> + };
>> +
>> + display-port-controller {
>> + compatible = "samsung,exynos5-dp";
>> + reg =<0x145B0000 0x10000>;
>
> I think lower case is preferred.
Ok. Will change it.
>> + interrupts =<10 3>;
>> + interrupt-parent =<&combiner>;
>> + samsung,dp_phy =<&dptx_phy>;
>> + };
>> +
>> +Board Specific portion:
>> + display-port-controller {
>> + samsung,color_space =<0>;
>> + samsung,dynamic_range =<0>;
>> + samsung,ycbcr_coeff =<0>;
>> + samsung,color_depth =<1>;
>> + samsung,link_rate =<0x0a>;
>> + samsung,lane_count =<2>;
>> + };
>
> Thanks,
> Sylwester
>
> [1] http://www.mail-archive.com/linux-media@vger.kernel.org/msg52743.html
> [2] http://www.mail-archive.com/linux-media@vger.kernel.org/msg53323.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
Regards,
Ajay
^ permalink raw reply
* Re: [PATCH V4 2/2] video: exynos_dp: device tree documentation
From: Sylwester Nawrocki @ 2012-10-11 10:01 UTC (permalink / raw)
To: Ajay kumar
Cc: Sylwester Nawrocki, Ajay Kumar, linux-samsung-soc, linux-fbdev,
jg1.han, devicetree-discuss, FlorianSchandinat, tomasz.figa,
thomas.ab
In-Reply-To: <CAEC9eQO5s5VG_qwRbH4K7TD_Z_rYbks=s_GEOfY3TxDMk7gPzw@mail.gmail.com>
On 10/11/2012 08:50 AM, Ajay kumar wrote:
>>> + -samsung,interlaced:
>>> + Interlace scan mode.
>>> + Progressive if defined, Interlaced if not defined
>>> + -samsung,v_sync_polarity:
>>> + VSYNC polarity configuration.
>>> + High if defined, Low if not defined
>>> + -samsung,h_sync_polarity:
>>> + HSYNC polarity configuration.
>>> + High if defined, Low if not defined
>>
>> So there is no common video bindings for things like these two ?
>> In V4L2 we decided to use vsync-active, hsync-active [1], the video
>> timings bindings [2] use hsync-active-high, hsync-active-high boolean
>> properties. Perhaps it is worth to pick some of those standard
>> definitions and use instead of the vendor specific ones ?
> hsync-active-high and vsync-active-high seems to hold good in our case.
> Also, are you asking us to just use only the standard names or use standard
> helper functions as well? Since we use only hsync and vsync polarity and no
> other LCD timing properties, I think we need not use standard helper functions
> for parsing display timings!
My point was just to use common property names where possible. Any parsing
helpers could be created afterwards, if you would rather avoid doing that
right now. BTW, it seems 'interlaced' could also be reused.
...
>> [1] http://www.mail-archive.com/linux-media@vger.kernel.org/msg52743.html
>> [2] http://www.mail-archive.com/linux-media@vger.kernel.org/msg53323.html
Thanks,
Sylwester
^ permalink raw reply
* Re: [PATCH 1/2 v6] of: add helper to parse display timings
From: Thierry Reding @ 2012-10-11 19:31 UTC (permalink / raw)
To: Tomi Valkeinen, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ,
Rob Herring, linux-fbdev-u79uwXL29TY76Z2rM5mHXA,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Laurent Pinchart,
linux-media-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <20121008074921.GB20800-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 454 bytes --]
On Mon, Oct 08, 2012 at 09:49:21AM +0200, Steffen Trumtrar wrote:
> On Mon, Oct 08, 2012 at 10:07:45AM +0300, Tomi Valkeinen wrote:
> > On Thu, 2012-10-04 at 19:59 +0200, Steffen Trumtrar wrote:
[...]
> > > +
> > > + disp->num_timings = 0;
> > > +
> > > + for_each_child_of_node(timings_np, entry) {
> > > + disp->num_timings++;
> > > + }
> >
> > No need for { }
> >
>
> Okay.
Or you could just use of_get_child_count().
Thierry
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* [GIT PULL] fbdev updates for 3.7
From: Florian Tobias Schandinat @ 2012-10-11 22:20 UTC (permalink / raw)
To: Linus Torvalds; +Cc: LKML, linux-fbdev@vger.kernel.org
Hi Linus,
please pull the changes below. Actually there was more stuff but due to
writing my thesis I didn't have time to review it, so the pull request
for the next merge window might be somewhat larger.
Thanks,
Florian Tobias Schandinat
The following changes since commit 4cbe5a555fa58a79b6ecbb6c531b8bab0650778d:
Linux 3.6-rc4 (2012-09-01 10:39:58 -0700)
are available in the git repository at:
git://github.com/schandinat/linux-2.6.git tags/fbdev-updates-for-3.7
for you to fetch changes up to cd9d6f10d07f26dd8a70e519c22b6b4f8a9e3e7a:
gbefb: fix compile error (2012-10-11 00:23:15 +0000)
----------------------------------------------------------------
fbdev updates for 3.7
It includes:
- large updates for OMAP
- basic OMAP5 DSS support for DPI and DSI outputs
- large cleanups and restructuring
- some update to Exynos and da8xx-fb
- removal of the pnx4008 driver (arch removed)
- various other small patches
----------------------------------------------------------------
Alexander Holler (1):
video/udlfb: fix line counting in fb_write
Archit Taneja (70):
OMAPDSS: APPLY: Constify timings argument in dss_mgr_set_timings
OMAPDSS: DPI: Add locking for DPI interface
OMAPDSS: Displays: Add locking in generic DPI panel driver
OMAPDSS: DPI: Maintain our own timings field in driver data
OMAPDSS: DPI displays: Take care of panel timings in the driver itself
OMAPDSS: DSI: Maintain own copy of timings in driver data
OMAPDSS: DSI: Add function to set panel size for command mode panels
OMAPDSS: DSI: Update manager timings on a manual update
OMAPDSS: HDMI: Use our own omap_video_timings field when setting interface timings
OMAPDSS: HDMI: Add locking for hdmi interface set timing functions
OMAPDSS: SDI: Create a function to set timings
OMAPDSS: SDI: Maintain our own timings field in driver data
OMAPDSS: VENC: Split VENC into interface and panel driver
OMAPDSS: VENC: Maintain our own timings field in driver data
OMAPDSS: RFBI: Remove partial update support
OMAPDSS: RFBI: Add function to set panel size
OMAPDSS: DSI: Maintain copy of pixel format in driver data
OMAPDSS: RFBI: Maintain copy of pixel size in driver data
OMAPDSS: RFBI: Maintain copy of number of data lines in driver data
OMAPDSS: DPI: Maintain copy of number of data lines in driver data
OMAPDSS: SDI: Maintain copy of data pairs in driver data
OMAPDSS: DSI: Maintain copy of operation mode in driver data
OMAPDSS: DSI: Rename dsi_videomode_data to dsi_videomode_timings
OMAPDSS: DSI: Maintain copy of video mode timings in driver data
OMAPDSS: RFBI: Maitain copy of rfbi timings in driver data
OMAPDSS: VENC: Maintain copy of venc type in driver data
OMAPDSS: VENC: Maintian copy of video output polarity info in private data
OMAPFB: Clear framebuffers before they are registered
OMAPDSS: Add basic omap5 features to dss and dispc
OMAPDSS: DSI: Pass dsi platform device wherever possible
OMAPDSS: APPLY: Remove omap_dss_device references in wait_for_go functions
OMAPDSS: outputs: Create a new entity called outputs
OMAPDSS: outputs: Create and register output instances
OMAPDSS: output: Add set/unset device ops for omap_dss_output
OMAPDSS: APPLY: Add manager set/unset output ops for omap_overlay_manager
OMAPDSS: Remove manager->device references
OMAP_VOUT: Remove manager->device references
OMAPFB: remove manager->device references
OMAPDRM: Remove manager->device references
OMAPDSS: Create links between managers, outputs and devices
OMAPDSS: DPI: Replace dssdev->manager with dssdev->output->manager references
OMAPDSS: DSI: Remove dsi_pdev_map global struct
OMAPDSS: DSI: Replace dssdev->manager with dssdev->output->manager references
OMAPDSS: SDI: Replace dssdev->manager with dssdev->output->manager references
OMAPDSS: RFBI: Replace dssdev->manager with dssdev->output->manager references
OMAPDSS: VENC: Replace dssdev->manager with dssdev->output->manager references
OMAPDSS: HDMI: Replace dssdev->manager with dssdev->output->manager references
OMAPFB: Change dssdev->manager references
OMAPDSS: MANAGER: Update display sysfs store
OMAPDSS: OVERLAY/MANAGER: Get device via output
OMAPDSS: APPLY: Remove omap_dss_device references from dss_ovl_enable/disable
OMAPDSS: Remove old way of setting manager and device links
OMAPDSS: DISPC: Constify omap_overlay_info in dispc_ovl_setup()
OMAPDSS: DISPC: Simplify function names for setting pipeline input and output sizes
OMAPDSS: DISPC: Pass overlay caps as a parameter to dispc plane functions
OMAPDSS: OVERLAY: Add position and replication as overlay caps
OMAPDSS: DISPC: Make dispc_ovl_setup call dispc_ovl_setup_common
OMAPDSS: DISPC: Don't pass channel out when configuring overlays
OMAPDSS: DIPSC: Relax scaling limitations when in memory to memory mode
OMAPDSS: DISPC: Allow both upscaling and downscaling of chroma
OMAPDSS: DISPC: Add writeback register offsets and dss features structs
OMAPDSS: DISPC: Configure input and output sizes for writeback
OMAPDSS: DISPC: Downscale chroma if plane is writeback
OMAPDSS: DISPC: Don't set chroma resampling bit for writeback
OMAPDSS: DISPC: Add function to set channel in for writeback
OMAPDSS: DISPC: Configure overlay-like parameters in dispc_wb_setup
OMAPDSS: DISPC: Configure writeback specific parameters in dispc_wb_setup()
OMAPDSS: DISPC: Configure writeback FIFOs
OMAPDSS: DISPC: Add manager like functions for writeback
OMAPDSS: DISPC: Configure color conversion coefficients for writeback
Arnd Bergmann (1):
video: mark nuc900fb_map_video_memory as __devinit
Axel Lin (1):
video: mbxfb: Include linux/io.h instead of asm/io.h
Bjarni Ingi Gislason (1):
drivers: console: font_: Change a glyph from "broken bar" to "vertical line"
Chandrabhanu Mahapatra (8):
OMAPDSS: DISPC: Cleanup cpu_is_xxxx checks
OMAPDSS: DSS: Remove redundant functions
OMAPDSS: DSS: Cleanup cpu_is_xxxx checks
ARM: OMAP: Disable venc for OMAP4
OMAPDSS: VENC: Remove cpu_is_xxxx checks
OMAPDSS: DPI: Remove cpu_is_xxxx checks
OMAPDSS: Correct DISPC_IRQ bit definitions for LCD3
OMAPDSS: DISPC: Add predecimation limit for TILER based rotations
Damien Cassou (11):
drivers/video/ep93xx-fb.c: use devm_ functions
drivers/video/cobalt_lcdfb.c: use devm_ functions
drivers/video/bf537-lq035.c: use devm_ functions
drivers/video/mbx/mbxfb.c: use devm_ functions
drivers/video/gbefb.c: use devm_ functions
drivers/video/fsl-diu-fb.c: use devm_ functions
video: exynos_dp: use devm_clk_get function
drivers/video/epson1355fb.c: use devm_ functions
drivers/video/jz4740_fb.c: use devm_ functions
drivers/video/bf54x-lq043fb.c: use devm_ functions
drivers/video/msm/mddi_client_nt35399.c: use devm_ functions
Daniel Drake (1):
viafb: don't touch clock state on OLPC XO-1.5
Devendra Naga (1):
video: bfin-lq035q1: use module_platform_driver
Emil Goode (1):
video: hpfb: Fix error handling
Florian Tobias Schandinat (3):
Merge branch 'v3.7-for-florian' of git://git.kernel.org/.../kgene/linux-samsung into fbdev-next
Merge tag 'omapdss-for-3.7' of git://gitorious.org/linux-omap-dss2/linux into fbdev-next
gbefb: fix compile error
Geert Uytterhoeven (1):
fbdev/amifb: Remove write-only variable amifb_inverse
Grazvydas Ignotas (1):
OMAPFB: fix framebuffer console colors
Jassi Brar (1):
OMAPDSS: DISPC: Use msleep instead of blocking mdelay
Jean Delvare (1):
video: bf*: Add missing spinlock init
Jingoo Han (10):
video: exynos_dp: adjust voltage swing and pre-emphasis during Link Training
video: s3c-fb: use devm_clk_get()
video: exynos_dp: check time loop for RPLY_RECEIV
video: exynos_dp: change return type of exynos_dp_init_video to void
video: exynos_dp: move setting analog parameter and interrupt to after sw reset
video: exynos_dp: replace link_status with link_align to check channel equalization
video: s3c2410: fix checkpatch warnings
video: exynos_dp: add bit-masking for LINK_TRAINING_CTL register
video: exynos_dp: increase AUX channel voltage level
video: exynos_dp: use clk_prepare_enable and clk_disable_unprepare
Julia Lawall (1):
drivers/video/sunxvr2500.c: fix error return code
Lars-Peter Clausen (1):
fbdev: jz4740: Use devm_request_and_ioremap
Leela Krishna Amudala (2):
include/video: move fimd register headers from platform to include/video
include/video: Add register offsets for FIMD version 8
Manjunathappa, Prakash (5):
da8xx-fb: add 24bpp LCD configuration support
da8xx-fb: allow frame to complete after disabling LCDC
da8xx-fb: enable LCDC if FB is unblanked
da8xx-fb: add pm_runtime support
da8xx-fb: save and restore LCDC context across suspend/resume cycle
Peter Senna Tschudin (13):
drivers/video/sis/initextlfb.c: removes unnecessary semicolon
drivers/video/mb862xx/mb862xxfbdrv.c: fix error return code
drivers/video/sunxvr1000.c: fix error return code
drivers/video/cg3.c: fix error return code
drivers/video/sunxvr500.c: fix error return code
drivers/video/atmel_lcdfb.c: fix error return code
drivers/video/imxfb.c: fix error return code
drivers/video/bw2.c: fix error return code
drivers/video/cyber2000fb.c: fix error return code
drivers/video/ps3fb.c: fix error return code
drivers/video/arcfb.c: fix error return code
drivers/video/savage/savagefb_driver.c: fix error return code
drivers/video/exynos/exynos_mipi_dsi.c: fix error return code
Raphaël Assénat (1):
OMAPDSS: Do not require a VDDS_DSI regulator on AM35xx
Ricardo Neri (2):
OMAPDSS: HDMI: Disable PLL properly in case of error at power_on
OMAPDSS: DISPC: Improvements to DIGIT sync signal selection
Roland Stigge (1):
video: Remove pnx4008 driver
Sachin Kamat (4):
video: exynos-mipi-dsi: Add missing static storage class specifiers
video: s3c2410: Use pr_* and dev_* instead of printk
video: exynos_mipi_dsi: Remove unused code
video: exynos_mipi_dsi: Remove unnecessary NULL check
Sean Paul (2):
video: exynos_dp: Change aux transaction failures
video: exynos_dp: Fix get_pll_lock_status return value
Stephen Boyd (1):
video: msm: Remove useless mach/* includes
Thomas Abraham (1):
video: s3c-fb: use clk_prepare_enable and clk_disable_unprepare
Tomi Valkeinen (53):
Merge output work from Archit
OMAPDSS: HDMI: fix initial HDMI enable
Merge tag 'v3.6-rc4'
OMAPDSS: HDMI: Move GPIO handling to HDMI driver
OMAPDSS: HDMI: Add delay to wait for 5V power
OMAP4: TWL: add vdda_hdmi_dac regulator supply
OMAPDSS: HDMI: use vdda_hdmi_dac
OMAPDSS: Add DSI fclk maximum to dss_features
OMAPDSS: DSI: calculate dsi clock
OMAP: 4430SDP: remove DSI clock config from board file
OMAPDSS: fix use of dssdev->caps
OMAPDSS: Taal: use devm_* functions
OMAPFB1: remove unnecessary includes
OMAPFB1: remove a non-used table
OMAPDSS: remove unnecessary includes
OMAPFB: clear framebuffers with CPU
OMAPDSS: VRAM: Remove clearing with sDMA
OMAPDSS: Taal: Reogranize for device tree
OMAPDSS: TFP410: use devm_gpio_request_one
OMAPDSS: split overlay sysfs code
OMAPDSS: split manager sysfs code
OMAPDSS: clean up dss_mgr_set_lcd_config
OMAPDSS: clean up dss_mgr_set_timings
Revert "OMAPDSS: APPLY: add fifo-merge support"
Revert "OMAPDSS: APPLY: add fifo merge support funcs"
OMAPDSS: Improve fifo management code
OMAPDSS: Use WB fifo for GFX overlay
OMAPDSS: fix set_timings
OMAPDSS: fix dss_ovl_unset_manager
Merge miscellaneous omapdss changes
Merge branch 'fbdev-for-linus' of git://github.com/schandinat/linux-2.6
OMAPDSS: omap_dss_register_device() doesn't take display index
OMAPDSS: Add dss_get_default_display_name()
OMAPDSS: register only one display device per output
OMAPDSS: explicitely initialize dssdev->channel for new displays
OMAPDSS: handle errors in dss_init_device
OMAPDSS: cleanup dss_recheck_connections
OMAPDSS: cleanup dss_recheck_connections further
OMAPDSS: alloc dssdevs dynamically
OMAPDSS: DSI: improve DSI clock calcs for DISPC
OMAPDSS: move dss feats to the end of dss.c
OMAPDSS: Add support for DPI source selection
OMAPDSS: DSI: Add FEAT_DSI_PLL_SELFREQDCO
OMAPDSS: DSI: Add FEAT_DSI_PLL_REFSEL
OMAPDSS: DSI: Add new linebuffer size for OMAP5
OMAPDSS: DSI: Add code to disable PHY DCC
OMAPDSS: DSI: make OMAP2_DSS_DSI depend on ARCH_OMAP5
Merge omapdss single-dssdev series
Merge OMAP5 DSS changes to omapdss
OMAPDSS: DSI: fix tlpx_half reg field length
Merge branch 'archit/outputs-for-3.7'
Merge branch 'archit/wb-dispc-for-3.7'
OMAPDSS: add missing include for string.h
Uwe Kleine-König (1):
video/mx3fb: set .owner to prevent module unloading while being used
Wang YanQing (1):
video:uvesafb: check the return value of kzalloc
Wei Yongjun (1):
vmlfb: use list_move_tail instead of list_del/list_add_tail
arch/arm/mach-exynos/mach-nuri.c | 2 +-
arch/arm/mach-exynos/mach-origen.c | 2 +-
arch/arm/mach-exynos/mach-smdk4x12.c | 2 +-
arch/arm/mach-exynos/mach-smdkv310.c | 2 +-
arch/arm/mach-exynos/mach-universal_c210.c | 2 +-
arch/arm/mach-exynos/setup-fimd0.c | 2 +-
arch/arm/mach-omap2/board-4430sdp.c | 73 +-
arch/arm/mach-omap2/board-omap4panda.c | 27 +-
arch/arm/mach-omap2/display.c | 1 -
arch/arm/mach-omap2/twl-common.c | 6 +
arch/arm/mach-s3c24xx/mach-smdk2416.c | 2 +-
arch/arm/mach-s3c64xx/mach-anw6410.c | 2 +-
arch/arm/mach-s3c64xx/mach-crag6410.c | 2 +-
arch/arm/mach-s3c64xx/mach-hmt.c | 2 +-
arch/arm/mach-s3c64xx/mach-mini6410.c | 2 +-
arch/arm/mach-s3c64xx/mach-ncp.c | 2 +-
arch/arm/mach-s3c64xx/mach-real6410.c | 2 +-
arch/arm/mach-s3c64xx/mach-smartq5.c | 2 +-
arch/arm/mach-s3c64xx/mach-smartq7.c | 2 +-
arch/arm/mach-s3c64xx/mach-smdk6410.c | 2 +-
arch/arm/mach-s5p64x0/mach-smdk6440.c | 2 +-
arch/arm/mach-s5p64x0/mach-smdk6450.c | 2 +-
arch/arm/mach-s5pc100/mach-smdkc100.c | 2 +-
arch/arm/mach-s5pv210/mach-aquila.c | 2 +-
arch/arm/mach-s5pv210/mach-goni.c | 2 +-
arch/arm/mach-s5pv210/mach-smdkv210.c | 2 +-
arch/arm/plat-samsung/include/plat/regs-fb-v4.h | 159 ---
drivers/gpu/drm/exynos/exynos_drm_fimd.c | 2 +-
drivers/media/video/omap/omap_vout.c | 75 +-
drivers/staging/omapdrm/omap_drv.c | 5 +-
drivers/video/Kconfig | 15 -
drivers/video/Makefile | 2 -
drivers/video/amifb.c | 2 -
drivers/video/arcfb.c | 1 +
drivers/video/atmel_lcdfb.c | 5 +-
drivers/video/auo_k190x.c | 2 -
drivers/video/bf537-lq035.c | 12 +-
drivers/video/bf54x-lq043fb.c | 9 +-
drivers/video/bfin-lq035q1-fb.c | 13 +-
drivers/video/bfin-t350mcqb-fb.c | 1 +
drivers/video/bw2.c | 4 +-
drivers/video/cg3.c | 3 +-
drivers/video/cobalt_lcdfb.c | 5 +-
drivers/video/console/bitblit.c | 2 +-
drivers/video/console/fbcon.c | 2 +-
drivers/video/console/font_mini_4x6.c | 2 +-
drivers/video/console/font_sun8x16.c | 2 +-
drivers/video/cyber2000fb.c | 4 +-
drivers/video/da8xx-fb.c | 283 ++++--
drivers/video/ep93xx-fb.c | 17 +-
drivers/video/epson1355fb.c | 16 +-
drivers/video/exynos/exynos_dp_core.c | 322 +++----
drivers/video/exynos/exynos_dp_core.h | 6 +-
drivers/video/exynos/exynos_dp_reg.c | 58 +-
drivers/video/exynos/exynos_dp_reg.h | 3 +-
drivers/video/exynos/exynos_mipi_dsi.c | 9 +-
drivers/video/exynos/exynos_mipi_dsi_common.c | 8 -
drivers/video/fsl-diu-fb.c | 10 +-
drivers/video/gbefb.c | 17 +-
drivers/video/hpfb.c | 28 +-
drivers/video/imxfb.c | 1 +
drivers/video/jz4740_fb.c | 44 +-
drivers/video/mb862xx/mb862xxfbdrv.c | 12 +-
drivers/video/mbx/mbxfb.c | 25 +-
drivers/video/msm/mddi.c | 3 -
drivers/video/msm/mddi_client_nt35399.c | 6 +-
drivers/video/msm/mdp.c | 1 -
drivers/video/msm/mdp_hw.h | 1 -
drivers/video/mx3fb.c | 3 +-
drivers/video/nuc900fb.c | 2 +-
drivers/video/omap/hwa742.c | 1 -
drivers/video/omap/lcd_ams_delta.c | 1 -
drivers/video/omap/lcd_palmte.c | 1 -
drivers/video/omap/omapfb_main.c | 9 -
drivers/video/omap2/displays/panel-acx565akm.c | 14 +-
drivers/video/omap2/displays/panel-generic-dpi.c | 76 +-
.../omap2/displays/panel-lgphilips-lb035q02.c | 3 +
drivers/video/omap2/displays/panel-n8x0.c | 31 +-
.../omap2/displays/panel-nec-nl8048hl11-01b.c | 3 +
drivers/video/omap2/displays/panel-picodlp.c | 4 +
.../video/omap2/displays/panel-sharp-ls037v7dw01.c | 3 +
drivers/video/omap2/displays/panel-taal.c | 239 ++---
drivers/video/omap2/displays/panel-tfp410.c | 20 +-
.../video/omap2/displays/panel-tpo-td043mtea1.c | 7 +-
drivers/video/omap2/dss/Kconfig | 2 +-
drivers/video/omap2/dss/Makefile | 4 +-
drivers/video/omap2/dss/apply.c | 330 ++-----
drivers/video/omap2/dss/core.c | 91 +-
drivers/video/omap2/dss/dispc.c | 1019 ++++++++++++++------
drivers/video/omap2/dss/dispc.h | 37 +
drivers/video/omap2/dss/display.c | 108 ++-
drivers/video/omap2/dss/dpi.c | 181 +++-
drivers/video/omap2/dss/dsi.c | 675 ++++++++++---
drivers/video/omap2/dss/dss.c | 257 +++--
drivers/video/omap2/dss/dss.h | 79 +-
drivers/video/omap2/dss/dss_features.c | 278 +++++-
drivers/video/omap2/dss/dss_features.h | 7 +
drivers/video/omap2/dss/hdmi.c | 247 +++--
drivers/video/omap2/dss/hdmi_panel.c | 31 +-
drivers/video/omap2/dss/manager-sysfs.c | 512 ++++++++++
drivers/video/omap2/dss/manager.c | 473 +--------
drivers/video/omap2/dss/output.c | 148 +++
drivers/video/omap2/dss/overlay-sysfs.c | 456 +++++++++
drivers/video/omap2/dss/overlay.c | 492 +---------
drivers/video/omap2/dss/rfbi.c | 222 +++--
drivers/video/omap2/dss/sdi.c | 136 ++-
drivers/video/omap2/dss/venc.c | 337 +++----
drivers/video/omap2/dss/venc_panel.c | 251 +++++
drivers/video/omap2/omapfb/omapfb-ioctl.c | 7 +-
drivers/video/omap2/omapfb/omapfb-main.c | 34 +-
drivers/video/omap2/omapfb/omapfb.h | 5 +-
drivers/video/omap2/vram.c | 56 --
drivers/video/pnx4008/Makefile | 7 -
drivers/video/pnx4008/dum.h | 211 ----
drivers/video/pnx4008/fbcommon.h | 43 -
drivers/video/pnx4008/pnxrgbfb.c | 198 ----
drivers/video/pnx4008/sdum.c | 861 -----------------
drivers/video/pnx4008/sdum.h | 136 ---
drivers/video/ps3fb.c | 7 +-
drivers/video/s3c-fb.c | 54 +-
drivers/video/s3c2410fb.c | 34 +-
drivers/video/savage/savagefb_driver.c | 4 +-
drivers/video/sis/initextlfb.c | 2 +-
drivers/video/sunxvr1000.c | 4 +-
drivers/video/sunxvr2500.c | 4 +-
drivers/video/sunxvr500.c | 8 +-
drivers/video/udlfb.c | 2 +-
drivers/video/uvesafb.c | 2 +
drivers/video/vermilion/vermilion.c | 3 +-
drivers/video/via/via_clock.c | 19 +
include/video/omapdss.h | 112 ++-
.../plat/regs-fb.h => include/video/samsung_fimd.h | 152 ++-
132 files changed, 5372 insertions(+), 4731 deletions(-)
delete mode 100644 arch/arm/plat-samsung/include/plat/regs-fb-v4.h
create mode 100644 drivers/video/omap2/dss/manager-sysfs.c
create mode 100644 drivers/video/omap2/dss/output.c
create mode 100644 drivers/video/omap2/dss/overlay-sysfs.c
create mode 100644 drivers/video/omap2/dss/venc_panel.c
delete mode 100644 drivers/video/pnx4008/Makefile
delete mode 100644 drivers/video/pnx4008/dum.h
delete mode 100644 drivers/video/pnx4008/fbcommon.h
delete mode 100644 drivers/video/pnx4008/pnxrgbfb.c
delete mode 100644 drivers/video/pnx4008/sdum.c
delete mode 100644 drivers/video/pnx4008/sdum.h
rename arch/arm/plat-samsung/include/plat/regs-fb.h => include/video/samsung_fimd.h (73%)
^ permalink raw reply
* Re: [PATCH 1/2 v6] of: add helper to parse display timings
From: Steffen Trumtrar @ 2012-10-12 7:21 UTC (permalink / raw)
To: Thierry Reding
Cc: Tomi Valkeinen, devicetree-discuss, Rob Herring, linux-fbdev,
dri-devel, Laurent Pinchart, linux-media
In-Reply-To: <20121011193118.GA27599@avionic-0098.mockup.avionic-design.de>
On Thu, Oct 11, 2012 at 09:31:18PM +0200, Thierry Reding wrote:
> On Mon, Oct 08, 2012 at 09:49:21AM +0200, Steffen Trumtrar wrote:
> > On Mon, Oct 08, 2012 at 10:07:45AM +0300, Tomi Valkeinen wrote:
> > > On Thu, 2012-10-04 at 19:59 +0200, Steffen Trumtrar wrote:
> [...]
> > > > +
> > > > + disp->num_timings = 0;
> > > > +
> > > > + for_each_child_of_node(timings_np, entry) {
> > > > + disp->num_timings++;
> > > > + }
> > >
> > > No need for { }
> > >
> >
> > Okay.
>
> Or you could just use of_get_child_count().
>
> Thierry
Ah, very nice. That's definitely better. Didn't know about that function.
Thanks,
Steffen
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply
* [PATCH V5 1/2] video: exynos_dp: Add device tree support to DP driver
From: Ajay Kumar @ 2012-10-12 11:18 UTC (permalink / raw)
To: linux-samsung-soc, linux-fbdev, jg1.han, devicetree-discuss
Cc: FlorianSchandinat, sylvester.nawrocki, tomasz.figa, thomas.ab
This patch enables device tree based discovery support for DP driver.
The driver is modified to handle platform data in both the cases:
with DT and non-DT.
Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
Acked-by: Jingoo Han <jg1.han@samsung.com>
---
drivers/video/exynos/exynos_dp_core.c | 161 ++++++++++++++++++++++++++++++---
drivers/video/exynos/exynos_dp_core.h | 2 +
2 files changed, 149 insertions(+), 14 deletions(-)
diff --git a/drivers/video/exynos/exynos_dp_core.c b/drivers/video/exynos/exynos_dp_core.c
index d55470e..62932ba 100644
--- a/drivers/video/exynos/exynos_dp_core.c
+++ b/drivers/video/exynos/exynos_dp_core.c
@@ -18,6 +18,7 @@
#include <linux/io.h>
#include <linux/interrupt.h>
#include <linux/delay.h>
+#include <linux/of.h>
#include <video/exynos_dp.h>
@@ -856,6 +857,99 @@ static irqreturn_t exynos_dp_irq_handler(int irq, void *arg)
return IRQ_HANDLED;
}
+#ifdef CONFIG_OF
+struct exynos_dp_platdata *exynos_dp_dt_parse_pdata(struct device *dev)
+{
+ struct device_node *dp_node = dev->of_node;
+ struct exynos_dp_platdata *pd;
+ struct video_info *dp_video_config;
+
+ pd = devm_kzalloc(dev, sizeof(*pd), GFP_KERNEL);
+ if (!pd) {
+ dev_err(dev, "memory allocation for pdata failed\n");
+ return ERR_PTR(-ENOMEM);
+ }
+ dp_video_config = devm_kzalloc(dev,
+ sizeof(*dp_video_config), GFP_KERNEL);
+
+ if (!dp_video_config) {
+ dev_err(dev, "memory allocation for video config failed\n");
+ return ERR_PTR(-ENOMEM);
+ }
+ pd->video_info = dp_video_config;
+
+ if (of_get_property(dp_node, "hsync-active-high", NULL))
+ dp_video_config->h_sync_polarity = 1;
+
+ if (of_get_property(dp_node, "vsync-active-high", NULL))
+ dp_video_config->v_sync_polarity = 1;
+
+ if (of_get_property(dp_node, "interlaced", NULL))
+ dp_video_config->interlaced = 1;
+
+ of_property_read_u32(dp_node, "samsung,color-space",
+ &dp_video_config->color_space);
+
+ of_property_read_u32(dp_node, "samsung,dynamic-range",
+ &dp_video_config->dynamic_range);
+
+ of_property_read_u32(dp_node, "samsung,ycbcr-coeff",
+ &dp_video_config->ycbcr_coeff);
+
+ of_property_read_u32(dp_node, "samsung,color-depth",
+ &dp_video_config->color_depth);
+
+ of_property_read_u32(dp_node, "samsung,link-rate",
+ &dp_video_config->link_rate);
+
+ of_property_read_u32(dp_node, "samsung,lane-count",
+ &dp_video_config->lane_count);
+ return pd;
+}
+
+void exynos_dp_dt_parse_phydata(struct exynos_dp_device *dp)
+{
+ struct device_node *dp_phy_node;
+ u32 phy_base;
+ void *virt_phy_base;
+
+ dp_phy_node = of_find_node_by_name(dp->dev->of_node, "dptx-phy");
+ if (!dp_phy_node) {
+ dp->dp_phy_addr = NULL;
+ return;
+ }
+
+ of_property_read_u32(dp_phy_node, "reg", &phy_base);
+ of_property_read_u32(dp_phy_node, "samsung,enable-mask",
+ &dp->enable_mask);
+ virt_phy_base = ioremap(phy_base, SZ_4);
+ if (!virt_phy_base) {
+ dev_err(dp->dev, "failed to ioremap dp-phy\n");
+ dp->dp_phy_addr = NULL;
+ return;
+ }
+ dp->dp_phy_addr = virt_phy_base;
+}
+
+void exynos_dp_phy_init(struct exynos_dp_device *dp)
+{
+ u32 reg;
+
+ reg = __raw_readl(dp->dp_phy_addr);
+ reg |= dp->enable_mask;
+ __raw_writel(reg, dp->dp_phy_addr);
+}
+
+void exynos_dp_phy_exit(struct exynos_dp_device *dp)
+{
+ u32 reg;
+
+ reg = __raw_readl(dp->dp_phy_addr);
+ reg &= ~(dp->enable_mask);
+ __raw_writel(reg, dp->dp_phy_addr);
+}
+#endif /* CONFIG_OF */
+
static int __devinit exynos_dp_probe(struct platform_device *pdev)
{
struct resource *res;
@@ -864,12 +958,6 @@ static int __devinit exynos_dp_probe(struct platform_device *pdev)
int ret = 0;
- pdata = pdev->dev.platform_data;
- if (!pdata) {
- dev_err(&pdev->dev, "no platform data\n");
- return -EINVAL;
- }
-
dp = devm_kzalloc(&pdev->dev, sizeof(struct exynos_dp_device),
GFP_KERNEL);
if (!dp) {
@@ -879,6 +967,21 @@ static int __devinit exynos_dp_probe(struct platform_device *pdev)
dp->dev = &pdev->dev;
+ if (pdev->dev.of_node) {
+ pdata = exynos_dp_dt_parse_pdata(&pdev->dev);
+ if (IS_ERR(pdata))
+ return PTR_ERR(pdata);
+
+ exynos_dp_dt_parse_phydata(dp);
+ } else {
+ pdata = pdev->dev.platform_data;
+ }
+
+ if (!pdata) {
+ dev_err(&pdev->dev, "no platform data\n");
+ return -EINVAL;
+ }
+
dp->clock = devm_clk_get(&pdev->dev, "dp");
if (IS_ERR(dp->clock)) {
dev_err(&pdev->dev, "failed to get clock\n");
@@ -909,8 +1012,14 @@ static int __devinit exynos_dp_probe(struct platform_device *pdev)
}
dp->video_info = pdata->video_info;
- if (pdata->phy_init)
- pdata->phy_init();
+
+ if (pdev->dev.of_node) {
+ if (dp->dp_phy_addr)
+ exynos_dp_phy_init(dp);
+ } else {
+ if (pdata->phy_init)
+ pdata->phy_init();
+ }
exynos_dp_init_dp(dp);
@@ -953,8 +1062,13 @@ static int __devexit exynos_dp_remove(struct platform_device *pdev)
struct exynos_dp_platdata *pdata = pdev->dev.platform_data;
struct exynos_dp_device *dp = platform_get_drvdata(pdev);
- if (pdata && pdata->phy_exit)
- pdata->phy_exit();
+ if (pdev->dev.of_node) {
+ if (dp->dp_phy_addr)
+ exynos_dp_phy_exit(dp);
+ } else {
+ if (pdata && pdata->phy_exit)
+ pdata->phy_exit();
+ }
clk_disable_unprepare(dp->clock);
@@ -968,8 +1082,13 @@ static int exynos_dp_suspend(struct device *dev)
struct exynos_dp_platdata *pdata = pdev->dev.platform_data;
struct exynos_dp_device *dp = platform_get_drvdata(pdev);
- if (pdata && pdata->phy_exit)
- pdata->phy_exit();
+ if (dev->of_node) {
+ if (dp->dp_phy_addr)
+ exynos_dp_phy_exit(dp);
+ } else {
+ if (pdata && pdata->phy_exit)
+ pdata->phy_exit();
+ }
clk_disable_unprepare(dp->clock);
@@ -982,8 +1101,13 @@ static int exynos_dp_resume(struct device *dev)
struct exynos_dp_platdata *pdata = pdev->dev.platform_data;
struct exynos_dp_device *dp = platform_get_drvdata(pdev);
- if (pdata && pdata->phy_init)
- pdata->phy_init();
+ if (dev->of_node) {
+ if (dp->dp_phy_addr)
+ exynos_dp_phy_init(dp);
+ } else {
+ if (pdata && pdata->phy_init)
+ pdata->phy_init();
+ }
clk_prepare_enable(dp->clock);
@@ -1013,6 +1137,14 @@ static const struct dev_pm_ops exynos_dp_pm_ops = {
SET_SYSTEM_SLEEP_PM_OPS(exynos_dp_suspend, exynos_dp_resume)
};
+#ifdef CONFIG_OF
+static const struct of_device_id exynos_dp_match[] = {
+ { .compatible = "samsung,exynos5-dp" },
+ {},
+};
+MODULE_DEVICE_TABLE(of, exynos_dp_match);
+#endif
+
static struct platform_driver exynos_dp_driver = {
.probe = exynos_dp_probe,
.remove = __devexit_p(exynos_dp_remove),
@@ -1020,6 +1152,7 @@ static struct platform_driver exynos_dp_driver = {
.name = "exynos-dp",
.owner = THIS_MODULE,
.pm = &exynos_dp_pm_ops,
+ .of_match_table = of_match_ptr(exynos_dp_match),
},
};
diff --git a/drivers/video/exynos/exynos_dp_core.h b/drivers/video/exynos/exynos_dp_core.h
index 57b8a65..569858b 100644
--- a/drivers/video/exynos/exynos_dp_core.h
+++ b/drivers/video/exynos/exynos_dp_core.h
@@ -29,6 +29,8 @@ struct exynos_dp_device {
struct clk *clock;
unsigned int irq;
void __iomem *reg_base;
+ void __iomem *dp_phy_addr;
+ unsigned int enable_mask;
struct video_info *video_info;
struct link_train link_train;
--
1.7.0.4
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox