devm_drm_dev_alloc() can't allocate structures that embed a structure
which then again embeds drm_device. Workaround this by adding a
driver_private pointer to struct mipi_dbi_dev which the driver can use for
its additional state.

v3:
- Add documentation

Acked-by: Maxime Ripard <max...@cerno.tech>
Acked-by: Sam Ravnborg <s...@ravnborg.org>
Signed-off-by: Noralf Trønnes <nor...@tronnes.org>
---
 include/drm/drm_mipi_dbi.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/include/drm/drm_mipi_dbi.h b/include/drm/drm_mipi_dbi.h
index 6fe13cce2670..dad2f187b64b 100644
--- a/include/drm/drm_mipi_dbi.h
+++ b/include/drm/drm_mipi_dbi.h
@@ -130,6 +130,14 @@ struct mipi_dbi_dev {
         * @dbi: MIPI DBI interface
         */
        struct mipi_dbi dbi;
+
+       /**
+        * @driver_private: Driver private data.
+        *                  Necessary for drivers with private data since 
devm_drm_dev_alloc()
+        *                  can't allocate structures that embed a structure 
which then again
+        *                  embeds drm_device.
+        */
+       void *driver_private;
 };
 
 static inline struct mipi_dbi_dev *drm_to_mipi_dbi_dev(struct drm_device *drm)
-- 
2.33.0

Reply via email to