summaryrefslogtreecommitdiff
path: root/drivers/video/s3c-fb.c
AgeCommit message (Collapse)Author
2013-01-22video: Convert to devm_ioremap_resource()Thierry Reding
Convert all uses of devm_request_and_ioremap() to the newly introduced devm_ioremap_resource() which provides more consistent error handling. devm_ioremap_resource() provides its own error messages so all explicit error messages can be removed from the failure code paths. Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Acked-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-03Drivers: video: remove __dev* attributes.Greg Kroah-Hartman
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 <wfp5p@virginia.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-26video: s3c-fb: fix red offset and length for ARGB232 formatJingoo Han
Green pixel and blue pixel are 3 bits and 2 bits respectively at ARGB232 format. Thus, the value of red offset should be 5, not 4. Also, the value of red length should be 2, because red pixel is 2 bits at ARGB232 format. Signed-off-by: Jingoo Han <jg1.han@samsung.com>
2012-11-26video: s3c-fb: return an error when bpp is invalidJingoo Han
This patch returns an error, when bpp is invalid in s3c_fb_check_var(). If invalid bpp is requested, an error should be returned. Signed-off-by: Jingoo Han <jg1.han@samsung.com>
2012-11-26video: s3c-fb: add "drop through" commentJingoo Han
This patch adds a "drop through" comment to improve the readability. Signed-off-by: Jingoo Han <jg1.han@samsung.com>
2012-11-26video: s3c-fb: use dev_get_drvdata() instead of platform_get_drvdata()Jingoo Han
Because there is no need to access to the platform device in suspend/resume and runtime_suspend/resume, dev_get_drvdata() can be used instead of platform_get_drvdata() to make the code smaller. Signed-off-by: Jingoo Han <jg1.han@samsung.com>
2012-11-26video: s3c-fb: use FIMD_V8_VIDTCON0 for EXYNOS5 FIMDJingoo Han
This patch uses FIMD_V8_VIDTCON0 as the address definition of VIDTCON0 register, because the address offset of VIDTCONx registers is changed from 0x0 to 0x20000 for EXYNOS5 FIMD. So, FIMD_V8_VIDTCON0 should be used. Signed-off-by: Jingoo Han <jg1.han@samsung.com>
2012-11-26video: s3c-fb: fix typo in commentJingoo Han
"sturucture" should be "structure". Signed-off-by: Jingoo Han <jg1.han@samsung.com>
2012-10-10video: s3c-fb: use clk_prepare_enable and clk_disable_unprepareThomas Abraham
Convert clk_enable/clk_disable to clk_prepare_enable/clk_disable_unprepare calls as required by common clock framework. Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org> Acked-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-09-20Merge branch 'v3.7-for-florian' of ↵Florian Tobias Schandinat
git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into fbdev-next
2012-08-23video: s3c-fb: use devm_clk_get()Jingoo Han
The devm_ functions allocate memory that is released when a driver detaches. This patch uses devm_clk_get() for these functions. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-08-08include/video: move fimd register headers from platform to include/videoLeela Krishna Amudala
This patch moves the contents from regs-fb-v4.h and regs-fb.h to include/video/samsung_fimd.h. Also updates the header inclusion in machine files and driver files accordingly. Signed-off-by: Leela Krishna Amudala <l.krishna@samsung.com> Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2012-07-24Merge branch 'for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial Pull trivial tree from Jiri Kosina: "Trivial updates all over the place as usual." * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (29 commits) Fix typo in include/linux/clk.h . pci: hotplug: Fix typo in pci iommu: Fix typo in iommu video: Fix typo in drivers/video Documentation: Add newline at end-of-file to files lacking one arm,unicore32: Remove obsolete "select MISC_DEVICES" module.c: spelling s/postition/position/g cpufreq: Fix typo in cpufreq driver trivial: typo in comment in mksysmap mach-omap2: Fix typo in debug message and comment scsi: aha152x: Fix sparse warning and make printing pointer address more portable. Change email address for Steve Glendinning Btrfs: fix typo in convert_extent_bit via: Remove bogus if check netprio_cgroup.c: fix comment typo backlight: fix memory leak on obscure error path Documentation: asus-laptop.txt references an obsolete Kconfig item Documentation: ManagementStyle: fixed typo mm/vmscan: cleanup comment error in balance_pgdat mm: cleanup on the comments of zone_reclaim_stat ...
2012-07-24video: Fix typo in drivers/videoMasanari Iida
Correct spelling typo in debug messages and comments within drivers/video. Signed-off-by: Masanari Iida <standby24x7@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2012-06-13video: s3c-fb: fix possible division by zero in s3c_fb_calc_pixclkJingoo Han
Divider value can be zero and it makes division by zero from debug message in s3c_fb_calc_pixclk; therefore, it should be fixed. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-06-13video: s3c-fb: clear SHADOWCON register when clearing hardware window registersJingoo Han
All bits of SHADOWCON register should be cleared when clearing hardware window registers; however, some bits of SHADOWCON register are not cleared previously. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-05-13video: s3c-fb: use pr_debug instead of printkJingoo Han
This patch uses pr_debug instead of printk to allow dynamic debugging. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-05-08video: s3c-fb: s3c_fb_missing_pixclock() can't be __devinitMark Brown
Since s3c_fb_missing_pixclock() is called from s3c_fb_set_rgb_timing() which is used in the suspend/resume paths it can't be marked __devinit as this could result in it being discarded after boot. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-04-16video: s3c-fb: add runtime_get/put to suspend/resumeJingoo Han
This patch adds runtime_get/put to suspend/resume, which should be necessary to prevent the problem to access the fimd register without block power on. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-04-09video: s3c-fb: remove 'default_win' element from platform dataThomas Abraham
The decision to enable or disable the data output to the lcd panel from the controller need not be based on the value of 'default_win' element in the platform data. Instead, the data output to the panel is enabled if any of the windows are active, else data output is disabled. Cc: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-04-09video: s3c-fb: move video interface timing out of window setup dataThomas Abraham
The video interface timing is independent of the window setup data. The resolution of the window can be smaller than that of the lcd panel to which the video data is output. So move the video timing data from the per-window setup data to the platform specific section in the platform data. This also removes the restriction that atleast one window should have the same resolution as that of the panel attached. Cc: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org> Acked-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-03-06video: s3c-fb: Add support EXYNOS5 FIMDJingoo Han
This patch adds s3c_fb_driverdata s3c_fb_data_exynos5 for EXYNOS5 and adds extended timing control setting. EXYNOS5 FIMD needs extended setting for video timing control. Additional bits are added to VIDTCON2, VIDWxxADD2, VIDOSDxA and VIDOSDxB registers in order to set timing value for lager resolution. Also, address offset of VIDTCONx registers is changed from 0x0 to 0x20000, thus variable type should be changed to int type to handle the address offset of VIDTCONx registers for EXYNOS5 FIMD. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-02-24video: s3c-fb: use devm_request_irq()Jingoo Han
The devm_ functions allocate memory that is released when a driver detaches. This patch uses devm_request_irq of these functions. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-01-28video: s3c-fb: add video clock running at data under-flowJingoo Han
This patch adds video clock running at data under-flow. It means that the pixel clock is continuously provided to lcd module, even when under-run occurs. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-01-28video: s3c-fb: add alpha value width settingJingoo Han
This patch adds alpha value width setting according to transparency value of each window format, using BLENDCON register. When alpha value is 8 bits, BLENDCON will set alpha value width as 8 bits. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-01-28video: s3c-fb: fix checkpatch errorJingoo Han
This patch fixes the checkpatch error listed below: ERROR: trailing statements should be on next line Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-01-28video: s3c-fb: Convert to devm style allocationMark Brown
Saves some code, especially useful as the code saved is mostly in the infrequently tested error paths. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-01-03video: s3c-fb: Don't keep device runtime active when openMark Brown
Allow the controller to be runtime suspended when the screen is blanked by not taking a runtime reference while the device is open. This allows greater system wide power savings when used with a standard application layer and ensures that the screen does not blank unless requested. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-01-03video: s3c-fb: Hold runtime PM references when touching registersMark Brown
Take a runtime PM reference whenever updating registers in preparation for suspending the device when the framebuffer is blanked. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-01-03video: s3c-fb: Take a runtime PM reference when unblankedMark Brown
When the framebuffer is unblanked hold a runtime PM reference. This prevents us powering down when userspace has left an image on the framebuffer and prepares the way for being able to power down the hardware when an application still has the device open. Since we now hold a runtime PM reference whenever the display is unblanked there is no need for the runtime power management to disable and enable the display, and doing so would lead to runtime PM trying to recurse into itself when called from the blanking code, so split the runtime PM into separate functions which only deal with the clocks. The PM core will runtime resume the device prior to system suspend. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-01-03video: s3c-fb: Disable runtime PM in error paths from probeMark Brown
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-01-03video: s3c-fb: Use s3c_fb_enable() to enable the framebufferMark Brown
The s3c-fb driver has a function called s3c_fb_enable() which turns on and off the physical output. However it is only actually used in paths which disable the screen, the enabling just writes to the register. Make the code less confusing by ensuring that the enable also goes through the same path. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-01-03video: s3c-fb: Make runtime PM functional againMark Brown
The change in "video: s3c-fb: modify runtime pm functions" (commit 35784b) renders the runtime power management for the device completely ineffectual as while it leaves runtime power management notionally enabled a runtime power reference is held for the entire time the device is registered meaning it will never actually do anything. A further issue is introduced as runtime power management is added during the system suspend path which is not something which drivers are supposed to do and would interact poorly if there were any operations done in the runtime power management callbacks. While this does make things simpler (the main motivation for the original change) it will not only cause us to use more power in the framebuffer controller but will also prevent us entering lower power domain and SoC wide states as we can never power down the domain containing the device. Since neither of these things is desirable revert the change. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2011-12-19video: s3c-fb: add shadow register protectJingoo Han
Shadow registers should be protectd whenever the registers are updated. Shadow registers are updated after SHADOWCON shadow register is cleared. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2011-12-19video: s3c-fb: modify runtime pm functionsJingoo Han
Runtime suspend and runtime resume are modified in order to reduce the complexity and improve the usability of runtime pm. After probe function, s3c-fb driver is not suspended until suspend or remove is called. The scheme is changed as follows: runtime_get is only called in probe and resume. runtime_put is only called in remove and suspend. open/close cannot call the runtime_get/put. Also, runtime_susepnd/resume are just called by runtime pm, not doing suspend/resume routine any longer. This is because open/close cannot call the runtime_get/put; the suspend/resume routine in runtime_suspend/resume were previously used when open and close were called. The name of s3c-fb dev_pm_ops is changed from s3cfb_pm_ops to s3c_fb_pm_ops in order to use more consistent naming. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2011-12-19video: s3c-fb: set missing bitmask of enabled hardware windowJingoo Han
This patch set missing bitmask of enabled hardware window which should be checked whenever the hardware window is enabled. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2011-12-03video: s3c-fb: Unify runtime and system PM functionsMark Brown
The s3c-fb driver has separate runtime and system PM functions but the implementations are identical so far as I can tell so unify them for simplicity. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2011-12-03video: convert drivers/video/* to use module_platform_driver()Axel Lin
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 <ben@simtec.co.uk> Cc: Manuel Lauss <mano@roarinelk.homelinux.net> Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Wan ZongShun <mcuos.com@gmail.com> Acked-by: Sascha Hauer <s.hauer@pengutronix.de> Acked-by: Lennert Buytenhek <buytenh@wantstofly.org> Acked-by: Alexey Charkov <alchark@gmail.com> Acked-by: Damian Hobson-Garcia <dhobsong@igel.co.jp> Acked-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2011-11-11video: s3c-fb: fix transparency length for pixel blendingJingoo Han
Transparency length is fixed for pixel blending in order to support ARGB 8888 format. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2011-09-14video: s3c-fb: Add S5P64X0 specific s3c_fb_driverdataAjay Kumar
This patch: -- Adds s3c_fb_driverdata for S5P64X0, which supports 3 windows. -- Also, register "s5p64x0-fb" type driver_data. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Acked-by: Jingoo Han <jg1.han@samsung.com> Acked-by: Kukjin Kim <kgene.kim@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2011-08-24video: s3c-fb: Add support EXYNOS4 FIMDJingoo Han
This patch adds struct s3c_fb_driverdata s3c_fb_data_exynos4 for EXYNOS4 and adds lcd clock gating support. FIMD driver needs two clocks for FIMD IP and LCD pixel clock. Previously, both clocks are provided by using bus clock such as HCLK. However, EXYNOS4 can not select HCLK for LCD pixel clock because the EXYNOS4 FIMD IP does not have the CLKSEL bit of VIDCON0. So, FIMD driver should provide the lcd clock using SCLK_FIMD as LCD pixel clock for EXYNOS4. The driver selects enabling lcd clock according to has_clksel which means the CLKSEL bit of VIDCON0. If there is has_clksel, the driver will not enable the lcd clock using SCLK_FIMD because bus clock using HCLK is used a LCD pixel clock. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2011-08-19s3c-fb: use display information in info not in var for panningLaurent Pinchart
We must not use any information in the passed var besides xoffset, yoffset and vmode as otherwise applications might abuse it. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Jingoo Han <jg1.han@samsung.com>
2011-06-09video: s3c-fb: move enabling channel for windowJingoo Han
This patch moves enabling channel for window, because there should be enabling channel before enabling window. If the sequence is reversed, it makes the problem in displaying images to lcd panel. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2011-06-09video: s3c-fb: fix virtual resolution checkingJingoo Han
This patch fixes mishandling in virtual resolution checking. Previously, virtual resolution is changed to virtual_x and virtual_y which mean the size for buffer allocation, when s3c_fb_check_var is called by fb_check_var. However, it is meaningless, since virtual_x and virtual_y are fixed and user cannot change virtual resolution. Therefore, virtual resolution should be more than resolution such as xres and yres. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2011-06-09video: s3c-fb: fix misleading kfree in remove functionJingoo Han
This patch fixes misleading kfree in remove function. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2011-05-24video: s3c-fb: correct transparency checking in 32bppJingoo Han
32bpp means ARGB 8888 in the driver, therfore the transparency length and offset should be 8 and 24 respectively. However, the transparency length and offset were previously 0, which means that the driver supports RGB 888 without alpha blending when 32bpp is used. So, the transparency checking in 32bpp is corrected so that the transparency length and offset are 8 and 24 respectively. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2011-05-24video: s3c-fb: add gpio setup function to resume functionJingoo Han
This patch adds gpio setup function to resume function to ensure gpio used by FIMD IP and LCD panel during a resume. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2011-05-24video: s3c-fb: add window variant information for S5PJingoo Han
Compared to s3c64xx, S5P series such as S5PC100 and S5PV210 have the different window features including valid bpp, palette size and palette bpp. Therefore, window variant information for S5P should be added. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2011-05-24video: s3c-fb: add additional validate bppsJingoo Han
Additional validate bpps are added to windows as follows: window0: 18 bpp for RGB666 window1, 2 and 3: 28 bpp for ARGB4888 window4: 19 bpp for ARGB1666, 28 bpp for ARGB4888 Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2011-05-24video: s3c-fb: correct window osd size offset valuesJingoo Han
Offset values for OSD size registers of window 1 and 2 are corrected. The offset values of OSD size registers are as follows: window0: VIDOSDC (0x8) window1 and 2: VIDOSDD (0xc) window3 and 4: not present Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>