summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge tag 'fbdev-3.14' of ↵Linus Torvalds2014-01-2443-413/+949
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux Pull fbdev changes from Tomi Valkeinen: "This is a rather boring pull request. There is one new fb driver, OpenCores VGA/LCD, but other than that it's just minor cleanups and fixes" * tag 'fbdev-3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (51 commits) i810: delete useless variable video: add OpenCores VGA/LCD framebuffer driver video/logo: Remove MIPS-specific include section tgafb: potential NULL dereference in init video: mmp: Using plain integer as NULL pointer video: mmp: delete a stray mutex_unlock() video: amba-clcd: Make CLCD driver available on more platforms video: Replace local macro with PCI standard macro fbmem: really support wildcard video=options for all fbdev drivers video: vgacon: Don't build on arm64 video: mx3fb: Allow blocking during framebuffer allocation fbcon: Fix memory leak in fbcon_exit(). fbcon: trivial optimization for fbcon_exit video: pxa168fb: Cleanup pxa168fb.h file video: pxa: Cleanup video-pxafb.h header video: msm: Cleanup video-msm_fb.h header video: ep93xx: Cleanup video-ep93xx.h header video: mxsfb: fix broken videomode selection video: mxsfb: convert pr_debug()/dev_dbg() to pr_err()/dev_err() for error messages video: vmlfb: remove unnecessary pci_set_drvdata() ...
| *-. Merge branches '3.14/fbdev', '3.14/dss-misc' and '3.14/dss-fclk' into for-nextTomi Valkeinen2014-01-2022-290/+412
| |\ \ | | | | | | | | | | | | Merge fbdev topic branches
| | | * OMAPDSS: add dedicated fck PLL supportTomi Valkeinen2013-11-181-9/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for SoCs that have a dedicated DSS PLL used for DSS function clock. If there is no dss parent clock defined, it is presumed that the functionl clock rate can be set (almost) freely. The code calculates the highest allowed fck rate, which when divided with some integer gives the required pck. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | | * OMAPDSS: pass pck to dss fck clock calcTomi Valkeinen2013-11-184-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need the required pixel clock rate when calculating the dss fclk on SoCs that have a dedicated DSS PLL. This patch changes the code to pass the pck to the calc functions. The pck rate is taken into use in the next patch. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | | * OMAPDSS: cleanup fck parent handlingTomi Valkeinen2013-11-182-28/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The dss parent_clk_name currently points to a clock node which we use to change the fclk rate. Now that we have CLK_SET_RATE_PARENT properly set, we can set the rate directly to the fclk node. However, we still need to calculate the possible clock rates. For this, we need the rate of the parent of the current parent_clk. To simplify the code, this patch changes the parent_clk_name to point to the above mentioned parent, so that we can get the rate directly. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | | * OMAPDSS: rename parent clk variablesTomi Valkeinen2013-11-181-20/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename the variables related to DSS fclk's parent: "clk_name" and "dpll4_m4_ck", to "parent_clk_name" and "parent_clk", which much better tell what they mean. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | | * OMAPDSS: simplify dss clk dumpTomi Valkeinen2013-11-181-17/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Simplify dss_dump_clocks() so that it doesn't make any presumptions about the DSS fclks nature. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | | * OMAPDSS: remove struct dss_clock_infoTomi Valkeinen2013-11-184-74/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove struct dss_clock_info, as it is not usable in a case where DSS fclk comes from a dedicated PLL. Instead, just use the fclk rate in place of dss_clock_info, as that is all that's needed. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | | * OMAPDSS: fix omap2 dss fck handlingTomi Valkeinen2013-11-181-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The driver considers OMAP2 DSS's functional clock as a fixed clock. However, it can be changed, but the possible dividers are not continuous which is why it was just handled as a fixed clock. As a partial fix, this patch changes the code to handle the continous part of the dividers, from 1 to 6. This let's us handle the OMAP2 fck the same way as fcks on other OMAPs. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | OMAPDSS: DISPC: Fix 34xx overlay scaling calculationIvaylo Dimitrov2014-01-141-9/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 7faa92339bbb1e6b9a80983b206642517327eb75 OMAPDSS: DISPC: Handle synclost errors in OMAP3 introduces limits check to prevent SYNCLOST errors on OMAP3. However, it misses the logic found in Nokia kernels that is needed to correctly calculate whether 3 tap or 5 tap rescaler to be used as well as the logic to fallback to 3 taps if 5 taps clock results in too tight horizontal timings. Without that patch "horizontal timing too tight" errors are seen when a video with resolution above 640x350 is tried to be played. The patch is a forward-ported logic found in Nokia N900 and N9/50 kernels. Signed-off-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | OMAPDSS: panel-acx565akm: clean-up lockingTomi Valkeinen2014-01-131-14/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The locking in the acx565akm panel driver was getting too complex. Clean it up by making new functions, acx565akm_bl_get_intensity_locked and acx565akm_bl_update_status_locked, which are called by the backlight subsystem. This way the non-locked versions can be called by the panel's other funcs, simplifying the lock management. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | OMAPDSS: DISPC: Preload more data in pipeline DMAs for OMAP4+ SoCsArchit Taneja2014-01-131-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DISPC pipeline DMAs preload some bytes of pixel data in the vertical blanking region before the start of each frame. The preload ensures the pipeline doesn't underflow when the active region of the display starts. DISPC_GFX/VIDp_PRELOAD registers allow us to program how many bytes of data should be preloaded for each pipeline. Calculating a precise preload value would be a complex function of the pixel clock of the connected display, the vertical blanking duration and the interconnect traffic at that instance. If the register is left untouched, a default value is preloaded. We observe underflows for OMAP4+ SoCs for certain bandwidth intensive use cases with many other initiators active, and in situations where memory access isn't very efficient(like accessing Tiler mapped buffers and EMIF configured in non-interleaved more). The cause of the underflow is because the default preload value isn't sufficient for the DMA to reach a steady state. We configure the PRELOAD register such that the pipelines preload data up to the high threshold of the FIFO. Preloading lot of data for older SoCs can have a negative impact. Due to slower interconnects, it's possible that the DISPC DMA cannot preload up to the high threshold within the vertical blanking region of the panel. We leave the PRELOAD registers to their reset values since we haven't faced underflows with these SoCs because of low value of PRELOAD. Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | OMAPFB: disable overlays on driver removalTomi Valkeinen2014-01-131-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When omapfb module is removed, the driver will turn off all the displays it manages. However, it leaves the overlays enabled. While the overlays are obviously disabled as the displays are disabled, it causes issues when the driver module is loaded again, as at that point the overlays are still enabled on the hardware level. The result is that even if the SW thinks overlays are disabled, they are actually enabled. Fix this by making sure the overlays are disabled at module removal. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | OMAPDSS: don't print errors on -EPROBE_DEFERTomi Valkeinen2014-01-135-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Nowadays it's normal to get -EPROBE_DEFER from, e.g., regulator_get. As -EPROBE_DEFER is not really an error, and the driver will be probed fine a bit later, printing an error message will just confuse the user. This patch changes omapdss to print an error for regulator_gets only if the error code is something else than -EPROBE_DEFER. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | OMAPFB: give informative print when probe succeedsTomi Valkeinen2014-01-131-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is quite common to have omapfb probe deferred because of a missing resource, and to get omapfb probed succesfully a bit later. This works fine. However, omapfb does not give any print on a successful probe, so if the omapfb is actually never probed again after deferral, this is not shown in the log. To help debugging, add a simple print from omapfb at the end of its probe, saying which display it is using and in which resolution. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | OMAPDSS: HDMI: rename resource namesTomi Valkeinen2014-01-134-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The HDMI driver tries to get the needed memory resources by name and by ID. Resources by name are not currently defined, and will be used with DT boot. The resource names used in the driver are not quite perfect, and as they are not used yet, we can change them. This patch removes the unneeded "hdmi_" prefix from the names, and simplifies the names (e.g. hdmi_txphy -> phy). Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | OMAPDSS: DSI: split DSI memory map to smaller blocksTomi Valkeinen2014-01-131-59/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DSI contains three separate blocks: protocol engine, PHY and PLL. At the moment, all these are memory mapped in one big chunk. We need to split that memory map into smaller pieces so that we can add proper 'reg' properties into the DT data for each block. This patch changes the driver to map the blocks separately. It first tries to get the memory resource using name, used when booting with DT, and if that fails, it gets the memory resource by ID, in which case the driver gets the big chunk from platform data. That big chunk is then split into the smaller blocks manually. After DSS DT code has been merged and the old platform code removed, we can clean up the memory resource management. Instead of changing the driver in all the places where a register is read or written, this patch takes a shortcut: it adds an additional number to the struct which represents the register index. This number is used to decide which base address to use. In the future we should consider other approaches. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | OMAPDSS: HDMI: add missing core irqTomi Valkeinen2014-01-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | HDMI_IRQ_CORE was not defined in the hdmi.h. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | OMAPDSS: HDMI: fix HDMI_WP_CLK nameTomi Valkeinen2014-01-132-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | HDMI_WP_CLK was wrongly defined as HDMI_WP_WP_CLK. Fix that. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | OMAPDSS: HDMI: fix hdmi_wait_for_bit_changeTomi Valkeinen2014-01-131-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | hdmi_wait_for_bit_change() has two issues: The register index was passed as u16, even if the register index may be u32. Fix the index to u32. The function was copied from wait_for_bit_change() which waits for a single bit to change, but the hdmi version was changed to wait for a bit field. This change was not done correctly. The function is supposed to return the (last) value of the bit field, but it returned !val in case of timeout. This was correct for the single bit version, but not for the hdmi version. Fix the function to return the actual value in the register. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | OMAPDSS: DISPC: fix context restoreTomi Valkeinen2014-01-131-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DISPC_MSTANDBY_CTRL register is used in the driver, but it's not restored in dispc_restore_context(), causing problems after resume. Instead of adding DISPC_MSTANDBY_CTRL to dispc_restore_context(), let's call _omap_dispc_initial_config() as the first thing in dispc_runtime_resume(). This will initialize the DISPC core registers properly, and will avoid similar issues in the future. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | OMAPDSS: HDMI4: remove useless func callsTomi Valkeinen2014-01-131-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For some reason the hdmi driver first turns off the video output when it's about to enable the video output. This serves no purpose, and can be removed. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | OMAPDSS: HDMI4: Accept non-standard timingsArchit Taneja2014-01-131-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The hdmi4 driver currently rejects any timing which is not from the CEA or VESA standards. This leads hdmi rejecting any non-standard mode. A non standard timing may not have a valid code corresponding to it. In such cases, the HDMI spec suggests to set the code to 0. Modify the driver to check if the timings fall within the range of the DISPC TV overlay manager, and remove the check for an invalid code. Add a debug print specifying the mode and code in hdmi_display_set_timing. Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | OMAPDSS: DSI: fix fifosizeTomi Valkeinen2013-12-301-12/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DSI has separate TX and RX fifos. However, the current code only has one field where the fifo size is stored, and the code for both TX and RX config write to the same field. This has not caused issues, as we've been using the same fifo sizes. Fix this bug by creating separate fields for TX and RX fifo sizes. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | OMAPDSS: rename display-sysfs 'name' entryTomi Valkeinen2013-12-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | omapdss in compat mode creates some sysfs files into the device's sysfs directory, including a 'name' file. This works fine for platform_devices, but breaks with i2c or spi devices, as those already have a 'name' file. Fix this by renaming the omapdss's 'name' file to 'display_name'. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | OMAPDSS: DISPC: Add MFLAG definesTomi Valkeinen2013-12-304-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | OMAP5 has MFLAG feature in DISPC. Add the register definition and dump it. The register is not used yet, though. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | OMAPDSS: apply fixesTomi Valkeinen2013-12-302-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When omapfb does ovl->get_overlay_info, ovl->set_overlay_info, the set function may fail even if the info has not been changed. This is because omapdss doesn't initialize the info, but expect the caller to set valid values. Normally that is the case, but there is at least one corner case: if omapfb has not allocated memory for the overlay yet, and the user uses ioctl to disable the overlay to make sure it's disabled. In this case get_overlay_info returns invalid data, but the user is only interested in setting the overlay to disabled, not configuring it, and set_overlay_info fails. The issue is made possible by the omapfb's setup_plane ioctl, which groups overlay configuration and overlay enable/disable bit into the same struct. Thus, when you are disabling an overlay, you are also configuring it. This is a bit counter intuitive, so I think it's better to initialize the info to some valid values. The fields requiring initialization are color_mode and rotation_type, and also we need to remove the check for (paddr == 0), as paddr is 0 for unallocated overlay (but it's still fine to disable the overlay). Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | OMAPDSS: fix debug printsTomi Valkeinen2013-12-305-23/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix debug prints all over omapdss: * add missing linefeeds * change pr_err/pr_debug to DSSERR/DSSDBG * add missing DSS_SUBSYS_NAMEs Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| | * | OMAPDSS: fix missing EXPORT_SYMBOL()sTomi Valkeinen2013-12-301-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Functions dispc_ovl_set_fifo_threshold and dispc_ovl_compute_fifo_thresholds need to be exported. Add the EXPORT_SYMBOLs. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | i810: delete useless variableJulia Lawall2014-01-171-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Delete a variable that is at most only assigned to a constant, but never used otherwise. A simplified version of the semantic patch that fixes this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ type T; identifier i; constant c; @@ -T i; <... when != i -i = c; ...> // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | video: add OpenCores VGA/LCD framebuffer driverStefan Kristiansson2014-01-173-0/+457
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for the VGA/LCD core available from OpenCores: http://opencores.org/project,vga_lcd The driver have been tested together with both OpenRISC and ARM (socfpga) processors. Signed-off-by: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | video/logo: Remove MIPS-specific include sectionGeert Uytterhoeven2014-01-171-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 41702d9a4fffa9e25b2ad9d4af09b3013fa155e1 ("logo.c: get rid of mips_machgroup") there's no longer a need to include <asm/bootinfo.h> on MIPS. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | tgafb: potential NULL dereference in initDan Carpenter2014-01-171-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Static checkers complain that there are paths where "tga_type_name" can be NULL. I've re-arranged the code slightly so that's impossible. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | video: mmp: Using plain integer as NULL pointerDan Carpenter2014-01-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sparse complains here: drivers/video/mmp/core.c:33:16: warning: Using plain integer as NULL pointer Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | video: mmp: delete a stray mutex_unlock()Dan Carpenter2014-01-171-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We aren't holding the disp_lock so we shouldn't release it. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | video: amba-clcd: Make CLCD driver available on more platformsMark Brown2014-01-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The CLCD driver is used on ARM reference models for ARMv8 so add ARM64 to the list of dependencies. The driver also has no build time dependencies on ARM (stubs are provided for ARM-specific DMA functions in the code) so make it available with COMPILE_TEST in order to maximise build coverage. Signed-off-by: Mark Brown <broonie@linaro.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | video: Replace local macro with PCI standard macroYijing Wang2014-01-171-11/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace local macro TGA_BUS_PCI with PCI standard marco dev_is_pci(). Signed-off-by: Yijing Wang <wangyijing@huawei.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | fbmem: really support wildcard video=options for all fbdev driversOlaf Hering2014-01-171-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Documentation/fb/modedb.txt states that video=option should be considered a global option. But video_setup and fb_get_options are not coded that way. Instead its required to boot with video=driver:option to set a given option in drvier. This is cumbersome because it requires to know in advance which driver will be active for a given board/kernel. The following patch implements the documented catchall for the fbdev drivers. It is now possible to boot with video=XxY without the need to know the active driver in advance. The specific case it tries to fix is syslinux in the SUSE installer which offers a menu to set a display resolution. Right now this just appends the vga= option the kernel. But in addition to vga= it should be possible to pass a generic video=XxY for all framebuffer/drm drivers. With this change forcing a certain window size of VM displays is now much easier. Today the video= option is stored in a global fb_mode_option. But unfortunately only drm uses it. Note: this change introduces a small memleak if video=option is actually used because fb_mode_option is const. Most drivers use strsep to get to individual options. This could be fixed in a followup patch which always releases the option string in every caller of fb_get_options. Signed-off-by: Olaf Hering <olaf@aepfle.de> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | video: vgacon: Don't build on arm64Mark Brown2014-01-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | arm64 is unlikely to have a VGA console and does not export screen_info causing build failures if the driver is build, for example in all*config. Add a dependency on !ARM64 to prevent this. This list is getting quite long, it may be easier to depend on a symbol which architectures that do support the driver can select. Signed-off-by: Mark Brown <broonie@linaro.org> [tomi.valkeinen@ti.com: moved && to first modified line] Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | video: mx3fb: Allow blocking during framebuffer allocationSascha Hauer2014-01-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | No need to allocate the framebuffer from the atomic pool, we are not in interrupt context. Adding GFP_KERNEL to the framebuffer allocation allows to use the much bigger CMA pool to allocate the framebuffer. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | fbcon: Fix memory leak in fbcon_exit().Masami Ichikawa2014-01-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | kmemleak reported a memory leak as below. unreferenced object 0xffff880036ca84c0 (size 16): comm "swapper/0", pid 1, jiffies 4294877407 (age 4434.633s) hex dump (first 16 bytes): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ................ backtrace: [<ffffffff814ed01e>] kmemleak_alloc+0x4e/0xb0 [<ffffffff8118913c>] __kmalloc+0x1fc/0x290 [<ffffffff81302c9e>] bit_cursor+0x24e/0x6c0 [<ffffffff812ff2f4>] fbcon_cursor+0x154/0x1d0 [<ffffffff813675d8>] hide_cursor+0x28/0xa0 [<ffffffff81368acf>] update_region+0x6f/0x90 [<ffffffff81300268>] fbcon_switch+0x518/0x550 [<ffffffff813695b9>] redraw_screen+0x189/0x240 [<ffffffff8136a0e0>] do_bind_con_driver+0x360/0x380 [<ffffffff8136a6e4>] do_take_over_console+0x114/0x1c0 [<ffffffff812fdc83>] do_fbcon_takeover+0x63/0xd0 [<ffffffff813023e5>] fbcon_event_notify+0x605/0x720 [<ffffffff81501dcc>] notifier_call_chain+0x4c/0x70 [<ffffffff81087f8d>] __blocking_notifier_call_chain+0x4d/0x70 [<ffffffff81087fc6>] blocking_notifier_call_chain+0x16/0x20 [<ffffffff812f201b>] fb_notifier_call_chain+0x1b/0x20 In this case ops->cursor_state.mask is allocated in bit_cursor() but not freed in fbcon_exit(). So, fbcon_exit() needs to free buffer in its process. In the case, fbcon_exit() was called from fbcon_deinit() when driver called remove_conflicting_framebuffers(). Signed-off-by: Masami Ichikawa <masami256@gmail.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | fbcon: trivial optimization for fbcon_exitWang YanQing2014-01-171-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Break out as soon as we find a mapped entry con2fb_map. Signed-off-by: Wang YanQing <udknight@gmail.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | video: pxa168fb: Cleanup pxa168fb.h fileSachin Kamat2014-01-171-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove incorrect file reference in comments section. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Cc: Eric Miao <eric.y.miao@gmail.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | video: pxa: Cleanup video-pxafb.h headerSachin Kamat2014-01-171-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 293b2da1b611 ("ARM: pxa: move platform_data definitions") moved the file to the current location but forgot to remove the pointer to its previous location. Clean it up. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | video: msm: Cleanup video-msm_fb.h headerSachin Kamat2014-01-171-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 1ef21f6343ff ("ARM: msm: move platform_data definitions") moved the file to the current location but forgot to remove the pointer to its previous location. Clean it up. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | video: ep93xx: Cleanup video-ep93xx.h headerSachin Kamat2014-01-171-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit a3b2924547a7 ("ARM: ep93xx: move platform_data definitions") moved the file to the current location but forgot to remove the pointer to its previous location. Clean it up. While at it also change the header file protection macros appropriately. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | video: mxsfb: fix broken videomode selectionLothar Waßmann2014-01-171-70/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the driver re-implements the code found in of_get_videomode() except for the fact that the latter honors the 'native-mode' property to select a spcific video timing from the list of possible timings. The driver builds up a list of all video timings, but uses only the last mode from the list anyway. While building the list it incorrectly OR's the 'pixelclk-active' and 'de-active' flags of all modes into single flags, possibly leading to a wrong pixelclock or data-enable polarity setting. Fix this by using the of_get_videomode() directly with the OF_USE_NATIVE_MODE flag. Since all current dts files only have one entry in their display-timings node, this bug was not apparent and the fix does not change the driver's behaviour for the current users. Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | video: mxsfb: convert pr_debug()/dev_dbg() to pr_err()/dev_err() for error ↵Lothar Waßmann2014-01-171-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | messages Make the messages that are printed in case of fatal errors actually visible to the user without having to recompile the driver with debugging enabled. Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | video: vmlfb: remove unnecessary pci_set_drvdata()Jingoo Han2014-01-171-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The driver core clears the driver data to NULL after device_release or on probe failure. Thus, it is not needed to manually clear the device driver data to NULL. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * | | video: rivafb: remove unnecessary pci_set_drvdata()Jingoo Han2014-01-171-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The driver core clears the driver data to NULL after device_release or on probe failure. Thus, it is not needed to manually clear the device driver data to NULL. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
OpenPOWER on IntegriCloud