Age | Commit message (Collapse) | Author | Files | Lines |
|
Turn clk_enable() and clk_disable() calls into clk_prepare_enable() and
clk_disable_unprepare() to get ready for the migration to the common
clock framework.
Cc: Jean-Christophe Plagniol-Villard <[email protected]>
Cc: Tomi Valkeinen <[email protected]>
Cc: [email protected]
Signed-off-by: Laurent Pinchart <[email protected]>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Turn clk_enable() and clk_disable() calls into clk_prepare_enable() and
clk_disable_unprepare() to get ready for the migration to the common
clock framework.
Cc: Jean-Christophe Plagniol-Villard <[email protected]>
Cc: Tomi Valkeinen <[email protected]>
Cc: [email protected]
Signed-off-by: Laurent Pinchart <[email protected]>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Signed-off-by: Marek Belisko <[email protected]>
Signed-off-by: H. Nikolaus Schaller <[email protected]>
[[email protected]: made a few funcs static]
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Mutex should be unlocked before returning. Fixes mutex lock-unlock
imbalance issue.
Signed-off-by: Sachin Kamat <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Remove unwanted define "WSI_TIMEOUT" present in code.
Signed-off-by: Manish Badarkhe <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
These aren't necessary after switch, for, and if blocks.
Signed-off-by: Joe Perches <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Framebuffers shouldn't be cached and it is usually very uncommon to read
them. Therefore, use ioremap_wc() to get significant speed improvements on
systems which provide it. On all other systems it's aliased to
ioremap_nocache() which is also fine.
Reported-by: Tom Gundersen <[email protected]>
Signed-off-by: David Herrmann <[email protected]>
Tested-by: Tom Gundersen <[email protected]>
Tested-by: Alexandre Courbot <[email protected]>
Tested-by: Stephen Warren <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Unfortunately, fbdev does not create its own "struct device" for
framebuffers. Instead, it attaches to the device of the parent layer. This
has the side-effect that devm_* managed resources are not cleaned up on
framebuffer-destruction but rather during destruction of the
parent-device. In case of fbdev this might be too late, though.
remove_conflicting_framebuffer() may remove fbdev devices but keep the
parent device as it is.
Therefore, we now use plain ioremap() and unmap the framebuffer in the
fb_destroy() callback. Note that we must not free the device here as this
might race with the parent-device removal. Instead, we rely on
unregister_framebuffer() as barrier and we're safe.
Reported-by: Tom Gundersen <[email protected]>
Signed-off-by: David Herrmann <[email protected]>
Acked-by: Stephen Warren <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
i2c adapter is not released correctly on error paths. Fix this.
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
DSI performance measuring code is meant to be explicitly enabled at
compile time. At some point in time the perf code was changed to be
enabled if DEBUG is defined. This is not right, so this patch fixes it.
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Neaten and shorten the code using the new fb_<level> macros.
Signed-off-by: Joe Perches <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Add fb_<level> convenience macros for emitting the
"fb%d: ", struct fb_info->node value.
Neatens and shortens the code a bit.
Signed-off-by: Joe Perches <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
The dmi_list array is initialized using gnu designated initializers, and
therefore may contain fewer explicitly defined entries as there are
elements in it. This is because the enum above with M_xyz constants
contains more items than the designated initializer. Those elements not
explicitly initialized are implicitly set to 0.
Now efifb_setup() loops through all these array elements, and performs
a strcmp on each item. For non explicitly initialized elements this will
be a null pointer:
This patch swaps the check order in the if statement, thus checks first
whether dmi_list[i].base is null.
Signed-off-by: James Bates <[email protected]>
Signed-off-by: David Herrmann <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Fix to return a negative error code from the error handling
case instead of 0, as done elsewhere in this function.
Signed-off-by: Wei Yongjun <[email protected]>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Signed-off-by: Stephen Rothwell <[email protected]>
Tested-by: Michal Simek <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
In videomode_to_omap_video_timings, de_level is always set to HIGH
regardless of what the vm->flags says. Fix this to set it to high or low
according to vm->flags.
Signed-off-by: Roel Kluin <[email protected]>
[[email protected]: rewrote the desc]
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
devm_iounmap is called automatically that's why remove it from the code
dev_set_drvdata(dev, NULL) is called by generic code
after device_release or on probe failure.
Signed-off-by: Michal Simek <[email protected]>
Reviewed-by: Jingoo Han <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Simplify driver probe and release function.
Signed-off-by: Michal Simek <[email protected]>
Reviewed-by: Jingoo Han <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
s/op/pdev/ in xilinxfb_of_probe().
No functional chagnes.
Signed-off-by: Michal Simek <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Signed-off-by: Gerd Hoffmann <[email protected]>
Acked-by: Haiyang Zhang <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
This patch adds a pci stub driver to hyper-fb. The hyperv framebuffer
driver will bind to the pci device then, so linux kernel and userspace
know there is a proper kernel driver for the device active. lspci shows
this for example:
[root@dhcp231 ~]# lspci -vs8
00:08.0 VGA compatible controller: Microsoft Corporation Hyper-V virtual
VGA (prog-if 00 [VGA controller])
Flags: bus master, fast devsel, latency 0, IRQ 11
Memory at f8000000 (32-bit, non-prefetchable) [size=64M]
Expansion ROM at <unassigned> [disabled]
Kernel driver in use: hyperv_fb
Another effect is that the xorg vesa driver will not attach to the
device and thus the Xorg server will automatically use the fbdev
driver instead.
Signed-off-by: Gerd Hoffmann <[email protected]>
Acked-by: Haiyang Zhang <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
There is currently a copy and paste error where the hdmi vsync timings are not
compared correctly, this patch fixes this.
Signed-off-by: Richard Röjfors <[email protected]>
[[email protected]: fixed to apply on top of latest tree]
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
The OMAP4 HDMI encoder driver(hdmi4.c) contains timings tables, and helper
functions which can be used as is by the OMAP5/DRA7x encoder driver. Move these
to hdmi_common.c so that it's not replicated in the future.
Signed-off-by: Archit Taneja <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
The hdmi4 driver has edid macros that aren't used at all. Remove them.
Signed-off-by: Archit Taneja <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Replace the ti_hdmi_4xxx* notation for OMAP4 HDMI driver with hdmi4. Rename
the hdmi.c encoder driver to hdmi4.c. Rename ti_hdmi.h to hdmi.h
Signed-off-by: Archit Taneja <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Add flags for the interrupts present in HDMI wrapper block, these will be used
to configure HDMI_IRQENABLE_SET/CLEAR and HDMI_IRQSTATUS registers.
Signed-off-by: Archit Taneja <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Keep only OMAP4 HDMI core block related structs and enums in ti_hdmi_4xxx_ip.h,
move the rest to ti_hdmi.h. This holds all library specific data which will be
shared between OMAP4 and OMAP5/DRA7x HDMI encoder drivers.
Move the duplicate register read/write/wait_for_bit_change functions in the hdmi
library files to ti_hdmi.h
Signed-off-by: Archit Taneja <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
The struct hdmi_ip_data contains information related to HDMI wrapper, PLL, PHY
and core sub-blocks. Now that each of these sub blocks has it's own struct,
hdmi_ip_data serves no purpose. The mutex lock in the struct was also never
used.
Remove this struct to make things cleaner.
Signed-off-by: Archit Taneja <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
After removing wrapper, pll and phy funcs from ti_hdmi_4xxx_ip.c, we are left
with OMAP4 HDMI core functions. Use these directly in hdmi.c rather than using
hdmi_ip_ops. Rename the core functions with a 'hdmi4' suffix.
We used to have hdmi_ip_ops so that one could support HDMI within a TI SoC which
had a non-DSS display subsytem. This however never got put into use, and hence
these ops aren't useful any more.
The DT/hwmod information for hdmi doesn't split the address space according to
the required sub blocks. Keep the address offset and size information in the
driver for now. This will be removed when the driver gets the information
correctly from DT/hwmod.
Signed-off-by: Archit Taneja <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
HDMI PHY is a block common to DSS in OMAP4, OMAP5 and DRA7x. Move the
existing functions from ti_hdmi_4xxx_ip.c to a separate file. These funcs are
called directly from the hdmi driver rather than hdmi_ip_ops function pointer
calls.
Add the PHY library function declarations to ti_hdmi.h. These will be shared
amongst the omap4/5 hdmi platform drivers. Remove the PHY function pointer ops
from the ti_hdmi_ip_ops struct.
The DT/hwmod information for hdmi doesn't split the address space according to
the required sub blocks. Keep the address offset and size information in the
driver for now. This will be removed when the driver gets the information
correctly from DT/hwmod.
Signed-off-by: Archit Taneja <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
HDMI PLL is a block common to DSS in OMAP4, OMAP5 and DRA7x. Move the
existing PLL functions from ti_hdmi_4xxx_ip.c and hdmi.c to a separate file.
These funcs are called directly from the hdmi driver rather than hdmi_ip_ops
function pointer calls.
Add the PLL library function declarations to ti_hdmi.h. These will be shared
amongst the omap4/5 hdmi platform drivers. Remove the PLL function pointer ops
from the ti_hdmi_ip_ops struct. These will be shared amongst the omap4/5 hdmi
platform drivers and other libraries.
The DT/hwmod information for hdmi doesn't split the address space according to
the required sub blocks. Keep the address offset and size information in the
driver for now. This will be removed when the driver gets the information
correctly from DT/hwmod.
Signed-off-by: Archit Taneja <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
HDMI wrapper is a block common to DSS in OMAP4, OMAP5 and DRA7x. Move the
existing functions from ti_hdmi_4xxx_ip.c to a separate file. These funcs are
called directly from the hdmi driver rather than hdmi_ip_ops funtion pointer
calls.
Add new wrapper funcs which can be used by other hdmi libraries like core, pll
and phy. Move some of the enums, structs and funcs related to the wrapper from
ti_hdmi_4xxx_ip.h to ti_hdmi.h. These will be shared amongst the omap4/5 hdmi
platform drivers and other libraries.
The old hdmi_wp_init() is removed since it didn't do anything. Timing parameters
like interlace, hsync_level and vsync_level weren't copied correctly before.
Those are copied correctly now.
The DT/hwmod information for hdmi doesn't split the address space according to
the required sub blocks. Keep the address offset and size information in the
driver for now. This will be removed when the driver gets the information
correctly from DT/hwmod.
Signed-off-by: Archit Taneja <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
This is similar to the output printed by efifb.
Signed-off-by: Tom Gundersen <[email protected]>
Acked-by: Stephen Warren <[email protected]>
Cc: David Herrmann <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Add a missing closing brace for email address.
Signed-off-by: Sachin Kamat <[email protected]>
Cc: Alexey Charkov <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
The data structure of_match_ptr() protects is always compiled in.
Hence of_match_ptr() is not needed.
Signed-off-by: Sachin Kamat <[email protected]>
Cc: Alexey Charkov <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
The data structure of_match_ptr() protects is always compiled in.
Hence of_match_ptr() is not needed.
Signed-off-by: Sachin Kamat <[email protected]>
Cc: Ed Spiridonov <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
The data structure of_match_ptr() protects is always compiled in.
Hence of_match_ptr() is not needed.
Signed-off-by: Sachin Kamat <[email protected]>
Acked-by: Maxime Ripard <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Driver core clears the driver data to NULL after device_release
or on probe failure, so just remove it from here.
Driver core change:
"device-core: Ensure drvdata = NULL when no driver is bound"
(sha1: 0998d0631001288a5974afc0b2a5f568bcdecb4d)
Signed-off-by: Michal Simek <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Use devm_kzalloc() instead of kzalloc() in order to be free
automatically. This makes cleanup paths more simple.
Signed-off-by: Sangjung Woo <[email protected]>
Acked-by: Laurent Pinchart <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Convert to module_platform_driver() to simplify code.
Signed-off-by: Hanjun Guo <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Convert to module_platform_driver() to simplify code.
Signed-off-by: Hanjun Guo <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Convert to module_platform_driver() to simplify code.
Signed-off-by: Hanjun Guo <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Convert to module_platform_driver() to simplify code.
Signed-off-by: Hanjun Guo <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Convert to module_platform_driver() to simplify code.
Signed-off-by: Hanjun Guo <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Convert to module_platform_driver() to simplify code.
Signed-off-by: Hanjun Guo <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Convert to module_platform_driver() to simplify code.
Signed-off-by: Hanjun Guo <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Convert to module_platform_driver() to simplify code.
Signed-off-by: Hanjun Guo <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Convert to module_platform_driver() to simplify code.
Signed-off-by: Hanjun Guo <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Convert to module_platform_driver() to simplify code.
Signed-off-by: Hanjun Guo <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|
|
Add missing register entries when dumping the core.
Signed-off-by: Ricardo Neri <[email protected]>
Signed-off-by: Archit Taneja <[email protected]>
Signed-off-by: Tomi Valkeinen <[email protected]>
|