All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/bridge: chipone-icn6211: Switch to atomic operations
@ 2021-11-19 14:53 Jagan Teki
  2021-11-19 14:53 ` [PATCH 2/2] drm/bridge: chipone-icn6211: Add mode_set API Jagan Teki
  2021-12-19 16:41 ` [PATCH 1/2] drm/bridge: chipone-icn6211: Switch to atomic operations Jagan Teki
  0 siblings, 2 replies; 6+ messages in thread
From: Jagan Teki @ 2021-11-19 14:53 UTC (permalink / raw)
  To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
	Sam Ravnborg
  Cc: linux-amarula, Jagan Teki, dri-devel

Replace atomic version of the pre_enable/enable/post_disable
operations to continue the transition to the atomic API.

Also added default drm atomic operations for duplicate, destroy
and reset state API's in order to have smooth transition on
atomic API's.

Tested on Allwinner R16/R40 DSI.

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
 drivers/gpu/drm/bridge/chipone-icn6211.c | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/bridge/chipone-icn6211.c b/drivers/gpu/drm/bridge/chipone-icn6211.c
index a6151db95586..77b3e2c29461 100644
--- a/drivers/gpu/drm/bridge/chipone-icn6211.c
+++ b/drivers/gpu/drm/bridge/chipone-icn6211.c
@@ -4,6 +4,7 @@
  * Author: Jagan Teki <jagan@amarulasolutions.com>
  */
 
+#include <drm/drm_atomic_helper.h>
 #include <drm/drm_of.h>
 #include <drm/drm_print.h>
 #include <drm/drm_mipi_dsi.h>
@@ -61,7 +62,8 @@ static inline int chipone_dsi_write(struct chipone *icn,  const void *seq,
 		chipone_dsi_write(icn, d, ARRAY_SIZE(d));	\
 	}
 
-static void chipone_enable(struct drm_bridge *bridge)
+static void chipone_atomic_enable(struct drm_bridge *bridge,
+				  struct drm_bridge_state *old_bridge_state)
 {
 	struct chipone *icn = bridge_to_chipone(bridge);
 	struct drm_display_mode *mode = bridge_to_mode(bridge);
@@ -114,7 +116,8 @@ static void chipone_enable(struct drm_bridge *bridge)
 	usleep_range(10000, 11000);
 }
 
-static void chipone_pre_enable(struct drm_bridge *bridge)
+static void chipone_atomic_pre_enable(struct drm_bridge *bridge,
+				      struct drm_bridge_state *old_bridge_state)
 {
 	struct chipone *icn = bridge_to_chipone(bridge);
 	int ret;
@@ -145,7 +148,8 @@ static void chipone_pre_enable(struct drm_bridge *bridge)
 	usleep_range(10000, 11000);
 }
 
-static void chipone_post_disable(struct drm_bridge *bridge)
+static void chipone_atomic_post_disable(struct drm_bridge *bridge,
+					struct drm_bridge_state *old_bridge_state)
 {
 	struct chipone *icn = bridge_to_chipone(bridge);
 
@@ -169,10 +173,13 @@ static int chipone_attach(struct drm_bridge *bridge, enum drm_bridge_attach_flag
 }
 
 static const struct drm_bridge_funcs chipone_bridge_funcs = {
-	.attach = chipone_attach,
-	.post_disable = chipone_post_disable,
-	.pre_enable = chipone_pre_enable,
-	.enable = chipone_enable,
+	.atomic_duplicate_state	= drm_atomic_helper_bridge_duplicate_state,
+	.atomic_destroy_state	= drm_atomic_helper_bridge_destroy_state,
+	.atomic_reset		= drm_atomic_helper_bridge_reset,
+	.atomic_pre_enable	= chipone_atomic_pre_enable,
+	.atomic_enable		= chipone_atomic_enable,
+	.atomic_post_disable	= chipone_atomic_post_disable,
+	.attach			= chipone_attach,
 };
 
 static int chipone_parse_dt(struct chipone *icn)
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] drm/bridge: chipone-icn6211: Add mode_set API
  2021-11-19 14:53 [PATCH 1/2] drm/bridge: chipone-icn6211: Switch to atomic operations Jagan Teki
@ 2021-11-19 14:53 ` Jagan Teki
  2022-01-04 13:28   ` Robert Foss
  2021-12-19 16:41 ` [PATCH 1/2] drm/bridge: chipone-icn6211: Switch to atomic operations Jagan Teki
  1 sibling, 1 reply; 6+ messages in thread
From: Jagan Teki @ 2021-11-19 14:53 UTC (permalink / raw)
  To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
	Sam Ravnborg
  Cc: linux-amarula, Jagan Teki, dri-devel

Get the display mode settings via mode_set bridge
function instead of explicitly de-reference.

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
 drivers/gpu/drm/bridge/chipone-icn6211.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/bridge/chipone-icn6211.c b/drivers/gpu/drm/bridge/chipone-icn6211.c
index 77b3e2c29461..e8f36dca56b3 100644
--- a/drivers/gpu/drm/bridge/chipone-icn6211.c
+++ b/drivers/gpu/drm/bridge/chipone-icn6211.c
@@ -31,6 +31,7 @@
 struct chipone {
 	struct device *dev;
 	struct drm_bridge bridge;
+	struct drm_display_mode mode;
 	struct drm_bridge *panel_bridge;
 	struct gpio_desc *enable_gpio;
 	struct regulator *vdd1;
@@ -43,11 +44,6 @@ static inline struct chipone *bridge_to_chipone(struct drm_bridge *bridge)
 	return container_of(bridge, struct chipone, bridge);
 }
 
-static struct drm_display_mode *bridge_to_mode(struct drm_bridge *bridge)
-{
-	return &bridge->encoder->crtc->state->adjusted_mode;
-}
-
 static inline int chipone_dsi_write(struct chipone *icn,  const void *seq,
 				    size_t len)
 {
@@ -66,7 +62,7 @@ static void chipone_atomic_enable(struct drm_bridge *bridge,
 				  struct drm_bridge_state *old_bridge_state)
 {
 	struct chipone *icn = bridge_to_chipone(bridge);
-	struct drm_display_mode *mode = bridge_to_mode(bridge);
+	struct drm_display_mode *mode = &icn->mode;
 
 	ICN6211_DSI(icn, 0x7a, 0xc1);
 
@@ -165,6 +161,15 @@ static void chipone_atomic_post_disable(struct drm_bridge *bridge,
 	gpiod_set_value(icn->enable_gpio, 0);
 }
 
+static void chipone_mode_set(struct drm_bridge *bridge,
+			     const struct drm_display_mode *mode,
+			     const struct drm_display_mode *adjusted_mode)
+{
+	struct chipone *icn = bridge_to_chipone(bridge);
+
+	drm_mode_copy(&icn->mode, adjusted_mode);
+}
+
 static int chipone_attach(struct drm_bridge *bridge, enum drm_bridge_attach_flags flags)
 {
 	struct chipone *icn = bridge_to_chipone(bridge);
@@ -179,6 +184,7 @@ static const struct drm_bridge_funcs chipone_bridge_funcs = {
 	.atomic_pre_enable	= chipone_atomic_pre_enable,
 	.atomic_enable		= chipone_atomic_enable,
 	.atomic_post_disable	= chipone_atomic_post_disable,
+	.mode_set		= chipone_mode_set,
 	.attach			= chipone_attach,
 };
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] drm/bridge: chipone-icn6211: Switch to atomic operations
  2021-11-19 14:53 [PATCH 1/2] drm/bridge: chipone-icn6211: Switch to atomic operations Jagan Teki
  2021-11-19 14:53 ` [PATCH 2/2] drm/bridge: chipone-icn6211: Add mode_set API Jagan Teki
@ 2021-12-19 16:41 ` Jagan Teki
  2022-01-04 13:23   ` Robert Foss
  1 sibling, 1 reply; 6+ messages in thread
From: Jagan Teki @ 2021-12-19 16:41 UTC (permalink / raw)
  To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
	Sam Ravnborg
  Cc: linux-amarula, dri-devel

On Fri, Nov 19, 2021 at 8:23 PM Jagan Teki <jagan@amarulasolutions.com> wrote:
>
> Replace atomic version of the pre_enable/enable/post_disable
> operations to continue the transition to the atomic API.
>
> Also added default drm atomic operations for duplicate, destroy
> and reset state API's in order to have smooth transition on
> atomic API's.
>
> Tested on Allwinner R16/R40 DSI.
>
> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> ---

Gentle ping!

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] drm/bridge: chipone-icn6211: Switch to atomic operations
  2021-12-19 16:41 ` [PATCH 1/2] drm/bridge: chipone-icn6211: Switch to atomic operations Jagan Teki
@ 2022-01-04 13:23   ` Robert Foss
  2022-01-04 13:30     ` Robert Foss
  0 siblings, 1 reply; 6+ messages in thread
From: Robert Foss @ 2022-01-04 13:23 UTC (permalink / raw)
  To: Jagan Teki
  Cc: Neil Armstrong, Sam Ravnborg, dri-devel, Andrzej Hajda,
	Laurent Pinchart, linux-amarula

On Sun, 19 Dec 2021 at 17:41, Jagan Teki <jagan@amarulasolutions.com> wrote:
>
> On Fri, Nov 19, 2021 at 8:23 PM Jagan Teki <jagan@amarulasolutions.com> wrote:
> >
> > Replace atomic version of the pre_enable/enable/post_disable
> > operations to continue the transition to the atomic API.
> >
> > Also added default drm atomic operations for duplicate, destroy
> > and reset state API's in order to have smooth transition on
> > atomic API's.
> >
> > Tested on Allwinner R16/R40 DSI.
> >
> > Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> > ---
>
> Gentle ping!

Reviewed-by: Robert Foss <robert.foss@linaro.org>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] drm/bridge: chipone-icn6211: Add mode_set API
  2021-11-19 14:53 ` [PATCH 2/2] drm/bridge: chipone-icn6211: Add mode_set API Jagan Teki
@ 2022-01-04 13:28   ` Robert Foss
  0 siblings, 0 replies; 6+ messages in thread
From: Robert Foss @ 2022-01-04 13:28 UTC (permalink / raw)
  To: Jagan Teki
  Cc: Neil Armstrong, Sam Ravnborg, dri-devel, Andrzej Hajda,
	Laurent Pinchart, linux-amarula

On Fri, 19 Nov 2021 at 15:53, Jagan Teki <jagan@amarulasolutions.com> wrote:
>
> Get the display mode settings via mode_set bridge
> function instead of explicitly de-reference.
>
> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> ---
>  drivers/gpu/drm/bridge/chipone-icn6211.c | 18 ++++++++++++------
>  1 file changed, 12 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/chipone-icn6211.c b/drivers/gpu/drm/bridge/chipone-icn6211.c
> index 77b3e2c29461..e8f36dca56b3 100644
> --- a/drivers/gpu/drm/bridge/chipone-icn6211.c
> +++ b/drivers/gpu/drm/bridge/chipone-icn6211.c
> @@ -31,6 +31,7 @@
>  struct chipone {
>         struct device *dev;
>         struct drm_bridge bridge;
> +       struct drm_display_mode mode;
>         struct drm_bridge *panel_bridge;
>         struct gpio_desc *enable_gpio;
>         struct regulator *vdd1;
> @@ -43,11 +44,6 @@ static inline struct chipone *bridge_to_chipone(struct drm_bridge *bridge)
>         return container_of(bridge, struct chipone, bridge);
>  }
>
> -static struct drm_display_mode *bridge_to_mode(struct drm_bridge *bridge)
> -{
> -       return &bridge->encoder->crtc->state->adjusted_mode;
> -}
> -
>  static inline int chipone_dsi_write(struct chipone *icn,  const void *seq,
>                                     size_t len)
>  {
> @@ -66,7 +62,7 @@ static void chipone_atomic_enable(struct drm_bridge *bridge,
>                                   struct drm_bridge_state *old_bridge_state)
>  {
>         struct chipone *icn = bridge_to_chipone(bridge);
> -       struct drm_display_mode *mode = bridge_to_mode(bridge);
> +       struct drm_display_mode *mode = &icn->mode;
>
>         ICN6211_DSI(icn, 0x7a, 0xc1);
>
> @@ -165,6 +161,15 @@ static void chipone_atomic_post_disable(struct drm_bridge *bridge,
>         gpiod_set_value(icn->enable_gpio, 0);
>  }
>
> +static void chipone_mode_set(struct drm_bridge *bridge,
> +                            const struct drm_display_mode *mode,
> +                            const struct drm_display_mode *adjusted_mode)
> +{
> +       struct chipone *icn = bridge_to_chipone(bridge);
> +
> +       drm_mode_copy(&icn->mode, adjusted_mode);
> +}
> +
>  static int chipone_attach(struct drm_bridge *bridge, enum drm_bridge_attach_flags flags)
>  {
>         struct chipone *icn = bridge_to_chipone(bridge);
> @@ -179,6 +184,7 @@ static const struct drm_bridge_funcs chipone_bridge_funcs = {
>         .atomic_pre_enable      = chipone_atomic_pre_enable,
>         .atomic_enable          = chipone_atomic_enable,
>         .atomic_post_disable    = chipone_atomic_post_disable,
> +       .mode_set               = chipone_mode_set,
>         .attach                 = chipone_attach,
>  };
>
> --
> 2.25.1
>

Reviewed-by: Robert Foss <robert.foss@linaro.org>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] drm/bridge: chipone-icn6211: Switch to atomic operations
  2022-01-04 13:23   ` Robert Foss
@ 2022-01-04 13:30     ` Robert Foss
  0 siblings, 0 replies; 6+ messages in thread
From: Robert Foss @ 2022-01-04 13:30 UTC (permalink / raw)
  To: Jagan Teki
  Cc: Neil Armstrong, Sam Ravnborg, dri-devel, Andrzej Hajda,
	Laurent Pinchart, linux-amarula

Applied to drm-misc-next

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-01-04 13:31 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-19 14:53 [PATCH 1/2] drm/bridge: chipone-icn6211: Switch to atomic operations Jagan Teki
2021-11-19 14:53 ` [PATCH 2/2] drm/bridge: chipone-icn6211: Add mode_set API Jagan Teki
2022-01-04 13:28   ` Robert Foss
2021-12-19 16:41 ` [PATCH 1/2] drm/bridge: chipone-icn6211: Switch to atomic operations Jagan Teki
2022-01-04 13:23   ` Robert Foss
2022-01-04 13:30     ` Robert Foss

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.