platform/upstream/kernel-adaptation-pc.git
12 years agoMerge branch 'for-3.4' of git://gitorious.org/linux-omap-dss2/linux into fbdev-next
Florian Tobias Schandinat [Tue, 20 Mar 2012 08:49:51 +0000 (08:49 +0000)]
Merge branch 'for-3.4' of git://gitorious.org/linux-omap-dss2/linux into fbdev-next

12 years agofbdev: da8xx: add support for SP10Q010 display
Anatolij Gustschin [Tue, 13 Mar 2012 13:13:57 +0000 (14:13 +0100)]
fbdev: da8xx: add support for SP10Q010 display

Add timing data for Hitachi SP10Q010 display and allow configuration
of the 4bpp palette. For 4bpp framebuffer enable reversed order of
pixels in a byte. This requires defining FB_CFB_REV_PIXELS_IN_BYTE
and additionally setting var.nonstd to the value FB_NONSTD_REV_PIX_IN_B.
Note that it is not enough to set da8xx_fb_var.nonstd to this value
statically, since FBIOPUT_VSCREENINFO ioctl might pass var struct with
.nonstd field set to zero or another value. Therefore this setting must
be adjusted in fb_check_var() according to the requested bpp value.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Cc: Manjunathappa, Prakash <prakash.pm@ti.com>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
12 years agofbdev: da8xx:: fix reporting of the display timing info
Anatolij Gustschin [Tue, 13 Mar 2012 13:13:04 +0000 (14:13 +0100)]
fbdev: da8xx:: fix reporting of the display timing info

Timing info is not properly reported by the driver, e.g.:

$ fbset -i
mode "480x272-35"
    # D: 7.895 MHz, H: 12.165 kHz, V: 35.158 Hz
    geometry 480 272 480 544 16
    timings 126666 64 64 32 32 41 10

According to the timing values defined for LK043T1DG01 display
it should be reported as:

mode "480x272-53"
    # D: 7.895 MHz, H: 15.038 kHz, V: 52.579 Hz
    geometry 480 272 480 544 16
    timings 126666 2 2 2 2 41 10

Initialize additional fb_var_screeninfo fields so fix this problem.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Cc: Manjunathappa, Prakash <prakash.pm@ti.com>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
12 years agoMerge branch 'viafb-next' of git://github.com/schandinat/linux-2.6 into fbdev-next
Florian Tobias Schandinat [Tue, 13 Mar 2012 23:19:58 +0000 (23:19 +0000)]
Merge branch 'viafb-next' of git://github.com/schandinat/linux-2.6 into fbdev-next

12 years agoMerge branch 'for-next' of git://linuxtv.org/pinchartl/fbdev into fbdev-next
Florian Tobias Schandinat [Tue, 13 Mar 2012 23:17:43 +0000 (23:17 +0000)]
Merge branch 'for-next' of git://linuxtv.org/pinchartl/fbdev into fbdev-next

12 years agodrivers/video/pvr2fb.c: ensure arguments to request_irq and free_irq are compatible
Julia Lawall [Sun, 11 Mar 2012 19:36:21 +0000 (20:36 +0100)]
drivers/video/pvr2fb.c: ensure arguments to request_irq and free_irq are compatible

Convert calls to free_irq so that the second argument is the same as the
last argument of the corresponding call to request_irq.  Without this
property, free_irq does nothing.

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
12 years agoOMAPDSS: APPLY: fix clearing shadow dirty flag with manual update
Tomi Valkeinen [Wed, 7 Mar 2012 08:28:48 +0000 (10:28 +0200)]
OMAPDSS: APPLY: fix clearing shadow dirty flag with manual update

Currently the shadow-dirty flags for manual update displays is cleared
in the apply_irq_handler when an update has finished. This is not
correct, as the shadow registers are taken into use (i.e. after that
they are not dirty) when the update is started.

Move the mgr_clear_shadow_dirty() call from apply_irq_handler to
dss_mgr_start_update() to fix this.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
12 years agofbdev: sh_mobile_meram: Implement system suspend/resume
Laurent Pinchart [Mon, 21 Nov 2011 23:56:58 +0000 (00:56 +0100)]
fbdev: sh_mobile_meram: Implement system suspend/resume

Supporting runtime PM is very nice, but that's not a reason not to
implement system suspend/resume properly.

Reported-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_meram: Remove unneeded sanity checks
Laurent Pinchart [Mon, 21 Nov 2011 23:56:58 +0000 (00:56 +0100)]
fbdev: sh_mobile_meram: Remove unneeded sanity checks

The meram_register(), meram_unregister() and meram_update() operations
check that the pointers they get from the caller are not NULL. Those
checks can be remove, as the caller already ensures that the pointers
are valid.

The platform sanity checks can also be removed, as the operations can't
be accessed without valid platform data anyway.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_meram: Don't perform update in register operation
Laurent Pinchart [Mon, 21 Nov 2011 23:56:58 +0000 (00:56 +0100)]
fbdev: sh_mobile_meram: Don't perform update in register operation

Remove the RGB or Y/C base address update from the meram_register()
operation, as this belongs to the meram_update() operation.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agoarm: mach-shmobile: Constify sh_mobile_meram_cfg structures
Laurent Pinchart [Sun, 11 Sep 2011 21:30:45 +0000 (23:30 +0200)]
arm: mach-shmobile: Constify sh_mobile_meram_cfg structures

The structures, passed to the sh_mobile_lcdcfb driver through platform
data, are read only by the driver. Make them const.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Don't store copy of platform data
Laurent Pinchart [Mon, 21 Nov 2011 23:56:58 +0000 (00:56 +0100)]
fbdev: sh_mobile_lcdc: Don't store copy of platform data

Instead of copying the whole platform data structure to struct
sh_mobile_lcdc_chan, store a const pointer to the channel platform data.

MERAM configuration information needs to be changed at runtime, so copy
it to struct sh_mobile_lcdc_chan.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_meram: Remove unused sh_mobile_meram_icb_cfg fields
Laurent Pinchart [Mon, 12 Dec 2011 15:36:13 +0000 (16:36 +0100)]
fbdev: sh_mobile_meram: Remove unused sh_mobile_meram_icb_cfg fields

The marker_icb and cache_icb fields are not used anymore, remove them.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agoarm: mach-shmobile: Don't set MERAM ICB numbers in platform data
Laurent Pinchart [Sun, 11 Sep 2011 21:30:45 +0000 (23:30 +0200)]
arm: mach-shmobile: Don't set MERAM ICB numbers in platform data

The marker and cache ICBs are now allocated automatically, there's no
need to specify them manually anymore.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_meram: Allocate ICBs automatically
Laurent Pinchart [Mon, 12 Dec 2011 15:36:13 +0000 (16:36 +0100)]
fbdev: sh_mobile_meram: Allocate ICBs automatically

Instead of manually specifying the ICBs to use in platform data,
allocate them automatically at runtime. The range of reserved ICBs (for
instance to be used through UIO), if any, is passed in the platform data
reserved_icbs field as a bitmask.

The MERAM registration function now returns a pointer to an opaque MERAM
object, which is passed to the update and unregistration functions.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_meram: Use genalloc to manage MERAM allocation
Laurent Pinchart [Mon, 19 Sep 2011 09:40:31 +0000 (11:40 +0200)]
fbdev: sh_mobile_meram: Use genalloc to manage MERAM allocation

Instead of requiring the users to hardcode MERAM allocation in platform
data, allocate blocks at runtime using genalloc.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_meram: Divide the code into sections
Laurent Pinchart [Mon, 19 Sep 2011 09:40:31 +0000 (11:40 +0200)]
fbdev: sh_mobile_meram: Divide the code into sections

And rename a couple of constants to make prefixes more uniform.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_meram: Don't inline everything
Laurent Pinchart [Mon, 19 Sep 2011 09:40:31 +0000 (11:40 +0200)]
fbdev: sh_mobile_meram: Don't inline everything

Let the compiler decide which complex functions to inline, and constify
constant static arrays.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_meram: Add struct sh_mobile_meram_icb
Laurent Pinchart [Mon, 19 Sep 2011 09:40:31 +0000 (11:40 +0200)]
fbdev: sh_mobile_meram: Add struct sh_mobile_meram_icb

The new structure stores ICB parameters for ICBs.

Instead of modifying the struct sh_mobile_meram_cfg instances passed by
callers, store the ICB parameters internally and make the public API
take const pointers to sh_mobile_meram_cfg.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_meram: Make current_reg field store the current reg set
Laurent Pinchart [Mon, 19 Sep 2011 09:40:31 +0000 (11:40 +0200)]
fbdev: sh_mobile_meram: Make current_reg field store the current reg set

Make sure current_reg == 0/1 always mean register set A/B through all
the code.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_meram: Make variables unsigned where applicable
Laurent Pinchart [Mon, 19 Sep 2011 09:40:31 +0000 (11:40 +0200)]
fbdev: sh_mobile_meram: Make variables unsigned where applicable

Many variables, such as loop counters, sizes and offsets, should be
unsigned integers. Make them so.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_meram: Add _cfg suffix to struct sh_mobile_meram_icb
Laurent Pinchart [Mon, 19 Sep 2011 09:40:31 +0000 (11:40 +0200)]
fbdev: sh_mobile_meram: Add _cfg suffix to struct sh_mobile_meram_icb

The structure describe ICB configuration, no ICB objects themselves.
Rename it to sh_mobile_meram_icb_cfg in preparation for the addition of
an ICB structure.

All the structure fields are unsigned integers, make them so.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_meram: Request memory regions for memory resources
Laurent Pinchart [Mon, 19 Sep 2011 09:40:31 +0000 (11:40 +0200)]
fbdev: sh_mobile_meram: Request memory regions for memory resources

Make sure the registers and MERAM spaces are reserved before using them.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agoarm: mach-shmobile: Split MERAM resources into regs and meram
Laurent Pinchart [Sun, 11 Sep 2011 21:30:45 +0000 (23:30 +0200)]
arm: mach-shmobile: Split MERAM resources into regs and meram

The MERAM resource currently combines both the registers space and the
MERAM space. Only the register space needs to be ioremapped, split the
resource to make that possible.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Pass channel pointer to sh_mobile_wait_for_vsync
Laurent Pinchart [Wed, 30 Nov 2011 22:07:30 +0000 (23:07 +0100)]
fbdev: sh_mobile_lcdc: Pass channel pointer to sh_mobile_wait_for_vsync

The sh_mobile_wait_for_vsync() function isn't related to the fbdev API,
make it generic by passing a channel pointer instead of an fb_info
pointer.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Store configuration in channel structure
Laurent Pinchart [Wed, 30 Nov 2011 22:07:30 +0000 (23:07 +0100)]
fbdev: sh_mobile_lcdc: Store configuration in channel structure

Store the frame buffer configuration (colorspace, visible/virtual
horizontal and vertical resolutions and line pitch) in the
sh_mobile_lcdc_chan structure, and use it instead of accessing fb_info.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Pass physical device pointer to DMA functions
Laurent Pinchart [Tue, 29 Nov 2011 13:37:35 +0000 (14:37 +0100)]
fbdev: sh_mobile_lcdc: Pass physical device pointer to DMA functions

The dma_map_sg() and dma_unmap_sg() functions need a pointer to the
physical device.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Split fb init/cleanup from channel init/cleanup
Laurent Pinchart [Tue, 29 Nov 2011 13:37:35 +0000 (14:37 +0100)]
fbdev: sh_mobile_lcdc: Split fb init/cleanup from channel init/cleanup

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Store the format in struct sh_mobile_lcdc_chan
Laurent Pinchart [Tue, 29 Nov 2011 15:05:36 +0000 (16:05 +0100)]
fbdev: sh_mobile_lcdc: Store the format in struct sh_mobile_lcdc_chan

Store the active format in the channel structure, and use it instead of
parsing info->var all over the place when the format is needed.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Add sh_mobile_format_info() function
Laurent Pinchart [Tue, 29 Nov 2011 14:58:10 +0000 (15:58 +0100)]
fbdev: sh_mobile_lcdc: Add sh_mobile_format_info() function

The function returns a pointer to a structure describing a format based
on its fourcc. Use the function where applicable instead of hardcoded
switch-case statements.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Reorganize the sh_mobile_lcdc_chan structure
Laurent Pinchart [Tue, 29 Nov 2011 13:03:17 +0000 (14:03 +0100)]
fbdev: sh_mobile_lcdc: Reorganize the sh_mobile_lcdc_chan structure

Group fields by purpose, and make the separation between core fields and
FB-related fields clear.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Rename (lcd|num)_cfg (lcd|num)_modes
Laurent Pinchart [Tue, 29 Nov 2011 13:33:41 +0000 (14:33 +0100)]
fbdev: sh_mobile_lcdc: Rename (lcd|num)_cfg (lcd|num)_modes

The struct sh_mobile_lcdc_chan_cfg platform data contains a list of
video modes. Name the lcd_cfg and num_cfg fields to reflect that they
describe video modes.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Store display mode in a struct fb_videomode
Laurent Pinchart [Tue, 29 Nov 2011 12:42:48 +0000 (13:42 +0100)]
fbdev: sh_mobile_lcdc: Store display mode in a struct fb_videomode

Embed struct fb_videomode instead of struct fb_var_screeninfo in struct
sh_mobile_lcdc_chan to store the display mode.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_hdmi: Don't access LCDC fb_info
Laurent Pinchart [Tue, 29 Nov 2011 00:46:12 +0000 (01:46 +0100)]
fbdev: sh_mobile_hdmi: Don't access LCDC fb_info

The LCDC fb_info structure is only used to retrieve the default video
mode in case none of the modes advertised by EDID information is
acceptable. Pass a pointer to the default mode through the
sh_mobile_lcdc_entity structure instead.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_hdmi: Don't set sh_hdmi::mode in the display on handler
Laurent Pinchart [Tue, 29 Nov 2011 00:07:50 +0000 (01:07 +0100)]
fbdev: sh_mobile_hdmi: Don't set sh_hdmi::mode in the display on handler

The struct sh_hdmi mode field is only used after being assigned by the
EDID read code. There is thus no need to initialize it from the LCDC
display var in the display on handler.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Pass a video mode to the notify callback
Laurent Pinchart [Tue, 29 Nov 2011 00:05:47 +0000 (01:05 +0100)]
fbdev: sh_mobile_lcdc: Pass a video mode to the notify callback

Pass pointers to struct fb_videomode and struct fb_monspecs instead of
struct fb_var_screeninfo to the notify callback.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agosh_mobile_hdmi: Use LCDC notification callback
Laurent Pinchart [Sun, 18 Sep 2011 12:18:28 +0000 (14:18 +0200)]
sh_mobile_hdmi: Use LCDC notification callback

Instead of accessing the LCDC channel and fb_info structures directly,
use the LCDC notification callback to inform the LCDC driver about
display-related events.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agosh_mobile_lcdc: Add display notify callback to sh_mobile_lcdc_chan
Laurent Pinchart [Sun, 18 Sep 2011 12:14:46 +0000 (14:14 +0200)]
sh_mobile_lcdc: Add display notify callback to sh_mobile_lcdc_chan

The callback implements 3 notification events:

- SH_MOBILE_LCDC_EVENT_DISPLAY_CONNECT notifies the LCDC that the
  display has been connected
- SH_MOBILE_LCDC_EVENT_DISPLAY_DISCONNECT notifies the LCDC that the
  display has been disconnected
- SH_MOBILE_LCDC_EVENT_DISPLAY_MODE notifies that LCDC that a display
  mode has been detected

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Return display connection state in display_on
Laurent Pinchart [Mon, 28 Nov 2011 22:19:59 +0000 (23:19 +0100)]
fbdev: sh_mobile_lcdc: Return display connection state in display_on

Return true if the display is connected and false otherwise. Set the fb
info state to FBINFO_STATE_SUSPENDED in the sh_mobile_lcdc driver when
the display is not connected.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Remove fb_info parameter to display_on operation
Laurent Pinchart [Sun, 18 Sep 2011 10:26:50 +0000 (12:26 +0200)]
fbdev: sh_mobile_lcdc: Remove fb_info parameter to display_on operation

The parameter is unused, remove it.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agosh_mobile_hdmi: Use sh_mobile_lcdc_entity::channel to access fb_info
Laurent Pinchart [Sun, 18 Sep 2011 10:25:21 +0000 (12:25 +0200)]
sh_mobile_hdmi: Use sh_mobile_lcdc_entity::channel to access fb_info

The fb_info parameter passed to the display_on operation will be
removed, don't use it.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agosh_mobile_lcdc: Add an lcdc channel pointer to sh_mobile_lcdc_entity
Laurent Pinchart [Sun, 18 Sep 2011 10:21:17 +0000 (12:21 +0200)]
sh_mobile_lcdc: Add an lcdc channel pointer to sh_mobile_lcdc_entity

The field will be used by the transmitter drivers to access
sh_mobile_lcdc_chan fields such as fb_info.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Merge board_cfg and lcd_size_cfg into panel_cfg
Laurent Pinchart [Sun, 11 Sep 2011 20:59:04 +0000 (22:59 +0200)]
fbdev: sh_mobile_lcdc: Merge board_cfg and lcd_size_cfg into panel_cfg

Update board code accordingly.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Move brightness ops to sh_mobile_lcdc_bl_info
Laurent Pinchart [Sun, 11 Sep 2011 20:59:04 +0000 (22:59 +0200)]
fbdev: sh_mobile_lcdc: Move brightness ops to sh_mobile_lcdc_bl_info

Update board code accordingly.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Remove board configuration board_data field
Laurent Pinchart [Sun, 11 Sep 2011 20:59:04 +0000 (22:59 +0200)]
fbdev: sh_mobile_lcdc: Remove board configuration board_data field

The field is unused, remove it. Update board code accordingly.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Remove board configuration owner field
Laurent Pinchart [Sun, 11 Sep 2011 20:59:04 +0000 (22:59 +0200)]
fbdev: sh_mobile_lcdc: Remove board configuration owner field

The field is unused, remove it.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_hdmi: Remove sh_mobile_hdmi_info lcd_chan field
Laurent Pinchart [Sun, 11 Sep 2011 16:27:50 +0000 (18:27 +0200)]
fbdev: sh_mobile_hdmi: Remove sh_mobile_hdmi_info lcd_chan field

The field is unused, remove it.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agoarm: mach-shmobile: Don't initialize the hdmi_info lcd_chan field
Laurent Pinchart [Sun, 11 Sep 2011 21:30:45 +0000 (23:30 +0200)]
arm: mach-shmobile: Don't initialize the hdmi_info lcd_chan field

The field is unused and will be removed. Don't initialize it.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_hdmi: Don't hook up into board_cfg display operations
Laurent Pinchart [Sun, 11 Sep 2011 16:27:50 +0000 (18:27 +0200)]
fbdev: sh_mobile_hdmi: Don't hook up into board_cfg display operations

The display_on/off operations are now accessed through the
sh_mobile_lcdc_entity operations.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mipi_dsi: Don't hook up into board_cfg display operations
Laurent Pinchart [Sun, 11 Sep 2011 16:27:50 +0000 (18:27 +0200)]
fbdev: sh_mipi_dsi: Don't hook up into board_cfg display operations

The display_on/off operations are now accessed through the
sh_mobile_lcdc_entity operations.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agoarm: mach-shmobile: Add LCDC tx_dev field to platform data
Laurent Pinchart [Sun, 11 Sep 2011 21:30:45 +0000 (23:30 +0200)]
arm: mach-shmobile: Add LCDC tx_dev field to platform data

Make sure the transmitter devices get registered before the associated
LCDC devices.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Handle HDMI/MIPI transmitter device directly
Laurent Pinchart [Sun, 11 Sep 2011 20:59:04 +0000 (22:59 +0200)]
fbdev: sh_mobile_lcdc: Handle HDMI/MIPI transmitter device directly

Pass a pointer to the transmitter device through platform data, retrieve
the corresponding sh_mobile_lcdc_entity structure in the probe method
and call the transmitter display_on/off methods directly.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mipi_dsi: Implement sh_mobile_lcdc_entity interface
Laurent Pinchart [Sun, 11 Sep 2011 16:27:50 +0000 (18:27 +0200)]
fbdev: sh_mipi_dsi: Implement sh_mobile_lcdc_entity interface

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_hdmi: Implement sh_mobile_lcdc_entity interface
Laurent Pinchart [Sun, 11 Sep 2011 16:27:50 +0000 (18:27 +0200)]
fbdev: sh_mobile_hdmi: Implement sh_mobile_lcdc_entity interface

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Add sh_mobile_lcdc_entity definition
Laurent Pinchart [Sun, 11 Sep 2011 16:15:36 +0000 (18:15 +0200)]
fbdev: sh_mobile_lcdc: Add sh_mobile_lcdc_entity definition

The sh_mobile_lcdc_entity structure will be used to abstract operations
performed by transceivers (such as MIPI/DSI and HDMI).

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agosh_mobile_hdmi: Remove platform data lcd_dev field
Laurent Pinchart [Fri, 9 Sep 2011 14:08:02 +0000 (16:08 +0200)]
sh_mobile_hdmi: Remove platform data lcd_dev field

The field is used to print debug messages only. Remove it.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_hdmi: Don't access LCDC channel in notifier callback
Laurent Pinchart [Thu, 24 Nov 2011 10:53:47 +0000 (11:53 +0100)]
fbdev: sh_mobile_hdmi: Don't access LCDC channel in notifier callback

Instead of relying on info->par being a pointer to an LCDC channel, cast
the notifier block pointer to an sh_hdmi pointer.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Create functions to turn the display on/off
Laurent Pinchart [Fri, 9 Sep 2011 13:45:43 +0000 (15:45 +0200)]
fbdev: sh_mobile_lcdc: Create functions to turn the display on/off

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Don't pass struct device around
Laurent Pinchart [Wed, 7 Sep 2011 14:02:31 +0000 (16:02 +0200)]
fbdev: sh_mobile_lcdc: Don't pass struct device around

Pass a pointer to a struct sh_mobile_lcdc_priv instead, which stores a
pointer to the device.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Move pm runtime enable to probe()
Laurent Pinchart [Wed, 7 Sep 2011 13:47:07 +0000 (15:47 +0200)]
fbdev: sh_mobile_lcdc: Move pm runtime enable to probe()

The pm_runtime_enable() and pm_runtime_resume() calls don't belong to
sh_mobile_lcdc_setup_clocks(). Move them to the probe function. Remove
the unneeded pm_runtime_resume() call.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Mark init-only symbols with __devinit(const)
Laurent Pinchart [Wed, 7 Sep 2011 09:59:00 +0000 (11:59 +0200)]
fbdev: sh_mobile_lcdc: Mark init-only symbols with __devinit(const)

default_720p and sh_mobile_lcdc_check_interface are used at device
initialization time only. Mark them as __devinitconst and __devinit
respectively.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agofbdev: sh_mobile_lcdc: Reorder code into sections
Laurent Pinchart [Wed, 7 Sep 2011 09:09:26 +0000 (11:09 +0200)]
fbdev: sh_mobile_lcdc: Reorder code into sections

Make the driver more readable by reordering code and splitting it into
logical sections. Reorder the headers alphabetically.

No modification to the code have been performed.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12 years agoARM: OMAP2+: Fix compile error when FB_OMAP2 is not set
Tony Lindgren [Thu, 8 Mar 2012 20:43:28 +0000 (12:43 -0800)]
ARM: OMAP2+: Fix compile error when FB_OMAP2 is not set

Otherwise we will get:

arch/arm/plat-omap/fb.c:101: error: expected â€˜)’ before â€˜*’ token

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
12 years agoviafb: avoid refresh and mode lookup in set_par
Florian Tobias Schandinat [Sun, 26 Feb 2012 10:51:51 +0000 (10:51 +0000)]
viafb: avoid refresh and mode lookup in set_par

As check_var already ensures that the mode is valid there is no need
to do those expensive lookups here again. The only thing that might
change is that the deprecated interface could report slightly
different refresh rates due to rounding errors.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
12 years agoviafb: modetable conversion
Florian Tobias Schandinat [Fri, 17 Feb 2012 07:55:06 +0000 (07:55 +0000)]
viafb: modetable conversion

This patch converts the modetables used in viafb to
- remove the strange thing that sync_end and blanking_end contained
  the length and not the absolute value
- remove hundreds of useless defines
- use fb_videomode and not our own definition so modes defined in
  the subsystem and received via EDID are compatible with ours

As the modes are now stored in a flat structure and no longer in a
tree like thing the lookup time was increased but as it is a rare
event anyway it shouldn't matter. Otherwise the behaviour should be
the same as before.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
12 years agovideo:uvesafb: notice user when we failed to save hardware state
Wang YanQing [Fri, 2 Mar 2012 01:45:31 +0000 (09:45 +0800)]
video:uvesafb: notice user when we failed to save hardware state

uvesafb_open may failed to save hardware state when kmalloc failed
in uvesafb_vbe_state_save, we should check this and notice user.

Signed-off-by: Wang YanQing <udknight@gmail.com>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
12 years agovideo:uvesafb: Fix oops that uvesafb try to execute NX-protected page
Wang YanQing [Fri, 2 Mar 2012 00:48:50 +0000 (08:48 +0800)]
video:uvesafb: Fix oops that uvesafb try to execute NX-protected page

This patch fixes the oops below

[   81.560602] uvesafb: NVIDIA Corporation, GT216 Board - 0696a290, Chip Rev   , OEM: NVIDIA, VBE v3.0
[   81.609384] uvesafb: protected mode interface info at c000:d350
[   81.609388] uvesafb: pmi: set display start = c00cd3b3, set palette = c00cd40e
[   81.609390] uvesafb: pmi: ports = 3b4 3b5 3ba 3c0 3c1 3c4 3c5 3c6 3c7 3c8 3c9 3cc 3ce 3cf 3d0 3d1 3d2 3d3 3d4 3d5 3da
[   81.614558] uvesafb: VBIOS/hardware doesn't support DDC transfers
[   81.614562] uvesafb: no monitor limits have been set, default refresh rate will be used
[   81.614994] uvesafb: scrolling: ypan using protected mode interface, yres_virtual=4915
[   81.744147] kernel tried to execute NX-protected page - exploit attempt? (uid: 0)
[   81.744153] BUG: unable to handle kernel paging request at c00cd3b3
[   81.744159] IP: [<c00cd3b3>] 0xc00cd3b2
[   81.744167] *pdpt = 00000000016d6001 *pde = 0000000001c7b067 *pte = 80000000000cd163
[   81.744171] Oops: 0011 [#1] SMP
[   81.744174] Modules linked in: uvesafb(+) cfbcopyarea cfbimgblt cfbfillrect
[   81.744178]
[   81.744181] Pid: 3497, comm: modprobe Not tainted 3.3.0-rc4NX+ #71 Acer            Aspire 4741                    /Aspire 4741
[   81.744185] EIP: 0060:[<c00cd3b3>] EFLAGS: 00010246 CPU: 0
[   81.744187] EIP is at 0xc00cd3b3
[   81.744189] EAX: 00004f07 EBX: 00000000 ECX: 00000000 EDX: 00000000
[   81.744191] ESI: f763f000 EDI: f763f6e8 EBP: f57f3a0c ESP: f57f3a00
[   81.744192]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
[   81.744195] Process modprobe (pid: 3497, ti=f57f2000 task=f748c600 task.ti=f57f2000)
[   81.744196] Stack:
[   81.744197]  f82512c5 f759341c 00000000 f57f3a30 c124a9bc 00000001 00000001 000001e0
[   81.744202]  f8251280 f763f000 f7593400 00000000 f57f3a40 c12598dd f5c0c000 00000000
[   81.744206]  f57f3b10 c1255efe c125a21a 00000006 f763f09c 00000000 c1c6cb60 f7593400
[   81.744210] Call Trace:
[   81.744215]  [<f82512c5>] ? uvesafb_pan_display+0x45/0x60 [uvesafb]
[   81.744222]  [<c124a9bc>] fb_pan_display+0x10c/0x160
[   81.744226]  [<f8251280>] ? uvesafb_vbe_find_mode+0x180/0x180 [uvesafb]
[   81.744230]  [<c12598dd>] bit_update_start+0x1d/0x50
[   81.744232]  [<c1255efe>] fbcon_switch+0x39e/0x550
[   81.744235]  [<c125a21a>] ? bit_cursor+0x4ea/0x560
[   81.744240]  [<c129b6cb>] redraw_screen+0x12b/0x220
[   81.744245]  [<c128843b>] ? tty_do_resize+0x3b/0xc0
[   81.744247]  [<c129ef42>] vc_do_resize+0x3d2/0x3e0
[   81.744250]  [<c129efb4>] vc_resize+0x14/0x20
[   81.744253]  [<c12586bd>] fbcon_init+0x29d/0x500
[   81.744255]  [<c12984c4>] ? set_inverse_trans_unicode+0xe4/0x110
[   81.744258]  [<c129b378>] visual_init+0xb8/0x150
[   81.744261]  [<c129c16c>] bind_con_driver+0x16c/0x360
[   81.744264]  [<c129b47e>] ? register_con_driver+0x6e/0x190
[   81.744267]  [<c129c3a1>] take_over_console+0x41/0x50
[   81.744269]  [<c1257b7a>] fbcon_takeover+0x6a/0xd0
[   81.744272]  [<c12594b8>] fbcon_event_notify+0x758/0x790
[   81.744277]  [<c10929e2>] notifier_call_chain+0x42/0xb0
[   81.744280]  [<c1092d30>] __blocking_notifier_call_chain+0x60/0x90
[   81.744283]  [<c1092d7a>] blocking_notifier_call_chain+0x1a/0x20
[   81.744285]  [<c124a5a1>] fb_notifier_call_chain+0x11/0x20
[   81.744288]  [<c124b759>] register_framebuffer+0x1d9/0x2b0
[   81.744293]  [<c1061c73>] ? ioremap_wc+0x33/0x40
[   81.744298]  [<f82537c6>] uvesafb_probe+0xaba/0xc40 [uvesafb]
[   81.744302]  [<c12bb81f>] platform_drv_probe+0xf/0x20
[   81.744306]  [<c12ba558>] driver_probe_device+0x68/0x170
[   81.744309]  [<c12ba731>] __device_attach+0x41/0x50
[   81.744313]  [<c12b9088>] bus_for_each_drv+0x48/0x70
[   81.744316]  [<c12ba7f3>] device_attach+0x83/0xa0
[   81.744319]  [<c12ba6f0>] ? __driver_attach+0x90/0x90
[   81.744321]  [<c12b991f>] bus_probe_device+0x6f/0x90
[   81.744324]  [<c12b8a45>] device_add+0x5e5/0x680
[   81.744329]  [<c122a1a3>] ? kvasprintf+0x43/0x60
[   81.744332]  [<c121e6e4>] ? kobject_set_name_vargs+0x64/0x70
[   81.744335]  [<c121e6e4>] ? kobject_set_name_vargs+0x64/0x70
[   81.744339]  [<c12bbe9f>] platform_device_add+0xff/0x1b0
[   81.744343]  [<f8252906>] uvesafb_init+0x50/0x9b [uvesafb]
[   81.744346]  [<c100111f>] do_one_initcall+0x2f/0x170
[   81.744350]  [<f82528b6>] ? uvesafb_is_valid_mode+0x66/0x66 [uvesafb]
[   81.744355]  [<c10c6994>] sys_init_module+0xf4/0x1410
[   81.744359]  [<c1157fc0>] ? vfsmount_lock_local_unlock_cpu+0x30/0x30
[   81.744363]  [<c144cb10>] sysenter_do_call+0x12/0x36
[   81.744365] Code: f5 00 00 00 32 f6 66 8b da 66 d1 e3 66 ba d4 03 8a e3 b0 1c 66 ef b0 1e 66 ef 8a e7 b0 1d 66 ef b0 1f 66 ef e8 fa 00 00 00 61 c3 <60> e8 c8 00 00 00 66 8b f3 66 8b da 66 ba d4 03 b0 0c 8a e5 66
[   81.744388] EIP: [<c00cd3b3>] 0xc00cd3b3 SS:ESP 0068:f57f3a00
[   81.744391] CR2: 00000000c00cd3b3
[   81.744393] ---[ end trace 18b2c87c925b54d6 ]---

Signed-off-by: Wang YanQing <udknight@gmail.com>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: stable@vger.kernel.org
12 years agoudlfb: Fix invalid return codes in edid sysfs entry store function
Olivier Sobrie [Wed, 29 Feb 2012 07:06:40 +0000 (08:06 +0100)]
udlfb: Fix invalid return codes in edid sysfs entry store function

Return a negative errno instead of zero in the write function of
the sysfs entry in case of error.
Also add a check on the return value of dlfb_setup_modes().

Signed-off-by: Olivier Sobrie <olivier@sobrie.be>
Acked-by: Bernie Thompson <bernie@plugable.com>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
12 years agoMAINTAINERS: add entry for exynos mipi display drivers
Donghwa Lee [Tue, 6 Mar 2012 02:44:58 +0000 (11:44 +0900)]
MAINTAINERS: add entry for exynos mipi display drivers

Add Inki Dae, Donghwa Lee and Kyungmin Park as maintainers who developers
for exynos mipi display drivers for video/driver/exynos/exynos_mipi* and
include/video/exynos_mipi*.

Signed-off-by: Donghwa Lee <dh09.lee@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
12 years agoMAINTAINERS: add maintainer entry for Exynos DP driver
Jingoo Han [Mon, 6 Feb 2012 02:30:39 +0000 (11:30 +0900)]
MAINTAINERS: add maintainer entry for Exynos DP driver

Add maintainer entry for Exynos DP driver which can be used for
Samsung Exynos SoC series.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
12 years agoOMAPDSS: APPLY: print warning if wait_pending_extra_info_updates fails
Tomi Valkeinen [Thu, 23 Feb 2012 10:21:09 +0000 (12:21 +0200)]
OMAPDSS: APPLY: print warning if wait_pending_extra_info_updates fails

wait_pending_extra_info_updates() currently does a hacky second check
for extra_info_update_ongoing() at the end of the function to show a
warning if extra_info update is still ongoing. The call to
extra_info_update_ongoing() should really be inside spinlock, but that's
a bit heavy just for verification.

Rather than that, check the return value of the
wait_for_completion_timeout() and print an error if it has timeouted or
returned an error.

Even better would be to return the error value and act on it in the
callers of wait_pending_extra_info_updates. However, it's not clear what
the callers should do in case of an error, as the error should only
happen if there's a bug in the driver or the HW. So we'll just print the
warning for now.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
12 years agoOMAPDSS: MANAGER/APPLY: Add runtime_pm protection around wait_for_go/vsync functions
Lajos Molnar [Wed, 22 Feb 2012 06:53:16 +0000 (12:23 +0530)]
OMAPDSS: MANAGER/APPLY: Add runtime_pm protection around wait_for_go/vsync functions

If DSS suspends within the functions dss_mgr_wait_for_go(),
dss_mgr_wait_for_go_ovl() or dss_mgr_wait_for_vsync(). It may lose it's clock
and lead to a register access failure.

Request runtime_pm around these functions.

[archit@ti.com: Moved runtime_pm calls to wait_for_go/vsync functions rather
then calling them from omap_dispc_wait_for_irq_interruptible_timeout()]

Signed-off-by: Archit Taneja <archit@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
12 years agoOMAPDSS: DISPC: Fix FIR coefficients
Lajos Molnar [Tue, 21 Feb 2012 14:06:31 +0000 (19:36 +0530)]
OMAPDSS: DISPC: Fix FIR coefficients

coef3_M8 had an incorrect phase with 50% more intensity. This resulted in
banding on slightly down/upscaled images. Fixed a rounding error in coef5_M9.

Also removed ARRAY_LEN macro as ARRAY_SIZE is the standard linux one.

Signed-off-by: Lajos Molnar <lajos@ti.com>
Signed-off-by: Archit Taneja <archit@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
12 years agoOMAPDSS: DISPC: Fix OMAP4 supported color formats
Lajos Molnar [Tue, 21 Feb 2012 14:06:30 +0000 (19:36 +0530)]
OMAPDSS: DISPC: Fix OMAP4 supported color formats

Add missing but supported color formats for GFX pipeline in dss features:
RGBX16-4444, RGBA16-4444 and XRGB16-1555.

In dispc_ovl_set_color_mode():

- Remove unsupported modes on GFX pipeline: YUV2 and UYVY. Replace these by
  missing modes supported by GFX pipelines: RGBX16-4444 and RGBA16-4444.

- Fix swapped modes on VID pipelines: RGBX16-4444 and XRGB16-4444.

Signed-off-by: Lajos Molnar <lajos@ti.com>
Signed-off-by: Archit Taneja <archit@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
12 years agoOMAPDSS: HDMI: Add M2 divider while calculating clkout
Mythri P K [Tue, 21 Feb 2012 06:40:58 +0000 (12:10 +0530)]
OMAPDSS: HDMI: Add M2 divider while calculating clkout

While calculating regm and regmf value add using M2 divider in
the equation.
Formula for calculating:
Output clock on digital core domain:
CLKOUT = (M / (N+1))*CLKINP*(1/M2)
Internal oscillator output clock on internal LDO domain:
CLKDCOLDO = (M / (N+1))*CLKINP
The current code when allows variable M2 values as input
ignores using M2 divider values in calculation of regm and regmf.
so fix it by using M2 in calculation although the default value for
M2 is 1.

Signed-off-by: Mythri P K <mythripk@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
12 years agovideo: s3c-fb: Add support EXYNOS5 FIMD
Jingoo Han [Tue, 6 Mar 2012 06:53:41 +0000 (15:53 +0900)]
video: s3c-fb: Add support EXYNOS5 FIMD

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>
12 years agopxafb: do console locking before calling fb_blank()
Vasily Khoruzhick [Sun, 26 Feb 2012 13:52:02 +0000 (16:52 +0300)]
pxafb: do console locking before calling fb_blank()

Otherwise we hit WARN_CONSOLE_UNLOCKED in do_unblank_screen

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
12 years agoMerge commit 'v3.3-rc6'
Tomi Valkeinen [Tue, 6 Mar 2012 11:20:31 +0000 (13:20 +0200)]
Merge commit 'v3.3-rc6'

Merge v3.3-rc6 to get the latest DSS and OMAP arch fixes.

Conflicts:
arch/arm/mach-omap1/board-innovator.c
drivers/video/omap2/dss/apply.c

12 years agoMerge commit 'v3.3-rc6' into fbdev-next
Florian Tobias Schandinat [Tue, 6 Mar 2012 08:09:16 +0000 (08:09 +0000)]
Merge commit 'v3.3-rc6' into fbdev-next

12 years agoMerge pull request #1 from bernieplug/fbdev-next
Florian Tobias Schandinat [Tue, 6 Mar 2012 07:54:54 +0000 (23:54 -0800)]
Merge pull request #1 from bernieplug/fbdev-next

udlfb patches for fbdev-next

12 years agoviafb: LCD bpp cleanup
Florian Tobias Schandinat [Sun, 12 Feb 2012 20:34:17 +0000 (20:34 +0000)]
viafb: LCD bpp cleanup

This patch removes redundant bits per pixel information by using the
one storged in var directly. Simplifies code without any functional
changes.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
12 years agoLinux 3.3-rc6 v3.3-rc6
Linus Torvalds [Sun, 4 Mar 2012 01:08:09 +0000 (17:08 -0800)]
Linux 3.3-rc6

12 years agoMerge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi...
Linus Torvalds [Sun, 4 Mar 2012 00:42:30 +0000 (16:42 -0800)]
Merge tag 'scsi-fixes' of git://git./linux/kernel/git/jejb/scsi-rc-fixes-2.6

SCSI fixes from James Bottomley:
 "There's just a single fix in here: the osd max device number fix."

* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
  [SCSI] osd_uld: Bump MAX_OSD_DEVICES from 64 to 1,048,576

12 years agoMerge tag 'parisc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6
Linus Torvalds [Sun, 4 Mar 2012 00:33:51 +0000 (16:33 -0800)]
Merge tag 'parisc-fixes' of git://git./linux/kernel/git/jejb/parisc-2.6

PARISC fixes from James Bottomley:
 "This is a set of build fixes to get the cross compiled architecture
  testbeds building again"

* tag 'parisc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6:
  [PARISC] don't unconditionally override CROSS_COMPILE for 64 bit.
  [PARISC] include <linux/prefetch.h> in drivers/parisc/iommu-helpers.h
  [PARISC] fix compile break caused by iomap: make IOPORT/PCI mapping functions conditional

12 years agoudlfb: Add module_param to allow forcing pixel_limit
Ben Collins [Sat, 3 Mar 2012 20:57:37 +0000 (12:57 -0800)]
udlfb: Add module_param to allow forcing pixel_limit

Some user scenarios need to prioritize performance over
maxiumum resolution.

Also, some devices may have bad vendor descriptors, and
this allows the user to set a pixel limit that matches
their specific device to avoid blank screens on higher
resolution monitors.

700000 minimum for DL-115, 2360000 maximum for DL-195

Signed-off-by: Ben Collins <bcollins@ubuntu.com>
Signed-off-by: Bernie Thompson <bernie@plugable.com>
12 years agoudlfb: Make sure to get correct endian keys from vendor descriptor
Ben Collins [Sat, 3 Mar 2012 20:43:27 +0000 (12:43 -0800)]
udlfb: Make sure to get correct endian keys from vendor descriptor

The driver was not using le16_to_cpu when reading keys from the vendor
descriptor, causing incorrect parsing. Mainly, sku_pixel_limit was not
being parsed on big-endian systems. This would result in a blank screen
on big-endian CPUs where the DL chips's max mode was smaller than the
monitor's native mode.

Signed-off-by: Ben Collins <bcollins@ubuntu.com>
Signed-off-by: Bernie Thompson <bernie@plugable.com>
12 years agoMerge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Sat, 3 Mar 2012 17:32:31 +0000 (09:32 -0800)]
Merge branch 'perf-urgent-for-linus' of git://git./linux/kernel/git/tip/tip

* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  perf/x86/kvm: Fix Host-Only/Guest-Only counting with SVM disabled

12 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Linus Torvalds [Sat, 3 Mar 2012 17:31:49 +0000 (09:31 -0800)]
Merge git://git./linux/kernel/git/herbert/crypto-2.6

Pull from Herbert Xu:
  "This push fixes a bug in mv_cesa that causes all hash operations
   that supply data on a final operation to fail."

* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
  crypto: mv_cesa - fix final callback not ignoring input data

12 years agovfs: export full_name_hash() function to modules
Linus Torvalds [Sat, 3 Mar 2012 03:40:57 +0000 (19:40 -0800)]
vfs: export full_name_hash() function to modules

Commit 5707c87f "vfs: uninline full_name_hash()" broke the modular
build, because it needs exporting now that it isn't inlined any more.

Reported-by: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
12 years agoMerge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck...
Linus Torvalds [Fri, 2 Mar 2012 23:21:48 +0000 (15:21 -0800)]
Merge tag 'hwmon-for-linus' of git://git./linux/kernel/git/groeck/linux-staging

hhwmon fixes for 3.3-rc6 from Guenter Roeck:

These patches are necessary for correct operation and management of
F75387.

* tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
  hwmon: (f75375s) Catch some attempts to write to r/o registers
  hwmon: (f75375s) Properly map the F75387 automatic modes to pwm_enable
  hwmon: (f75375s) Make pwm*_mode writable for the F75387
  hwmon: (f75375s) Fix writes to the pwm* attribute for the F75387

12 years agoMerge tag 'fbdev-fixes-for-3.3-2' of git://github.com/schandinat/linux-2.6
Linus Torvalds [Fri, 2 Mar 2012 23:21:15 +0000 (15:21 -0800)]
Merge tag 'fbdev-fixes-for-3.3-2' of git://github.com/schandinat/linux-2.6

fbdev fixes for 3.3 from Florian Tobias Schandinat

It includes:
 - two fixes for OMAP HDMI
 - one fix to make new OMAP functions behave as they are supposed to
 - one Kconfig dependency fix
 - two fixes for viafb for modesetting on VX900 hardware

* tag 'fbdev-fixes-for-3.3-2' of git://github.com/schandinat/linux-2.6:
  OMAPDSS: APPLY: make ovl_enable/disable synchronous
  OMAPDSS: panel-dvi: Add Kconfig dependency on I2C
  viafb: fix IGA1 modesetting on VX900
  viafb: select HW scaling on VX900 for IGA2
  OMAPDSS: HDMI: hot plug detect fix
  OMAPDSS: HACK: Ensure DSS clock domain gets out of idle when HDMI is enabled

12 years agoMerge tag 'sound-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Linus Torvalds [Fri, 2 Mar 2012 23:20:41 +0000 (15:20 -0800)]
Merge tag 'sound-fixes' of git://git./linux/kernel/git/tiwai/sound

sound fixes for 3.3-rc6 from Takashi Iwai

This contains again regression fixes for various HD-audio and ASoC
regarding SSI and dapm shutdown path.  In addition, a minor azt3328
fix and the correction of the new jack-notification strings in HD-audio.

* tag 'sound-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
  ALSA: hda - Kill hyphenated names
  ALSA: hda - Add a fake mute feature
  ALSA: hda - Always set HP pin in unsol handler for STAC/IDT codecs
  ALSA: azt3328 - Fix NULL ptr dereference on cards without OPL3
  ALSA: hda/realtek - Fix resume of multiple input sources
  ASoC: i.MX SSI: Fix DSP_A format.
  ASoC: dapm: Check for bias level when powering down

12 years agovfs: split up name hashing in link_path_walk() into helper function
Linus Torvalds [Fri, 2 Mar 2012 22:49:24 +0000 (14:49 -0800)]
vfs: split up name hashing in link_path_walk() into helper function

The code in link_path_walk() that finds out the length and the hash of
the next path component is some of the hottest code in the kernel.  And
I have a version of it that does things at the full width of the CPU
wordsize at a time, but that means that we *really* want to split it up
into a separate helper function.

So this re-organizes the code a bit and splits the hashing part into a
helper function called "hash_name()".  It returns the length of the
pathname component, while at the same time computing and writing the
hash to the appropriate location.

The code generation is slightly changed by this patch, but generally for
the better - and the added abstraction actually makes the code easier to
read too.  And the new interface is well suited for replacing just the
"hash_name()" function with alternative implementations.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
12 years agovfs: clarify and clean up dentry_cmp()
Linus Torvalds [Fri, 2 Mar 2012 22:47:15 +0000 (14:47 -0800)]
vfs: clarify and clean up dentry_cmp()

It did some odd things for unclear reasons.  As this is one of the
functions that gets changed when doing word-at-a-time compares, this is
yet another of the "don't change any semantics, but clean things up so
that subsequent patches don't get obscured by the cleanups".

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
12 years agovfs: uninline full_name_hash()
Linus Torvalds [Fri, 2 Mar 2012 22:32:59 +0000 (14:32 -0800)]
vfs: uninline full_name_hash()

.. and also use it in lookup_one_len() rather than open-coding it.

There aren't any performance-critical users, so inlining it is silly.
But it wouldn't matter if it wasn't for the fact that the word-at-a-time
dentry name patches want to conditionally replace the function, and
uninlining it sets the stage for that.

So again, this is a preparatory patch that doesn't change any semantics,
and only prepares for a much cleaner and testable word-at-a-time dentry
name accessor patch.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
12 years agovfs: trivial __d_lookup_rcu() cleanups
Linus Torvalds [Fri, 2 Mar 2012 22:23:30 +0000 (14:23 -0800)]
vfs: trivial __d_lookup_rcu() cleanups

These don't change any semantics, but they clean up the code a bit and
mark some arguments appropriately 'const'.

They came up as I was doing the word-at-a-time dcache name accessor
code, and cleaning this up now allows me to send out a smaller relevant
interesting patch for the experimental stuff.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
12 years agohwmon: (f75375s) Catch some attempts to write to r/o registers
Nikolaus Schulz [Tue, 28 Feb 2012 21:15:54 +0000 (16:15 -0500)]
hwmon: (f75375s) Catch some attempts to write to r/o registers

It makes no sense to attempt to manually configure the fan in auto mode,
or set the duty cycle directly in closed loop mode.  The corresponding
registers are then read-only.  If the user tries it nonetheless, error out
with EINVAL instead of silently doing nothing.

Signed-off-by: Nikolaus Schulz <mail@microschulz.de>
[guenter.roeck@ericsson.com: Minor formatting cleanup]
Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
12 years agohwmon: (f75375s) Properly map the F75387 automatic modes to pwm_enable
Nikolaus Schulz [Tue, 28 Feb 2012 21:15:53 +0000 (16:15 -0500)]
hwmon: (f75375s) Properly map the F75387 automatic modes to pwm_enable

The F75387 supports automatic fan control using either PWM duty cycle or
RPM speed values.  Make the driver detect the latter mode, and expose the
different modes in sysfs as per pwm_enable, so that the user can switch
between them.

The interpretation of the pwm_enable attribute for the F75387 is adjusted
to be a superset of those values used for similar Fintek chips which do
not support automatic duty mode, with 2 mapping to automatic speed mode,
and moving automatic duty mode to the new value 4.

Toggling the duty mode via pwm_enable is currently denied for the F75387,
as the chip then simply reinterprets the fan configuration register values
according to the new mode, switching between RPM and PWM units, which
makes this a dangerous operation.

This patch introduces a new pwm mode into the driver. This is necessary
because the new mode (automatic pwm mode, 4) may already be enabled by the
BIOS, and the driver should not break existing functionality. This was seen
on at least one board.

Signed-off-by: Nikolaus Schulz <mail@microschulz.de>
Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
12 years agoMerge branches 'core-urgent-for-linus', 'perf-urgent-for-linus' and 'sched-urgent...
Linus Torvalds [Fri, 2 Mar 2012 19:38:43 +0000 (11:38 -0800)]
Merge branches 'core-urgent-for-linus', 'perf-urgent-for-linus' and 'sched-urgent-for-linus' of git://git./linux/kernel/git/tip/tip

Pulling latest branches from Ingo:

* 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  memblock: Fix size aligning of memblock_alloc_base_nid()

* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  perf probe: Ensure offset provided is not greater than function length without DWARF info too
  perf tools: Ensure comm string is properly terminated
  perf probe: Ensure offset provided is not greater than function length
  perf evlist: Return first evsel for non-sample event on old kernel
  perf/hwbp: Fix a possible memory leak

* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  CPU hotplug, cpusets, suspend: Don't touch cpusets during suspend/resume

12 years agoregset: Return -EFAULT, not -EIO, on host-side memory fault
H. Peter Anvin [Fri, 2 Mar 2012 18:43:49 +0000 (10:43 -0800)]
regset: Return -EFAULT, not -EIO, on host-side memory fault

There is only one error code to return for a bad user-space buffer
pointer passed to a system call in the same address space as the
system call is executed, and that is EFAULT.  Furthermore, the
low-level access routines, which catch most of the faults, return
EFAULT already.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Reviewed-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Roland McGrath <roland@hack.frob.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>