1. 26 2月, 2015 1 次提交
    • T
      OMAPDSS: fix regression with display sysfs files · a38bb793
      Tomi Valkeinen 提交于
      omapdss's sysfs directories for displays used to have 'name' file,
      giving the name for the display. This file was later renamed to
      'display_name' to avoid conflicts with i2c sysfs 'name' file. Looks like
      at least xserver-xorg-video-omap3 requires the 'name' file to be
      present.
      
      To fix the regression, this patch creates new kobjects for each display,
      allowing us to create sysfs directories for the displays. This way we
      have the whole directory for omapdss, and there will be no sysfs file
      clashes with the underlying display device's sysfs files.
      
      We can thus add the 'name' sysfs file back.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Tested-by: NNeilBrown <neilb@suse.de>
      a38bb793
  2. 04 2月, 2015 1 次提交
  3. 01 12月, 2014 1 次提交
  4. 12 11月, 2014 1 次提交
    • A
      OMAPDSS: DT: Get source endpoint by matching reg-id · ef691ff4
      Archit Taneja 提交于
      In omapdss_of_find_source_for_first_ep, we retrieve a source endpoint's DT node,
      and then see what omapdss output has the matching device_node pointer in
      omap_dss_find_output_by_node.
      
      For all DPI and SDI outputs, the device_node pointer is set as the parent's DSS
      device_node pointer. If the source is one of these outputs, the above method
      won't work.
      
      To get the correct output for ports within DSS(and in other cases in the future,
      where multiple ports might be under one device), we require additional
      information which is exclusive to the output port.
      
      We create a new field in omap_dss_device called 'port_num', this provides port
      number of the output port corresponding to this device. When searching for the
      source endpoint in DT, we extract the 'reg' property from the port corresponding
      to the endpoint source. From the list of registered outputs, we pick out that
      output which has both dev->of_node and port_num matching with the device_node
      pointer and 'reg' of the source endpoint node from DT.
      
      For encoder blocks(the ones which have both an input and output port), we need
      to set the port_num as the 'reg' property for the output port as defined in the
      DT bindings. We set port_num to 1 in the tfp410 and tpd12s015 encoder drivers.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      ef691ff4
  5. 04 7月, 2014 1 次提交
  6. 09 5月, 2014 3 次提交
  7. 19 3月, 2014 1 次提交
  8. 05 3月, 2014 1 次提交
    • T
      OMAPDSS: convert pixel clock to common videomode style · d8d78941
      Tomi Valkeinen 提交于
      omapdss has its own video-timings struct, but we want to move the common
      videomode.
      
      The first step is to change the omapdss's pixelclock unit from kHz to
      Hz. Also, omapdss uses "pixel_clock" field name, whereas the common
      videomode uses "pixelclock" field name. This patch changes the field
      name also, as that makes it easy to spot any non-converted pixel_clock
      uses.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      d8d78941
  9. 28 2月, 2014 1 次提交
  10. 30 8月, 2013 3 次提交
  11. 29 8月, 2013 5 次提交
  12. 17 6月, 2013 21 次提交
    • T
      OMAPDSS: DSI: Add ops · deb16df8
      Tomi Valkeinen 提交于
      Add "ops" style method for using DSI functionality.
      
      Ops style calls will allow us to have arbitrarily long display
      pipelines, where each entity can call ops in the previous display
      entity.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      deb16df8
    • T
      OMAPDSS: HDMI: Add ops · 0b450c31
      Tomi Valkeinen 提交于
      Add "ops" style method for using HDMI functionality.
      
      Ops style calls will allow us to have arbitrarily long display
      pipelines, where each entity can call ops in the previous display
      entity.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      0b450c31
    • T
      OMAPDSS: AnalogTV: Add ops · fb8efa49
      Tomi Valkeinen 提交于
      Add "ops" style method for using analog TV functionality.
      
      Ops style calls will allow us to have arbitrarily long display
      pipelines, where each entity can call ops in the previous display
      entity.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      fb8efa49
    • T
      OMAPDSS: DVI: Add ops · 7700c2d4
      Tomi Valkeinen 提交于
      Add "ops" style method for using DVI functionality.
      
      Ops style calls will allow us to have arbitrarily long display
      pipelines, where each entity can call ops in the previous display
      entity.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      7700c2d4
    • T
      OMAPDSS: SDI: Add ops · b1082dfd
      Tomi Valkeinen 提交于
      Add "ops" style method for using SDI functionality.
      
      Ops style calls will allow us to have arbitrarily long display
      pipelines, where each entity can call ops in the previous display
      entity.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      b1082dfd
    • T
      OMAPDSS: DPI: Add ops · 0b24edb1
      Tomi Valkeinen 提交于
      Add "ops" style method for using DPI functionality.
      
      Ops style calls will allow us to have arbitrarily long display
      pipelines, where each entity can call ops in the previous display
      entity.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      0b24edb1
    • T
      OMAPDSS: add OMAP_DISPLAY_TYPE_DVI · bc24b8b6
      Tomi Valkeinen 提交于
      Add new display bus type for DVI. This is not used by omapdss driver
      itself, but is used by external encoder chips that output DVI.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      bc24b8b6
    • T
      OMAPDSS: public omapdss_register_output() · 5d47dbc8
      Tomi Valkeinen 提交于
      In order to allow multiple display block in a video pipeline, we need to
      give the drivers way to register themselves. For now we have
      the omapdss_register_display() which is used to register panels, and
      dss_register_output() which is used to register DSS encoders.
      
      This patch makes dss_register_output() public (with the name of
      omapdss_register_output), which can be used to register also external
      encoders. The distinction between register_output and register_display
      is that a "display" is an entity at the end of the videopipeline, and
      "output" is something inside the pipeline.
      
      The registration and naming will be made saner in the future, but the
      current names and functions are kept to minimize changes during the dss
      device model transition.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      5d47dbc8
    • T
      OMAPDSS: remove unused fields in omap_dss_device · 94954fcb
      Tomi Valkeinen 提交于
      The use of platform callbacks, backlight, DSI TE and reset gpio from the
      struct omap_dss_device has been removed. We can thus remove the fields
      from omap_dss_device.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      94954fcb
    • T
      OMAPDSS: add module_get/put to omap_dss_get/put_device() · d35317a4
      Tomi Valkeinen 提交于
      omap_dss_get_device() should be called for omap_dss_device before it is
      used to increase its refcount. Currently we only increase the refcount
      for the underlying device.
      
      This patch adds managing the ref count to the underlying module also,
      which contains the ops for the omap_dss_device.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      d35317a4
    • T
      OMAPDSS: omapdss.h: add owner field to omap_dss_device · 4f3e44ea
      Tomi Valkeinen 提交于
      Add struct module *owner field to omap_dss_device, which points to the
      module containing the ops for this omap_dss_device. This will be used to
      manage the ref count for the module.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      4f3e44ea
    • T
      OMAPDSS: combine omap_dss_output into omap_dss_device · 1f68d9c4
      Tomi Valkeinen 提交于
      We currently have omap_dss_device, which represents an external display
      device, sometimes an external encoder, sometimes a panel. Then we have
      omap_dss_output, which represents DSS's output encoder.
      
      In the future with new display device model, we construct a video
      pipeline from the display blocks. To accomplish this, all the blocks
      need to be presented by the same entity.
      
      Thus, this patch combines omap_dss_output into omap_dss_device. Some of
      the fields in omap_dss_output are already found in omap_dss_device, but
      some are not. This means we'll have DSS output specific fields in
      omap_dss_device, which is not very nice. However, it is easier to just
      keep those output specific fields there for now, and after transition to
      new display device model is made, they can be cleaned up easier than
      could be done now.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      1f68d9c4
    • T
      OMAPDSS: remove omap_dss_start/stop_device() · d3923933
      Tomi Valkeinen 提交于
      The omap_dss_start_device() and omap_dss_stop_device(), called by the
      DSS output drivers, are old relics. They originally did something
      totally else, but nowadays they increase the module ref count for panels
      that are enabled.
      
      This model is quite broken: the panel modules may be used even before
      they are enabled. For example, configuring the panel requires calls to
      functions located in the panel modules.
      
      In the following patches we try to improve the ref count management for
      the modules and display devices. The first step, however, is to remove
      the omap_dss_start/stop_device() totally.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      d3923933
    • T
      OMAPDSS: Add panel dev pointer to dssdev · ecc8b370
      Tomi Valkeinen 提交于
      We are about to remove the dss bus support, which also means that the
      omap_dss_device won't be a real device anymore. This means that the
      embedded "dev" struct needs to be removed from omap_dss_device.
      
      After we've finished the removal of the dss bus, we see the following
      changes:
      
      - struct omap_dss_device won't be a real Linux device anymore, but more
        like a "display entity".
      - struct omap_dss_driver won't be a Linux device driver, but "display
        entity ops".
      - The panel devices/drivers won't be omapdss devices/drivers, but
        platform/i2c/spi/etc devices/drivers, whichever fits the control
        mechanism of the panel.
      - The panel drivers will create omap_dss_device and omap_dss_driver,
        fill the required fields, and register the omap_dss_device to
        omapdss.
      - omap_dss_device won't have an embedded dev struct anymore, but a
        dev pointer to the actual device that manages the omap_dss_device.
      
      The model described above resembles the model that has been discussed
      with CDF (common display framework).
      
      For the duration of the conversion, we temporarily have two devs in the
      dssdev, the old "old_dev", which is a full embedded device struct, and the
      new "dev", which is a pointer to the device. "old_dev" will be removed
      in the future.
      
      For devices belonging to dss bus the dev is initialized to point to
      old_dev. This way all the code can just use the dev, for both old and
      new style panels.
      
      Both the new and old style panel drivers work during the conversion, and
      only after the dss bus support is removed will the old style panels stop
      to compile.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      ecc8b370
    • T
      OMAPDSS: add panel list · 2e7e3dc7
      Tomi Valkeinen 提交于
      We currently use the omapdss bus (which contains all the available
      displays) to iterate the displays. As the omapdss bus is on its way out,
      this needs to be changed.
      
      Instead of using the dss bus to iterate displays, this patch adds our
      own list of displays which we manage. The panels on the dss bus are
      automatically added to this new list.
      
      An "alias" field is also added to omap_dss_device. This field is
      set to "display%d", the same way as omap_dss_device's dev name is set.
      This alias is later used to keep backward compatibility, when the
      embedded dev is no longer used.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      2e7e3dc7
    • T
      OMAPDSS: add videomode conversion support · 6fcd485b
      Tomi Valkeinen 提交于
      Add helper functions to convert between omapdss specific video timings
      and the common videomode.
      
      Eventually omapdss will be changed to use only the common video timings,
      and these helper functions will make the transition easier.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      6fcd485b
    • T
      OMAPDSS: Implement display (dis)connect support · a7e71e7f
      Tomi Valkeinen 提交于
      We currently have two steps in panel initialization and startup: probing
      and enabling. After the panel has been probed, it's ready and can be
      configured and later enabled.
      
      This model is not enough with more complex display pipelines, where we
      may have, for example, two panels, of which only one can be used at a
      time, connected to the same video output.
      
      To support that kind of scenarios, we need to add new step to the
      initialization: connect.
      
      This patch adds support for connecting and disconnecting panels. After
      probe, but before connect, no panel ops should be called. When the
      connect is called, a proper video pipeline is established, and the panel
      is ready for use. If some part in the video pipeline is already
      connected (by some other panel), the connect call fails.
      
      One key difference with the old style setup is that connect() handles
      also connecting to the overlay manager. This means that the omapfb (or
      omapdrm) no longer needs to figure out which overlay manager to use, but
      it can just call connect() on the panel, and the proper overlay manager
      is connected by omapdss.
      
      This also allows us to add back the support for dynamic switching
      between two exclusive panels. However, the current panel device model is
      not changed to support this, as the new device model is implemented in
      the following patches and the old model will be removed. The new device
      model supports dynamic switching.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      a7e71e7f
    • T
      OMAPDSS: add helpers to get mgr or output from display · be8e8e1c
      Tomi Valkeinen 提交于
      Add two helper functions that can be used to find either the DSS output
      or the overlay manager that is connected to the given display.
      
      This hides how the output and the manager are actually connected, making
      it easier to change the connections in the future.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      be8e8e1c
    • T
      OMAPDSS: add omap_dss_find_output_by_node() · 12ca755b
      Tomi Valkeinen 提交于
      Add a support function to find a DSS output by given DT node. This is
      used in later patches to link the panels to DSS outputs.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      12ca755b
    • T
      OMAPDSS: add omap_dss_find_output() · 805cc2d1
      Tomi Valkeinen 提交于
      Add a support function to find a DSS output by given name. This is used
      in later patches to link the panels to DSS outputs.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      805cc2d1
    • T
      OMAPDSS: add pdata->default_display_name · 0a200126
      Tomi Valkeinen 提交于
      We can currently set the default display (i.e. the initial display) in
      the omapdss platform data by using a pointer to the default
      omap_dss_device. Internally omapdss uses the device's name to resolve
      the default display.
      
      As it's difficult to get the omap_dss_device pointer in the future,
      after we've changed the omapdss device model, this patch adds a new way
      to define the default display, by using the name of the display.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Reviewed-by: NArchit Taneja <archit@ti.com>
      0a200126