27 Oct, 2011

3 commits

  • This patch adds APIs to register and unregister wait for vsync
    callback.

    Signed-off-by: Manjunathappa, Prakash
    Signed-off-by: Vaibhav Hiremath

    Manjunathappa, Prakash
     
  • During LCDC initialization, there is the potential for a FIFO
    underflow condition to occur. A FIFO underflow condition
    occurs when the input FIFO is completely empty and the LCDC
    raster controller logic that drives data to the output pins
    attempts to fetch data from the FIFO. When a FIFO underflow
    condition occurs, incorrect data will be driven out on the
    LCDC data pins.

    Software should poll the FUF bit field in the LCD_STAT register
    to check if an error condition has occurred or service the
    interrupt if FUF_EN is enabled when FUF occurs. If the FUF bit
    field has been set to 1, this will indicate an underflow
    condition has occurred and then the software should execute a
    reset of the LCDC via the LPSC.

    This problem may occur if the LCDC FIFO threshold size
    (LCDDMA_CTRL[TH_FIFO_READY]) is left at its default value after
    reset. Increasing the FIFO threshold size will reduce or
    eliminate underflows. Setting the threshold size to 256 double
    words or larger is recommended.

    Signed-off-by: Rajashekhara, Sudhakar

    Rajashekhara, Sudhakar
     
  • Adding pinmux, platform resource information. Also add
    AM335X panel inforamtion.

    Signed-off-by: Manjunathappa, Prakash

    Manjunathappa, Prakash
     

25 Jul, 2011

2 commits


01 Jul, 2011

3 commits


24 May, 2011

2 commits


23 May, 2011

4 commits

  • Since the NV24 framebuffer has a CbCr plane that is twice as wide
    as the Y plane, it needs to be handled as a special case.

    Signed-off-by: Damian Hobson-Garcia
    Signed-off-by: Paul Mundt

    Damian
     
  • Based on the patch by Takanari Hayama

    Adds support framework necessary to use Media RAM (MERAM)
    caching functionality with the LCDC. The MERAM is accessed
    through up to 4 Interconnect Buffers (ICBs).

    ICB numbers and MERAM address ranges to use are specified in
    by filling in the .meram_cfg member of the LCDC platform data

    Signed-off-by: Damian Hobson-Garcia
    Signed-off-by: Paul Mundt

    Damian
     
  • Add the support for NV12 color format.
    Configure base address for UV component of NV12 color format.
    Change the way chroma scaling is handled for YUV formats on OMAP4 by enabling
    chroma-resampling for video pipeline and hence using FIR2 register set for
    scaling UV.
    Changes to _dispc_set_scaling(), because of the reason above, are:
    - call _dispc_set_scaling_common() to handle scaling for all color formats
    except for OMAP4 where it only handles scaling for RGB or Y-component
    - call _dispc_set_scaling_uv() for special handling required for UV
    component on OMAP4.
    - dispc_set_scaling_uv() also resets chroma-resampling bit for RGB color modes.

    Contains chroma scaling (_dispc_set_scaling_uv) design and implemented by
    Lajos Molnar

    Signed-off-by: Amber Jain
    Signed-off-by: Tomi Valkeinen

    Amber Jain
     
  • Add new color formats supported by OMAP4: NV12, RGBA16, RGBX16,
    ARGB16_1555, XRGB16_1555.
    NV12 color format is defined here, its support in DSS will be added separately.

    Signed-off-by: Amber Jain
    Signed-off-by: Tomi Valkeinen

    Amber Jain
     

16 May, 2011

1 commit

  • On OMAP3, the DSI module has 2 data lanes. On OMAP4, DSI1 has 4 data lanes
    and DSI2 has 2 data lanes. Introduce function dsi_get_num_data_lanes() which
    returns the number of data lanes on the dsi interface, introduce function
    dsi_get_num_data_lanes_dssdev() which returns the number of data lanes used by
    the omap_dss_device connected to the lanes.

    Use the DSI_GNQ register on OMAP4 to get the number of data lanes, modify
    dsi.c to use the number of lanes and the extra data lanes on DSI1.

    Signed-off-by: Archit Taneja
    Signed-off-by: Tomi Valkeinen

    Archit Taneja
     

13 May, 2011

5 commits

  • Add omap_rfbi_configure() which the panel driver can use to reconfigure
    the data element size and the number of data lines in the RFBI bus.

    Signed-off-by: Tomi Valkeinen

    Tomi Valkeinen
     
  • Add similar bus lock to RFBI as is in DSI. The panel driver can use the
    bus lock to mark that the RFBI bus is currently in use.

    Signed-off-by: Tomi Valkeinen

    Tomi Valkeinen
     
  • Introduce DSI2 PLL clock sources needed by LCD2 channel and DSI2 Protocol
    engine and DISPC Functional clock. Do the following:

    - Modify dss_get_dsi_clk_source() and dss_select_dsi_clk_source() to take the
    dsi module number as an argument.
    - Create debugfs files for dsi2, split the corresponding debugfs functions.
    - Allow DPI to use these new clock sources.

    Signed-off-by: Archit Taneja
    Signed-off-by: Tomi Valkeinen

    Archit Taneja
     
  • The DSI interface is represented as a platform device, using the DSI platform
    driver(dsi.c). The current DSI driver design is capable of running only one
    instance of a DSI device. On OMAP4, there are 2 very similar DSI modules which
    can be represented as instances of "omapdss_dsi" platform device.

    Add member "module" in "dssdev.phy.dsi" that tells us which DSI module's lanes
    the panel is connected to. Modify dsi.c functions to take the device's
    platform_device struct pointer, provide functions dsi_get_dsidev_from_dssdev()
    and dsi_get_dsidev_from_id() take the panel's omap_dss_device and module number
    respectively, and return the platform_device pointer. Currently, the dsi struct
    is declared globally and is accessed when dsi data is needed. The new pdev
    argument will be used later to provide the platform device's dsi related data.

    Signed-off-by: Archit Taneja
    Signed-off-by: Tomi Valkeinen

    Archit Taneja
     
  • Add pointer to omap_dss_device struct as an argument in the functions which
    are exported to dsi panel drivers. This argument will tell the DSI driver
    which DSI interface's data it has to choose.

    Signed-off-by: Archit Taneja
    Signed-off-by: Tomi Valkeinen

    Archit Taneja
     

11 May, 2011

14 commits

  • ULPS is a low power state where the DSI lanes are kept at ground. This
    patch implements ULPS by having a DSI bus inactivity timer which
    triggers the entry to ULPS. ULPS exit will happen automatically when the
    driver needs to do something on the DSI lanes.

    The ulps_timeout is configurable from board file or via sysfs.
    Additionally another sysfs file, "ulps", can be used to check the
    current ULPS state, or to manually enter or exit ULPS.

    Signed-off-by: Tomi Valkeinen

    Tomi Valkeinen
     
  • ESD check in Taal driver is currently on/off feature with hardcoded
    interval. This patch changes it to a configurable interval, which can be
    set from the board file.

    Signed-off-by: Tomi Valkeinen

    Tomi Valkeinen
     
  • Add dsi_mux_pads function pointer to omap_dss_board_info, and use the
    function pointer in DSI code to configure the DSI pads either to normal
    DSI operation, or to pull down when in ULPS.

    Signed-off-by: Tomi Valkeinen

    Tomi Valkeinen
     
  • Add parameter to omapdss_dsi_display_disable() which the panel driver
    can use to tell if the DSI lanes should be put to ULPS before disabling
    the interface.

    This can be used to skip ULPS entry in cases where the panel doesn't
    care about ULPS state, for example when the panel will be reset, or when
    the display interface will be enabled again right after the disable.

    This will speed up the operation considerably in cases where entering
    ULPS would fail with timeout, and the panel driver isn't even interested
    in entering ULPS.

    Signed-off-by: Tomi Valkeinen

    Tomi Valkeinen
     
  • The DSI pins are powered by VDDS_DSI. If VDDS_DSI is off, the DSI pins
    are floating even if they are pinmuxed to, say, safe mode and there's a
    pull down/up.

    This patch gives the panel drivers an option to leave the VDDS_DSI power
    enabled while the DSS itself is turned off. This can be used to keep the
    DSI lanes in a valid state while DSS is off, if the DSI pins are muxed
    for pull down (not done in this patch).

    There will be a slight power consumption increase (~100 uA?) when the
    VDDS_DSI is left on, but because this option is used when the panel is
    left on, the regulator consumption is negligible compared to panel power
    consumption.

    When the panel is fully turned off the VDDS_DSI is also turned off.

    As an added bonus this will give us faster start up time when starting
    up the DSS and the regulator is already enabled.

    Signed-off-by: Tomi Valkeinen

    Tomi Valkeinen
     
  • Move some of the configurable HDMI PLL parameters to dssdev.clock struct.
    Cleanup the function hdmi_compute_pll() by using the parameters defined in the
    board file and do some cosmetic modifications.

    Signed-off-by: Archit Taneja
    Signed-off-by: Tomi Valkeinen

    Archit Taneja
     
  • Add enum dss_clock_source in dssdev.clocks struct so that the clock sources can
    be specified in the board file.
    Replace hard coded clock sources in dsi.c, dpi.c and replace them with the new
    clock source members in dssdev.clocks. Modify the sdp4430_lcd_device struct in
    board-4430sdp.c to specify clock sources for DISPC_FCLK, LCD1_CLK and DSI1_FCLK.

    Signed-off-by: Archit Taneja
    Signed-off-by: Tomi Valkeinen

    Archit Taneja
     
  • Change enum dss_clk_source to omap_dss_clock_source and move it to
    'plat/display.h'. Change the enum members to attach "OMAP_" in the beginning.
    These changes are done in order to specify the clock sources for DSS in the
    board file.

    Signed-off-by: Archit Taneja
    Signed-off-by: Tomi Valkeinen

    Archit Taneja
     
  • omap_dss_register_device and omap_dss_unregister_device can only be
    called from core.c, so we can make it static.

    Signed-off-by: Tomi Valkeinen

    Tomi Valkeinen
     
  • Add get_dimensions() to struct omap_dss_driver. Use the call, if supported
    by the driver, in OMAPFB.

    Signed-off-by: Jani Nikula
    Signed-off-by: Tomi Valkeinen

    Jani Nikula
     
  • Clock configuration was defined inside dssdev.phy.dsi struct. The clock
    config doesn't really belong there, and so it's moved to dssdev.clock
    struct.

    Now the explicit clock configuration could also be used for other
    interfaces than DSI, although there's no support for it currently.

    Signed-off-by: Tomi Valkeinen

    Tomi Valkeinen
     
  • arch/arm/plat-omap/include/plat/nokia-dsi-panel.h is an include for the
    OMAP DSS panel driver for Nokia's DSI displays. A more logical place for
    it is in include/video.

    Signed-off-by: Tomi Valkeinen

    Tomi Valkeinen
     
  • arch/arm/plat-omap/include/plat/panel-generic-dpi.h is an include for
    the OMAP DSS panel driver for generic DPI displays. A more logical place
    for it is in include/video.

    Signed-off-by: Tomi Valkeinen

    Tomi Valkeinen
     
  • arch/arm/plat-omap/include/plat/display.h is an include for the OMAP DSS
    driver. A more logical place for it is in include/video.

    Signed-off-by: Tomi Valkeinen

    Tomi Valkeinen
     

26 Apr, 2011

1 commit


06 Apr, 2011

1 commit


31 Mar, 2011

1 commit


22 Mar, 2011

1 commit


16 Mar, 2011

1 commit

  • Supports YCbCr420sp, YCbCr422sp, and YCbCr44sp, formats
    (bpp = 12, 16, and 24) respectively.

    When double-buffering both Y planes appear before the C planes (Y-Y-C-C),
    as opposed to Y-C-Y-C.

    Set .nonstd in struct sh_mobile_lcdc_chan_cfg to enable YUV mode, and use
    .bpp to distiguish between the 3 modes.
    The value of .nonstd is copied to bits 16-31 of LDDFR in the LCDC and
    should be set accordingly.
    .nonstd must be set to 0 for RGB mode.

    Due to the encoding of YUV data, the framebuffer will clear to green
    instead of black.

    In YUV 420 mode, panning is only possible in 2 line increments.
    Additionally in YUV 420 mode the vertical resolution of the framebuffer
    must be an even number.

    Signed-off-by: Damian Hobson-Garcia
    Signed-off-by: Paul Mundt

    Damian Hobson-Garcia
     

10 Mar, 2011

1 commit