1. 31 3月, 2015 3 次提交
    • P
      drm/imx: imx-ldb: add drm_panel support · 751e2676
      Philipp Zabel 提交于
      This patch allows to optionally attach the lvds-channel to a panel
      supported by a drm_panel driver using of-graph bindings, instead of
      supplying the modes via display-timings in the device tree.
      
      This depends on of_graph_get_port_by_id and uses the OF graph to
      link the optional DRM panel to the LDB lvds-channel. The output
      port number is 1 on devices without the 4-port input multiplexer
      (i.MX5) and 4 on devices with the mux (i.MX6).
      
      Before:
      
      	ldb {
      		...
      
      		lvds-channel@0 {
      			...
      
      			display-timings {
      				native-timing = <&timing1>;
      				timing1: etm0700g0dh6 {
      					hactive = <800>;
      					vactive = <480>;
      					clock-frequency = <33260000>;
      					hsync-len = <128>;
      					hback-porch = <88>;
      					hfront-porch = <40>;
      					vsync-len = <2>;
      					vback-porch = <33>;
      					vfront-porch = <10>;
      					hsync-active = <0>;
      					vsync-active = <0>;
      					...
      				};
      			};
      			...
      		};
      	};
      
      After:
      	ldb {
      		...
      
      		lvds-channel@0 {
      			...
      
      			port@4 {
      				reg = <4>;
      
      				lvds_out: endpoint {
      					remote_endpoint = <&panel_in>;
      				};
      			};
      		};
      	};
      
      	panel {
      		compatible = "edt,etm0700g0dh6", "simple-panel";
      		...
      
      		port {
      			panel_in: endpoint {
      				remote-endpoint = <&lvds_out>;
      			};
      		};
      	};
      
      [Fixed build error due to missing select on DRM_PANEL --rmk]
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      751e2676
    • P
      drm/imx: consolidate bus format variable names · 2872c807
      Philipp Zabel 提交于
      This patch consolidates the different interface_pix_fmt, pixel_fmt, pix_fmt,
      and pixfmt variables to a common name "bus_format" wherever they describe the
      pixel format on the bus between display controller and encoder hardware.
      At the same time, it renames imx_drm_panel_format to imx_drm_set_bus_format.
      Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      Tested-by: NEmil Renner Berthing <kernel@esmil.dk>
      2872c807
    • P
      drm/imx: switch to use media bus formats · a7c6e76f
      Philipp Zabel 提交于
      imx-drm internally misused the V4L2_PIX_FMT constants, which are supposed to
      describe the pixel format of frame buffers in memory, to describe the pixel
      format on the bus between the display controller and the encoder hardware.
      Now that MEDIA_BUS_FMT constants are available to drm drivers, use those
      instead.
      Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      Tested-by: NEmil Renner Berthing <kernel@esmil.dk>
      a7c6e76f
  2. 24 2月, 2015 1 次提交
  3. 08 1月, 2015 1 次提交
  4. 07 1月, 2015 1 次提交
  5. 26 11月, 2014 1 次提交
    • P
      drm: imx: Move imx-drm driver out of staging · 6556f7f8
      Philipp Zabel 提交于
      The imx-drm driver was put into staging mostly for the following reasons,
      all of which have been addressed or superseded:
       - convert the irq driver to use linear irq domains
       - work out the device tree bindings, this lead to the common of_graph
         bindings being used
       - factor out common helper functions, this mostly resulted in the
         component framework and drm of_graph helpers.
      
      Before adding new fixes, and certainly before adding new features,
      move it into its proper place below drivers/gpu/drm.
      Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      6556f7f8
  6. 06 11月, 2014 1 次提交
  7. 20 10月, 2014 1 次提交
  8. 09 9月, 2014 1 次提交
    • R
      imx-drm: imx-ldb: fix NULL pointer in imx_ldb_unbind() · d9fdb9fb
      Russell King 提交于
      When trying to unbind imx-drm, the following oops was observed from
      the imx-ldb driver:
      
      Unable to handle kernel NULL pointer dereference at virtual address 0000001c
      pgd = de954000
      [0000001c] *pgd=2e92c831, *pte=00000000, *ppte=00000000
      Internal error: Oops: 17 [#1] SMP ARM
      Modules linked in: bnep rfcomm bluetooth nfsd exportfs hid_cypress brcmfmac brcmutil snd_soc_fsl_ssi snd_soc_fsl_spdif imx_pcm_fiq imx_pcm_dma imx_ldb(C) imx_thermal imx_sdma imx2_wdt snd_soc_sgtl5000 snd_soc_imx_sgtl5000 snd_soc_imx_spdif snd_soc_imx_audmux
      CPU: 1 PID: 1228 Comm: bash Tainted: G         C    3.16.0-rc2+ #1229
      task: ea378d80 ti: de948000 task.ti: de948000
      PC is at imx_ldb_unbind+0x1c/0x58 [imx_ldb]
      LR is at component_unbind+0x38/0x70
      pc : [<bf025068>]    lr : [<c0353108>]    psr: 200f0013
      sp : de949da8  ip : de949dc0  fp : de949dbc
      r10: e9a44b0c  r9 : 00000000  r8 : de949f78
      r7 : 00000012  r6 : e9b3f400  r5 : e9b133b8  r4 : e9b13010
      r3 : 00000000  r2 : e9b3f400  r1 : ea9a0210  r0 : e9b13020
      Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
      Control: 10c53c7d  Table: 2e95404a  DAC: 00000015
      Process bash (pid: 1228, stack limit = 0xde948240)
      Stack: (0xde949da8 to 0xde94a000)
      ...
      Backtrace:
      [<bf02504c>] (imx_ldb_unbind [imx_ldb]) from [<c0353108>] (component_unbind+0x38/0x70)
      [<c03530d0>] (component_unbind) from [<c03531d4>] (component_unbind_all+0x94/0xc8)
      [<c0353140>] (component_unbind_all) from [<c04bc224>] (imx_drm_driver_unload+0x34/0x4c)
      [<c04bc1f0>] (imx_drm_driver_unload) from [<c03394a4>] (drm_dev_unregister+0x2c/0xa0)
      [<c0339478>] (drm_dev_unregister) from [<c0339f8c>] (drm_put_dev+0x30/0x6c)
      [<c0339f5c>] (drm_put_dev) from [<c04bc1cc>] (imx_drm_unbind+0x14/0x18)
      [<c04bc1b8>] (imx_drm_unbind) from [<c03530b4>] (component_master_del+0xbc/0xd8)
      ...
      Code: e5904058 e2840010 e2845fea e59430a0 (e593301c)
      ---[ end trace 4f211c6dbbcd4963 ]---
      
      This is caused by only having one channel out of the pair configured in
      DT; the second channel remains uninitialised, but upon unbind, the
      driver attempts to clean up both, thereby dereferencing a NULL pointer.
      Avoid this by checking that the second channel is initialised.
      
      Fixes: 1b3f7675 ("imx-drm: initialise drm components directly")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d9fdb9fb
  9. 22 4月, 2014 1 次提交
    • A
      drm: make mode_valid callback optional · f9b0e251
      Andrzej Hajda 提交于
      Many drm connectors do not need mode validation.
      The patch makes this callback optional and removes dumb implementations.
      
      v2: Rebase:
      - imx move to a shared (but still dummy) ->mode_valid implementation.
      - probe helpers have been extracted to drm_probe_helper.c
      
      Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> (v1)
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      f9b0e251
  10. 19 3月, 2014 1 次提交
  11. 13 3月, 2014 1 次提交
    • D
      drm/kms: rip out drm_mode_connector_detach_encoder · 69fa5293
      Daniel Vetter 提交于
      It's only used by imx, and that one gets it wrong - there's no need
      to deteach the encoder before removing it.
      
      And really, neither current drm modesetting code nor all the userspace
      we have can handle dynamic changes in the set of possible encoders for
      a given connector. So let's just remove this before someone starts
      doing something really nasty with it.
      
      As a plus, one less kerneldoc comment to write.
      
      Cc: Sascha Hauer <s.hauer@pengutronix.de>
      Cc: Russell King <rmk+kernel@arm.linux.org.uk>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Reviewed-by: NAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      69fa5293
  12. 08 3月, 2014 1 次提交
    • P
      staging: imx-drm-core: Use OF graph to find components and connections between encoder and crtcs · 655b43cc
      Philipp Zabel 提交于
      This patch adds support to find the involved components connected to
      the IPU display interface ports using the OF graph bindings documented
      in Documentation/devicetree/bindings/media/video-interfaces.txt.
      It makes use of the of_graph (formerly v4l2_of) parsing helpers and
      thus depends on the patch that moves those out to drivers/of.
      
      Each display interface needs to have an associated port node in the
      device tree. We can associate this node with the crtc platform device
      and use it to find the crtc corresponding to a given port node instead
      of using a combination of parent device node and id number, as before.
      
      Explicitly converting the void* cookie to the port device tree node
      allows to get rid of the ipu_id and di_id fields. The multiplexer
      setting on i.MX6 now can be obtained from the port id (reg property)
      in the device tree.
      
      The imx-drm node now needs a ports property that contains phandles
      to each of the IPU display interface port nodes. From there, all
      attached encoders are scanned and enabled encoders are added to a
      waiting list.
      The bind order makes sure that once all components are probed, crtcs
      are bound before encoders, so that imx_drm_encoder_parse_of can be
      called from the encoder bind callbacks.
      
      For parsing the OF graph, temporary copies of the V4L2 OF graph
      helpers are used, that can be removed again once those are available
      at a generic place.
      Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      655b43cc
  13. 01 3月, 2014 1 次提交
  14. 28 2月, 2014 1 次提交
  15. 24 2月, 2014 5 次提交
  16. 11 11月, 2013 2 次提交
  17. 28 10月, 2013 1 次提交
  18. 01 10月, 2013 1 次提交
  19. 26 9月, 2013 1 次提交
  20. 20 8月, 2013 1 次提交
  21. 24 7月, 2013 1 次提交
  22. 19 6月, 2013 2 次提交