st getting and
> keeping DSI working at all, remove ULPS support.
>
> When the DSI driver works reliably for command and video mode displays,
> someone interested can add it back.
>
> Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> d
NABLE for video mode panels
> too.
>
> Fix this by skipping the set for video mode.
>
> Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/omapdrm/dss/dsi.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --
type of the encoder
> + * @name: printf style format string for the encoder name, or NULL for
> default name
> + *
> + * Allocates and initializes an encoder. Encoder should be subclassed as
> part of
> + * driver encoder objects. Cleanup is automatically handled through
> r
mber, encoder_type) \
> + ((type *)__drmm_simple_encoder_alloc(dev, sizeof(type), \
> + offsetof(type, member), \
> + encoder_type))
> +
> #endif /* __LINUX_DRM_SIMPLE_KMS_HELPER_H */
--
Regards,
Laurent Pinchart
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
t; + if (!container)
> + return ERR_PTR(-ENOMEM);
> +
> + plane = container + offset;
> +
> + va_start(ap, name);
> + ret = __drm_universal_plane_init(dev, plane, possible_crtcs, funcs,
> + formats, format_count,
>
if (!container)
> + return ERR_PTR(-ENOMEM);
> +
> + crtc = container + offset;
> +
> + va_start(ap, name);
> + ret = __drm_crtc_init_with_planes(dev, crtc, primary, cursor, funcs,
> + n
The drmm_add_final_kfree() function is declared in the
include/drm/drm_managed.h public header, but has become an internal API
not exposed to drivers. Drop it from drm_managed.h as it's already
declared in drm_internal.h.
Signed-off-by: Laurent Pinchart
---
include/drm/drm_managed.h | 2
is skipped, which causes a crash when trying to
access its bridge later on.
Fix this by storing bridge pointers internally instead of retrieving
them from the encoder.
Signed-off-by: Laurent Pinchart
---
drivers/gpu/drm/rcar-du/rcar_du_crtc.c| 10 ++
drivers/gpu/drm/rcar-du
The encoder->name field can never be non-null in the error path, as that
can only be possible after a successful call to
drm_simple_encoder_init(). Drop the cleanup.
Signed-off-by: Laurent Pinchart
---
drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 5 +
1 file changed, 1 insertion(+)
([1]), but those haven't landed yet. Not depending on them also
helps backporting those fixes to stable kernels. I will switch to the
new helpers when they will be available.
[1]
https://lore.kernel.org/dri-devel/20200911135724.25833-1-p.za...@pengutronix.de/
Laurent Pinchart (9):
drm: rc
Use drmm_add_action_or_reset() instead of drmm_add_action() to ensure
the vsp device reference is released in case the function call fails.
Signed-off-by: Laurent Pinchart
---
drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu
e DRM objects. Use a plain kcalloc(), and cleanup the
planes and free the memory in the existing rcar_du_vsp_cleanup()
handler.
Signed-off-by: Laurent Pinchart
---
drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 22 +-
1 file changed, 17 insertions(+), 5 deletions(-)
diff --git a/driver
Embedding drm_device in rcar_du_device allows usage of the DRM managed
API to allocate both structures in one go, simplifying error handling.
Signed-off-by: Laurent Pinchart
---
drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_drv.c | 33
Now that drm_device is embedded in rcar_du_device, we can use
container_of to get the rcar_du_device pointer from the drm_device,
instead of using the drm_device.dev_private field.
Signed-off-by: Laurent Pinchart
---
drivers/gpu/drm/rcar-du/rcar_du_drv.c | 2 --
drivers/gpu/drm/rcar-du
The local encoder variable is an alias for &renc->base, and is only use
twice. It doesn't help much, drop it, along with the
rcar_encoder_to_drm_encoder() macro that is then unused.
Signed-off-by: Laurent Pinchart
---
drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 6 ++
drivers/gpu
the encoder altogether in that case.
Signed-off-by: Laurent Pinchart
---
drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 51 ++-
1 file changed, 22 insertions(+), 29 deletions(-)
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_encoder.c
b/drivers/gpu/drm/rcar-du/rcar_du_encoder.c
f the DRM objects. Use a plain kzalloc(), and register a drmm
action to cleanup the encoder.
Signed-off-by: Laurent Pinchart
---
drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 47 ++-
1 file changed, 29 insertions(+), 18 deletions(-)
diff --git a/drivers/gpu/drm/rc
gamma_lut_size);
> }
> +
> + crtc->has_gamma_prop = !!gamma_lut_size;
> }
> EXPORT_SYMBOL(drm_crtc_enable_color_mgmt);
>
> diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
> index ba839e5e357d..9e1f06047e3d 100644
> --- a/include/drm/drm_crtc.h
&g
= vc4_crtc_duplicate_state,
> .atomic_destroy_state = vc4_crtc_destroy_state,
> - .gamma_set = drm_atomic_helper_legacy_gamma_set,
> .enable_vblank = vc4_txp_enable_vblank,
> .disable_vblank = vc4_txp_disable_vblank,
> };
>
Hi Philipp,
On Fri, Dec 04, 2020 at 11:12:20AM +0100, Philipp Zabel wrote:
> On Fri, 2020-12-04 at 11:17 +0200, Laurent Pinchart wrote:
> > On Fri, Sep 11, 2020 at 03:57:18PM +0200, Philipp Zabel wrote:
> > > Add an alternative to drm_encoder_init() that allocates and initialize
Hi Philipp,
On Fri, Dec 04, 2020 at 11:13:33AM +0100, Philipp Zabel wrote:
> On Fri, 2020-12-04 at 11:19 +0200, Laurent Pinchart wrote:
> > On Fri, Sep 11, 2020 at 03:57:19PM +0200, Philipp Zabel wrote:
> > > Add an alternative to drm_simple_encoder_init() that allocates and
&
Geert,
On Mon, Dec 07, 2020 at 09:15:11AM +0100, Geert Uytterhoeven wrote:
> On Fri, Dec 4, 2020 at 11:02 PM Laurent Pinchart wrote:
> > On D3 and E3 platforms, the LVDS encoder includes a PLL that can
> > generate a clock for the corresponding CRTC, used even when the CRTC
>
ing
> + * the LVDS phy mode.
> */
> union phy_configure_opts {
> struct phy_configure_opts_mipi_dphy mipi_dphy;
> struct phy_configure_opts_dpdp;
> + struct phy_configure_opts_lvds lvds;
> };
>
> /**
--
Regards,
Laurent Pinchart
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
igned-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/omapdrm/dss/dsi.c | 16
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c
> b/drivers/gpu/drm/omapdrm/dss/dsi.c
> index c7
port DSI peripherals with DSI virtual channel 0, and we always use
> VC0 to send data. So both 1) and 2) are always 0.
>
> Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/omapdrm/dss/dsi.c | 220 +++---
> 1 file changed, 110 i
I believe the patch is correct, so
Reviewed-by: Laurent Pinchart
> No functional changes.
>
> Signed-off-by: Tomi Valkeinen
> ---
> drivers/gpu/drm/omapdrm/dss/dsi.c | 54 ---
> 1 file changed, 28 insertions(+), 26 deletions(-)
>
> diff --
t; *dssdev, int vc,
> if (r)
> goto err;
>
> - r = dsi_vc_send_bta_sync(dssdev, msg->channel);
> + r = dsi_vc_send_bta_sync(dssdev, vc);
> if (r)
> goto err;
>
> - r = dsi_vc_read_rx_fifo(dsi, msg->
;
> However, if we use a different VC for video data, the VC is in LP mode.
> Fix this by always enabling HS mode before starting a frame update.
>
> Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/omapdrm/dss/dsi.c | 2 ++
> 1 file c
am Ravnborg
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/panel/panel-dsi-cm.c | 8 +++-
> 1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/panel/panel-dsi-cm.c
> b/drivers/gpu/drm/panel/panel-dsi-cm.c
> index 556f9a2c5c0c..fa5
tup(&dsi->te_timer, dsi_te_timeout, 0);
> #endif
> diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.h
> b/drivers/gpu/drm/omapdrm/dss/dsi.h
> index de9411067ba2..601707c0ecc4 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dsi.h
> +++ b/drivers/gpu/drm/omapdrm/dss/dsi.h
> @@ -394,6 +394,7 @@ struct dsi_data {
> atomic_t do_ext_te_update;
>
> bool te_enabled;
> + bool iface_enabled;
> bool video_enabled;
>
> struct delayed_work framedone_timeout_work;
> @@ -443,6 +444,8 @@ struct dsi_data {
>
> struct omap_dss_device output;
> struct drm_bridge bridge;
> +
> + struct delayed_work dsi_disable_work;
> };
>
> struct dsi_packet_sent_handler_data {
--
Regards,
Laurent Pinchart
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
gt; drm_atomic_helper_legacy_gamma_set() so that GAMMA_LUT will be used if
> it exists, and DEGAMMA_LUT will be used as a fallback.
>
> Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/drm_atomic_helper.c | 15 ---
> drivers/gpu/drm
_crtc_legacy_gamma_set(crtc, r_base, g_base, b_base,
> + crtc->gamma_size, &ctx);
>
> out:
> DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
> diff --git a/drivers/gpu/drm/drm_crtc_internal.h
> b/drivers/gpu/drm/drm_crtc_internal.h
> index 5
erge window is done already if you go through imx please make
> sure to send a feature pull soon after -rc1 so it's not holding up
> Laurent. Or coordinate with Laurent (and maybe others).
I've sent my rcar-du fixes without depending on this series, to ease
backporting. I'll the
not.
>
> Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 1 -
> .../gpu/drm/arm/display/komeda/komeda_crtc.c | 1 -
> drivers/gpu/drm/arm/malidp_crtc.c | 1 -
> drivers/gpu/drm/armada/ar
the properties,
> as the userspace can check for the existence of gamma & degamma, but the
> legacy gamma-set ioctl does not work.
>
> Change the DRM core to use DEGAMMA_LUT instead of GAMMA_LUT when the
> latter is unavailable.
>
> Signed-off-by
l-ilitek-ili9881c where it sets
> just MIPI_DSI_MODE_VIDEO_SYNC_PULSE means command mode video with sync
> pulses? That sounds unlikely.
I haven't looked at that, I'm afraid I don't know.
> I have looked for any information that covers this, but failed to find
> such, hence calling on all your expertise.
I'm sorry for the lack of solutions to your issues. I can try to help
solving them though.
--
Regards,
Laurent Pinchart
Hi Dave,
On Mon, Jun 21, 2021 at 04:59:51PM +0300, Laurent Pinchart wrote:
> On Mon, Jun 21, 2021 at 04:09:05PM +0300, Laurent Pinchart wrote:
> > On Mon, Jun 21, 2021 at 03:56:16PM +0300, Laurent Pinchart wrote:
> > > On Mon, Jun 21, 2021 at 12:49:14PM +0100, Dave Stevenson wro
Hi Dave,
On Fri, Jul 02, 2021 at 06:44:22PM +0100, Dave Stevenson wrote:
> On Fri, 2 Jul 2021 at 17:47, Laurent Pinchart wrote:
> > On Mon, Jun 21, 2021 at 04:59:51PM +0300, Laurent Pinchart wrote:
> >> On Mon, Jun 21, 2021 at 04:09:05PM +0300, Laurent Pinchart wrote:
> >
request_irq(platform_get_irq(pdev, 0), shmob_drm_irq, 0,
> ddev->driver->name, ddev);
Could you store the irq number in a local variable, and wrap this line
at 80 columns ? You can then use the local variable in the free_irq()
call below. With this addressed,
Reviewed-by: Lauren
eprecated
> operations to try to avoid usage in new bridge drivers.
>
> Signed-off-by: Sam Ravnborg
> Cc: Laurent Pinchart
> Cc: Andrzej Hajda
> Cc: Maarten Lankhorst
> Cc: Maxime Ripard
> Cc: Thomas Zimmermann
> Cc: David Airlie
> Cc: Daniel Vetter
!= current_pt) {
> + of_node_put(endpoint);
> return -EINVAL;
> + }
> }
>
> return pixels_type;
--
Regards,
Laurent Pinchart
Hi Steven,
On Mon, Jul 12, 2021 at 10:31:52PM +0100, Steven Price wrote:
> On 12/07/2021 17:50, Laurent Pinchart wrote:
> > On Mon, Jul 12, 2021 at 04:57:58PM +0100, Steven Price wrote:
> >> When bailing out due to the sanity check the iterator value needs to be
> >&
gt; > + - remote-endpoint
> > > +
> > > required:
> > >- port@0
> > >- port@1
> > > @@ -87,6 +137,9 @@ examples:
> > > vdd10-supply = <&pp1000_mipibrdg>;
> > > vdd18-supply = <&pp1800_mipibrdg>;
> > > vdd33-supply = <&pp3300_mipibrdg>;
> > > +analogix,audio-enable;
> > > +analogix,lane0-swing = <0x14 0x54 0x64 0x74 0x29 0x7b 0x77
> > > 0x5b>;
> > > +analogix,lane1-swing = <0x14 0x54 0x64 0x74 0x29 0x7b 0x77
> > > 0x5b>;
> > >
> > > ports {
> > > #address-cells = <1>;
> > > @@ -96,6 +149,8 @@ examples:
> > > reg = <0>;
> > > anx7625_in: endpoint {
> > > remote-endpoint = <&mipi_dsi>;
> > > +bus-type = <5>;
> > > +data-lanes = <0 1 2 3>;
> > > };
> > > };
> > >
--
Regards,
Laurent Pinchart
Hi Steven,
On Tue, Jul 13, 2021 at 05:16:16PM +0100, Steven Price wrote:
> On 12/07/2021 22:55, Laurent Pinchart wrote:
> > On Mon, Jul 12, 2021 at 10:31:52PM +0100, Steven Price wrote:
> >> On 12/07/2021 17:50, Laurent Pinchart wrote:
> >>> On Mon, Jul 12, 2021 at
mit and can alter the
mode of pretty much anything. We need to define clear semantics for
.atomic_check() in bridges.
> Signed-off-by: Sam Ravnborg
> Cc: Laurent Pinchart
> Cc: Andrzej Hajda
> Cc: Maarten Lankhorst
> Cc: Maxime Ripard
> Cc: Thomas Zimmermann
> Cc: David Air
gt;
> Fixes: 6529007522de ("drm: of: Add drm_of_lvds_get_dual_link_pixel_order")
> Signed-off-by: Steven Price
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/drm_of.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> v2: Fixes now refers to the orig
> - struct anx7625_data *ctx = dev_get_drvdata(dev);
> > > -
> > > - if (!ctx->pdata.intp_irq)
> > > - return 0;
> > > -
> > > - if (!pm_runtime_enabled(dev) || !pm_runtime_suspended(dev)) {
> > > - enable_irq(ctx->pdata.intp_irq);
> > > - anx7625_runtime_pm_resume(dev);
> > > - }
> > > -
> > > - return 0;
> > > -}
> > > -
> > > -static int __maybe_unused anx7625_suspend(struct device *dev)
> > > -{
> > > - struct anx7625_data *ctx = dev_get_drvdata(dev);
> > > -
> > > - if (!ctx->pdata.intp_irq)
> > > - return 0;
> > > -
> > > - if (!pm_runtime_enabled(dev) || !pm_runtime_suspended(dev)) {
> > > - anx7625_runtime_pm_suspend(dev);
> > > - disable_irq(ctx->pdata.intp_irq);
> > > - }
> > > -
> > > - return 0;
> > > -}
> > > -
> > > static const struct dev_pm_ops anx7625_pm_ops = {
> > > - SET_SYSTEM_SLEEP_PM_OPS(anx7625_suspend, anx7625_resume)
> > > + SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
> > > + pm_runtime_force_resume)
> > > SET_RUNTIME_PM_OPS(anx7625_runtime_pm_suspend,
> > > anx7625_runtime_pm_resume, NULL)
> > > };
> > >
> > > base-commit: c0d438dbc0b74901f1901d97a6c84f38daa0c831
--
Regards,
Laurent Pinchart
Hi Stephen,
On Mon, Nov 02, 2020 at 09:38:12AM -0800, Stephen Boyd wrote:
> Quoting Doug Anderson (2020-11-02 08:06:14)
> > On Sun, Nov 1, 2020 at 11:21 AM Laurent Pinchart wrote:
> > > On Thu, Oct 29, 2020 at 06:17:37PM -0700, Stephen Boyd wrote:
> &g
), we use the IRQ. If it doesn't (gpiod_to_irq
> returns an error), it gets polled via detect().
>
> Fixes: cff5e6f7e83f ("drm/bridge: Add driver for the TI TPD12S015 HDMI level
> shifter")
> Signed-off-by: YueHaibing
Reviewed-by: Laurent Pinchart
> ---
>
ning: variable ‘dw’ set but not
> used [-Wunused-but-set-variable]
>
> Cc: Tomi Valkeinen
> Cc: David Airlie
> Cc: Daniel Vetter
> Cc: Laurent Pinchart
> Cc: dri-devel@lists.freedesktop.org
> Signed-off-by: Lee Jones
Reviewed-by: Laurent Pinchart
> ---
>
stian Reichel
> Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> include/drm/drm_mipi_dsi.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/include/drm/drm_mipi_dsi.h b/include/drm/drm_mipi_dsi.h
> index 360e6377e84b..f36f89c14b4a 1006
Hi Tomi and Sebastian,
Thank you for the patch.
On Thu, Nov 05, 2020 at 02:02:39PM +0200, Tomi Valkeinen wrote:
> From: Sebastian Reichel
>
> This reverts commit 4ff8e98879e6eeae9d125dfcf3b642075d00089d.
With this fixed as requested by Sam,
Reviewed-by: Laurent Pinchart
> T
configuration directly from DT.
>
> Signed-off-by: Sebastian Reichel
> Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | 11 ---
> drivers/gpu/drm/omapdrm/dss/dsi.c | 1 -
> drivers/
ff-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> .../gpu/drm/omapdrm/displays/panel-dsi-cm.c | 2 +-
> drivers/gpu/drm/omapdrm/dss/dsi.c | 55 ---
> drivers/gpu/drm/omapdrm/dss/omapdss.h | 13 ++---
> 3 files changed, 28 insertions
inen
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/omapdrm/dss/dsi.c | 24
> drivers/gpu/drm/omapdrm/dss/omapdss.h | 10 +-
> 2 files changed, 17 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c
> b/dr
uct mipi_dsi_msg *msg)
> +{
> + /*
> + * no_sync can be used to optimize performance by sending e.g. column
Can we start this with "TODO: no_sync can ..." to make it standout as
something to be addressed ?
> + * and page information without syncing in between.
unexported and squashed into the generic
> transfer function.
>
> Signed-off-by: Sebastian Reichel
> Signed-off-by: Tomi Valkeinen
There are a few very minor comments I would have made below, but as this
file is going away later in this series, it doesn't matter.
Acked-by: Lau
ff-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/omapdrm/dss/dsi.c | 12
> drivers/gpu/drm/omapdrm/dss/omapdss.h | 20
> 2 files changed, 32 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c
> b
(r) {
> - dev_err(dev, "failed to set VC_ID\n");
> - src->ops->dsi.release_vc(src, ddata->channel);
> - return r;
> - }
> -
> ddata->src = src;
> return 0;
> }
> @@ -1215,6 +1208,8 @@ static int dsic
nt dsi_vc_generic_write_nosync(struct omap_dss_device *dssdev, int
> channel,
> - const u8 *data, int len)
> -{
> - struct dsi_data *dsi = to_dsi_data(dssdev);
> + if (mipi_dsi_packet_format_is_short(msg->type)) {
> + u16 data = packet.header[1
Reichel
> Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/omapdrm/dss/dsi.c | 110 +-
> 1 file changed, 34 insertions(+), 76 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c
> b/dr
+ if (r < 0)
> + return r;
>
> WARN_ON(!dsi_bus_is_locked(dsi));
>
> if (dsi->debug_write)
> DSSDBG("dsi_vc_send_short(ch%d, dt %#x, b1 %#x, b2 %#x)\n",
> - channel,
> -
cm_attr_group);
>
> if (ddata->extbldev)
> put_device(&ddata->extbldev->dev);
> @@ -1410,7 +1410,7 @@ static const struct of_device_id dsicm_of_match[] = {
>
> MODULE_DEVICE_TABLE(of, dsicm_of_match);
>
> -static struct platform_driver dsicm_
-off-by: Sebastian Reichel
> Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> .../gpu/drm/omapdrm/displays/panel-dsi-cm.c | 125 +++---
> 1 file changed, 18 insertions(+), 107 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/displays/panel-d
--- a/drivers/gpu/drm/omapdrm/dss/dsi.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dsi.c
> @@ -349,7 +349,7 @@ struct dsi_data {
>
> struct {
> enum dsi_vc_source source;
> - struct omap_dss_device *dssdev;
> + struct mipi_dsi_device *dest;
roader than this patch series.
Reviewed-by: Laurent Pinchart
> Signed-off-by: Sebastian Reichel
> Signed-off-by: Tomi Valkeinen
> ---
> .../gpu/drm/omapdrm/displays/panel-dsi-cm.c | 20 +++
> 1 file changed, 7 insertions(+), 13 deletions(-)
>
> diff --git a
DCS_CTRL_DISPLAY,
> + r = dsicm_dcs_write_1(ddata, MIPI_DCS_WRITE_CONTROL_DISPLAY,
> (1<<2) | (1<<5)); /* BL | BCTRL */
> if (r)
> goto err;
--
Regards,
Laurent Pinchart
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Hi Tomi and Sebastian,
Thank you for the patch.
On Thu, Nov 05, 2020 at 02:02:55PM +0200, Tomi Valkeinen wrote:
> From: Sebastian Reichel
>
> memory_read is not used, so we can drop the code.
>
> Signed-off-by: Sebastian Reichel
> Signed-off-by: Tomi Valkeinen
Reviewed-by
Valkeinen
You could squash this with the previous and next patches.
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | 13 -
> drivers/gpu/drm/omapdrm/dss/omapdss.h | 1 -
> 2 files changed, 14 deletions(-)
>
> diff -
t; +++ b/drivers/gpu/drm/omapdrm/dss/omapdss.h
> @@ -386,8 +386,6 @@ struct omap_dss_driver {
> int (*update)(struct omap_dss_device *dssdev,
> u16 x, u16 y, u16 w, u16 h);
> int (*sync)(struct omap_dss_device *dssdev);
> -
> - int (*enable_te)(struct omap_dss_device *dssdev, bool enable);
> };
>
> struct dss_device *omapdss_get_dss(void);
--
Regards,
Laurent Pinchart
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
which locks the bus anyways.
>
> Signed-off-by: Sebastian Reichel
> Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> .../gpu/drm/omapdrm/displays/panel-dsi-cm.c| 18 --
> drivers/gpu/drm/omapdrm/dss/omapdss.h | 1 -
>
return -EINVAL;
> + }
> +
> dsi->vc[channel].dest = client;
> +
> + dsi->pix_fmt = client->format;
Does this mean that all clients must use the same pixel format ? Do we
even support multiple clients ? If no the VC allocation could be
simplified.
> + if (client->mode_flags & MIPI_DSI_MODE_VIDEO)
> + dsi->mode = OMAP_DSS_DSI_VIDEO_MODE;
> + else
> + dsi->mode = OMAP_DSS_DSI_CMD_MODE;
> +
> return 0;
> }
>
--
Regards,
Laurent Pinchart
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
10 @@ static int dsicm_power_on(struct panel_drv_data *ddata)
> dsicm_hw_reset(ddata);
>
> src->ops->dsi.disable(src, true, false);
> -err_vddi:
> - if (ddata->vddi)
> - regulator_disable(ddata->vddi);
> -err_vpnl:
> - if (ddata->vpnl
struct omap_dss_device *dssdev = &dsi->output;
>
> + if (!!(msg->flags & MIPI_DSI_MSG_USE_LPM) != dsi->in_lp_mode) {
> + dsi_vc_enable_hs(dssdev, msg->channel,
> + !(msg->flags & MIPI_DSI_MSG_USE_
+
> + return 0;
> +}
> +
> +static void omap_dsi_unregister_te_irq(struct dsi_data *dsi)
> +{
> + if (dsi->te_gpio) {
> + free_irq(gpiod_to_irq(dsi->te_gpio), dsi);
You could store the IRQ number in dsi_data to avoid recomputing it.
> + cancel_delayed_work(&dsi->te_timeout_work);
> + gpiod_put(dsi->te_gpio);
> + dsi->te_gpio = NULL;
> + }
> +}
> +
> static int omap_dsi_host_attach(struct mipi_dsi_host *host,
> struct mipi_dsi_device *client)
> {
> struct dsi_data *dsi = host_to_omap(host);
> unsigned int channel = client->channel;
> + int r;
>
> if (channel > 3)
> return -EINVAL;
> @@ -4791,13 +4897,20 @@ static int omap_dsi_host_attach(struct mipi_dsi_host
> *host,
> return -EINVAL;
> }
>
> - dsi->vc[channel].dest = client;
> + atomic_set(&dsi->do_ext_te_update, 0);
>
> - dsi->pix_fmt = client->format;
> - if (client->mode_flags & MIPI_DSI_MODE_VIDEO)
> + if (client->mode_flags & MIPI_DSI_MODE_VIDEO) {
> dsi->mode = OMAP_DSS_DSI_VIDEO_MODE;
> - else
> + } else {
> + r = omap_dsi_register_te_irq(dsi, client);
> + if (r)
> + return r;
> +
> dsi->mode = OMAP_DSS_DSI_CMD_MODE;
> + }
> +
> + dsi->vc[channel].dest = client;
> + dsi->pix_fmt = client->format;
>
> return 0;
> }
> @@ -4814,6 +4927,7 @@ static int omap_dsi_host_detach(struct mipi_dsi_host
> *host,
> if (dsi->vc[channel].dest != client)
> return -EINVAL;
>
> + omap_dsi_unregister_te_irq(dsi);
> dsi->vc[channel].dest = NULL;
> return 0;
> }
--
Regards,
Laurent Pinchart
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
t is send
s/send/sent/
> to the panel.
>
> Signed-off-by: Sebastian Reichel
> Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> .../gpu/drm/omapdrm/displays/panel-dsi-cm.c | 3 --
> drivers/gpu/drm/omapdrm/dss/dsi.c | 34 ++---
urn 0;
> }
>
> +static ssize_t omap_dsi_host_transfer(struct mipi_dsi_host *host,
> + const struct mipi_dsi_msg *msg)
> +{
> + struct dsi_data *dsi = host_to_omap(host);
> + int r;
> +
> + dsi_bus_lock(dsi);
&g
.dsi = {
> - .disable = dsi_display_disable,
> + .ulps = dsi_ulps,
>
> .set_config = dsi_set_config,
>
> diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h
> b/drivers/gpu/drm/omapdrm/dss/omapdss.h
>
dsi->hs_rate = 30000;
> dsi->lp_rate = 1000;
>
> + if (ddata->ulps_enabled)
> + dsi->mode_flags |= MIPI_DSI_MODE_ULPS_IDLE;
> +
> r = mipi_dsi_attach(dsi);
> if (r < 0)
> goto err_dsi_attach;
> @@
*dssdev,
> -u16 x, u16 y, u16 w, u16 h);
> -};
> -
> struct dss_device *omapdss_get_dss(void);
> void omapdss_set_dss(struct dss_device *dss);
> static inline bool omapdss_is_initialized(void)
> diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c
> b/drivers/
;dsi->dev.kobj, &dsicm_attr_group);
> diff --git a/drivers/gpu/drm/omapdrm/omap_encoder.c
> b/drivers/gpu/drm/omapdrm/omap_encoder.c
> index 18a79dde6815..10abe4d01b0b 100644
> --- a/drivers/gpu/drm/omapdrm/omap_encoder.c
> +++ b/drivers/gpu/drm/omapdrm/omap_encoder.c
> @@ -137,15 +137
/dsi.c
> @@ -4727,6 +4727,13 @@ static bool dsi_vm_calc(struct dsi_data *dsi,
> dsi_vm_calc_pll_cb, ctx);
> }
>
> +static bool dsi_is_video_mode(struct omap_dss_device *dssdev)
> +{
> + struct dsi_data *dsi = to_dsi_data(dssdev);
> +
> + return (dsi-&g
i_enable_video_outputs,
> + .disable = dsi_disable_video_outputs,
>
> - .enable_video_output = dsi_enable_video_output,
> - .disable_video_output = dsi_disable_video_output,
> + .check_timings = dsi_check_timings,
> + .set_timings = dsi_set_timing
7;s drop it.
\o/
> Signed-off-by: Sebastian Reichel
> Signed-off-by: Tomi Valkeinen
Warmly-welcomed-by: Laurent Pinchart
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/omapdrm/dss/Kconfig | 4 -
> drivers/gpu/drm/omapdrm/dss/Makefile | 2 -
>
struct dss_pll_clock_info dsi_cinfo;
> struct dispc_clock_info dispc_cinfo;
> + struct dsi_lp_clock_info user_lp_cinfo;
Any reason for the user_ prefix here ?
Reviewed-by: Laurent Pinchart
>
> struct videomode vm;
> struct omap_dss_dsi_vi
Sebastian Reichel
> Signed-off-by: Tomi Valkeinen
> ---
Reviewed-by: Laurent Pinchart
> drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | 8
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
> b/dri
ff-by: Tomi Valkeinen
Acked-by: Laurent Pinchart
I'd be curious to know what happens when you try to unbind through sysfs
though...
> ---
> drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu
be disabled and unprepared
> before being removed and a reset will be done when being
> probed again.
>
> Signed-off-by: Sebastian Reichel
> Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | 3 ---
> 1
s patch), since omapdrm device is only
> registered after the pointer is initialized.
>
> Signed-off-by: Sebastian Reichel
> Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/omapdrm/dss/base.c| 14 --
> driver
f-by: Sebastian Reichel
> Signed-off-by: Tomi Valkeinen
> Cc: Thierry Reding
> Cc: Sam Ravnborg
Acked-by: Laurent Pinchart
> ---
> drivers/gpu/drm/omapdrm/Kconfig| 1 -
> drivers/gpu/drm/omapdrm/Makefile | 1 -
&g
gister a bridge at initialisation time to do so and remove the
> omap_dss_device operations that are now unused.
>
> Signed-off-by: Sebastian Reichel
> Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/omapdrm/dss/dsi.c | 134 +++
; - /*
> - * Disable the internal encoder. This will disable the DSS output.
> - */
> - if (dssdev->ops && dssdev->ops->disable)
> - dssdev->ops->disable(dssdev);
> - dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
> -
> -
quot;omap_connector.h"
> #include "omap_crtc.h"
> #include "omap_encoder.h"
> #include "omap_fb.h"
> diff --git a/drivers/gpu/drm/omapdrm/omap_encoder.c
> b/drivers/gpu/drm/omapdrm/omap_encoder.c
> index abb3821de8b8..610c5a2f2771 100644
>
> Signed-off-by: Sebastian Reichel
> Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/omapdrm/omap_drv.c | 9 +
> 1 file changed, 1 insertion(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c
> b/dri
))
> + if (dssdev->id && (dssdev->bridge))
No need for the inner parentheses.
Reviewed-by: Laurent Pinchart
> goto done;
> }
>
> diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h
> b/drivers/gpu/drm/omapdrm/dss/omapdss.h
&g
lkeinen
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/omapdrm/omap_encoder.c | 28 --
> 1 file changed, 28 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/omap_encoder.c
> b/drivers/gpu/drm/omapdrm/omap_encoder.c
> index 5f5fa01240a7..
ned-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/omapdrm/dss/omapdss.h | 9 -
> drivers/gpu/drm/omapdrm/dss/venc.c| 1 -
> 2 files changed, 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h
> b/drivers/gpu
0 and can be dropped.
>
> Signed-off-by: Sebastian Reichel
> Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/omapdrm/dss/base.c| 2 +-
> drivers/gpu/drm/omapdrm/dss/omapdss.h | 6 --
> 2 files changed, 1 insertion(+), 7 deletions
dsi_ops are set.
>
> Signed-off-by: Sebastian Reichel
> Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
> ---
> drivers/gpu/drm/omapdrm/dss/dsi.c | 10 --
> drivers/gpu/drm/omapdrm/dss/omapdss.h | 6 +-
> drivers/gpu/drm/omapdrm/omap_crtc.c | 16
> *dssdev,
>
> for (i = 0; i < num_pins; i += 2) {
> u8 lane, pol;
> - int dx, dy;
> + u32 dx, dy;
Is this change needed ?
Reviewed-by: Laurent Pinchart
>
> dx = pins[i];
> dy = pins[i
301 - 400 of 9324 matches
Mail list logo