1. 16 8月, 2012 4 次提交
    • A
      OMAPDSS: DPI: Maintain copy of number of data lines in driver data · c6b393d4
      Archit Taneja 提交于
      The DPI driver currently relies on the omap_dss_device struct to configure the
      number of data lines as specified by the panel. This makes the DPI interface
      driver dependent on the omap_dss_device struct.
      
      Make the DPI driver data maintain it's own data lines field. A panel driver
      is expected to call omapdss_dpi_set_data_lines() before enabling the interface.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      c6b393d4
    • A
      OMAPDSS: RFBI: Maintain copy of number of data lines in driver data · 475989b7
      Archit Taneja 提交于
      The RFBI driver currently relies on the omap_dss_device struct to configure the
      number of data lines as specified by the panel. This makes the RFBI interface
      driver dependent on the omap_dss_device struct.
      
      Make the RFBI driver data maintain it's own data lines field. A panel driver
      is expected to call omapdss_rfbi_set_data_lines() to configure the pixel format
      before enabling the interface or calling omap_rfbi_configure().
      Signed-off-by: NArchit Taneja <archit@ti.com>
      475989b7
    • A
      OMAPDSS: RFBI: Maintain copy of pixel size in driver data · b02875be
      Archit Taneja 提交于
      The RFBI driver currently relies on the omap_dss_device struct to receive the
      desired pixel size of the panel. This makes the RFBI interface driver dependent
      on the omap_dss_device struct.
      
      Make the RFBI driver data maintain it's own pixel format field. A panel driver
      is expected to call omapdss_rfbi_set_pixel_size() to configure the pixel format
      before enabling the interface or calling omap_rfbi_configure().
      Signed-off-by: NArchit Taneja <archit@ti.com>
      b02875be
    • A
      OMAPDSS: DSI: Maintain copy of pixel format in driver data · 02c3960b
      Archit Taneja 提交于
      The DSI driver currently relies on the omap_dss_device struct to receive the
      desired pixel format of the panel. This makes the DSI interface driver dependent
      on the omap_dss_device struct.
      
      Make the DSI driver data maintain it's own pixel format field. The panel driver
      is expected to call omapdss_dsi_set_pixel_format() to configure the pixel format
      before the interface is enabled.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      02c3960b
  2. 15 8月, 2012 3 次提交
    • A
      OMAPDSS: RFBI: Add function to set panel size · 6ff9dd5a
      Archit Taneja 提交于
      RFBI drivers requires configuration of the update area. Since we don't support
      partial updates, the size to be configures is the panel size itself.
      
      Add a timings field in RFBI's driver data. Apart from x_res and y_res, all the
      other fields are configured to an initial value when RFBI is enabled. A panel
      driver is expected to call omapdss_rfbi_set_size() configure the size of the
      panel.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      6ff9dd5a
    • A
      OMAPDSS: RFBI: Remove partial update support · 43eab861
      Archit Taneja 提交于
      Partial update suppport was removed from DISPC and DSI sometime back. The RFBI
      driver still tries to support partial update without the underlying support in
      DISPC.
      
      Remove partial update support from RFBI, only support updates which span acros
      the whole panel size. This also helps in DSI and RFBI having similar update
      ops.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      43eab861
    • A
      OMAPDSS: SDI: Create a function to set timings · c7833f7b
      Archit Taneja 提交于
      Create function omapdss_sdi_set_timings(). Configuring new timings is done the
      same way as before, SDI is disabled, and re-enabled with the new timings in
      dssdev. This just moves the code from the panel drivers to the SDI driver.
      
      The panel drivers shouldn't be aware of how SDI manages to configure a new set
      of timings. This should be taken care of by the SDI driver itself.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      c7833f7b
  3. 13 8月, 2012 3 次提交
    • A
      OMAPDSS: DSI: Add function to set panel size for command mode panels · e352574d
      Archit Taneja 提交于
      DSI command mode panels don't need to configure a full set of timings to
      configure DSI, they only require the width and the height of the panel in
      pixels.
      
      Use omapdss_dsi_set_size for command mode panels, omapdss_dsi_set_timings is
      meant for video mode panels. When performing rotation via chaning the address
      mode of the panel, we would need to swap width and height when doing 90 or 270
      rotation. Make sure that omapdss_dsi_set_size() makes the new width and height
      visible to DSI.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      e352574d
    • A
      OMAPDSS: DSI: Maintain own copy of timings in driver data · e67458a8
      Archit Taneja 提交于
      The DSI driver currently relies on the timings in omap_dss_device struct to
      configure the DISPC and DSI blocks accordingly. This makes the DSI interface
      driver dependent on the omap_dss_device struct.
      
      Make the DSI driver data maintain it's own timings field. A DSI video mode panel
      driver is expected to call omapdss_dsi_set_timings() to set these timings before
      the panel is enabled.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      e67458a8
    • A
      OMAPDSS: DPI: Maintain our own timings field in driver data · c499144c
      Archit Taneja 提交于
      The DPI driver currently relies on the timings in omap_dss_device struct to
      configure the DISPC accordingly. This makes the DPI interface driver dependent
      on the omap_dss_device struct.
      
      Make the DPI driver data maintain it's own timings field. The panel driver is
      expected to call dpi_set_timings()(renamed to omapdss_dpi_set_timings) to set
      these timings before the panel is enabled.
      
      In the set_timings() op, we still ensure that the omap_dss_device timings
      (dssdev->panel.timings) are configured. This will later be configured only by
      the DPI panel drivers.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      c499144c
  4. 29 6月, 2012 8 次提交
    • A
      OMAPDSS: DSI: Fix HSYNC, VSYNC and DE polarities between DISPC and DSI · bd5a7b11
      Archit Taneja 提交于
      For DSI operation in videomode, DISPC logic levels for the signals HSYNC, VSYNC
      and DE need to be specified to DSI via the fields VP_HSYNC_POL, VP_VSYNC_POL and
      VP_DE_POL in DSI_CTRL registers.
      
      This information is completely internal to DSS as logic levels for the above
      signals hold no meaning on the DSI bus. Hence a DSI panel driver should be
      totally oblivious of these fields.
      
      Fix the logic levels/polarities in the DISPC and DSI registers to a default
      value. This is done by overriding these fields in omap_video_timings struct
      filled by the panel driver for DISPC, and use the equivalent default values
      when programming DSI_CTRL registers. Also, remove the redundant polarity related
      fields in omap_dss_dsi_videomode_data.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      bd5a7b11
    • A
      OMAPDSS: Add interlace parameter to omap_video_timings · 23c8f88e
      Archit Taneja 提交于
      Add a parameter called interlace which tells whether the timings are in
      interlaced or progressive mode. This aligns the omap_video_timings struct with
      the Xorg modeline configuration.
      
      It also removes the hack needed to write to divide the manager height by 2 if
      the connected interface is VENC.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      23c8f88e
    • A
      OMAPDSS: Remove omap_panel_config enum from omap_dss_device · 07fb51c6
      Archit Taneja 提交于
      omap_panel_config contains fields which are finally written to DISPC_POL_FREQo
      registers. These are now held by omap_video_timings and are set when the manager
      timings are applied.
      
      Remove the omap_panel_config enum, and remove all it's references from panel or
      interface drivers.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      07fb51c6
    • A
      OMAPDSS: Add some new fields to omap_video_timings · a8d5e41c
      Archit Taneja 提交于
      Some panel timing related fields are contained in omap_panel_config in the form
      of flags. The fields are:
      
      - Hsync logic level
      - Vsync logic level
      - Data driven on rising/falling edge of pixel clock
      - Output enable/Data enable logic level
      - HSYNC/VSYNC driven on rising/falling edge of pixel clock
      
      Out of these parameters, Hsync and Vsync logic levels are a part of the timings
      in the Xorg modeline configuration. So it makes sense to move the to
      omap_video_timings. The rest aren't a part of modeline, but it still makes
      sense to move these since they are related to panel timings.
      
      These fields stored in omap_panel_config in dssdev are configured for LCD
      panels, and the corresponding LCD managers in the DISPC_POL_FREQo registers.
      
      Add the above fields in omap_video_timings. Represent their state via new enums.
      
      Add these parameters to the omap_video_timings instances in the panel drivers.
      Keep the corresponding IVS, IHS, IPC, IEO, RF and ONOFF flags in
      omap_panel_config for now. The struct will be removed later.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      a8d5e41c
    • A
      OMAPDSS: Remove passive matrix LCD support (part 3) · d21f43bc
      Archit Taneja 提交于
      Remove omap_lcd_display_type enum
      
      The enum omap_lcd_display_type is used to configure the lcd display type in
      DISPC. Remove this enum and always set display type to TFT by creating function
      dss_mgr_set_lcd_type_tft().
      Signed-off-by: NArchit Taneja <archit@ti.com>
      d21f43bc
    • A
      OMAPDSS: Remove passive matrix LCD support (part 2) · 5ae9eaa6
      Archit Taneja 提交于
      Remove OMAP_DSS_LCD_TFT as a omap_panel_config flag.
      
      We don't support passive matrix displays any more. Remove this flag from all the
      panel drivers.
      
      Force the display_type to OMAP_DSS_LCD_DISPLAY_TFT in the interface drivers.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      5ae9eaa6
    • C
      OMAPDSS: Add LCD3 overlay manager and Clock and IRQ support · e86d456a
      Chandrabhanu Mahapatra 提交于
      The support for LCD3 manager has been added into the manager module. LCD3 panel
      has registers as DISPC_CONTROL3 and DISPC_CONFIG3 just like those in LCD and
      LCD2 panels. These registers control the Display Controller (DISPC) module for
      LCD3 output. The three LCDs support Display Serial Interface (DSI), Remote Frame
      Buffer Interface (RFBI) and Parallel CMOS Output Interface (DPI). These LCDs can
      be connected through parallel output interface using DISPC and RFBI or DPI. For
      serial interface DSS uses DSI.
      
      The LCD3 panel, just like LCD and LCD2 panels, has a clock switch in DSS_CTRL
      register which has been enabled. The clock switch chooses between DSS_CLK and
      DPLL_DSI1_C_CLK1 as source for LCD3_CLK. New IRQs as DISPC_IRQ_VSYNC3,
      DISPC_IRQ_FRAMEDONE3, DISPC_IRQ_ACBIAS_COUNT_STAT3 and DISPC_IRQ_SYNC_LOST3 have
      been added specific to the new manager.
      Signed-off-by: NChandrabhanu Mahapatra <cmahapatra@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      e86d456a
    • C
      OMAPDSS: Add support for LCD3 channel · ff6331e2
      Chandrabhanu Mahapatra 提交于
      OMAP5 Display Subsystem (DSS) architecture comes with a additional LCD3 channel
      with its own dedicated overlay manager. The current patch adds LCD3 channel and
      basic register support for LCD3 channel. It adds register addresses for various
      Display Controller (DISPC) registers like DISPC_DEFAULT_COLOR, DISPC_TIMING_H,
      DISPC_DIVISORo, etc.
      Signed-off-by: NChandrabhanu Mahapatra <cmahapatra@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      ff6331e2
  5. 28 6月, 2012 1 次提交
    • T
      OMAPDSS: remove enum omap_dss_overlay_managers · 0df8ad71
      Tomi Valkeinen 提交于
      We have two almost the same enums: omap_channel and
      omap_dss_overlay_managers. omap_channel is used almost everywhere, and
      omap_channel assigns explicit values to the enum values which are needed
      for proper operation.
      
      omap_dss_overlay_managers is only used in one place, so it's easy to
      remove it, which is what this patch does.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      0df8ad71
  6. 22 5月, 2012 1 次提交
    • C
      OMAPDSS: DISPC: Support rotation through TILER · 65e006ff
      Chandrabhanu Mahapatra 提交于
      TILER is a block in OMAP4's DMM which lets DSS fetch frames in a rotated manner.
      Physical memory can be mapped to a portion of OMAP's system address space called
      TILER address space. The TILER address space is split into 8 views. Each view
      represents a rotated or mirrored form of the mapped physical memory. When a
      DISPC overlay's base address is programmed to one of these views, the TILER
      fetches the pixels according to the orientation of the view. A view is further
      split into 4 containers, each container holds elements of a particular size.
      Rotation can be achieved at the granularity of elements in the container. For
      more information on TILER, refer to the Memory Subsytem section in OMAP4 TRM.
      Rotation type TILER has been added which is used to exploit the capabilities of
      these 8 views for performing various rotations.
      
      When fetching from addresses mapped to TILER space, the DISPC DMA can fetch
      pixels in either 1D or 2D bursts. The fetch depends on which TILER container we
      are accessing. Accessing 8, 16 and 32 bit sized containers requires 2D bursts,
      and page mode sized containers require 1D bursts.
      
      The DSS2 user is expected to provide the Tiler address of the view that it is
      interested in. This is passed to the paddr and p_uv_addr parameters in
      omap_overlay_info. It is also expected to provide the stride value based on the
      view's orientation and container type, this should be passed to the screen_width
      parameter of omap_overlay_info. In calc_tiler_rotation_offset screen_width is
      used to calculate the required row_inc for DISPC. x_predecim and y_predecim are
      also used to calculate row_inc and pix_inc thereby adding predecimation support
      for TILER.
      Signed-off-by: NChandrabhanu Mahapatra <cmahapatra@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      65e006ff
  7. 11 5月, 2012 2 次提交
    • R
      OMAPDSS: Provide an interface for audio support · 9c0b8420
      Ricardo Neri 提交于
      There exist several display technologies and standards that support audio as
      well. Hence, it is relevant to update the DSS device driver to provide an audio
      interface that may be used by an audio driver or any other driver interested in
      the functionality.
      
      The audio_enable function is intended to prepare the relevant
      IP for playback (e.g., enabling an audio FIFO, taking in/out of reset
      some IP, enabling companion chips, etc). It is intended to be called before
      audio_start. The audio_disable function performs the reverse operation and is
      intended to be called after audio_stop.
      
      While a given DSS device driver may support audio, it is possible that for
      certain configurations audio is not supported (e.g., an HDMI display using a
      VESA video timing). The audio_supported function is intended to query whether
      the current configuration of the display supports audio.
      
      The audio_config function is intended to configure all the relevant audio
      parameters of the display. In order to make the function independent of any
      specific DSS device driver, a struct omap_dss_audio is defined. Its purpose
      is to contain all the required parameters for audio configuration. At the
      moment, such structure contains pointers to IEC-60958 channel status word and
      CEA-861 audio infoframe structures. This should be enough to support HDMI and
      DisplayPort, as both are based on CEA-861 and IEC-60958. The omap_dss_audio
      structure may be extended in the future if required.
      
      The audio_enable/disable, audio_config and audio_supported functions could be
      implemented as functions that may sleep. Hence, they should not be called
      while holding a spinlock or a readlock.
      
      The audio_start/audio_stop function is intended to effectively start/stop audio
      playback after the configuration has taken place. These functions are designed
      to be used in an atomic context. Hence, audio_start should return quickly and be
      called only after all the needed resources for audio playback (audio FIFOs,
      DMA channels, companion chips, etc) have been enabled to begin data transfers.
      audio_stop is designed to only stop the audio transfers. The resources used
      for playback are released using audio_disable.
      
      A new enum omap_dss_audio_state is introduced to help the implementations of
      the interface to keep track of the audio state. The initial state is _DISABLED;
      then, the state transitions to _CONFIGURED, and then, when it is ready to
      play audio, to _ENABLED. The state _PLAYING is used when the audio is being
      rendered.
      Signed-off-by: NRicardo Neri <ricardo.neri@ti.com>
      9c0b8420
    • T
      OMAPDSS: clean up the omapdss platform data mess · 00928eaf
      Tomi Valkeinen 提交于
      The omapdss pdata handling is a mess. This is more evident when trying
      to use device tree for DSS, as we don't have platform data anymore in
      that case. This patch cleans the pdata handling by:
      
      - Remove struct omap_display_platform_data. It was used just as a
        wrapper for struct omap_dss_board_info.
      - Pass the platform data only to omapdss device. The drivers for omap
        dss hwmods do not need the platform data. This should also work better
        for DT, as we can create omapdss device programmatically in generic omap
        boot code, and thus we can pass the pdata to it.
      - Create dss functions for get_ctx_loss_count and dsi_enable/disable_pads
        that the dss hwmod drivers can call.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      00928eaf
  8. 09 5月, 2012 1 次提交
    • T
      OMAPDSS: DSI: implement generic DSI pin config · e4a9e94c
      Tomi Valkeinen 提交于
      In preparation for device tree, this patch changes how the DSI pins are
      configured. The current configuration method is only doable with board
      files and the configuration data is OMAP specific.
      
      This patch moves the configuration data to the panel's platform data,
      and the data can easily be given via DT in the future. The configuration
      data format is also changed to a generic one which should be suitable
      for all platforms.
      
      The new format is an array of pin numbers, where the array items start
      from clock + and -, then data1 + and -, and so on. For example:
      
      {
      	0,	// pin num for clock lane +
      	1,	// pin num for clock lane -
      	2,	// pin num for data1 lane +
      	3,	// pin num for data1 lane -
      	...
      }
      
      The pin numbers are translated by the DSI driver and used to configure
      the hardware appropriately.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Acked-by: NTony Lindgren <tony@atomide.com>
      e4a9e94c
  9. 23 4月, 2012 2 次提交
  10. 26 1月, 2012 1 次提交
    • T
      OMAPDSS: HDMI: PHY burnout fix · c49d005b
      Tomi Valkeinen 提交于
      A hardware bug in the OMAP4 HDMI PHY causes physical damage to the board
      if the HDMI PHY is kept powered on when the cable is not connected.
      
      This patch solves the problem by adding hot-plug-detection into the HDMI
      IP driver. This is not a real HPD support in the sense that nobody else
      than the IP driver gets to know about the HPD events, but is only meant
      to fix the HW bug.
      
      The strategy is simple: If the display device is turned off by the user,
      the PHY power is set to OFF. When the display device is turned on by the
      user, the PHY power is set either to LDOON or TXON, depending on whether
      the HDMI cable is connected.
      
      The reason to avoid PHY OFF when the display device is on, but the cable
      is disconnected, is that when the PHY is turned OFF, the HDMI IP is not
      "ticking" and thus the DISPC does not receive pixel clock from the HDMI
      IP. This would, for example, prevent any VSYNCs from happening, and
      would thus affect the users of omapdss. By using LDOON when the cable is
      disconnected we'll avoid the HW bug, but keep the HDMI working as usual
      from the user's point of view.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      c49d005b
  11. 05 1月, 2012 2 次提交
  12. 02 12月, 2011 12 次提交
    • T
      OMAPDSS: Add comments about blocking of ovl/mgr functions · 9d11c321
      Tomi Valkeinen 提交于
      Add comments specifying what ovl/mgr functions may block.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      9d11c321
    • T
      OMAPDSS: APPLY: remove device_changed field · ff4733dc
      Tomi Valkeinen 提交于
      omap_overlay_manager contains device_changed field, which no longer has
      any use. So remove the field and the few places where it is touched.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      ff4733dc
    • T
      OMAPDSS: APPLY: move channel-field to extra_info set · 5d5a97a6
      Tomi Valkeinen 提交于
      Setting overlay's output channel is currently handled at the same time
      as other overlay attributes. This is not right, as the normal attributes
      should only affect one overlay and manager, but changing the channel
      affects two managers.
      
      This patch moves the channel field into the "extra_info" set, handled
      together with enabled-status.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      5d5a97a6
    • T
      OMAPDSS: APPLY: move ovl->info to apply.c · c1a9febf
      Tomi Valkeinen 提交于
      struct omap_overlayr contains info and info_dirty fields, both of which
      should be internal to apply.c.
      
      This patch moves those fields into ovl_priv data, and names them
      user_info and user_info_dirty.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      c1a9febf
    • T
      OMAPDSS: APPLY: move mgr->info to apply.c · 388c4c6c
      Tomi Valkeinen 提交于
      struct omap_overlay_manager contains info and info_dirty fields, both of
      which should be internal to apply.c.
      
      This patch moves those fields into mgr_priv data, and names them
      user_info and user_info_dirty.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      388c4c6c
    • T
      OMAPDSS: APPLY: rewrite overlay enable/disable · aaa874a9
      Tomi Valkeinen 提交于
      Overlays are currently enabled and disabled with a boolean in the struct
      omap_overlay_info. The overlay info is set with ovl->set_overlay_info(),
      and made into use with mgr->apply().
      
      This doesn't work properly, as the enable/disable status may affect also
      other overlays, for example when using fifo-merge. Thus the enabling and
      disabling of the overlay needs to be done outside the normal overlay
      configuration.
      
      This patch achieves that by doing the following things:
      
      1) Add function pointers to struct omap_overlay: enable(), disable() and
      is_enabled(). These are used to do the obvious. The functions may block.
      
      2) Move the "enabled" field from struct omap_overlay to ovl_priv_data.
      
      3) Add a new route for settings to be applied to the HW, called
      "extra_info". The status of the normal info and extra_info are tracked
      separately.
      
      The point here is to allow the normal info to be changed and
      applied in non-blocking matter, whereas the extra_info can only be
      changed when holding the mutex. This makes it possible to, for example,
      set the overlay enable flag, apply it, and wait until the HW has taken
      the flag into use.
      
      This is not possible if the enable flag would be in the normal info, as
      a new value for the flag could be set at any time from the users of
      omapdss.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      aaa874a9
    • T
      OMAPDSS: APPLY: move mgr->enabled to mgr_priv_data · bf213523
      Tomi Valkeinen 提交于
      struct omap_overlay_manager contains "enabled"-field, used to track if
      the manager is enabled or not. This field should be internal to apply.c.
      
      This patch moves the field to mgr_priv_data, and applies the necessary
      locking when accessing the field.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      bf213523
    • T
      OMAPDSS: DSI: call mgr_enable/disable for cmd mode displays · 9a147a65
      Tomi Valkeinen 提交于
      The current code uses dsi_video_mode_enable/disable functions to
      enable/disable DISPC output for video mode displays. For command mode
      displays we have no notion in the DISPC side of whether the panel is
      enabled, except when a dss_mgr_start_update() call is made.
      
      However, to properly maintain the DISPC state in apply.c, we need to
      know if a manager used for a manual update display is currently in use.
      
      This patch achieves that by changing dsi_video_mode_enable/disable to
      dsi_enable/disable_video_output, which is called by both video and
      command mode displays. For video mode displays it starts the actual
      pixel stream, as it did before. For command mode displays it doesn't do
      anything else than mark that the manager is currently in use.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      9a147a65
    • T
      OMAPDSS: store overlays in a list for each manager · 07e327c9
      Tomi Valkeinen 提交于
      Current way of handling overlay-manager links is a bit strange: each
      manager has a static array, containing pointers to all the overlays
      (even those used by other managers). The overlays contain a pointer to
      the manager being used.
      
      This patch makes the system a bit saner: each manager has a linked list
      of overlays, and only the overlays linked to that manager are in the
      list.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      07e327c9
    • T
      OMAPDSS: store managers in an array · 5617ad09
      Tomi Valkeinen 提交于
      Overlay managers are stored in a linked list. There's no need for this
      list, as an array would do just as fine.
      
      This patch changes the code to use an array for overlay managers.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      5617ad09
    • T
      OMAPDSS: APPLY: track whether a manager is enabled · be729178
      Tomi Valkeinen 提交于
      Add "enabled" field to struct omap_overlay_manager, which tells if the
      output is enabled or not. This will be used in apply.c in the following
      patches.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      be729178
    • T
      OMAPDSS: hide manager's enable/disable() · 7797c6da
      Tomi Valkeinen 提交于
      omap_overlay_manager struct contains enable() and disable() functions.
      However, these are only meant to be used from inside omapdss, and thus
      it's bad to expose the functions.
      
      This patch adds dss_mgr_enable() and dss_mgr_disable() functions to
      apply.c, which handle enabling and disabling the output.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      7797c6da