All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Stultz <john.stultz@linaro.org>
To: lkml <linux-kernel@vger.kernel.org>
Cc: Xu YiPing <xuyiping@hisilicon.com>,
	Rongrong Zou <zourongrong@gmail.com>,
	Xinliang Liu <z.liuxinliang@hisilicon.com>,
	David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Sam Ravnborg <sam@ravnborg.org>,
	John Stultz <john.stultz@linaro.org>
Subject: [PATCH v5 18/25] drm: kirin: Move drm driver to driver data
Date: Tue, 20 Aug 2019 23:06:19 +0000	[thread overview]
Message-ID: <20190820230626.23253-19-john.stultz@linaro.org> (raw)
In-Reply-To: <20190820230626.23253-1-john.stultz@linaro.org>

From: Xu YiPing <xuyiping@hisilicon.com>

As part of refactoring the kirin driver to better support
different hardware revisions, this patch moves the drm_driver
structure to be under device specific driver data.

This will allow us to more easily add support for kirin960
hardware with later patches.

Cc: Rongrong Zou <zourongrong@gmail.com>
Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: dri-devel <dri-devel@lists.freedesktop.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Xinliang Liu <z.liuxinliang@hisilicon.com>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Xu YiPing <xuyiping@hisilicon.com>
[jstultz: Reworded commit message]
Signed-off-by: John Stultz <john.stultz@linaro.org>
---
 .../gpu/drm/hisilicon/kirin/kirin_drm_ade.c   | 24 +++++++++++++
 .../gpu/drm/hisilicon/kirin/kirin_drm_drv.c   | 35 +------------------
 .../gpu/drm/hisilicon/kirin/kirin_drm_drv.h   |  1 +
 3 files changed, 26 insertions(+), 34 deletions(-)

diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
index a4cf122375ea..21c5d457a97d 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
@@ -1049,6 +1049,29 @@ static const struct drm_mode_config_funcs ade_mode_config_funcs = {
 
 };
 
+DEFINE_DRM_GEM_CMA_FOPS(ade_fops);
+
+static struct drm_driver ade_driver = {
+	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
+	.fops = &ade_fops,
+	.gem_free_object_unlocked = drm_gem_cma_free_object,
+	.gem_vm_ops = &drm_gem_cma_vm_ops,
+	.dumb_create = drm_gem_cma_dumb_create_internal,
+	.prime_handle_to_fd	= drm_gem_prime_handle_to_fd,
+	.prime_fd_to_handle	= drm_gem_prime_fd_to_handle,
+	.gem_prime_get_sg_table = drm_gem_cma_prime_get_sg_table,
+	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
+	.gem_prime_vmap = drm_gem_cma_prime_vmap,
+	.gem_prime_vunmap = drm_gem_cma_prime_vunmap,
+	.gem_prime_mmap = drm_gem_cma_prime_mmap,
+
+	.name = "kirin",
+	.desc = "Hisilicon Kirin620 SoC DRM Driver",
+	.date = "20150718",
+	.major = 1,
+	.minor = 0,
+};
+
 struct kirin_drm_data ade_driver_data = {
 	.num_planes = ADE_CH_NUM,
 	.prim_plane = ADE_CH1,
@@ -1056,6 +1079,7 @@ struct kirin_drm_data ade_driver_data = {
 	.channel_formats_cnt = ARRAY_SIZE(channel_formats),
 	.config_max_width = 2048,
 	.config_max_height = 2048,
+	.driver = &ade_driver,
 	.crtc_helper_funcs = &ade_crtc_helper_funcs,
 	.crtc_funcs = &ade_crtc_funcs,
 	.plane_helper_funcs = &ade_plane_helper_funcs,
diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
index 2ab32c2e3f95..c9faaa848cc6 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
@@ -93,38 +93,6 @@ static int kirin_drm_kms_init(struct drm_device *dev)
 	return ret;
 }
 
-DEFINE_DRM_GEM_CMA_FOPS(kirin_drm_fops);
-
-static int kirin_gem_cma_dumb_create(struct drm_file *file,
-				     struct drm_device *dev,
-				     struct drm_mode_create_dumb *args)
-{
-	return drm_gem_cma_dumb_create_internal(file, dev, args);
-}
-
-static struct drm_driver kirin_drm_driver = {
-	.driver_features	= DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
-	.fops			= &kirin_drm_fops,
-
-	.gem_free_object_unlocked = drm_gem_cma_free_object,
-	.gem_vm_ops		= &drm_gem_cma_vm_ops,
-	.dumb_create		= kirin_gem_cma_dumb_create,
-
-	.prime_handle_to_fd	= drm_gem_prime_handle_to_fd,
-	.prime_fd_to_handle	= drm_gem_prime_fd_to_handle,
-	.gem_prime_get_sg_table = drm_gem_cma_prime_get_sg_table,
-	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
-	.gem_prime_vmap		= drm_gem_cma_prime_vmap,
-	.gem_prime_vunmap	= drm_gem_cma_prime_vunmap,
-	.gem_prime_mmap		= drm_gem_cma_prime_mmap,
-
-	.name			= "kirin",
-	.desc			= "Hisilicon Kirin SoCs' DRM Driver",
-	.date			= "20150718",
-	.major			= 1,
-	.minor			= 0,
-};
-
 static int compare_of(struct device *dev, void *data)
 {
 	return dev->of_node == data;
@@ -132,11 +100,10 @@ static int compare_of(struct device *dev, void *data)
 
 static int kirin_drm_bind(struct device *dev)
 {
-	struct drm_driver *driver = &kirin_drm_driver;
 	struct drm_device *drm_dev;
 	int ret;
 
-	drm_dev = drm_dev_alloc(driver, dev);
+	drm_dev = drm_dev_alloc(driver_data->driver, dev);
 	if (IS_ERR(drm_dev))
 		return PTR_ERR(drm_dev);
 
diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h
index 43be65f82a03..fdbfc4a90f22 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h
@@ -42,6 +42,7 @@ struct kirin_drm_data {
 	u32 num_planes;
 	u32 prim_plane;
 
+	struct drm_driver *driver;
 	const struct drm_crtc_helper_funcs *crtc_helper_funcs;
 	const struct drm_crtc_funcs *crtc_funcs;
 	const struct drm_plane_helper_funcs *plane_helper_funcs;
-- 
2.17.1


  parent reply	other threads:[~2019-08-20 23:07 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-20 23:06 [PATCH v5 00/25] drm: Kirin driver cleanups to prep for Kirin960 support John Stultz
2019-08-20 23:06 ` John Stultz
2019-08-20 23:06 ` [PATCH v5 01/25] drm: kirin: Fix for hikey620 display offset problem John Stultz
2019-08-20 23:06   ` John Stultz
2019-08-20 23:06 ` [PATCH v5 02/25] drm: kirin: Remove HISI_KIRIN_DW_DSI config option John Stultz
2019-08-20 23:06 ` [PATCH v5 03/25] drm: kirin: Remove unreachable return John Stultz
2019-08-20 23:06 ` [PATCH v5 04/25] drm: kirin: Remove uncessary parameter indirection John Stultz
2019-08-20 23:06   ` John Stultz
2019-08-20 23:06 ` [PATCH v5 05/25] drm: kirin: Remove out_format from ade_crtc John Stultz
2019-08-20 23:06 ` [PATCH v5 06/25] drm: kirin: Rename ade_plane to kirin_plane John Stultz
2019-08-20 23:06   ` John Stultz
2019-08-20 23:06 ` [PATCH v5 07/25] drm: kirin: Rename ade_crtc to kirin_crtc John Stultz
2019-08-20 23:06   ` John Stultz
2019-08-20 23:06 ` [PATCH v5 08/25] drm: kirin: Dynamically allocate the hw_ctx John Stultz
2019-08-20 23:06 ` [PATCH v5 09/25] drm: kirin: Move request irq handle in ade hw ctx alloc John Stultz
2019-08-20 23:06   ` John Stultz
2019-08-20 23:06 ` [PATCH v5 10/25] drm: kirin: Move workqueue to ade_hw_ctx structure John Stultz
2019-08-20 23:06 ` [PATCH v5 11/25] drm: kirin: Move kirin_crtc, kirin_plane, kirin_format to kirin_drm_drv.h John Stultz
2019-08-20 23:06   ` John Stultz
2019-08-20 23:06 ` [PATCH v5 12/25] drm: kirin: Reanme dc_ops to kirin_drm_data John Stultz
2019-08-20 23:06   ` John Stultz
2019-08-20 23:06 ` [PATCH v5 13/25] drm: kirin: Move ade crtc/plane help functions to driver_data John Stultz
2019-08-20 23:06   ` John Stultz
2019-08-20 23:06 ` [PATCH v5 14/25] drm: kirin: Move channel formats to driver data John Stultz
2019-08-20 23:06   ` John Stultz
2019-08-20 23:06 ` [PATCH v5 15/25] drm: kirin: Move mode config function to driver_data John Stultz
2019-08-20 23:06 ` [PATCH v5 16/25] drm: kirin: Move plane number and primay plane in driver data John Stultz
2019-08-20 23:06   ` John Stultz
2019-08-20 23:06 ` [PATCH v5 17/25] drm: kirin: Move config max_width and max_height to " John Stultz
2019-08-20 23:06 ` John Stultz [this message]
2019-08-20 23:06 ` [PATCH v5 19/25] drm: kirin: Add register connect helper functions in drm init John Stultz
2019-08-20 23:06   ` John Stultz
2020-04-07  8:02   ` Daniel Vetter
2020-04-07  8:02     ` Daniel Vetter
2019-08-20 23:06 ` [PATCH v5 20/25] drm: kirin: Rename plane_init and crtc_init John Stultz
2019-08-20 23:06 ` [PATCH v5 21/25] drm: kirin: Fix dev->driver_data setting John Stultz
2019-08-20 23:06 ` [PATCH v5 22/25] drm: kirin: Make driver_data variable non-global John Stultz
2019-08-20 23:06 ` [PATCH v5 23/25] drm: kirin: Add alloc_hw_ctx/clean_hw_ctx ops in driver data John Stultz
2019-08-20 23:06 ` [PATCH v5 24/25] drm: kirin: Pass driver data to crtc init and plane init John Stultz
2019-08-20 23:06 ` [PATCH v5 25/25] drm: kirin: Move ade drm init to kirin drm drv John Stultz
2019-08-21 18:04 ` [PATCH v5 00/25] drm: Kirin driver cleanups to prep for Kirin960 support Sam Ravnborg
2019-08-21 19:13   ` John Stultz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190820230626.23253-19-john.stultz@linaro.org \
    --to=john.stultz@linaro.org \
    --cc=airlied@linux.ie \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sam@ravnborg.org \
    --cc=xuyiping@hisilicon.com \
    --cc=z.liuxinliang@hisilicon.com \
    --cc=zourongrong@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.