All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/26] some cleanups, mostly around fbdev emulation
@ 2019-01-24 16:58 Daniel Vetter
  2019-01-24 16:58   ` Daniel Vetter
                   ` (25 more replies)
  0 siblings, 26 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development; +Cc: Daniel Vetter, Intel Graphics Development

Hi all,

Flushing out my "I got bored over holidays" queue. A bit of docs, a bit of
simplication and a bunch of fbdev helper refactor. Review and comments
very much appreciated.

Cheers, Daniel

Daniel Vetter (26):
  drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install
  drm: Switch DRIVER_ flags to an enum
  drm/irq: Ditch DRIVER_IRQ_SHARED
  drm/fb-helper: Add fill_info() functions
  drm/fb-helper: set fbi->fix.id in fill_info()
  drm/fb_helper: set info->par in fill_info()
  drm/amdgpu: Use drm_fb_helper_fill_info
  drm/armada: Use drm_fb_helper_fill_info
  drm/ast: Use drm_fb_helper_fill_info
  drm/cirrus: Use drm_fb_helper_fill_info
  drm/exynos: Use drm_fb_helper_fill_info
  drm/gma500: Use drm_fb_helper_fill_info
  drm/hibmc: Use drm_fb_helper_fill_info
  drm/i915: Use drm_fb_helper_fill_info
  drm/mga200g: Use drm_fb_helper_fill_info
  drm/bochs: Use drm_fb_helper_fill_info
  drm/nouveau: Use drm_fb_helper_fill_info
  drm/omap: Use drm_fb_helper_fill_info
  drm/qxl: Use drm_fb_helper_fill_info
  drm/radeon: Use drm_fb_helper_fill_info
  drm/rockchip: Use drm_fb_helper_fill_info
  drm/qxl: Use drm_fb_helper_fill_info
  drm/udl: Use drm_fb_helper_fill_info
  staging/vboxvideo: Use drm_fb_helper_fill_info
  drm/fb-helper: Unexport fill_{var,info}
  drm/<drivers>: Don't set FBINFO_(FLAG_)DEFAULT

 Documentation/gpu/drm-internals.rst           |  62 ---------
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c       |   2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c        |  24 ++--
 drivers/gpu/drm/arm/hdlcd_drv.c               |   2 +-
 drivers/gpu/drm/armada/armada_fbdev.c         |   6 +-
 drivers/gpu/drm/ast/ast_drv.h                 |   2 +-
 drivers/gpu/drm/ast/ast_fb.c                  |   7 +-
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c  |   2 +-
 drivers/gpu/drm/cirrus/cirrus_drv.h           |   2 +-
 drivers/gpu/drm/cirrus/cirrus_fbdev.c         |   8 +-
 drivers/gpu/drm/drm_fb_helper.c               |  72 +++++-----
 drivers/gpu/drm/drm_irq.c                     |  10 +-
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c     |   5 +-
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c     |   2 +-
 drivers/gpu/drm/gma500/framebuffer.c          |   8 +-
 drivers/gpu/drm/gma500/framebuffer.h          |   2 +-
 drivers/gpu/drm/gma500/psb_drv.c              |   3 +-
 .../gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h   |   2 +-
 .../gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c |   9 +-
 drivers/gpu/drm/i915/i915_drv.c               |   2 +-
 drivers/gpu/drm/i915/intel_fbdev.c            |   7 +-
 drivers/gpu/drm/meson/meson_drv.c             |   2 +-
 drivers/gpu/drm/mga/mga_drv.c                 |   2 +-
 drivers/gpu/drm/mgag200/mgag200_drv.h         |   2 +-
 drivers/gpu/drm/mgag200/mgag200_fb.c          |   8 +-
 drivers/gpu/drm/msm/msm_drv.c                 |   3 +-
 drivers/gpu/drm/msm/msm_fbdev.c               |   6 +-
 drivers/gpu/drm/mxsfb/mxsfb_drv.c             |   3 +-
 drivers/gpu/drm/nouveau/nouveau_fbcon.c       |  11 +-
 drivers/gpu/drm/nouveau/nouveau_fbcon.h       |   2 +-
 drivers/gpu/drm/omapdrm/omap_fbdev.c          |   6 +-
 drivers/gpu/drm/qxl/qxl_drv.c                 |   1 -
 drivers/gpu/drm/qxl/qxl_fb.c                  |   9 +-
 drivers/gpu/drm/r128/r128_drv.c               |   2 +-
 drivers/gpu/drm/radeon/radeon_drv.c           |   4 +-
 drivers/gpu/drm/radeon/radeon_fb.c            |  10 +-
 drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c |   5 +-
 drivers/gpu/drm/shmobile/shmob_drm_drv.c      |   2 +-
 drivers/gpu/drm/tegra/fb.c                    |   5 +-
 drivers/gpu/drm/tilcdc/tilcdc_drv.c           |   2 +-
 drivers/gpu/drm/udl/udl_fb.c                  |   7 +-
 drivers/gpu/drm/vc4/vc4_drv.c                 |   1 -
 drivers/gpu/drm/via/via_drv.c                 |   3 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c           |   2 +-
 drivers/staging/vboxvideo/vbox_drv.c          |   3 +-
 drivers/staging/vboxvideo/vbox_fb.c           |   8 +-
 include/drm/drm_drv.h                         | 128 +++++++++++++++---
 include/drm/drm_fb_helper.h                   |   5 +-
 48 files changed, 200 insertions(+), 281 deletions(-)

-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH 01/26] drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
  2019-01-24 16:58   ` Daniel Vetter
  2019-01-24 16:58 ` [PATCH 02/26] drm: Switch DRIVER_ flags to an enum Daniel Vetter
@ 2019-01-24 16:58   ` Daniel Vetter
  2019-01-24 16:58 ` [PATCH 04/26] drm/fb-helper: Add fill_info() functions Daniel Vetter
                     ` (22 subsequent siblings)
  25 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: Daniel Vetter, linux-arm-msm, Intel Graphics Development,
	amd-gfx, virtualization, linux-renesas-soc, spice-devel,
	Daniel Vetter, linux-amlogic, freedreno, linux-arm-kernel

If a non-legacy driver calls these it's valid to assume there is
interrupt support. The flag is really only needed for legacy drivers.

Also remove all the flag usage from non-legacy drivers.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: intel-gfx@lists.freedesktop.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-msm@vger.kernel.org
Cc: freedreno@lists.freedesktop.org
Cc: virtualization@lists.linux-foundation.org
Cc: spice-devel@lists.freedesktop.org
Cc: amd-gfx@lists.freedesktop.org
Cc: linux-renesas-soc@vger.kernel.org
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c      | 2 +-
 drivers/gpu/drm/arm/hdlcd_drv.c              | 2 +-
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 2 +-
 drivers/gpu/drm/drm_irq.c                    | 6 ------
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c    | 2 +-
 drivers/gpu/drm/gma500/psb_drv.c             | 2 +-
 drivers/gpu/drm/i915/i915_drv.c              | 2 +-
 drivers/gpu/drm/meson/meson_drv.c            | 2 +-
 drivers/gpu/drm/msm/msm_drv.c                | 3 +--
 drivers/gpu/drm/mxsfb/mxsfb_drv.c            | 3 +--
 drivers/gpu/drm/qxl/qxl_drv.c                | 2 +-
 drivers/gpu/drm/radeon/radeon_drv.c          | 2 +-
 drivers/gpu/drm/shmobile/shmob_drm_drv.c     | 2 +-
 drivers/gpu/drm/tilcdc/tilcdc_drv.c          | 2 +-
 drivers/gpu/drm/vc4/vc4_drv.c                | 1 -
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c          | 2 +-
 drivers/staging/vboxvideo/vbox_drv.c         | 2 +-
 17 files changed, 15 insertions(+), 24 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index 0c22bae0c736..22502417c18c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -1189,7 +1189,7 @@ amdgpu_get_crtc_scanout_position(struct drm_device *dev, unsigned int pipe,
 static struct drm_driver kms_driver = {
 	.driver_features =
 	    DRIVER_USE_AGP | DRIVER_ATOMIC |
-	    DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM |
+	    DRIVER_IRQ_SHARED | DRIVER_GEM |
 	    DRIVER_PRIME | DRIVER_RENDER | DRIVER_MODESET | DRIVER_SYNCOBJ,
 	.load = amdgpu_driver_load_kms,
 	.open = amdgpu_driver_open_kms,
diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
index e68935b80917..8fc0b884c428 100644
--- a/drivers/gpu/drm/arm/hdlcd_drv.c
+++ b/drivers/gpu/drm/arm/hdlcd_drv.c
@@ -229,7 +229,7 @@ static int hdlcd_debugfs_init(struct drm_minor *minor)
 DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver hdlcd_driver = {
-	.driver_features = DRIVER_HAVE_IRQ | DRIVER_GEM |
+	.driver_features = DRIVER_GEM |
 			   DRIVER_MODESET | DRIVER_PRIME |
 			   DRIVER_ATOMIC,
 	.irq_handler = hdlcd_irq,
diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
index 034a91112098..0be13eceedba 100644
--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
@@ -720,7 +720,7 @@ static void atmel_hlcdc_dc_irq_uninstall(struct drm_device *dev)
 DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver atmel_hlcdc_dc_driver = {
-	.driver_features = DRIVER_HAVE_IRQ | DRIVER_GEM |
+	.driver_features = DRIVER_GEM |
 			   DRIVER_MODESET | DRIVER_PRIME |
 			   DRIVER_ATOMIC,
 	.irq_handler = atmel_hlcdc_dc_irq_handler,
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
index 45a07652fa00..c5babb3e4752 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -103,9 +103,6 @@ int drm_irq_install(struct drm_device *dev, int irq)
 	int ret;
 	unsigned long sh_flags = 0;
 
-	if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ))
-		return -EOPNOTSUPP;
-
 	if (irq == 0)
 		return -EINVAL;
 
@@ -174,9 +171,6 @@ int drm_irq_uninstall(struct drm_device *dev)
 	bool irq_enabled;
 	int i;
 
-	if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ))
-		return -EOPNOTSUPP;
-
 	irq_enabled = dev->irq_enabled;
 	dev->irq_enabled = false;
 
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
index 54ace3436605..dfc73aade325 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
@@ -137,7 +137,7 @@ static irqreturn_t fsl_dcu_drm_irq(int irq, void *arg)
 DEFINE_DRM_GEM_CMA_FOPS(fsl_dcu_drm_fops);
 
 static struct drm_driver fsl_dcu_drm_driver = {
-	.driver_features	= DRIVER_HAVE_IRQ | DRIVER_GEM | DRIVER_MODESET
+	.driver_features	= DRIVER_GEM | DRIVER_MODESET
 				| DRIVER_PRIME | DRIVER_ATOMIC,
 	.load			= fsl_dcu_load,
 	.unload			= fsl_dcu_unload,
diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_drv.c
index ac32ab5aa002..7cf14aeb1c28 100644
--- a/drivers/gpu/drm/gma500/psb_drv.c
+++ b/drivers/gpu/drm/gma500/psb_drv.c
@@ -468,7 +468,7 @@ static const struct file_operations psb_gem_fops = {
 };
 
 static struct drm_driver driver = {
-	.driver_features = DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | \
+	.driver_features = DRIVER_IRQ_SHARED | \
 			   DRIVER_MODESET | DRIVER_GEM,
 	.load = psb_driver_load,
 	.unload = psb_driver_unload,
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 337ee650d2de..550cfb945942 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -3010,7 +3010,7 @@ static struct drm_driver driver = {
 	 * deal with them for Intel hardware.
 	 */
 	.driver_features =
-	    DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM | DRIVER_PRIME |
+	    DRIVER_IRQ_SHARED | DRIVER_GEM | DRIVER_PRIME |
 	    DRIVER_RENDER | DRIVER_MODESET | DRIVER_ATOMIC | DRIVER_SYNCOBJ,
 	.release = i915_driver_release,
 	.open = i915_driver_open,
diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
index 2cbc6c7bb823..2281ed3eb774 100644
--- a/drivers/gpu/drm/meson/meson_drv.c
+++ b/drivers/gpu/drm/meson/meson_drv.c
@@ -94,7 +94,7 @@ static irqreturn_t meson_irq(int irq, void *arg)
 DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver meson_driver = {
-	.driver_features	= DRIVER_HAVE_IRQ | DRIVER_GEM |
+	.driver_features	= DRIVER_GEM |
 				  DRIVER_MODESET | DRIVER_PRIME |
 				  DRIVER_ATOMIC,
 
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index d2cdc7b553fe..8747fb32a106 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -1063,8 +1063,7 @@ static const struct file_operations fops = {
 };
 
 static struct drm_driver msm_driver = {
-	.driver_features    = DRIVER_HAVE_IRQ |
-				DRIVER_GEM |
+	.driver_features    = DRIVER_GEM |
 				DRIVER_PRIME |
 				DRIVER_RENDER |
 				DRIVER_ATOMIC |
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
index 54c8cdaeb576..967379f3f571 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
@@ -322,8 +322,7 @@ DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver mxsfb_driver = {
 	.driver_features	= DRIVER_GEM | DRIVER_MODESET |
-				  DRIVER_PRIME | DRIVER_ATOMIC |
-				  DRIVER_HAVE_IRQ,
+				  DRIVER_PRIME | DRIVER_ATOMIC,
 	.irq_handler		= mxsfb_irq_handler,
 	.irq_preinstall		= mxsfb_irq_preinstall,
 	.irq_uninstall		= mxsfb_irq_preinstall,
diff --git a/drivers/gpu/drm/qxl/qxl_drv.c b/drivers/gpu/drm/qxl/qxl_drv.c
index 56f2c65969c6..44daac129205 100644
--- a/drivers/gpu/drm/qxl/qxl_drv.c
+++ b/drivers/gpu/drm/qxl/qxl_drv.c
@@ -243,7 +243,7 @@ static struct pci_driver qxl_pci_driver = {
 
 static struct drm_driver qxl_driver = {
 	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME |
-			   DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED |
+			   DRIVER_IRQ_SHARED |
 			   DRIVER_ATOMIC,
 
 	.dumb_create = qxl_mode_dumb_create,
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
index 8897c3d18fbb..450a9d473c30 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -535,7 +535,7 @@ radeon_get_crtc_scanout_position(struct drm_device *dev, unsigned int pipe,
 static struct drm_driver kms_driver = {
 	.driver_features =
 	    DRIVER_USE_AGP |
-	    DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM |
+	    DRIVER_IRQ_SHARED | DRIVER_GEM |
 	    DRIVER_PRIME | DRIVER_RENDER,
 	.load = radeon_driver_load_kms,
 	.open = radeon_driver_open_kms,
diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.c b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
index 2002e7c55e80..cb821adfc321 100644
--- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c
+++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
@@ -127,7 +127,7 @@ static irqreturn_t shmob_drm_irq(int irq, void *arg)
 DEFINE_DRM_GEM_CMA_FOPS(shmob_drm_fops);
 
 static struct drm_driver shmob_drm_driver = {
-	.driver_features	= DRIVER_HAVE_IRQ | DRIVER_GEM | DRIVER_MODESET
+	.driver_features	= DRIVER_GEM | DRIVER_MODESET
 				| DRIVER_PRIME,
 	.irq_handler		= shmob_drm_irq,
 	.gem_free_object_unlocked = drm_gem_cma_free_object,
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
index 13b11acd4a5e..3030af9e7b35 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
@@ -512,7 +512,7 @@ static int tilcdc_debugfs_init(struct drm_minor *minor)
 DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver tilcdc_driver = {
-	.driver_features    = (DRIVER_HAVE_IRQ | DRIVER_GEM | DRIVER_MODESET |
+	.driver_features    = (DRIVER_GEM | DRIVER_MODESET |
 			       DRIVER_PRIME | DRIVER_ATOMIC),
 	.irq_handler        = tilcdc_irq,
 	.gem_free_object_unlocked = drm_gem_cma_free_object,
diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
index f6f5cd80c04d..5fcd2f0da7f7 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.c
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
@@ -175,7 +175,6 @@ static struct drm_driver vc4_drm_driver = {
 	.driver_features = (DRIVER_MODESET |
 			    DRIVER_ATOMIC |
 			    DRIVER_GEM |
-			    DRIVER_HAVE_IRQ |
 			    DRIVER_RENDER |
 			    DRIVER_PRIME |
 			    DRIVER_SYNCOBJ),
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
index 25afb1d594e3..d159d0400013 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
@@ -1582,7 +1582,7 @@ static const struct file_operations vmwgfx_driver_fops = {
 };
 
 static struct drm_driver driver = {
-	.driver_features = DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED |
+	.driver_features = DRIVER_IRQ_SHARED |
 	DRIVER_MODESET | DRIVER_PRIME | DRIVER_RENDER | DRIVER_ATOMIC,
 	.load = vmw_driver_load,
 	.unload = vmw_driver_unload,
diff --git a/drivers/staging/vboxvideo/vbox_drv.c b/drivers/staging/vboxvideo/vbox_drv.c
index cc6532d8c2fa..78cbcd68d4f3 100644
--- a/drivers/staging/vboxvideo/vbox_drv.c
+++ b/drivers/staging/vboxvideo/vbox_drv.c
@@ -221,7 +221,7 @@ static void vbox_master_drop(struct drm_device *dev, struct drm_file *file_priv)
 
 static struct drm_driver driver = {
 	.driver_features =
-	    DRIVER_MODESET | DRIVER_GEM | DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED |
+	    DRIVER_MODESET | DRIVER_GEM | DRIVER_IRQ_SHARED |
 	    DRIVER_PRIME | DRIVER_ATOMIC,
 	.dev_priv_size = 0,
 
-- 
2.20.1

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

* [PATCH 01/26] drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install
@ 2019-01-24 16:58   ` Daniel Vetter
  0 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: Intel Graphics Development, Daniel Vetter, Daniel Vetter,
	linux-arm-kernel, linux-amlogic, linux-arm-msm, freedreno,
	virtualization, spice-devel, amd-gfx, linux-renesas-soc

If a non-legacy driver calls these it's valid to assume there is
interrupt support. The flag is really only needed for legacy drivers.

Also remove all the flag usage from non-legacy drivers.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: intel-gfx@lists.freedesktop.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-msm@vger.kernel.org
Cc: freedreno@lists.freedesktop.org
Cc: virtualization@lists.linux-foundation.org
Cc: spice-devel@lists.freedesktop.org
Cc: amd-gfx@lists.freedesktop.org
Cc: linux-renesas-soc@vger.kernel.org
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c      | 2 +-
 drivers/gpu/drm/arm/hdlcd_drv.c              | 2 +-
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 2 +-
 drivers/gpu/drm/drm_irq.c                    | 6 ------
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c    | 2 +-
 drivers/gpu/drm/gma500/psb_drv.c             | 2 +-
 drivers/gpu/drm/i915/i915_drv.c              | 2 +-
 drivers/gpu/drm/meson/meson_drv.c            | 2 +-
 drivers/gpu/drm/msm/msm_drv.c                | 3 +--
 drivers/gpu/drm/mxsfb/mxsfb_drv.c            | 3 +--
 drivers/gpu/drm/qxl/qxl_drv.c                | 2 +-
 drivers/gpu/drm/radeon/radeon_drv.c          | 2 +-
 drivers/gpu/drm/shmobile/shmob_drm_drv.c     | 2 +-
 drivers/gpu/drm/tilcdc/tilcdc_drv.c          | 2 +-
 drivers/gpu/drm/vc4/vc4_drv.c                | 1 -
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c          | 2 +-
 drivers/staging/vboxvideo/vbox_drv.c         | 2 +-
 17 files changed, 15 insertions(+), 24 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index 0c22bae0c736..22502417c18c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -1189,7 +1189,7 @@ amdgpu_get_crtc_scanout_position(struct drm_device *dev, unsigned int pipe,
 static struct drm_driver kms_driver = {
 	.driver_features =
 	    DRIVER_USE_AGP | DRIVER_ATOMIC |
-	    DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM |
+	    DRIVER_IRQ_SHARED | DRIVER_GEM |
 	    DRIVER_PRIME | DRIVER_RENDER | DRIVER_MODESET | DRIVER_SYNCOBJ,
 	.load = amdgpu_driver_load_kms,
 	.open = amdgpu_driver_open_kms,
diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
index e68935b80917..8fc0b884c428 100644
--- a/drivers/gpu/drm/arm/hdlcd_drv.c
+++ b/drivers/gpu/drm/arm/hdlcd_drv.c
@@ -229,7 +229,7 @@ static int hdlcd_debugfs_init(struct drm_minor *minor)
 DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver hdlcd_driver = {
-	.driver_features = DRIVER_HAVE_IRQ | DRIVER_GEM |
+	.driver_features = DRIVER_GEM |
 			   DRIVER_MODESET | DRIVER_PRIME |
 			   DRIVER_ATOMIC,
 	.irq_handler = hdlcd_irq,
diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
index 034a91112098..0be13eceedba 100644
--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
@@ -720,7 +720,7 @@ static void atmel_hlcdc_dc_irq_uninstall(struct drm_device *dev)
 DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver atmel_hlcdc_dc_driver = {
-	.driver_features = DRIVER_HAVE_IRQ | DRIVER_GEM |
+	.driver_features = DRIVER_GEM |
 			   DRIVER_MODESET | DRIVER_PRIME |
 			   DRIVER_ATOMIC,
 	.irq_handler = atmel_hlcdc_dc_irq_handler,
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
index 45a07652fa00..c5babb3e4752 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -103,9 +103,6 @@ int drm_irq_install(struct drm_device *dev, int irq)
 	int ret;
 	unsigned long sh_flags = 0;
 
-	if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ))
-		return -EOPNOTSUPP;
-
 	if (irq == 0)
 		return -EINVAL;
 
@@ -174,9 +171,6 @@ int drm_irq_uninstall(struct drm_device *dev)
 	bool irq_enabled;
 	int i;
 
-	if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ))
-		return -EOPNOTSUPP;
-
 	irq_enabled = dev->irq_enabled;
 	dev->irq_enabled = false;
 
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
index 54ace3436605..dfc73aade325 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
@@ -137,7 +137,7 @@ static irqreturn_t fsl_dcu_drm_irq(int irq, void *arg)
 DEFINE_DRM_GEM_CMA_FOPS(fsl_dcu_drm_fops);
 
 static struct drm_driver fsl_dcu_drm_driver = {
-	.driver_features	= DRIVER_HAVE_IRQ | DRIVER_GEM | DRIVER_MODESET
+	.driver_features	= DRIVER_GEM | DRIVER_MODESET
 				| DRIVER_PRIME | DRIVER_ATOMIC,
 	.load			= fsl_dcu_load,
 	.unload			= fsl_dcu_unload,
diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_drv.c
index ac32ab5aa002..7cf14aeb1c28 100644
--- a/drivers/gpu/drm/gma500/psb_drv.c
+++ b/drivers/gpu/drm/gma500/psb_drv.c
@@ -468,7 +468,7 @@ static const struct file_operations psb_gem_fops = {
 };
 
 static struct drm_driver driver = {
-	.driver_features = DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | \
+	.driver_features = DRIVER_IRQ_SHARED | \
 			   DRIVER_MODESET | DRIVER_GEM,
 	.load = psb_driver_load,
 	.unload = psb_driver_unload,
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 337ee650d2de..550cfb945942 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -3010,7 +3010,7 @@ static struct drm_driver driver = {
 	 * deal with them for Intel hardware.
 	 */
 	.driver_features =
-	    DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM | DRIVER_PRIME |
+	    DRIVER_IRQ_SHARED | DRIVER_GEM | DRIVER_PRIME |
 	    DRIVER_RENDER | DRIVER_MODESET | DRIVER_ATOMIC | DRIVER_SYNCOBJ,
 	.release = i915_driver_release,
 	.open = i915_driver_open,
diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
index 2cbc6c7bb823..2281ed3eb774 100644
--- a/drivers/gpu/drm/meson/meson_drv.c
+++ b/drivers/gpu/drm/meson/meson_drv.c
@@ -94,7 +94,7 @@ static irqreturn_t meson_irq(int irq, void *arg)
 DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver meson_driver = {
-	.driver_features	= DRIVER_HAVE_IRQ | DRIVER_GEM |
+	.driver_features	= DRIVER_GEM |
 				  DRIVER_MODESET | DRIVER_PRIME |
 				  DRIVER_ATOMIC,
 
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index d2cdc7b553fe..8747fb32a106 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -1063,8 +1063,7 @@ static const struct file_operations fops = {
 };
 
 static struct drm_driver msm_driver = {
-	.driver_features    = DRIVER_HAVE_IRQ |
-				DRIVER_GEM |
+	.driver_features    = DRIVER_GEM |
 				DRIVER_PRIME |
 				DRIVER_RENDER |
 				DRIVER_ATOMIC |
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
index 54c8cdaeb576..967379f3f571 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
@@ -322,8 +322,7 @@ DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver mxsfb_driver = {
 	.driver_features	= DRIVER_GEM | DRIVER_MODESET |
-				  DRIVER_PRIME | DRIVER_ATOMIC |
-				  DRIVER_HAVE_IRQ,
+				  DRIVER_PRIME | DRIVER_ATOMIC,
 	.irq_handler		= mxsfb_irq_handler,
 	.irq_preinstall		= mxsfb_irq_preinstall,
 	.irq_uninstall		= mxsfb_irq_preinstall,
diff --git a/drivers/gpu/drm/qxl/qxl_drv.c b/drivers/gpu/drm/qxl/qxl_drv.c
index 56f2c65969c6..44daac129205 100644
--- a/drivers/gpu/drm/qxl/qxl_drv.c
+++ b/drivers/gpu/drm/qxl/qxl_drv.c
@@ -243,7 +243,7 @@ static struct pci_driver qxl_pci_driver = {
 
 static struct drm_driver qxl_driver = {
 	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME |
-			   DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED |
+			   DRIVER_IRQ_SHARED |
 			   DRIVER_ATOMIC,
 
 	.dumb_create = qxl_mode_dumb_create,
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
index 8897c3d18fbb..450a9d473c30 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -535,7 +535,7 @@ radeon_get_crtc_scanout_position(struct drm_device *dev, unsigned int pipe,
 static struct drm_driver kms_driver = {
 	.driver_features =
 	    DRIVER_USE_AGP |
-	    DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM |
+	    DRIVER_IRQ_SHARED | DRIVER_GEM |
 	    DRIVER_PRIME | DRIVER_RENDER,
 	.load = radeon_driver_load_kms,
 	.open = radeon_driver_open_kms,
diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.c b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
index 2002e7c55e80..cb821adfc321 100644
--- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c
+++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
@@ -127,7 +127,7 @@ static irqreturn_t shmob_drm_irq(int irq, void *arg)
 DEFINE_DRM_GEM_CMA_FOPS(shmob_drm_fops);
 
 static struct drm_driver shmob_drm_driver = {
-	.driver_features	= DRIVER_HAVE_IRQ | DRIVER_GEM | DRIVER_MODESET
+	.driver_features	= DRIVER_GEM | DRIVER_MODESET
 				| DRIVER_PRIME,
 	.irq_handler		= shmob_drm_irq,
 	.gem_free_object_unlocked = drm_gem_cma_free_object,
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
index 13b11acd4a5e..3030af9e7b35 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
@@ -512,7 +512,7 @@ static int tilcdc_debugfs_init(struct drm_minor *minor)
 DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver tilcdc_driver = {
-	.driver_features    = (DRIVER_HAVE_IRQ | DRIVER_GEM | DRIVER_MODESET |
+	.driver_features    = (DRIVER_GEM | DRIVER_MODESET |
 			       DRIVER_PRIME | DRIVER_ATOMIC),
 	.irq_handler        = tilcdc_irq,
 	.gem_free_object_unlocked = drm_gem_cma_free_object,
diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
index f6f5cd80c04d..5fcd2f0da7f7 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.c
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
@@ -175,7 +175,6 @@ static struct drm_driver vc4_drm_driver = {
 	.driver_features = (DRIVER_MODESET |
 			    DRIVER_ATOMIC |
 			    DRIVER_GEM |
-			    DRIVER_HAVE_IRQ |
 			    DRIVER_RENDER |
 			    DRIVER_PRIME |
 			    DRIVER_SYNCOBJ),
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
index 25afb1d594e3..d159d0400013 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
@@ -1582,7 +1582,7 @@ static const struct file_operations vmwgfx_driver_fops = {
 };
 
 static struct drm_driver driver = {
-	.driver_features = DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED |
+	.driver_features = DRIVER_IRQ_SHARED |
 	DRIVER_MODESET | DRIVER_PRIME | DRIVER_RENDER | DRIVER_ATOMIC,
 	.load = vmw_driver_load,
 	.unload = vmw_driver_unload,
diff --git a/drivers/staging/vboxvideo/vbox_drv.c b/drivers/staging/vboxvideo/vbox_drv.c
index cc6532d8c2fa..78cbcd68d4f3 100644
--- a/drivers/staging/vboxvideo/vbox_drv.c
+++ b/drivers/staging/vboxvideo/vbox_drv.c
@@ -221,7 +221,7 @@ static void vbox_master_drop(struct drm_device *dev, struct drm_file *file_priv)
 
 static struct drm_driver driver = {
 	.driver_features =
-	    DRIVER_MODESET | DRIVER_GEM | DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED |
+	    DRIVER_MODESET | DRIVER_GEM | DRIVER_IRQ_SHARED |
 	    DRIVER_PRIME | DRIVER_ATOMIC,
 	.dev_priv_size = 0,
 
-- 
2.20.1


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

* [PATCH 01/26] drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install
@ 2019-01-24 16:58   ` Daniel Vetter
  0 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: Daniel Vetter, linux-arm-msm, Intel Graphics Development,
	amd-gfx, virtualization, linux-renesas-soc, spice-devel,
	Daniel Vetter, linux-amlogic, freedreno, linux-arm-kernel

If a non-legacy driver calls these it's valid to assume there is
interrupt support. The flag is really only needed for legacy drivers.

Also remove all the flag usage from non-legacy drivers.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: intel-gfx@lists.freedesktop.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-msm@vger.kernel.org
Cc: freedreno@lists.freedesktop.org
Cc: virtualization@lists.linux-foundation.org
Cc: spice-devel@lists.freedesktop.org
Cc: amd-gfx@lists.freedesktop.org
Cc: linux-renesas-soc@vger.kernel.org
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c      | 2 +-
 drivers/gpu/drm/arm/hdlcd_drv.c              | 2 +-
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 2 +-
 drivers/gpu/drm/drm_irq.c                    | 6 ------
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c    | 2 +-
 drivers/gpu/drm/gma500/psb_drv.c             | 2 +-
 drivers/gpu/drm/i915/i915_drv.c              | 2 +-
 drivers/gpu/drm/meson/meson_drv.c            | 2 +-
 drivers/gpu/drm/msm/msm_drv.c                | 3 +--
 drivers/gpu/drm/mxsfb/mxsfb_drv.c            | 3 +--
 drivers/gpu/drm/qxl/qxl_drv.c                | 2 +-
 drivers/gpu/drm/radeon/radeon_drv.c          | 2 +-
 drivers/gpu/drm/shmobile/shmob_drm_drv.c     | 2 +-
 drivers/gpu/drm/tilcdc/tilcdc_drv.c          | 2 +-
 drivers/gpu/drm/vc4/vc4_drv.c                | 1 -
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c          | 2 +-
 drivers/staging/vboxvideo/vbox_drv.c         | 2 +-
 17 files changed, 15 insertions(+), 24 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index 0c22bae0c736..22502417c18c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -1189,7 +1189,7 @@ amdgpu_get_crtc_scanout_position(struct drm_device *dev, unsigned int pipe,
 static struct drm_driver kms_driver = {
 	.driver_features =
 	    DRIVER_USE_AGP | DRIVER_ATOMIC |
-	    DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM |
+	    DRIVER_IRQ_SHARED | DRIVER_GEM |
 	    DRIVER_PRIME | DRIVER_RENDER | DRIVER_MODESET | DRIVER_SYNCOBJ,
 	.load = amdgpu_driver_load_kms,
 	.open = amdgpu_driver_open_kms,
diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
index e68935b80917..8fc0b884c428 100644
--- a/drivers/gpu/drm/arm/hdlcd_drv.c
+++ b/drivers/gpu/drm/arm/hdlcd_drv.c
@@ -229,7 +229,7 @@ static int hdlcd_debugfs_init(struct drm_minor *minor)
 DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver hdlcd_driver = {
-	.driver_features = DRIVER_HAVE_IRQ | DRIVER_GEM |
+	.driver_features = DRIVER_GEM |
 			   DRIVER_MODESET | DRIVER_PRIME |
 			   DRIVER_ATOMIC,
 	.irq_handler = hdlcd_irq,
diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
index 034a91112098..0be13eceedba 100644
--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
@@ -720,7 +720,7 @@ static void atmel_hlcdc_dc_irq_uninstall(struct drm_device *dev)
 DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver atmel_hlcdc_dc_driver = {
-	.driver_features = DRIVER_HAVE_IRQ | DRIVER_GEM |
+	.driver_features = DRIVER_GEM |
 			   DRIVER_MODESET | DRIVER_PRIME |
 			   DRIVER_ATOMIC,
 	.irq_handler = atmel_hlcdc_dc_irq_handler,
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
index 45a07652fa00..c5babb3e4752 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -103,9 +103,6 @@ int drm_irq_install(struct drm_device *dev, int irq)
 	int ret;
 	unsigned long sh_flags = 0;
 
-	if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ))
-		return -EOPNOTSUPP;
-
 	if (irq == 0)
 		return -EINVAL;
 
@@ -174,9 +171,6 @@ int drm_irq_uninstall(struct drm_device *dev)
 	bool irq_enabled;
 	int i;
 
-	if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ))
-		return -EOPNOTSUPP;
-
 	irq_enabled = dev->irq_enabled;
 	dev->irq_enabled = false;
 
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
index 54ace3436605..dfc73aade325 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
@@ -137,7 +137,7 @@ static irqreturn_t fsl_dcu_drm_irq(int irq, void *arg)
 DEFINE_DRM_GEM_CMA_FOPS(fsl_dcu_drm_fops);
 
 static struct drm_driver fsl_dcu_drm_driver = {
-	.driver_features	= DRIVER_HAVE_IRQ | DRIVER_GEM | DRIVER_MODESET
+	.driver_features	= DRIVER_GEM | DRIVER_MODESET
 				| DRIVER_PRIME | DRIVER_ATOMIC,
 	.load			= fsl_dcu_load,
 	.unload			= fsl_dcu_unload,
diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_drv.c
index ac32ab5aa002..7cf14aeb1c28 100644
--- a/drivers/gpu/drm/gma500/psb_drv.c
+++ b/drivers/gpu/drm/gma500/psb_drv.c
@@ -468,7 +468,7 @@ static const struct file_operations psb_gem_fops = {
 };
 
 static struct drm_driver driver = {
-	.driver_features = DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | \
+	.driver_features = DRIVER_IRQ_SHARED | \
 			   DRIVER_MODESET | DRIVER_GEM,
 	.load = psb_driver_load,
 	.unload = psb_driver_unload,
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 337ee650d2de..550cfb945942 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -3010,7 +3010,7 @@ static struct drm_driver driver = {
 	 * deal with them for Intel hardware.
 	 */
 	.driver_features =
-	    DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM | DRIVER_PRIME |
+	    DRIVER_IRQ_SHARED | DRIVER_GEM | DRIVER_PRIME |
 	    DRIVER_RENDER | DRIVER_MODESET | DRIVER_ATOMIC | DRIVER_SYNCOBJ,
 	.release = i915_driver_release,
 	.open = i915_driver_open,
diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
index 2cbc6c7bb823..2281ed3eb774 100644
--- a/drivers/gpu/drm/meson/meson_drv.c
+++ b/drivers/gpu/drm/meson/meson_drv.c
@@ -94,7 +94,7 @@ static irqreturn_t meson_irq(int irq, void *arg)
 DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver meson_driver = {
-	.driver_features	= DRIVER_HAVE_IRQ | DRIVER_GEM |
+	.driver_features	= DRIVER_GEM |
 				  DRIVER_MODESET | DRIVER_PRIME |
 				  DRIVER_ATOMIC,
 
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index d2cdc7b553fe..8747fb32a106 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -1063,8 +1063,7 @@ static const struct file_operations fops = {
 };
 
 static struct drm_driver msm_driver = {
-	.driver_features    = DRIVER_HAVE_IRQ |
-				DRIVER_GEM |
+	.driver_features    = DRIVER_GEM |
 				DRIVER_PRIME |
 				DRIVER_RENDER |
 				DRIVER_ATOMIC |
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
index 54c8cdaeb576..967379f3f571 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
@@ -322,8 +322,7 @@ DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver mxsfb_driver = {
 	.driver_features	= DRIVER_GEM | DRIVER_MODESET |
-				  DRIVER_PRIME | DRIVER_ATOMIC |
-				  DRIVER_HAVE_IRQ,
+				  DRIVER_PRIME | DRIVER_ATOMIC,
 	.irq_handler		= mxsfb_irq_handler,
 	.irq_preinstall		= mxsfb_irq_preinstall,
 	.irq_uninstall		= mxsfb_irq_preinstall,
diff --git a/drivers/gpu/drm/qxl/qxl_drv.c b/drivers/gpu/drm/qxl/qxl_drv.c
index 56f2c65969c6..44daac129205 100644
--- a/drivers/gpu/drm/qxl/qxl_drv.c
+++ b/drivers/gpu/drm/qxl/qxl_drv.c
@@ -243,7 +243,7 @@ static struct pci_driver qxl_pci_driver = {
 
 static struct drm_driver qxl_driver = {
 	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME |
-			   DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED |
+			   DRIVER_IRQ_SHARED |
 			   DRIVER_ATOMIC,
 
 	.dumb_create = qxl_mode_dumb_create,
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
index 8897c3d18fbb..450a9d473c30 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -535,7 +535,7 @@ radeon_get_crtc_scanout_position(struct drm_device *dev, unsigned int pipe,
 static struct drm_driver kms_driver = {
 	.driver_features =
 	    DRIVER_USE_AGP |
-	    DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM |
+	    DRIVER_IRQ_SHARED | DRIVER_GEM |
 	    DRIVER_PRIME | DRIVER_RENDER,
 	.load = radeon_driver_load_kms,
 	.open = radeon_driver_open_kms,
diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.c b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
index 2002e7c55e80..cb821adfc321 100644
--- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c
+++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
@@ -127,7 +127,7 @@ static irqreturn_t shmob_drm_irq(int irq, void *arg)
 DEFINE_DRM_GEM_CMA_FOPS(shmob_drm_fops);
 
 static struct drm_driver shmob_drm_driver = {
-	.driver_features	= DRIVER_HAVE_IRQ | DRIVER_GEM | DRIVER_MODESET
+	.driver_features	= DRIVER_GEM | DRIVER_MODESET
 				| DRIVER_PRIME,
 	.irq_handler		= shmob_drm_irq,
 	.gem_free_object_unlocked = drm_gem_cma_free_object,
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
index 13b11acd4a5e..3030af9e7b35 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
@@ -512,7 +512,7 @@ static int tilcdc_debugfs_init(struct drm_minor *minor)
 DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver tilcdc_driver = {
-	.driver_features    = (DRIVER_HAVE_IRQ | DRIVER_GEM | DRIVER_MODESET |
+	.driver_features    = (DRIVER_GEM | DRIVER_MODESET |
 			       DRIVER_PRIME | DRIVER_ATOMIC),
 	.irq_handler        = tilcdc_irq,
 	.gem_free_object_unlocked = drm_gem_cma_free_object,
diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
index f6f5cd80c04d..5fcd2f0da7f7 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.c
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
@@ -175,7 +175,6 @@ static struct drm_driver vc4_drm_driver = {
 	.driver_features = (DRIVER_MODESET |
 			    DRIVER_ATOMIC |
 			    DRIVER_GEM |
-			    DRIVER_HAVE_IRQ |
 			    DRIVER_RENDER |
 			    DRIVER_PRIME |
 			    DRIVER_SYNCOBJ),
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
index 25afb1d594e3..d159d0400013 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
@@ -1582,7 +1582,7 @@ static const struct file_operations vmwgfx_driver_fops = {
 };
 
 static struct drm_driver driver = {
-	.driver_features = DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED |
+	.driver_features = DRIVER_IRQ_SHARED |
 	DRIVER_MODESET | DRIVER_PRIME | DRIVER_RENDER | DRIVER_ATOMIC,
 	.load = vmw_driver_load,
 	.unload = vmw_driver_unload,
diff --git a/drivers/staging/vboxvideo/vbox_drv.c b/drivers/staging/vboxvideo/vbox_drv.c
index cc6532d8c2fa..78cbcd68d4f3 100644
--- a/drivers/staging/vboxvideo/vbox_drv.c
+++ b/drivers/staging/vboxvideo/vbox_drv.c
@@ -221,7 +221,7 @@ static void vbox_master_drop(struct drm_device *dev, struct drm_file *file_priv)
 
 static struct drm_driver driver = {
 	.driver_features =
-	    DRIVER_MODESET | DRIVER_GEM | DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED |
+	    DRIVER_MODESET | DRIVER_GEM | DRIVER_IRQ_SHARED |
 	    DRIVER_PRIME | DRIVER_ATOMIC,
 	.dev_priv_size = 0,
 
-- 
2.20.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH 01/26] drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install
@ 2019-01-24 16:58   ` Daniel Vetter
  0 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: Daniel Vetter, linux-arm-msm, Intel Graphics Development,
	amd-gfx, virtualization, linux-renesas-soc, spice-devel,
	Daniel Vetter, linux-amlogic, freedreno, linux-arm-kernel

If a non-legacy driver calls these it's valid to assume there is
interrupt support. The flag is really only needed for legacy drivers.

Also remove all the flag usage from non-legacy drivers.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: intel-gfx@lists.freedesktop.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-msm@vger.kernel.org
Cc: freedreno@lists.freedesktop.org
Cc: virtualization@lists.linux-foundation.org
Cc: spice-devel@lists.freedesktop.org
Cc: amd-gfx@lists.freedesktop.org
Cc: linux-renesas-soc@vger.kernel.org
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c      | 2 +-
 drivers/gpu/drm/arm/hdlcd_drv.c              | 2 +-
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 2 +-
 drivers/gpu/drm/drm_irq.c                    | 6 ------
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c    | 2 +-
 drivers/gpu/drm/gma500/psb_drv.c             | 2 +-
 drivers/gpu/drm/i915/i915_drv.c              | 2 +-
 drivers/gpu/drm/meson/meson_drv.c            | 2 +-
 drivers/gpu/drm/msm/msm_drv.c                | 3 +--
 drivers/gpu/drm/mxsfb/mxsfb_drv.c            | 3 +--
 drivers/gpu/drm/qxl/qxl_drv.c                | 2 +-
 drivers/gpu/drm/radeon/radeon_drv.c          | 2 +-
 drivers/gpu/drm/shmobile/shmob_drm_drv.c     | 2 +-
 drivers/gpu/drm/tilcdc/tilcdc_drv.c          | 2 +-
 drivers/gpu/drm/vc4/vc4_drv.c                | 1 -
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c          | 2 +-
 drivers/staging/vboxvideo/vbox_drv.c         | 2 +-
 17 files changed, 15 insertions(+), 24 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index 0c22bae0c736..22502417c18c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -1189,7 +1189,7 @@ amdgpu_get_crtc_scanout_position(struct drm_device *dev, unsigned int pipe,
 static struct drm_driver kms_driver = {
 	.driver_features =
 	    DRIVER_USE_AGP | DRIVER_ATOMIC |
-	    DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM |
+	    DRIVER_IRQ_SHARED | DRIVER_GEM |
 	    DRIVER_PRIME | DRIVER_RENDER | DRIVER_MODESET | DRIVER_SYNCOBJ,
 	.load = amdgpu_driver_load_kms,
 	.open = amdgpu_driver_open_kms,
diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
index e68935b80917..8fc0b884c428 100644
--- a/drivers/gpu/drm/arm/hdlcd_drv.c
+++ b/drivers/gpu/drm/arm/hdlcd_drv.c
@@ -229,7 +229,7 @@ static int hdlcd_debugfs_init(struct drm_minor *minor)
 DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver hdlcd_driver = {
-	.driver_features = DRIVER_HAVE_IRQ | DRIVER_GEM |
+	.driver_features = DRIVER_GEM |
 			   DRIVER_MODESET | DRIVER_PRIME |
 			   DRIVER_ATOMIC,
 	.irq_handler = hdlcd_irq,
diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
index 034a91112098..0be13eceedba 100644
--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
@@ -720,7 +720,7 @@ static void atmel_hlcdc_dc_irq_uninstall(struct drm_device *dev)
 DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver atmel_hlcdc_dc_driver = {
-	.driver_features = DRIVER_HAVE_IRQ | DRIVER_GEM |
+	.driver_features = DRIVER_GEM |
 			   DRIVER_MODESET | DRIVER_PRIME |
 			   DRIVER_ATOMIC,
 	.irq_handler = atmel_hlcdc_dc_irq_handler,
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
index 45a07652fa00..c5babb3e4752 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -103,9 +103,6 @@ int drm_irq_install(struct drm_device *dev, int irq)
 	int ret;
 	unsigned long sh_flags = 0;
 
-	if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ))
-		return -EOPNOTSUPP;
-
 	if (irq == 0)
 		return -EINVAL;
 
@@ -174,9 +171,6 @@ int drm_irq_uninstall(struct drm_device *dev)
 	bool irq_enabled;
 	int i;
 
-	if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ))
-		return -EOPNOTSUPP;
-
 	irq_enabled = dev->irq_enabled;
 	dev->irq_enabled = false;
 
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
index 54ace3436605..dfc73aade325 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
@@ -137,7 +137,7 @@ static irqreturn_t fsl_dcu_drm_irq(int irq, void *arg)
 DEFINE_DRM_GEM_CMA_FOPS(fsl_dcu_drm_fops);
 
 static struct drm_driver fsl_dcu_drm_driver = {
-	.driver_features	= DRIVER_HAVE_IRQ | DRIVER_GEM | DRIVER_MODESET
+	.driver_features	= DRIVER_GEM | DRIVER_MODESET
 				| DRIVER_PRIME | DRIVER_ATOMIC,
 	.load			= fsl_dcu_load,
 	.unload			= fsl_dcu_unload,
diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_drv.c
index ac32ab5aa002..7cf14aeb1c28 100644
--- a/drivers/gpu/drm/gma500/psb_drv.c
+++ b/drivers/gpu/drm/gma500/psb_drv.c
@@ -468,7 +468,7 @@ static const struct file_operations psb_gem_fops = {
 };
 
 static struct drm_driver driver = {
-	.driver_features = DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | \
+	.driver_features = DRIVER_IRQ_SHARED | \
 			   DRIVER_MODESET | DRIVER_GEM,
 	.load = psb_driver_load,
 	.unload = psb_driver_unload,
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 337ee650d2de..550cfb945942 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -3010,7 +3010,7 @@ static struct drm_driver driver = {
 	 * deal with them for Intel hardware.
 	 */
 	.driver_features =
-	    DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM | DRIVER_PRIME |
+	    DRIVER_IRQ_SHARED | DRIVER_GEM | DRIVER_PRIME |
 	    DRIVER_RENDER | DRIVER_MODESET | DRIVER_ATOMIC | DRIVER_SYNCOBJ,
 	.release = i915_driver_release,
 	.open = i915_driver_open,
diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
index 2cbc6c7bb823..2281ed3eb774 100644
--- a/drivers/gpu/drm/meson/meson_drv.c
+++ b/drivers/gpu/drm/meson/meson_drv.c
@@ -94,7 +94,7 @@ static irqreturn_t meson_irq(int irq, void *arg)
 DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver meson_driver = {
-	.driver_features	= DRIVER_HAVE_IRQ | DRIVER_GEM |
+	.driver_features	= DRIVER_GEM |
 				  DRIVER_MODESET | DRIVER_PRIME |
 				  DRIVER_ATOMIC,
 
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index d2cdc7b553fe..8747fb32a106 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -1063,8 +1063,7 @@ static const struct file_operations fops = {
 };
 
 static struct drm_driver msm_driver = {
-	.driver_features    = DRIVER_HAVE_IRQ |
-				DRIVER_GEM |
+	.driver_features    = DRIVER_GEM |
 				DRIVER_PRIME |
 				DRIVER_RENDER |
 				DRIVER_ATOMIC |
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
index 54c8cdaeb576..967379f3f571 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
@@ -322,8 +322,7 @@ DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver mxsfb_driver = {
 	.driver_features	= DRIVER_GEM | DRIVER_MODESET |
-				  DRIVER_PRIME | DRIVER_ATOMIC |
-				  DRIVER_HAVE_IRQ,
+				  DRIVER_PRIME | DRIVER_ATOMIC,
 	.irq_handler		= mxsfb_irq_handler,
 	.irq_preinstall		= mxsfb_irq_preinstall,
 	.irq_uninstall		= mxsfb_irq_preinstall,
diff --git a/drivers/gpu/drm/qxl/qxl_drv.c b/drivers/gpu/drm/qxl/qxl_drv.c
index 56f2c65969c6..44daac129205 100644
--- a/drivers/gpu/drm/qxl/qxl_drv.c
+++ b/drivers/gpu/drm/qxl/qxl_drv.c
@@ -243,7 +243,7 @@ static struct pci_driver qxl_pci_driver = {
 
 static struct drm_driver qxl_driver = {
 	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME |
-			   DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED |
+			   DRIVER_IRQ_SHARED |
 			   DRIVER_ATOMIC,
 
 	.dumb_create = qxl_mode_dumb_create,
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
index 8897c3d18fbb..450a9d473c30 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -535,7 +535,7 @@ radeon_get_crtc_scanout_position(struct drm_device *dev, unsigned int pipe,
 static struct drm_driver kms_driver = {
 	.driver_features =
 	    DRIVER_USE_AGP |
-	    DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM |
+	    DRIVER_IRQ_SHARED | DRIVER_GEM |
 	    DRIVER_PRIME | DRIVER_RENDER,
 	.load = radeon_driver_load_kms,
 	.open = radeon_driver_open_kms,
diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.c b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
index 2002e7c55e80..cb821adfc321 100644
--- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c
+++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
@@ -127,7 +127,7 @@ static irqreturn_t shmob_drm_irq(int irq, void *arg)
 DEFINE_DRM_GEM_CMA_FOPS(shmob_drm_fops);
 
 static struct drm_driver shmob_drm_driver = {
-	.driver_features	= DRIVER_HAVE_IRQ | DRIVER_GEM | DRIVER_MODESET
+	.driver_features	= DRIVER_GEM | DRIVER_MODESET
 				| DRIVER_PRIME,
 	.irq_handler		= shmob_drm_irq,
 	.gem_free_object_unlocked = drm_gem_cma_free_object,
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
index 13b11acd4a5e..3030af9e7b35 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
@@ -512,7 +512,7 @@ static int tilcdc_debugfs_init(struct drm_minor *minor)
 DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver tilcdc_driver = {
-	.driver_features    = (DRIVER_HAVE_IRQ | DRIVER_GEM | DRIVER_MODESET |
+	.driver_features    = (DRIVER_GEM | DRIVER_MODESET |
 			       DRIVER_PRIME | DRIVER_ATOMIC),
 	.irq_handler        = tilcdc_irq,
 	.gem_free_object_unlocked = drm_gem_cma_free_object,
diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
index f6f5cd80c04d..5fcd2f0da7f7 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.c
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
@@ -175,7 +175,6 @@ static struct drm_driver vc4_drm_driver = {
 	.driver_features = (DRIVER_MODESET |
 			    DRIVER_ATOMIC |
 			    DRIVER_GEM |
-			    DRIVER_HAVE_IRQ |
 			    DRIVER_RENDER |
 			    DRIVER_PRIME |
 			    DRIVER_SYNCOBJ),
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
index 25afb1d594e3..d159d0400013 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
@@ -1582,7 +1582,7 @@ static const struct file_operations vmwgfx_driver_fops = {
 };
 
 static struct drm_driver driver = {
-	.driver_features = DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED |
+	.driver_features = DRIVER_IRQ_SHARED |
 	DRIVER_MODESET | DRIVER_PRIME | DRIVER_RENDER | DRIVER_ATOMIC,
 	.load = vmw_driver_load,
 	.unload = vmw_driver_unload,
diff --git a/drivers/staging/vboxvideo/vbox_drv.c b/drivers/staging/vboxvideo/vbox_drv.c
index cc6532d8c2fa..78cbcd68d4f3 100644
--- a/drivers/staging/vboxvideo/vbox_drv.c
+++ b/drivers/staging/vboxvideo/vbox_drv.c
@@ -221,7 +221,7 @@ static void vbox_master_drop(struct drm_device *dev, struct drm_file *file_priv)
 
 static struct drm_driver driver = {
 	.driver_features =
-	    DRIVER_MODESET | DRIVER_GEM | DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED |
+	    DRIVER_MODESET | DRIVER_GEM | DRIVER_IRQ_SHARED |
 	    DRIVER_PRIME | DRIVER_ATOMIC,
 	.dev_priv_size = 0,
 
-- 
2.20.1


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* [PATCH 02/26] drm: Switch DRIVER_ flags to an enum
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
  2019-01-24 16:58   ` Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-24 17:38   ` Sam Ravnborg
  2019-01-24 16:58 ` [PATCH 03/26] drm/irq: Ditch DRIVER_IRQ_SHARED Daniel Vetter
                   ` (23 subsequent siblings)
  25 siblings, 1 reply; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development; +Cc: Daniel Vetter, Intel Graphics Development, Daniel Vetter

And move the documenation we alreay have into kerneldoc, plus a bit of
polish while at it.

FIXME: Updates for drm_driver.driver_features are missing, need to get
Sam's patches landed first.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 Documentation/gpu/drm-internals.rst |  62 -------------
 include/drm/drm_drv.h               | 138 ++++++++++++++++++++++++----
 2 files changed, 121 insertions(+), 79 deletions(-)

diff --git a/Documentation/gpu/drm-internals.rst b/Documentation/gpu/drm-internals.rst
index 2caf21effd28..3ae23a5454ac 100644
--- a/Documentation/gpu/drm-internals.rst
+++ b/Documentation/gpu/drm-internals.rst
@@ -39,68 +39,6 @@ sections.
 Driver Information
 ------------------
 
-Driver Features
-~~~~~~~~~~~~~~~
-
-Drivers inform the DRM core about their requirements and supported
-features by setting appropriate flags in the driver_features field.
-Since those flags influence the DRM core behaviour since registration
-time, most of them must be set to registering the :c:type:`struct
-drm_driver <drm_driver>` instance.
-
-u32 driver_features;
-
-DRIVER_USE_AGP
-    Driver uses AGP interface, the DRM core will manage AGP resources.
-
-DRIVER_LEGACY
-    Denote a legacy driver using shadow attach. Don't use.
-
-DRIVER_KMS_LEGACY_CONTEXT
-    Used only by nouveau for backwards compatibility with existing userspace.
-    Don't use.
-
-DRIVER_PCI_DMA
-    Driver is capable of PCI DMA, mapping of PCI DMA buffers to
-    userspace will be enabled. Deprecated.
-
-DRIVER_SG
-    Driver can perform scatter/gather DMA, allocation and mapping of
-    scatter/gather buffers will be enabled. Deprecated.
-
-DRIVER_HAVE_DMA
-    Driver supports DMA, the userspace DMA API will be supported.
-    Deprecated.
-
-DRIVER_HAVE_IRQ; DRIVER_IRQ_SHARED
-    DRIVER_HAVE_IRQ indicates whether the driver has an IRQ handler
-    managed by the DRM Core. The core will support simple IRQ handler
-    installation when the flag is set. The installation process is
-    described in ?.
-
-    DRIVER_IRQ_SHARED indicates whether the device & handler support
-    shared IRQs (note that this is required of PCI drivers).
-
-DRIVER_GEM
-    Driver use the GEM memory manager.
-
-DRIVER_MODESET
-    Driver supports mode setting interfaces (KMS).
-
-DRIVER_PRIME
-    Driver implements DRM PRIME buffer sharing.
-
-DRIVER_RENDER
-    Driver supports dedicated render nodes.
-
-DRIVER_ATOMIC
-    Driver supports atomic properties. In this case the driver must
-    implement appropriate obj->atomic_get_property() vfuncs for any
-    modeset objects with driver specific properties.
-
-DRIVER_SYNCOBJ
-    Driver support drm sync objects.
-
 Major, Minor and Patchlevel
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
index 35af23f5fa0d..fbbcd2887ea8 100644
--- a/include/drm/drm_drv.h
+++ b/include/drm/drm_drv.h
@@ -41,21 +41,120 @@ struct drm_display_mode;
 struct drm_mode_create_dumb;
 struct drm_printer;
 
-/* driver capabilities and requirements mask */
-#define DRIVER_USE_AGP			0x1
-#define DRIVER_LEGACY			0x2
-#define DRIVER_PCI_DMA			0x8
-#define DRIVER_SG			0x10
-#define DRIVER_HAVE_DMA			0x20
-#define DRIVER_HAVE_IRQ			0x40
-#define DRIVER_IRQ_SHARED		0x80
-#define DRIVER_GEM			0x1000
-#define DRIVER_MODESET			0x2000
-#define DRIVER_PRIME			0x4000
-#define DRIVER_RENDER			0x8000
-#define DRIVER_ATOMIC			0x10000
-#define DRIVER_KMS_LEGACY_CONTEXT	0x20000
-#define DRIVER_SYNCOBJ                  0x40000
+/**
+ * enum drm_driver_feature - feature flags
+ *
+ * See &drm_driver.driver_features, drm_device.driver_features and
+ * drm_core_check_feature().
+ */
+enum drm_driver_feature {
+	/**
+	 * @DRIVER_USE_AGP:
+	 *
+	 * Set up DRM AGP support, see drm_agp_init(), the DRM core will manage
+	 * AGP resources. New drivers don't need this.
+	 */
+	DRIVER_USE_AGP			= BIT(0),
+	/**
+	 * @DRIVER_LEGACY:
+	 *
+	 * Denote a legacy driver using shadow attach. Do not use.
+	 */
+	DRIVER_LEGACY			= BIT(1),
+	/**
+	 * @DRIVER_PCI_DMA:
+	 *
+	 * Driver is capable of PCI DMA, mapping of PCI DMA buffers to userspace
+	 * will be enabled. Only for legacy drivers. Do not use.
+	 */
+	DRIVER_PCI_DMA			= BIT(2),
+	/**
+	 * @DRIVER_SG:
+	 *
+	 * Driver can perform scatter/gather DMA, allocation and mapping of
+	 * scatter/gather buffers will be enabled. Only for legacy drivers. Do
+	 * not use.
+	 */
+	DRIVER_SG			= BIT(3),
+
+	/**
+	 * @DRIVER_HAVE_DMA:
+	 *
+	 * Driver supports DMA, the userspace DMA API will be supported. Only
+	 * for legacy drivers. Do not use.
+	 */
+	DRIVER_HAVE_DMA			= BIT(4),
+	/**
+	 * @DRIVER_HAVE_IRQ:
+	 *
+	 * Legacy irq support. Only for legacy drivers. Do not use.
+	 *
+	 * New drivers can either use the drm_irq_install() and
+	 * drm_irq_uninstall() helper functions, or roll their own irq support
+	 * code by calling request_irq() directly.
+	 */
+	DRIVER_HAVE_IRQ			= BIT(5),
+	/**
+	 * @DRIVER_IRQ_SHARED:
+	 *
+	 * Indicates to drm_irq_install() that a shared irq should be requested.
+	 *
+	 * FIXME: This should be an explicit argument for non-legacy drivers, or
+	 * at least the default for PCI devices (which would cover all current
+	 * users).
+	 */
+	DRIVER_IRQ_SHARED		= BIT(6),
+	/**
+	 * @DRIVER_GEM:
+	 *
+	 * Driver use the GEM memory manager. This should be set for all modern
+	 * drivers.
+	 */
+	DRIVER_GEM			= BIT(7),
+	/**
+	 * @DRIVER_MODESET:
+	 *
+	 * Driver supports mode setting interfaces (KMS).
+	 */
+	DRIVER_MODESET			= BIT(8),
+	/**
+	 * @DRIVER_PRIME:
+	 *
+	 * Driver implements DRM PRIME buffer sharing.
+	 */
+	DRIVER_PRIME			= BIT(9),
+	/**
+	 * @DRIVER_RENDER:
+	 *
+	 * Driver supports dedicated render nodes. See also the :ref:`section on
+	 * render nodes <drm_render_node>` for details.
+	 */
+	DRIVER_RENDER			= BIT(10),
+	/**
+	 * @DRIVER_ATOMIC:
+	 *
+	 * Driver supports the full atomic modesetting userspace API. Drivers
+	 * which only use atomic internally, but do not the support the full
+	 * userspace API (e.g. not all properties converted to atomic, or
+	 * multi-plane updates are not guaranteed to be tear-free) should not
+	 * set this flag.
+	 */
+	DRIVER_ATOMIC			= BIT(11),
+	/**
+	 * @DRIVER_KMS_LEGACY_CONTEXT:
+	 *
+	 * Used only by nouveau for backwards compatibility with existing
+	 * userspace.  Do not use.
+	 */
+	DRIVER_KMS_LEGACY_CONTEXT	= BIT(12),
+	/**
+	 * @DRIVER_SYNCOBJ:
+	 *
+	 * Driver supports &drm_syncobj for explicit synchronization of command
+	 * submission.
+	 */
+	DRIVER_SYNCOBJ                  = BIT(13),
+};
 
 /**
  * struct drm_driver - DRM driver structure
@@ -579,7 +678,12 @@ struct drm_driver {
 	/** @date: driver date */
 	char *date;
 
-	/** @driver_features: driver features */
+	/**
+	 * @driver_features:
+	 * Driver features, see &enum drm_driver_feature. Drivers can disable
+	 * some features on a per-instance basis using
+	 * &drm_device.driver_features.
+	 */
 	u32 driver_features;
 
 	/**
@@ -662,7 +766,7 @@ static inline bool drm_dev_is_unplugged(struct drm_device *dev)
  * @feature: feature flag
  *
  * This checks @dev for driver features, see &drm_driver.driver_features,
- * &drm_device.driver_features, and the various DRIVER_\* flags.
+ * &drm_device.driver_features, and the various &enum drm_driver_feature flags.
  *
  * Returns true if the @feature is supported, false otherwise.
  */
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [PATCH 03/26] drm/irq: Ditch DRIVER_IRQ_SHARED
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
  2019-01-24 16:58   ` Daniel Vetter
  2019-01-24 16:58 ` [PATCH 02/26] drm: Switch DRIVER_ flags to an enum Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-25 14:46   ` Emil Velikov
  2019-01-24 16:58 ` [PATCH 04/26] drm/fb-helper: Add fill_info() functions Daniel Vetter
                   ` (22 subsequent siblings)
  25 siblings, 1 reply; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development; +Cc: Daniel Vetter, Intel Graphics Development, Daniel Vetter

This is only used by drm_irq_install(), which is an optional helper.
And the right choice is to set it for all pci devices, and not for
everything else.

Any driver with special needs should just use request_irq() directly,
and there's plenty of drivers doing that already.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c |  2 +-
 drivers/gpu/drm/drm_irq.c               |  4 ++--
 drivers/gpu/drm/gma500/psb_drv.c        |  3 +--
 drivers/gpu/drm/i915/i915_drv.c         |  2 +-
 drivers/gpu/drm/mga/mga_drv.c           |  2 +-
 drivers/gpu/drm/qxl/qxl_drv.c           |  1 -
 drivers/gpu/drm/r128/r128_drv.c         |  2 +-
 drivers/gpu/drm/radeon/radeon_drv.c     |  4 +---
 drivers/gpu/drm/via/via_drv.c           |  3 +--
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c     |  2 +-
 drivers/staging/vboxvideo/vbox_drv.c    |  3 +--
 include/drm/drm_drv.h                   | 24 +++++++-----------------
 12 files changed, 18 insertions(+), 34 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index 22502417c18c..a1bb3773087b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -1189,7 +1189,7 @@ amdgpu_get_crtc_scanout_position(struct drm_device *dev, unsigned int pipe,
 static struct drm_driver kms_driver = {
 	.driver_features =
 	    DRIVER_USE_AGP | DRIVER_ATOMIC |
-	    DRIVER_IRQ_SHARED | DRIVER_GEM |
+	    DRIVER_GEM |
 	    DRIVER_PRIME | DRIVER_RENDER | DRIVER_MODESET | DRIVER_SYNCOBJ,
 	.load = amdgpu_driver_load_kms,
 	.open = amdgpu_driver_open_kms,
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
index c5babb3e4752..9bd8908d5fd8 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -120,8 +120,8 @@ int drm_irq_install(struct drm_device *dev, int irq)
 	if (dev->driver->irq_preinstall)
 		dev->driver->irq_preinstall(dev);
 
-	/* Install handler */
-	if (drm_core_check_feature(dev, DRIVER_IRQ_SHARED))
+	/* PCI devices require shared interrupts. */
+	if (dev->pdev)
 		sh_flags = IRQF_SHARED;
 
 	ret = request_irq(irq, dev->driver->irq_handler,
diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_drv.c
index 7cf14aeb1c28..eefaf4daff2b 100644
--- a/drivers/gpu/drm/gma500/psb_drv.c
+++ b/drivers/gpu/drm/gma500/psb_drv.c
@@ -468,8 +468,7 @@ static const struct file_operations psb_gem_fops = {
 };
 
 static struct drm_driver driver = {
-	.driver_features = DRIVER_IRQ_SHARED | \
-			   DRIVER_MODESET | DRIVER_GEM,
+	.driver_features = DRIVER_MODESET | DRIVER_GEM,
 	.load = psb_driver_load,
 	.unload = psb_driver_unload,
 	.lastclose = drm_fb_helper_lastclose,
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 550cfb945942..a7aaa1ac4c99 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -3010,7 +3010,7 @@ static struct drm_driver driver = {
 	 * deal with them for Intel hardware.
 	 */
 	.driver_features =
-	    DRIVER_IRQ_SHARED | DRIVER_GEM | DRIVER_PRIME |
+	    DRIVER_GEM | DRIVER_PRIME |
 	    DRIVER_RENDER | DRIVER_MODESET | DRIVER_ATOMIC | DRIVER_SYNCOBJ,
 	.release = i915_driver_release,
 	.open = i915_driver_open,
diff --git a/drivers/gpu/drm/mga/mga_drv.c b/drivers/gpu/drm/mga/mga_drv.c
index 1aad27813c23..6e1d1054ad06 100644
--- a/drivers/gpu/drm/mga/mga_drv.c
+++ b/drivers/gpu/drm/mga/mga_drv.c
@@ -57,7 +57,7 @@ static const struct file_operations mga_driver_fops = {
 static struct drm_driver driver = {
 	.driver_features =
 	    DRIVER_USE_AGP | DRIVER_PCI_DMA | DRIVER_LEGACY |
-	    DRIVER_HAVE_DMA | DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED,
+	    DRIVER_HAVE_DMA | DRIVER_HAVE_IRQ,
 	.dev_priv_size = sizeof(drm_mga_buf_priv_t),
 	.load = mga_driver_load,
 	.unload = mga_driver_unload,
diff --git a/drivers/gpu/drm/qxl/qxl_drv.c b/drivers/gpu/drm/qxl/qxl_drv.c
index 44daac129205..d856615bdb50 100644
--- a/drivers/gpu/drm/qxl/qxl_drv.c
+++ b/drivers/gpu/drm/qxl/qxl_drv.c
@@ -243,7 +243,6 @@ static struct pci_driver qxl_pci_driver = {
 
 static struct drm_driver qxl_driver = {
 	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME |
-			   DRIVER_IRQ_SHARED |
 			   DRIVER_ATOMIC,
 
 	.dumb_create = qxl_mode_dumb_create,
diff --git a/drivers/gpu/drm/r128/r128_drv.c b/drivers/gpu/drm/r128/r128_drv.c
index 0d2b7e42b3a7..4b1a505ab353 100644
--- a/drivers/gpu/drm/r128/r128_drv.c
+++ b/drivers/gpu/drm/r128/r128_drv.c
@@ -57,7 +57,7 @@ static const struct file_operations r128_driver_fops = {
 static struct drm_driver driver = {
 	.driver_features =
 	    DRIVER_USE_AGP | DRIVER_PCI_DMA | DRIVER_SG | DRIVER_LEGACY |
-	    DRIVER_HAVE_DMA | DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED,
+	    DRIVER_HAVE_DMA | DRIVER_HAVE_IRQ,
 	.dev_priv_size = sizeof(drm_r128_buf_priv_t),
 	.load = r128_driver_load,
 	.preclose = r128_driver_preclose,
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
index 450a9d473c30..2e96c886392b 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -534,9 +534,7 @@ radeon_get_crtc_scanout_position(struct drm_device *dev, unsigned int pipe,
 
 static struct drm_driver kms_driver = {
 	.driver_features =
-	    DRIVER_USE_AGP |
-	    DRIVER_IRQ_SHARED | DRIVER_GEM |
-	    DRIVER_PRIME | DRIVER_RENDER,
+	    DRIVER_USE_AGP | DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER,
 	.load = radeon_driver_load_kms,
 	.open = radeon_driver_open_kms,
 	.postclose = radeon_driver_postclose_kms,
diff --git a/drivers/gpu/drm/via/via_drv.c b/drivers/gpu/drm/via/via_drv.c
index aaf766f7cca2..af6a12d3c058 100644
--- a/drivers/gpu/drm/via/via_drv.c
+++ b/drivers/gpu/drm/via/via_drv.c
@@ -70,8 +70,7 @@ static const struct file_operations via_driver_fops = {
 
 static struct drm_driver driver = {
 	.driver_features =
-	    DRIVER_USE_AGP | DRIVER_HAVE_IRQ | DRIVER_LEGACY |
-	    DRIVER_IRQ_SHARED,
+	    DRIVER_USE_AGP | DRIVER_HAVE_IRQ | DRIVER_LEGACY,
 	.load = via_driver_load,
 	.unload = via_driver_unload,
 	.open = via_driver_open,
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
index d159d0400013..4638f6791cda 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
@@ -1582,7 +1582,7 @@ static const struct file_operations vmwgfx_driver_fops = {
 };
 
 static struct drm_driver driver = {
-	.driver_features = DRIVER_IRQ_SHARED |
+	.driver_features =
 	DRIVER_MODESET | DRIVER_PRIME | DRIVER_RENDER | DRIVER_ATOMIC,
 	.load = vmw_driver_load,
 	.unload = vmw_driver_unload,
diff --git a/drivers/staging/vboxvideo/vbox_drv.c b/drivers/staging/vboxvideo/vbox_drv.c
index 78cbcd68d4f3..b0d73d5fba5d 100644
--- a/drivers/staging/vboxvideo/vbox_drv.c
+++ b/drivers/staging/vboxvideo/vbox_drv.c
@@ -221,8 +221,7 @@ static void vbox_master_drop(struct drm_device *dev, struct drm_file *file_priv)
 
 static struct drm_driver driver = {
 	.driver_features =
-	    DRIVER_MODESET | DRIVER_GEM | DRIVER_IRQ_SHARED |
-	    DRIVER_PRIME | DRIVER_ATOMIC,
+	    DRIVER_MODESET | DRIVER_GEM | DRIVER_PRIME | DRIVER_ATOMIC,
 	.dev_priv_size = 0,
 
 	.lastclose = drm_fb_helper_lastclose,
diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
index fbbcd2887ea8..60318480675f 100644
--- a/include/drm/drm_drv.h
+++ b/include/drm/drm_drv.h
@@ -94,42 +94,32 @@ enum drm_driver_feature {
 	 * code by calling request_irq() directly.
 	 */
 	DRIVER_HAVE_IRQ			= BIT(5),
-	/**
-	 * @DRIVER_IRQ_SHARED:
-	 *
-	 * Indicates to drm_irq_install() that a shared irq should be requested.
-	 *
-	 * FIXME: This should be an explicit argument for non-legacy drivers, or
-	 * at least the default for PCI devices (which would cover all current
-	 * users).
-	 */
-	DRIVER_IRQ_SHARED		= BIT(6),
 	/**
 	 * @DRIVER_GEM:
 	 *
 	 * Driver use the GEM memory manager. This should be set for all modern
 	 * drivers.
 	 */
-	DRIVER_GEM			= BIT(7),
+	DRIVER_GEM			= BIT(6),
 	/**
 	 * @DRIVER_MODESET:
 	 *
 	 * Driver supports mode setting interfaces (KMS).
 	 */
-	DRIVER_MODESET			= BIT(8),
+	DRIVER_MODESET			= BIT(7),
 	/**
 	 * @DRIVER_PRIME:
 	 *
 	 * Driver implements DRM PRIME buffer sharing.
 	 */
-	DRIVER_PRIME			= BIT(9),
+	DRIVER_PRIME			= BIT(8),
 	/**
 	 * @DRIVER_RENDER:
 	 *
 	 * Driver supports dedicated render nodes. See also the :ref:`section on
 	 * render nodes <drm_render_node>` for details.
 	 */
-	DRIVER_RENDER			= BIT(10),
+	DRIVER_RENDER			= BIT(9),
 	/**
 	 * @DRIVER_ATOMIC:
 	 *
@@ -139,21 +129,21 @@ enum drm_driver_feature {
 	 * multi-plane updates are not guaranteed to be tear-free) should not
 	 * set this flag.
 	 */
-	DRIVER_ATOMIC			= BIT(11),
+	DRIVER_ATOMIC			= BIT(10),
 	/**
 	 * @DRIVER_KMS_LEGACY_CONTEXT:
 	 *
 	 * Used only by nouveau for backwards compatibility with existing
 	 * userspace.  Do not use.
 	 */
-	DRIVER_KMS_LEGACY_CONTEXT	= BIT(12),
+	DRIVER_KMS_LEGACY_CONTEXT	= BIT(11),
 	/**
 	 * @DRIVER_SYNCOBJ:
 	 *
 	 * Driver supports &drm_syncobj for explicit synchronization of command
 	 * submission.
 	 */
-	DRIVER_SYNCOBJ                  = BIT(13),
+	DRIVER_SYNCOBJ                  = BIT(12),
 };
 
 /**
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [PATCH 04/26] drm/fb-helper: Add fill_info() functions
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (2 preceding siblings ...)
  2019-01-24 16:58 ` [PATCH 03/26] drm/irq: Ditch DRIVER_IRQ_SHARED Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-24 17:40   ` Noralf Trønnes
  2019-01-24 16:58 ` [PATCH 05/26] drm/fb-helper: set fbi->fix.id in fill_info() Daniel Vetter
                   ` (21 subsequent siblings)
  25 siblings, 1 reply; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development; +Cc: Daniel Vetter, Intel Graphics Development, Daniel Vetter

The fbdev split between fix and var information is kinda
pointless for drm drivers since everything is fixed: The fbdev
emulation doesn't support changing modes at all.

Create a new simplified helper and use it in the generic fbdev
helper code. Follow-up patches will beef it up more and roll
it out to all drivers.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 drivers/gpu/drm/drm_fb_helper.c | 27 +++++++++++++++++++++++++--
 include/drm/drm_fb_helper.h     |  1 +
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index 5eaccd202f4f..34c4ed378796 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -2105,6 +2105,30 @@ void drm_fb_helper_fill_var(struct fb_info *info, struct drm_fb_helper *fb_helpe
 }
 EXPORT_SYMBOL(drm_fb_helper_fill_var);
 
+/**
+ * drm_fb_helper_fill_info - initializes fbdev information
+ * @info: fbdev instance to set up
+ * @fb_helper: fb helper instance to use as template
+ *
+ *
+ * Sets up the variable and fixed fbdev metainformation from the given fb helper
+ * instance and the drm framebuffer allocated in &drm_fb_helper.fb.
+ *
+ * Drivers should call this (or their equivalent setup code) from their
+ * &drm_fb_helper_funcs.fb_probe callback after having allocated the fbdev
+ * backing storage framebuffer.
+ */
+void drm_fb_helper_fill_info(struct fb_info *info,
+			     struct drm_fb_helper *fb_helper)
+{
+	struct drm_framebuffer *fb = fb_helper->fb;
+
+	drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
+	drm_fb_helper_fill_var(info, fb_helper, fb->width, fb->height);
+
+}
+EXPORT_SYMBOL(drm_fb_helper_fill_info);
+
 static int drm_fb_helper_probe_connector_modes(struct drm_fb_helper *fb_helper,
 						uint32_t maxX,
 						uint32_t maxY)
@@ -3163,8 +3187,7 @@ int drm_fb_helper_generic_probe(struct drm_fb_helper *fb_helper,
 #endif
 	strcpy(fbi->fix.id, "DRM emulated");
 
-	drm_fb_helper_fill_fix(fbi, fb->pitches[0], fb->format->depth);
-	drm_fb_helper_fill_var(fbi, fb_helper, sizes->fb_width, sizes->fb_height);
+	drm_fb_helper_fill_info(fbi, fb_helper);
 
 	if (fb->funcs->dirty) {
 		struct fb_ops *fbops;
diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h
index bb9acea61369..e8d92724f472 100644
--- a/include/drm/drm_fb_helper.h
+++ b/include/drm/drm_fb_helper.h
@@ -292,6 +292,7 @@ void drm_fb_helper_fill_var(struct fb_info *info, struct drm_fb_helper *fb_helpe
 			    uint32_t fb_width, uint32_t fb_height);
 void drm_fb_helper_fill_fix(struct fb_info *info, uint32_t pitch,
 			    uint32_t depth);
+void drm_fb_helper_fill_info(struct fb_info *info, struct drm_fb_helper *fb_helper);
 
 void drm_fb_helper_unlink_fbi(struct drm_fb_helper *fb_helper);
 
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH 05/26] drm/fb-helper: set fbi->fix.id in fill_info()
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (3 preceding siblings ...)
  2019-01-24 16:58 ` [PATCH 04/26] drm/fb-helper: Add fill_info() functions Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-24 17:28   ` Daniel Vetter
  2019-01-24 16:58 ` [PATCH 06/26] drm/fb_helper: set info->par " Daniel Vetter
                   ` (20 subsequent siblings)
  25 siblings, 1 reply; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development; +Cc: Daniel Vetter, Intel Graphics Development, Daniel Vetter

Looking at the oldest/most popular drivers ${driver}drmfb seems to be
the standard, except i915.ko went with "inteldrmfb". I guess renaming
that for consistency won't hurt, it definitely confused me when I
started with kms 10 years ago.

I hope this never became uapi ... worst case drivers can overwrite it
after having called fill_info().

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 drivers/gpu/drm/drm_fb_helper.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index 34c4ed378796..20969c05a9e3 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -2126,6 +2126,9 @@ void drm_fb_helper_fill_info(struct fb_info *info,
 	drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
 	drm_fb_helper_fill_var(info, fb_helper, fb->width, fb->height);
 
+	snprintf(info->fix.id, sizeof(info->fix.id), "%sdrmfb",
+		 fb_helper->dev->driver->name);
+
 }
 EXPORT_SYMBOL(drm_fb_helper_fill_info);
 
@@ -3185,8 +3188,6 @@ int drm_fb_helper_generic_probe(struct drm_fb_helper *fb_helper,
 		fbi->fix.smem_start =
 			page_to_phys(virt_to_page(fbi->screen_buffer));
 #endif
-	strcpy(fbi->fix.id, "DRM emulated");
-
 	drm_fb_helper_fill_info(fbi, fb_helper);
 
 	if (fb->funcs->dirty) {
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [PATCH 06/26] drm/fb_helper: set info->par in fill_info()
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (4 preceding siblings ...)
  2019-01-24 16:58 ` [PATCH 05/26] drm/fb-helper: set fbi->fix.id in fill_info() Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-24 17:45   ` Sam Ravnborg
  2019-01-24 16:58 ` [PATCH 07/26] drm/amdgpu: Use drm_fb_helper_fill_info Daniel Vetter
                   ` (19 subsequent siblings)
  25 siblings, 1 reply; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development; +Cc: Daniel Vetter, Intel Graphics Development

The fbdev emulation helpers pretty much assume that this is set.
Let's do it for everyone.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/drm_fb_helper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index 20969c05a9e3..cbe7fda3f8af 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -2126,6 +2126,7 @@ void drm_fb_helper_fill_info(struct fb_info *info,
 	drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
 	drm_fb_helper_fill_var(info, fb_helper, fb->width, fb->height);
 
+	info->par = fb_helper;
 	snprintf(info->fix.id, sizeof(info->fix.id), "%sdrmfb",
 		 fb_helper->dev->driver->name);
 
@@ -3177,7 +3178,6 @@ int drm_fb_helper_generic_probe(struct drm_fb_helper *fb_helper,
 	if (IS_ERR(fbi))
 		return PTR_ERR(fbi);
 
-	fbi->par = fb_helper;
 	fbi->fbops = &drm_fbdev_fb_ops;
 	fbi->screen_size = fb->height * fb->pitches[0];
 	fbi->fix.smem_len = fbi->screen_size;
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH 07/26] drm/amdgpu: Use drm_fb_helper_fill_info
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (5 preceding siblings ...)
  2019-01-24 16:58 ` [PATCH 06/26] drm/fb_helper: set info->par " Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-24 16:58 ` [PATCH 08/26] drm/armada: " Daniel Vetter
                   ` (18 subsequent siblings)
  25 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: Daniel Stone, Daniel Vetter, Intel Graphics Development,
	Michel Dänzer, Samuel Li, Shirish S, Junwei Zhang,
	Huang Rui, Alex Deucher, Daniel Vetter, Christian König

Should not cause any changes.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: Samuel Li <Samuel.Li@amd.com>
Cc: "Michel Dänzer" <michel.daenzer@amd.com>
Cc: Huang Rui <ray.huang@amd.com>
Cc: Junwei Zhang <Jerry.Zhang@amd.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Daniel Stone <daniels@collabora.com>
Cc: Shirish S <shirish.s@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 24 ++++++++----------------
 1 file changed, 8 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
index 24890d8f9ee4..dd37170af42b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
@@ -49,12 +49,11 @@
 static int
 amdgpufb_open(struct fb_info *info, int user)
 {
-	struct amdgpu_fbdev *rfbdev = info->par;
-	struct amdgpu_device *adev = rfbdev->adev;
-	int ret = pm_runtime_get_sync(adev->ddev->dev);
+	struct drm_fb_helper *fb_helper = info->par;
+	int ret = pm_runtime_get_sync(fb_helper->dev->dev);
 	if (ret < 0 && ret != -EACCES) {
-		pm_runtime_mark_last_busy(adev->ddev->dev);
-		pm_runtime_put_autosuspend(adev->ddev->dev);
+		pm_runtime_mark_last_busy(fb_helper->dev->dev);
+		pm_runtime_put_autosuspend(fb_helper->dev->dev);
 		return ret;
 	}
 	return 0;
@@ -63,11 +62,10 @@ amdgpufb_open(struct fb_info *info, int user)
 static int
 amdgpufb_release(struct fb_info *info, int user)
 {
-	struct amdgpu_fbdev *rfbdev = info->par;
-	struct amdgpu_device *adev = rfbdev->adev;
+	struct drm_fb_helper *fb_helper = info->par;
 
-	pm_runtime_mark_last_busy(adev->ddev->dev);
-	pm_runtime_put_autosuspend(adev->ddev->dev);
+	pm_runtime_mark_last_busy(fb_helper->dev->dev);
+	pm_runtime_put_autosuspend(fb_helper->dev->dev);
 	return 0;
 }
 
@@ -233,8 +231,6 @@ static int amdgpufb_create(struct drm_fb_helper *helper,
 		goto out;
 	}
 
-	info->par = rfbdev;
-
 	ret = amdgpu_display_framebuffer_init(adev->ddev, &rfbdev->rfb,
 					      &mode_cmd, gobj);
 	if (ret) {
@@ -247,10 +243,6 @@ static int amdgpufb_create(struct drm_fb_helper *helper,
 	/* setup helper */
 	rfbdev->helper.fb = fb;
 
-	strcpy(info->fix.id, "amdgpudrmfb");
-
-	drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
-
 	info->fbops = &amdgpufb_ops;
 
 	tmp = amdgpu_bo_gpu_offset(abo) - adev->gmc.vram_start;
@@ -259,7 +251,7 @@ static int amdgpufb_create(struct drm_fb_helper *helper,
 	info->screen_base = amdgpu_bo_kptr(abo);
 	info->screen_size = amdgpu_bo_size(abo);
 
-	drm_fb_helper_fill_var(info, &rfbdev->helper, sizes->fb_width, sizes->fb_height);
+	drm_fb_helper_fill_info(info, &rfbdev->helper);
 
 	/* setup aperture base/size for vesafb takeover */
 	info->apertures->ranges[0].base = adev->ddev->mode_config.fb_base;
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [PATCH 08/26] drm/armada: Use drm_fb_helper_fill_info
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (6 preceding siblings ...)
  2019-01-24 16:58 ` [PATCH 07/26] drm/amdgpu: Use drm_fb_helper_fill_info Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-24 16:58 ` [PATCH 09/26] drm/ast: " Daniel Vetter
                   ` (17 subsequent siblings)
  25 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: Daniel Vetter, Intel Graphics Development, Russell King, Daniel Vetter

Only changes the name of the fb from "armada-drmfb" to armadafb.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Russell King <linux@armlinux.org.uk>
---
 drivers/gpu/drm/armada/armada_fbdev.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/armada/armada_fbdev.c b/drivers/gpu/drm/armada/armada_fbdev.c
index 8d23700848df..73d1dc53c4f4 100644
--- a/drivers/gpu/drm/armada/armada_fbdev.c
+++ b/drivers/gpu/drm/armada/armada_fbdev.c
@@ -78,8 +78,6 @@ static int armada_fbdev_create(struct drm_fb_helper *fbh,
 		goto err_fballoc;
 	}
 
-	strlcpy(info->fix.id, "armada-drmfb", sizeof(info->fix.id));
-	info->par = fbh;
 	info->fbops = &armada_fb_ops;
 	info->fix.smem_start = obj->phys_addr;
 	info->fix.smem_len = obj->obj.size;
@@ -87,9 +85,7 @@ static int armada_fbdev_create(struct drm_fb_helper *fbh,
 	info->screen_base = ptr;
 	fbh->fb = &dfb->fb;
 
-	drm_fb_helper_fill_fix(info, dfb->fb.pitches[0],
-			       dfb->fb.format->depth);
-	drm_fb_helper_fill_var(info, fbh, sizes->fb_width, sizes->fb_height);
+	drm_fb_helper_fill_info(info, fbh);
 
 	DRM_DEBUG_KMS("allocated %dx%d %dbpp fb: 0x%08llx\n",
 		dfb->fb.width, dfb->fb.height, dfb->fb.format->cpp[0] * 8,
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH 09/26] drm/ast: Use drm_fb_helper_fill_info
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (7 preceding siblings ...)
  2019-01-24 16:58 ` [PATCH 08/26] drm/armada: " Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-24 18:00   ` Sam Ravnborg
  2019-01-24 16:58 ` [PATCH 10/26] drm/cirrus: " Daniel Vetter
                   ` (16 subsequent siblings)
  25 siblings, 1 reply; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: Sam Bobroff, Daniel Vetter, Intel Graphics Development,
	YueHaibing, Alex Deucher, Daniel Vetter, Junwei Zhang,
	Dave Airlie, Sean Paul, Christian König

Should not result in any changes.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Junwei Zhang <Jerry.Zhang@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Sean Paul <sean@poorly.run>
Cc: YueHaibing <yuehaibing@huawei.com>
Cc: Sam Bobroff <sbobroff@linux.ibm.com>
---
 drivers/gpu/drm/ast/ast_drv.h | 2 +-
 drivers/gpu/drm/ast/ast_fb.c  | 7 +------
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/ast/ast_drv.h b/drivers/gpu/drm/ast/ast_drv.h
index bfc65040dfcb..ffce4608e0c5 100644
--- a/drivers/gpu/drm/ast/ast_drv.h
+++ b/drivers/gpu/drm/ast/ast_drv.h
@@ -259,7 +259,7 @@ struct ast_framebuffer {
 };
 
 struct ast_fbdev {
-	struct drm_fb_helper helper;
+	struct drm_fb_helper helper; /* must be first */
 	struct ast_framebuffer afb;
 	void *sysram;
 	int size;
diff --git a/drivers/gpu/drm/ast/ast_fb.c b/drivers/gpu/drm/ast/ast_fb.c
index 2c9f8dd9733a..c3d00be69749 100644
--- a/drivers/gpu/drm/ast/ast_fb.c
+++ b/drivers/gpu/drm/ast/ast_fb.c
@@ -217,8 +217,6 @@ static int astfb_create(struct drm_fb_helper *helper,
 		ret = PTR_ERR(info);
 		goto out;
 	}
-	info->par = afbdev;
-
 	ret = ast_framebuffer_init(dev, &afbdev->afb, &mode_cmd, gobj);
 	if (ret)
 		goto out;
@@ -229,15 +227,12 @@ static int astfb_create(struct drm_fb_helper *helper,
 	fb = &afbdev->afb.base;
 	afbdev->helper.fb = fb;
 
-	strcpy(info->fix.id, "astdrmfb");
-
 	info->fbops = &astfb_ops;
 
 	info->apertures->ranges[0].base = pci_resource_start(dev->pdev, 0);
 	info->apertures->ranges[0].size = pci_resource_len(dev->pdev, 0);
 
-	drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
-	drm_fb_helper_fill_var(info, &afbdev->helper, sizes->fb_width, sizes->fb_height);
+	drm_fb_helper_fill_info(info, &afbdev->helper);
 
 	info->screen_base = sysram;
 	info->screen_size = size;
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [PATCH 10/26] drm/cirrus: Use drm_fb_helper_fill_info
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (8 preceding siblings ...)
  2019-01-24 16:58 ` [PATCH 09/26] drm/ast: " Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-24 16:58   ` Daniel Vetter
                   ` (15 subsequent siblings)
  25 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development; +Cc: Daniel Vetter, Intel Graphics Development, Daniel Vetter

Should not result in any changes.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 drivers/gpu/drm/cirrus/cirrus_drv.h   | 2 +-
 drivers/gpu/drm/cirrus/cirrus_fbdev.c | 8 +-------
 2 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/cirrus/cirrus_drv.h b/drivers/gpu/drm/cirrus/cirrus_drv.h
index f2b2e0d169fa..915709739257 100644
--- a/drivers/gpu/drm/cirrus/cirrus_drv.h
+++ b/drivers/gpu/drm/cirrus/cirrus_drv.h
@@ -143,7 +143,7 @@ struct cirrus_device {
 
 
 struct cirrus_fbdev {
-	struct drm_fb_helper helper;
+	struct drm_fb_helper helper; /* must be first */
 	struct drm_framebuffer *gfb;
 	void *sysram;
 	int size;
diff --git a/drivers/gpu/drm/cirrus/cirrus_fbdev.c b/drivers/gpu/drm/cirrus/cirrus_fbdev.c
index 39df62acac69..a2e69c1df53e 100644
--- a/drivers/gpu/drm/cirrus/cirrus_fbdev.c
+++ b/drivers/gpu/drm/cirrus/cirrus_fbdev.c
@@ -195,8 +195,6 @@ static int cirrusfb_create(struct drm_fb_helper *helper,
 		goto err_vfree;
 	}
 
-	info->par = gfbdev;
-
 	fb = kzalloc(sizeof(*fb), GFP_KERNEL);
 	if (!fb) {
 		ret = -ENOMEM;
@@ -214,13 +212,9 @@ static int cirrusfb_create(struct drm_fb_helper *helper,
 	/* setup helper */
 	gfbdev->helper.fb = fb;
 
-	strcpy(info->fix.id, "cirrusdrmfb");
-
 	info->fbops = &cirrusfb_ops;
 
-	drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
-	drm_fb_helper_fill_var(info, &gfbdev->helper, sizes->fb_width,
-			       sizes->fb_height);
+	drm_fb_helper_fill_info(info, &gfbdev->helper);
 
 	/* setup aperture base/size for vesafb takeover */
 	info->apertures->ranges[0].base = cdev->dev->mode_config.fb_base;
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH 11/26] drm/exynos: Use drm_fb_helper_fill_info
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
@ 2019-01-24 16:58   ` Daniel Vetter
  2019-01-24 16:58 ` [PATCH 02/26] drm: Switch DRIVER_ flags to an enum Daniel Vetter
                     ` (24 subsequent siblings)
  25 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: linux-samsung-soc, Joonyoung Shim, Daniel Vetter,
	Intel Graphics Development, Seung-Woo Kim, Krzysztof Kozlowski,
	Inki Dae, Kyungmin Park, Kukjin Kim, Daniel Vetter,
	linux-arm-kernel

This will give the exynos fbdev a name!

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Joonyoung Shim <jy0922.shim@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Kukjin Kim <kgene@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
---
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
index f057082a9b30..b2018961b9cf 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
@@ -87,12 +87,10 @@ static int exynos_drm_fbdev_update(struct drm_fb_helper *helper,
 		return PTR_ERR(fbi);
 	}
 
-	fbi->par = helper;
 	fbi->flags = FBINFO_FLAG_DEFAULT;
 	fbi->fbops = &exynos_drm_fb_ops;
 
-	drm_fb_helper_fill_fix(fbi, fb->pitches[0], fb->format->depth);
-	drm_fb_helper_fill_var(fbi, helper, sizes->fb_width, sizes->fb_height);
+	drm_fb_helper_fill_info(fbi, helper);
 
 	nr_pages = exynos_gem->size >> PAGE_SHIFT;
 
-- 
2.20.1

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

* [PATCH 11/26] drm/exynos: Use drm_fb_helper_fill_info
@ 2019-01-24 16:58   ` Daniel Vetter
  0 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: linux-samsung-soc, Joonyoung Shim, Daniel Vetter,
	Intel Graphics Development, Seung-Woo Kim, Krzysztof Kozlowski,
	Inki Dae, Kyungmin Park, Kukjin Kim, Daniel Vetter,
	linux-arm-kernel

This will give the exynos fbdev a name!

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Joonyoung Shim <jy0922.shim@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Kukjin Kim <kgene@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
---
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
index f057082a9b30..b2018961b9cf 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
@@ -87,12 +87,10 @@ static int exynos_drm_fbdev_update(struct drm_fb_helper *helper,
 		return PTR_ERR(fbi);
 	}
 
-	fbi->par = helper;
 	fbi->flags = FBINFO_FLAG_DEFAULT;
 	fbi->fbops = &exynos_drm_fb_ops;
 
-	drm_fb_helper_fill_fix(fbi, fb->pitches[0], fb->format->depth);
-	drm_fb_helper_fill_var(fbi, helper, sizes->fb_width, sizes->fb_height);
+	drm_fb_helper_fill_info(fbi, helper);
 
 	nr_pages = exynos_gem->size >> PAGE_SHIFT;
 
-- 
2.20.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH 12/26] drm/gma500: Use drm_fb_helper_fill_info
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (10 preceding siblings ...)
  2019-01-24 16:58   ` Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-24 16:58 ` [PATCH 13/26] drm/hibmc: " Daniel Vetter
                   ` (13 subsequent siblings)
  25 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development; +Cc: Daniel Vetter, Intel Graphics Development, Daniel Vetter

This will change the fb name from "psbdrmfb" to "gma500drmfb".

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
---
 drivers/gpu/drm/gma500/framebuffer.c | 7 +------
 drivers/gpu/drm/gma500/framebuffer.h | 2 +-
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
index adefae58b5fc..c7a5c29f9a69 100644
--- a/drivers/gpu/drm/gma500/framebuffer.c
+++ b/drivers/gpu/drm/gma500/framebuffer.c
@@ -389,7 +389,6 @@ static int psbfb_create(struct psb_fbdev *fbdev,
 		ret = PTR_ERR(info);
 		goto out;
 	}
-	info->par = fbdev;
 
 	mode_cmd.pixel_format = drm_mode_legacy_fb_format(bpp, depth);
 
@@ -402,9 +401,6 @@ static int psbfb_create(struct psb_fbdev *fbdev,
 
 	fbdev->psb_fb_helper.fb = fb;
 
-	drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
-	strcpy(info->fix.id, "psbdrmfb");
-
 	info->flags = FBINFO_DEFAULT;
 	if (dev_priv->ops->accel_2d && pitch_lines > 8)	/* 2D engine */
 		info->fbops = &psbfb_ops;
@@ -428,8 +424,7 @@ static int psbfb_create(struct psb_fbdev *fbdev,
 		info->apertures->ranges[0].size = dev_priv->gtt.stolen_size;
 	}
 
-	drm_fb_helper_fill_var(info, &fbdev->psb_fb_helper,
-				sizes->fb_width, sizes->fb_height);
+	drm_fb_helper_fill_info(info, &fbdev->psb_fb_helper);
 
 	info->fix.mmio_start = pci_resource_start(dev->pdev, 0);
 	info->fix.mmio_len = pci_resource_len(dev->pdev, 0);
diff --git a/drivers/gpu/drm/gma500/framebuffer.h b/drivers/gpu/drm/gma500/framebuffer.h
index 23dc3c5f8f0d..e8e6357f033b 100644
--- a/drivers/gpu/drm/gma500/framebuffer.h
+++ b/drivers/gpu/drm/gma500/framebuffer.h
@@ -34,7 +34,7 @@ struct psb_framebuffer {
 };
 
 struct psb_fbdev {
-	struct drm_fb_helper psb_fb_helper;
+	struct drm_fb_helper psb_fb_helper; /* must be first */
 	struct psb_framebuffer pfb;
 };
 
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [PATCH 13/26] drm/hibmc: Use drm_fb_helper_fill_info
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (11 preceding siblings ...)
  2019-01-24 16:58 ` [PATCH 12/26] drm/gma500: " Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-24 16:58 ` [PATCH 14/26] drm/i915: " Daniel Vetter
                   ` (12 subsequent siblings)
  25 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: Ajit Negi, Daniel Vetter, Intel Graphics Development, John Garry,
	Xinliang Liu, Junwei Zhang, Souptick Joarder, Alex Deucher,
	Daniel Vetter, Christian König

Should not result in any changes.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Junwei Zhang <Jerry.Zhang@amd.com>
Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: Ajit Negi <ajitn.linux@gmail.com>
Cc: Souptick Joarder <jrdr.linux@gmail.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: John Garry <john.garry@huawei.com>
---
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h   | 2 +-
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c | 9 +--------
 2 files changed, 2 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h
index 3c168ae77b0c..0a381c22de26 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h
@@ -31,7 +31,7 @@ struct hibmc_framebuffer {
 };
 
 struct hibmc_fbdev {
-	struct drm_fb_helper helper;
+	struct drm_fb_helper helper; /* must be first */
 	struct hibmc_framebuffer *fb;
 	int size;
 };
diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c
index de9d7cc97e44..620fca7e2cdc 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c
@@ -116,8 +116,6 @@ static int hibmc_drm_fb_create(struct drm_fb_helper *helper,
 		goto out_release_fbi;
 	}
 
-	info->par = hi_fbdev;
-
 	hi_fbdev->fb = hibmc_framebuffer_init(priv->dev, &mode_cmd, gobj);
 	if (IS_ERR(hi_fbdev->fb)) {
 		ret = PTR_ERR(hi_fbdev->fb);
@@ -129,14 +127,9 @@ static int hibmc_drm_fb_create(struct drm_fb_helper *helper,
 	priv->fbdev->size = size;
 	hi_fbdev->helper.fb = &hi_fbdev->fb->fb;
 
-	strcpy(info->fix.id, "hibmcdrmfb");
-
 	info->fbops = &hibmc_drm_fb_ops;
 
-	drm_fb_helper_fill_fix(info, hi_fbdev->fb->fb.pitches[0],
-			       hi_fbdev->fb->fb.format->depth);
-	drm_fb_helper_fill_var(info, &priv->fbdev->helper, sizes->fb_width,
-			       sizes->fb_height);
+	drm_fb_helper_fill_info(info, &priv->fbdev->helper);
 
 	info->screen_base = bo->kmap.virtual;
 	info->screen_size = size;
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [PATCH 14/26] drm/i915: Use drm_fb_helper_fill_info
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (12 preceding siblings ...)
  2019-01-24 16:58 ` [PATCH 13/26] drm/hibmc: " Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-24 16:58 ` [PATCH 15/26] drm/mga200g: " Daniel Vetter
                   ` (11 subsequent siblings)
  25 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: Daniel Vetter, Intel Graphics Development, Rodrigo Vivi, Daniel Vetter

This changes the fb name from "inteldrmfb" to "i915drmfb".

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: intel-gfx@lists.freedesktop.org
---
 drivers/gpu/drm/i915/intel_fbdev.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_fbdev.c b/drivers/gpu/drm/i915/intel_fbdev.c
index f37d2aee24f5..29800fdcf830 100644
--- a/drivers/gpu/drm/i915/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/intel_fbdev.c
@@ -235,12 +235,8 @@ static int intelfb_create(struct drm_fb_helper *helper,
 		goto out_unpin;
 	}
 
-	info->par = helper;
-
 	ifbdev->helper.fb = fb;
 
-	strcpy(info->fix.id, "inteldrmfb");
-
 	info->fbops = &intelfb_ops;
 
 	/* setup aperture base/size for vesafb takeover */
@@ -259,8 +255,7 @@ static int intelfb_create(struct drm_fb_helper *helper,
 	info->screen_base = vaddr;
 	info->screen_size = vma->node.size;
 
-	drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
-	drm_fb_helper_fill_var(info, &ifbdev->helper, sizes->fb_width, sizes->fb_height);
+	drm_fb_helper_fill_info(info, &ifbdev->helper);
 
 	/* If the object is shmemfs backed, it will have given us zeroed pages.
 	 * If the object is stolen however, it will be full of whatever
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [PATCH 15/26] drm/mga200g: Use drm_fb_helper_fill_info
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (13 preceding siblings ...)
  2019-01-24 16:58 ` [PATCH 14/26] drm/i915: " Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
       [not found] ` <20190124165831.16427-1-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
                   ` (10 subsequent siblings)
  25 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: Daniel Vetter, Intel Graphics Development, Junwei Zhang,
	Daniel Vetter, Alex Deucher, Dave Airlie, Christian König

Should not result in any changes.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: Junwei Zhang <Jerry.Zhang@amd.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/mgag200/mgag200_drv.h | 2 +-
 drivers/gpu/drm/mgag200/mgag200_fb.c  | 8 +-------
 2 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/mgag200/mgag200_drv.h b/drivers/gpu/drm/mgag200/mgag200_drv.h
index 0aaedc554879..71a235c2d848 100644
--- a/drivers/gpu/drm/mgag200/mgag200_drv.h
+++ b/drivers/gpu/drm/mgag200/mgag200_drv.h
@@ -113,7 +113,7 @@ struct mga_framebuffer {
 };
 
 struct mga_fbdev {
-	struct drm_fb_helper helper;
+	struct drm_fb_helper helper; /* must be first */
 	struct mga_framebuffer mfb;
 	void *sysram;
 	int size;
diff --git a/drivers/gpu/drm/mgag200/mgag200_fb.c b/drivers/gpu/drm/mgag200/mgag200_fb.c
index 6893934b26c0..cbb6afbb4ab6 100644
--- a/drivers/gpu/drm/mgag200/mgag200_fb.c
+++ b/drivers/gpu/drm/mgag200/mgag200_fb.c
@@ -195,8 +195,6 @@ static int mgag200fb_create(struct drm_fb_helper *helper,
 		goto err_alloc_fbi;
 	}
 
-	info->par = mfbdev;
-
 	ret = mgag200_framebuffer_init(dev, &mfbdev->mfb, &mode_cmd, gobj);
 	if (ret)
 		goto err_alloc_fbi;
@@ -209,17 +207,13 @@ static int mgag200fb_create(struct drm_fb_helper *helper,
 	/* setup helper */
 	mfbdev->helper.fb = fb;
 
-	strcpy(info->fix.id, "mgadrmfb");
-
 	info->fbops = &mgag200fb_ops;
 
 	/* setup aperture base/size for vesafb takeover */
 	info->apertures->ranges[0].base = mdev->dev->mode_config.fb_base;
 	info->apertures->ranges[0].size = mdev->mc.vram_size;
 
-	drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
-	drm_fb_helper_fill_var(info, &mfbdev->helper, sizes->fb_width,
-			       sizes->fb_height);
+	drm_fb_helper_fill_info(info, &mfbdev->helper);
 
 	info->screen_base = sysram;
 	info->screen_size = size;
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [PATCH 16/26] drm/bochs: Use drm_fb_helper_fill_info
       [not found] ` <20190124165831.16427-1-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
@ 2019-01-24 16:58   ` Daniel Vetter
  2019-01-24 16:58     ` Daniel Vetter
  1 sibling, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: Daniel Vetter, Intel Graphics Development, Rob Clark,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Daniel Vetter,
	freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

This will change the fb name from "msm" to "msmdrmfb".

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: linux-arm-msm@vger.kernel.org
Cc: freedreno@lists.freedesktop.org
---
 drivers/gpu/drm/msm/msm_fbdev.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/msm/msm_fbdev.c b/drivers/gpu/drm/msm/msm_fbdev.c
index c03e860ba737..29f71ae1f634 100644
--- a/drivers/gpu/drm/msm/msm_fbdev.c
+++ b/drivers/gpu/drm/msm/msm_fbdev.c
@@ -122,13 +122,9 @@ static int msm_fbdev_create(struct drm_fb_helper *helper,
 	fbdev->fb = fb;
 	helper->fb = fb;
 
-	fbi->par = helper;
 	fbi->fbops = &msm_fb_ops;
 
-	strcpy(fbi->fix.id, "msm");
-
-	drm_fb_helper_fill_fix(fbi, fb->pitches[0], fb->format->depth);
-	drm_fb_helper_fill_var(fbi, helper, sizes->fb_width, sizes->fb_height);
+	drm_fb_helper_fill_info(fbi, helper);
 
 	dev->mode_config.fb_base = paddr;
 
-- 
2.20.1

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

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

* [PATCH 17/26] drm/nouveau: Use drm_fb_helper_fill_info
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (15 preceding siblings ...)
       [not found] ` <20190124165831.16427-1-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-24 16:58 ` [PATCH 18/26] drm/omap: " Daniel Vetter
                   ` (8 subsequent siblings)
  25 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: nouveau, Daniel Vetter, Intel Graphics Development, Ben Skeggs,
	Daniel Vetter

This changes the fb name from "nouveaufb" to "nouveaudrmfb".

Aside: I wonder whether the in_interrupt() check is good enough for
the nouveau acceleration. Cargo-cult says drm_can_sleep() is needed,
which isn't actually working if you pick a .config without PREEMPT.
For the generic fbdev defio support we've gone with offloading
everything to a worker. For the non-accel callbacks (set_par, blank
and friends) checking for oops_in_progress is good enough to catch all
the evil calling contexts.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: nouveau@lists.freedesktop.org
---
 drivers/gpu/drm/nouveau/nouveau_fbcon.c | 7 +------
 drivers/gpu/drm/nouveau/nouveau_fbcon.h | 2 +-
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
index 67572408d9ae..3a3d454b65e3 100644
--- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c
+++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
@@ -366,12 +366,9 @@ nouveau_fbcon_create(struct drm_fb_helper *helper,
 		goto out_unlock;
 	}
 
-	info->par = fbcon;
-
 	/* setup helper */
 	fbcon->helper.fb = &fb->base;
 
-	strcpy(info->fix.id, "nouveaufb");
 	if (!chan)
 		info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_DISABLED;
 	else
@@ -386,9 +383,7 @@ nouveau_fbcon_create(struct drm_fb_helper *helper,
 	info->screen_base = nvbo_kmap_obj_iovirtual(fb->nvbo);
 	info->screen_size = fb->nvbo->bo.mem.num_pages << PAGE_SHIFT;
 
-	drm_fb_helper_fill_fix(info, fb->base.pitches[0],
-			       fb->base.format->depth);
-	drm_fb_helper_fill_var(info, &fbcon->helper, sizes->fb_width, sizes->fb_height);
+	drm_fb_helper_fill_info(info, &fbcon->helper);
 
 	/* Use default scratch pixmap (info->pixmap.flags = FB_PIXMAP_SYSTEM) */
 
diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.h b/drivers/gpu/drm/nouveau/nouveau_fbcon.h
index db9d52047ef8..73a7eeba3973 100644
--- a/drivers/gpu/drm/nouveau/nouveau_fbcon.h
+++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.h
@@ -32,7 +32,7 @@
 #include "nouveau_display.h"
 
 struct nouveau_fbdev {
-	struct drm_fb_helper helper;
+	struct drm_fb_helper helper; /* must be first */
 	unsigned int saved_flags;
 	struct nvif_object surf2d;
 	struct nvif_object clip;
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [PATCH 18/26] drm/omap: Use drm_fb_helper_fill_info
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (16 preceding siblings ...)
  2019-01-24 16:58 ` [PATCH 17/26] drm/nouveau: Use drm_fb_helper_fill_info Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-24 16:58 ` [PATCH 19/26] drm/qxl: " Daniel Vetter
                   ` (7 subsequent siblings)
  25 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: Daniel Vetter, Intel Graphics Development, Tomi Valkeinen, Daniel Vetter

This changes the fb name from "omapdrm" to "omapdrmfb".

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 drivers/gpu/drm/omapdrm/omap_fbdev.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/omap_fbdev.c b/drivers/gpu/drm/omapdrm/omap_fbdev.c
index 851c59f07eb1..16d8d6217f72 100644
--- a/drivers/gpu/drm/omapdrm/omap_fbdev.c
+++ b/drivers/gpu/drm/omapdrm/omap_fbdev.c
@@ -183,13 +183,9 @@ static int omap_fbdev_create(struct drm_fb_helper *helper,
 	fbdev->fb = fb;
 	helper->fb = fb;
 
-	fbi->par = helper;
 	fbi->fbops = &omap_fb_ops;
 
-	strcpy(fbi->fix.id, MODULE_NAME);
-
-	drm_fb_helper_fill_fix(fbi, fb->pitches[0], fb->format->depth);
-	drm_fb_helper_fill_var(fbi, helper, sizes->fb_width, sizes->fb_height);
+	drm_fb_helper_fill_info(fbi, helper);
 
 	dev->mode_config.fb_base = dma_addr;
 
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [PATCH 19/26] drm/qxl: Use drm_fb_helper_fill_info
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (17 preceding siblings ...)
  2019-01-24 16:58 ` [PATCH 18/26] drm/omap: " Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-25  6:39   ` Gerd Hoffmann
  2019-01-25  6:39   ` Gerd Hoffmann
  2019-01-24 16:58 ` [PATCH 20/26] drm/radeon: " Daniel Vetter
                   ` (6 subsequent siblings)
  25 siblings, 2 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: spice-devel, Daniel Vetter, Intel Graphics Development,
	virtualization, Daniel Vetter, Dave Airlie

This should not result in any changes.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: virtualization@lists.linux-foundation.org
Cc: spice-devel@lists.freedesktop.org
---
 drivers/gpu/drm/qxl/qxl_fb.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/qxl/qxl_fb.c b/drivers/gpu/drm/qxl/qxl_fb.c
index d028471597ef..22dc9a7a643b 100644
--- a/drivers/gpu/drm/qxl/qxl_fb.c
+++ b/drivers/gpu/drm/qxl/qxl_fb.c
@@ -219,8 +219,6 @@ static int qxlfb_create(struct drm_fb_helper *helper,
 		goto out_unref;
 	}
 
-	info->par = helper;
-
 	fb = drm_gem_fbdev_fb_create(&qdev->ddev, sizes, 64, gobj,
 				     &qxlfb_fb_funcs);
 	if (IS_ERR(fb)) {
@@ -232,10 +230,6 @@ static int qxlfb_create(struct drm_fb_helper *helper,
 	/* setup helper with fb data */
 	qdev->fb_helper.fb = fb;
 
-	strcpy(info->fix.id, "qxldrmfb");
-
-	drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
-
 	info->fbops = &qxlfb_ops;
 
 	/*
@@ -247,8 +241,7 @@ static int qxlfb_create(struct drm_fb_helper *helper,
 	info->screen_base = shadow;
 	info->screen_size = gobj->size;
 
-	drm_fb_helper_fill_var(info, &qdev->fb_helper, sizes->fb_width,
-			       sizes->fb_height);
+	drm_fb_helper_fill_info(info, &qdev->fb_helper);
 
 	/* setup aperture base/size for vesafb takeover */
 	info->apertures->ranges[0].base = qdev->ddev.mode_config.fb_base;
-- 
2.20.1

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

* [PATCH 20/26] drm/radeon: Use drm_fb_helper_fill_info
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (18 preceding siblings ...)
  2019-01-24 16:58 ` [PATCH 19/26] drm/qxl: " Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-24 16:58 ` [PATCH 21/26] drm/rockchip: " Daniel Vetter
                   ` (5 subsequent siblings)
  25 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: David (ChunMing) Zhou, Daniel Vetter, Intel Graphics Development,
	amd-gfx, Alex Deucher, Daniel Vetter, Christian König

This should not result in any changes.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: "David (ChunMing) Zhou" <David1.Zhou@amd.com>
Cc: amd-gfx@lists.freedesktop.org
---
 drivers/gpu/drm/radeon/radeon_fb.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_fb.c b/drivers/gpu/drm/radeon/radeon_fb.c
index d50bff20f7de..31523a02039d 100644
--- a/drivers/gpu/drm/radeon/radeon_fb.c
+++ b/drivers/gpu/drm/radeon/radeon_fb.c
@@ -42,7 +42,7 @@
  * the helper contains a pointer to radeon framebuffer baseclass.
  */
 struct radeon_fbdev {
-	struct drm_fb_helper helper;
+	struct drm_fb_helper helper; /* must be first */
 	struct drm_framebuffer fb;
 	struct radeon_device *rdev;
 };
@@ -247,8 +247,6 @@ static int radeonfb_create(struct drm_fb_helper *helper,
 	/* radeon resume is fragile and needs a vt switch to help it along */
 	info->skip_vt_switch = false;
 
-	info->par = rfbdev;
-
 	ret = radeon_framebuffer_init(rdev->ddev, &rfbdev->fb, &mode_cmd, gobj);
 	if (ret) {
 		DRM_ERROR("failed to initialize framebuffer %d\n", ret);
@@ -262,10 +260,6 @@ static int radeonfb_create(struct drm_fb_helper *helper,
 
 	memset_io(rbo->kptr, 0x0, radeon_bo_size(rbo));
 
-	strcpy(info->fix.id, "radeondrmfb");
-
-	drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
-
 	info->fbops = &radeonfb_ops;
 
 	tmp = radeon_bo_gpu_offset(rbo) - rdev->mc.vram_start;
@@ -274,7 +268,7 @@ static int radeonfb_create(struct drm_fb_helper *helper,
 	info->screen_base = rbo->kptr;
 	info->screen_size = radeon_bo_size(rbo);
 
-	drm_fb_helper_fill_var(info, &rfbdev->helper, sizes->fb_width, sizes->fb_height);
+	drm_fb_helper_fill_info(info, &rfbdev->helper);
 
 	/* setup aperture base/size for vesafb takeover */
 	info->apertures->ranges[0].base = rdev->ddev->mode_config.fb_base;
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH 21/26] drm/rockchip: Use drm_fb_helper_fill_info
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (19 preceding siblings ...)
  2019-01-24 16:58 ` [PATCH 20/26] drm/radeon: " Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-27 19:18     ` Heiko Stuebner
  2019-01-24 16:58 ` [PATCH 22/26] drm/qxl: " Daniel Vetter
                   ` (4 subsequent siblings)
  25 siblings, 1 reply; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: Heiko Stübner, Daniel Vetter, Intel Graphics Development,
	Sandy Huang, linux-rockchip, Daniel Vetter, linux-arm-kernel

This will set an fb name for the first time!

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Sandy Huang <hjc@rock-chips.com>
Cc: "Heiko Stübner" <heiko@sntech.de>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
---
 drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
index 7bd3b89022be..d12164878e05 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
@@ -90,13 +90,11 @@ static int rockchip_drm_fbdev_create(struct drm_fb_helper *helper,
 		goto out;
 	}
 
-	fbi->par = helper;
 	fbi->flags = FBINFO_FLAG_DEFAULT;
 	fbi->fbops = &rockchip_drm_fbdev_ops;
 
 	fb = helper->fb;
-	drm_fb_helper_fill_fix(fbi, fb->pitches[0], fb->format->depth);
-	drm_fb_helper_fill_var(fbi, helper, sizes->fb_width, sizes->fb_height);
+	drm_fb_helper_fill_info(fbi, helper);
 
 	offset = fbi->var.xoffset * bytes_per_pixel;
 	offset += fbi->var.yoffset * fb->pitches[0];
-- 
2.20.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH 22/26] drm/qxl: Use drm_fb_helper_fill_info
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (20 preceding siblings ...)
  2019-01-24 16:58 ` [PATCH 21/26] drm/rockchip: " Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-25 15:14   ` Thierry Reding
  2019-01-24 16:58 ` [PATCH 23/26] drm/udl: " Daniel Vetter
                   ` (3 subsequent siblings)
  25 siblings, 1 reply; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: Daniel Vetter, Intel Graphics Development, Jonathan Hunter,
	linux-tegra, Daniel Vetter

Another driver that didn't set fbinfo->fix.id before.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Jonathan Hunter <jonathanh@nvidia.com>
Cc: linux-tegra@vger.kernel.org
---
 drivers/gpu/drm/tegra/fb.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index 5ee48a6bb3ad..82348ddd0b83 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -255,12 +255,10 @@ static int tegra_fbdev_probe(struct drm_fb_helper *helper,
 	helper->fb = fb;
 	helper->fbdev = info;
 
-	info->par = helper;
 	info->flags = FBINFO_FLAG_DEFAULT;
 	info->fbops = &tegra_fb_ops;
 
-	drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
-	drm_fb_helper_fill_var(info, helper, fb->width, fb->height);
+	drm_fb_helper_fill_info(info, helper);
 
 	offset = info->var.xoffset * bytes_per_pixel +
 		 info->var.yoffset * fb->pitches[0];
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH 23/26] drm/udl: Use drm_fb_helper_fill_info
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (21 preceding siblings ...)
  2019-01-24 16:58 ` [PATCH 22/26] drm/qxl: " Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-24 16:58 ` [PATCH 24/26] staging/vboxvideo: " Daniel Vetter
                   ` (2 subsequent siblings)
  25 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: Emil Lundmark, Greg Kroah-Hartman, Daniel Vetter,
	Intel Graphics Development, Mikulas Patocka, Daniel Vetter,
	Dave Airlie, Sean Paul

This should not result in any changes.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Sean Paul <sean@poorly.run>
Cc: Mikulas Patocka <mpatocka@redhat.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Emil Lundmark <lndmrk@chromium.org>
---
 drivers/gpu/drm/udl/udl_fb.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c
index dd9ffded223b..3e4804895d2e 100644
--- a/drivers/gpu/drm/udl/udl_fb.c
+++ b/drivers/gpu/drm/udl/udl_fb.c
@@ -32,7 +32,7 @@ module_param(fb_bpp, int, S_IWUSR | S_IRUSR | S_IWGRP | S_IRGRP);
 module_param(fb_defio, int, S_IWUSR | S_IRUSR | S_IWGRP | S_IRGRP);
 
 struct udl_fbdev {
-	struct drm_fb_helper helper;
+	struct drm_fb_helper helper; /* must be first */
 	struct udl_framebuffer ufb;
 	int fb_count;
 };
@@ -402,15 +402,12 @@ static int udlfb_create(struct drm_fb_helper *helper,
 
 	ufbdev->helper.fb = fb;
 
-	strcpy(info->fix.id, "udldrmfb");
-
 	info->screen_base = ufbdev->ufb.obj->vmapping;
 	info->fix.smem_len = size;
 	info->fix.smem_start = (unsigned long)ufbdev->ufb.obj->vmapping;
 
 	info->fbops = &udlfb_ops;
-	drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
-	drm_fb_helper_fill_var(info, &ufbdev->helper, sizes->fb_width, sizes->fb_height);
+	drm_fb_helper_fill_info(info, &ufbdev->helper);
 
 	DRM_DEBUG_KMS("allocated %dx%d vmal %p\n",
 		      fb->width, fb->height,
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [PATCH 24/26] staging/vboxvideo: Use drm_fb_helper_fill_info
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (22 preceding siblings ...)
  2019-01-24 16:58 ` [PATCH 23/26] drm/udl: " Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-25  8:51   ` Greg Kroah-Hartman
  2019-01-24 16:58 ` [PATCH 25/26] drm/fb-helper: Unexport fill_{var,info} Daniel Vetter
  2019-01-24 17:01 ` ✗ Fi.CI.BAT: failure for some cleanups, mostly around fbdev emulation Patchwork
  25 siblings, 1 reply; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: Alexander Kapshuk, Bartlomiej Zolnierkiewicz, Daniel Vetter,
	Intel Graphics Development, Hans de Goede, Greg Kroah-Hartman,
	Daniel Vetter

This should not result in any changes.

v2: Rebase over vbox changes - vbox gained it's own line to fill
fix.id.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Alexander Kapshuk <alexander.kapshuk@gmail.com>
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
---
 drivers/staging/vboxvideo/vbox_fb.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/drivers/staging/vboxvideo/vbox_fb.c b/drivers/staging/vboxvideo/vbox_fb.c
index 397496cf0bdf..1da4cb7647b8 100644
--- a/drivers/staging/vboxvideo/vbox_fb.c
+++ b/drivers/staging/vboxvideo/vbox_fb.c
@@ -88,13 +88,9 @@ int vboxfb_create(struct drm_fb_helper *helper,
 	if (IS_ERR(info->screen_base))
 		return PTR_ERR(info->screen_base);
 
-	info->par = helper;
-
 	fb = &vbox->afb.base;
 	helper->fb = fb;
 
-	strcpy(info->fix.id, "vboxdrmfb");
-
 	info->fbops = &vboxfb_ops;
 
 	/*
@@ -104,9 +100,7 @@ int vboxfb_create(struct drm_fb_helper *helper,
 	info->apertures->ranges[0].base = pci_resource_start(pdev, 0);
 	info->apertures->ranges[0].size = pci_resource_len(pdev, 0);
 
-	drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
-	drm_fb_helper_fill_var(info, helper, sizes->fb_width,
-			       sizes->fb_height);
+	drm_fb_helper_fill_info(info, helper);
 
 	gpu_addr = vbox_bo_gpu_offset(bo);
 	info->fix.smem_start = info->apertures->ranges[0].base + gpu_addr;
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [PATCH 25/26] drm/fb-helper: Unexport fill_{var,info}
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (23 preceding siblings ...)
  2019-01-24 16:58 ` [PATCH 24/26] staging/vboxvideo: " Daniel Vetter
@ 2019-01-24 16:58 ` Daniel Vetter
  2019-01-24 17:01 ` ✗ Fi.CI.BAT: failure for some cleanups, mostly around fbdev emulation Patchwork
  25 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development; +Cc: Daniel Vetter, Intel Graphics Development, Daniel Vetter

Not used by drivers anymore.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 drivers/gpu/drm/drm_fb_helper.c | 38 +++++----------------------------
 include/drm/drm_fb_helper.h     |  4 ----
 2 files changed, 5 insertions(+), 37 deletions(-)

diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index cbe7fda3f8af..9c38c48ba3aa 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -2037,21 +2037,8 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
 	return 0;
 }
 
-/**
- * drm_fb_helper_fill_fix - initializes fixed fbdev information
- * @info: fbdev registered by the helper
- * @pitch: desired pitch
- * @depth: desired depth
- *
- * Helper to fill in the fixed fbdev information useful for a non-accelerated
- * fbdev emulations. Drivers which support acceleration methods which impose
- * additional constraints need to set up their own limits.
- *
- * Drivers should call this (or their equivalent setup code) from their
- * &drm_fb_helper_funcs.fb_probe callback.
- */
-void drm_fb_helper_fill_fix(struct fb_info *info, uint32_t pitch,
-			    uint32_t depth)
+static void drm_fb_helper_fill_fix(struct fb_info *info, uint32_t pitch,
+				   uint32_t depth)
 {
 	info->fix.type = FB_TYPE_PACKED_PIXELS;
 	info->fix.visual = depth == 8 ? FB_VISUAL_PSEUDOCOLOR :
@@ -2066,24 +2053,10 @@ void drm_fb_helper_fill_fix(struct fb_info *info, uint32_t pitch,
 
 	info->fix.line_length = pitch;
 }
-EXPORT_SYMBOL(drm_fb_helper_fill_fix);
 
-/**
- * drm_fb_helper_fill_var - initalizes variable fbdev information
- * @info: fbdev instance to set up
- * @fb_helper: fb helper instance to use as template
- * @fb_width: desired fb width
- * @fb_height: desired fb height
- *
- * Sets up the variable fbdev metainformation from the given fb helper instance
- * and the drm framebuffer allocated in &drm_fb_helper.fb.
- *
- * Drivers should call this (or their equivalent setup code) from their
- * &drm_fb_helper_funcs.fb_probe callback after having allocated the fbdev
- * backing storage framebuffer.
- */
-void drm_fb_helper_fill_var(struct fb_info *info, struct drm_fb_helper *fb_helper,
-			    uint32_t fb_width, uint32_t fb_height)
+static void drm_fb_helper_fill_var(struct fb_info *info,
+				   struct drm_fb_helper *fb_helper,
+				   uint32_t fb_width, uint32_t fb_height)
 {
 	struct drm_framebuffer *fb = fb_helper->fb;
 
@@ -2103,7 +2076,6 @@ void drm_fb_helper_fill_var(struct fb_info *info, struct drm_fb_helper *fb_helpe
 	info->var.xres = fb_width;
 	info->var.yres = fb_height;
 }
-EXPORT_SYMBOL(drm_fb_helper_fill_var);
 
 /**
  * drm_fb_helper_fill_info - initializes fbdev information
diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h
index e8d92724f472..9c2f924d67c5 100644
--- a/include/drm/drm_fb_helper.h
+++ b/include/drm/drm_fb_helper.h
@@ -288,10 +288,6 @@ int drm_fb_helper_restore_fbdev_mode_unlocked(struct drm_fb_helper *fb_helper);
 
 struct fb_info *drm_fb_helper_alloc_fbi(struct drm_fb_helper *fb_helper);
 void drm_fb_helper_unregister_fbi(struct drm_fb_helper *fb_helper);
-void drm_fb_helper_fill_var(struct fb_info *info, struct drm_fb_helper *fb_helper,
-			    uint32_t fb_width, uint32_t fb_height);
-void drm_fb_helper_fill_fix(struct fb_info *info, uint32_t pitch,
-			    uint32_t depth);
 void drm_fb_helper_fill_info(struct fb_info *info, struct drm_fb_helper *fb_helper);
 
 void drm_fb_helper_unlink_fbi(struct drm_fb_helper *fb_helper);
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [PATCH 26/26] drm/<drivers>: Don't set FBINFO_(FLAG_)DEFAULT
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
@ 2019-01-24 16:58     ` Daniel Vetter
  2019-01-24 16:58 ` [PATCH 02/26] drm: Switch DRIVER_ flags to an enum Daniel Vetter
                       ` (24 subsequent siblings)
  25 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: Heiko Stübner, Daniel Vetter, Thierry Reding,
	Patrik Jakobsson, Daniel Vetter,
	linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA, Joonyoung Shim,
	Krzysztof Kozlowski, Jonathan Hunter,
	linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Kukjin Kim,
	Ben Skeggs, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	Alexander Kapshuk, Bartlomiej Zolnierkiewicz,
	Intel Graphics Development, Inki Dae, Hans de Goede,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	Greg Kroah-Hartman

It's 0.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Joonyoung Shim <jy0922.shim@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Kukjin Kim <kgene@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Sandy Huang <hjc@rock-chips.com>
Cc: "Heiko Stübner" <heiko@sntech.de>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Jonathan Hunter <jonathanh@nvidia.com>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Cc: Alexander Kapshuk <alexander.kapshuk@gmail.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: nouveau@lists.freedesktop.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-tegra@vger.kernel.org
---
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c     | 1 -
 drivers/gpu/drm/gma500/framebuffer.c          | 1 -
 drivers/gpu/drm/nouveau/nouveau_fbcon.c       | 4 ++--
 drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 1 -
 drivers/gpu/drm/tegra/fb.c                    | 1 -
 5 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
index b2018961b9cf..00bfcd28e589 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
@@ -87,7 +87,6 @@ static int exynos_drm_fbdev_update(struct drm_fb_helper *helper,
 		return PTR_ERR(fbi);
 	}
 
-	fbi->flags = FBINFO_FLAG_DEFAULT;
 	fbi->fbops = &exynos_drm_fb_ops;
 
 	drm_fb_helper_fill_info(fbi, helper);
diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
index c7a5c29f9a69..3b59dbadfa63 100644
--- a/drivers/gpu/drm/gma500/framebuffer.c
+++ b/drivers/gpu/drm/gma500/framebuffer.c
@@ -401,7 +401,6 @@ static int psbfb_create(struct psb_fbdev *fbdev,
 
 	fbdev->psb_fb_helper.fb = fb;
 
-	info->flags = FBINFO_DEFAULT;
 	if (dev_priv->ops->accel_2d && pitch_lines > 8)	/* 2D engine */
 		info->fbops = &psbfb_ops;
 	else if (gtt_roll) {	/* GTT rolling seems best */
diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
index 3a3d454b65e3..1136ee26005f 100644
--- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c
+++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
@@ -370,9 +370,9 @@ nouveau_fbcon_create(struct drm_fb_helper *helper,
 	fbcon->helper.fb = &fb->base;
 
 	if (!chan)
-		info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_DISABLED;
+		info->flags = FBINFO_HWACCEL_DISABLED;
 	else
-		info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_COPYAREA |
+		info->flags = FBINFO_HWACCEL_COPYAREA |
 			      FBINFO_HWACCEL_FILLRECT |
 			      FBINFO_HWACCEL_IMAGEBLIT;
 	info->fbops = &nouveau_fbcon_sw_ops;
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
index d12164878e05..fed7d7698164 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
@@ -90,7 +90,6 @@ static int rockchip_drm_fbdev_create(struct drm_fb_helper *helper,
 		goto out;
 	}
 
-	fbi->flags = FBINFO_FLAG_DEFAULT;
 	fbi->fbops = &rockchip_drm_fbdev_ops;
 
 	fb = helper->fb;
diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index 82348ddd0b83..ea82184073bd 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -255,7 +255,6 @@ static int tegra_fbdev_probe(struct drm_fb_helper *helper,
 	helper->fb = fb;
 	helper->fbdev = info;
 
-	info->flags = FBINFO_FLAG_DEFAULT;
 	info->fbops = &tegra_fb_ops;
 
 	drm_fb_helper_fill_info(info, helper);
-- 
2.20.1


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

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

* [PATCH 26/26] drm/<drivers>: Don't set FBINFO_(FLAG_)DEFAULT
@ 2019-01-24 16:58     ` Daniel Vetter
  0 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 16:58 UTC (permalink / raw)
  To: DRI Development
  Cc: Heiko Stübner, Daniel Vetter, Thierry Reding,
	Patrik Jakobsson, Daniel Vetter, linux-samsung-soc,
	Joonyoung Shim, Krzysztof Kozlowski, Jonathan Hunter,
	linux-rockchip, Kukjin Kim, Ben Skeggs, nouveau,
	Alexander Kapshuk, Bartlomiej Zolnierkiewicz,
	Intel Graphics Development, Inki Dae, Hans de Goede, linux-tegra,
	linux-arm-kernel, Greg Kroah-Hartman, Seung-Woo Kim, Sandy Huang,
	Kyungmin Park

It's 0.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Joonyoung Shim <jy0922.shim@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Kukjin Kim <kgene@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Sandy Huang <hjc@rock-chips.com>
Cc: "Heiko Stübner" <heiko@sntech.de>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Jonathan Hunter <jonathanh@nvidia.com>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Cc: Alexander Kapshuk <alexander.kapshuk@gmail.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: nouveau@lists.freedesktop.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-tegra@vger.kernel.org
---
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c     | 1 -
 drivers/gpu/drm/gma500/framebuffer.c          | 1 -
 drivers/gpu/drm/nouveau/nouveau_fbcon.c       | 4 ++--
 drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 1 -
 drivers/gpu/drm/tegra/fb.c                    | 1 -
 5 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
index b2018961b9cf..00bfcd28e589 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
@@ -87,7 +87,6 @@ static int exynos_drm_fbdev_update(struct drm_fb_helper *helper,
 		return PTR_ERR(fbi);
 	}
 
-	fbi->flags = FBINFO_FLAG_DEFAULT;
 	fbi->fbops = &exynos_drm_fb_ops;
 
 	drm_fb_helper_fill_info(fbi, helper);
diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
index c7a5c29f9a69..3b59dbadfa63 100644
--- a/drivers/gpu/drm/gma500/framebuffer.c
+++ b/drivers/gpu/drm/gma500/framebuffer.c
@@ -401,7 +401,6 @@ static int psbfb_create(struct psb_fbdev *fbdev,
 
 	fbdev->psb_fb_helper.fb = fb;
 
-	info->flags = FBINFO_DEFAULT;
 	if (dev_priv->ops->accel_2d && pitch_lines > 8)	/* 2D engine */
 		info->fbops = &psbfb_ops;
 	else if (gtt_roll) {	/* GTT rolling seems best */
diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
index 3a3d454b65e3..1136ee26005f 100644
--- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c
+++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
@@ -370,9 +370,9 @@ nouveau_fbcon_create(struct drm_fb_helper *helper,
 	fbcon->helper.fb = &fb->base;
 
 	if (!chan)
-		info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_DISABLED;
+		info->flags = FBINFO_HWACCEL_DISABLED;
 	else
-		info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_COPYAREA |
+		info->flags = FBINFO_HWACCEL_COPYAREA |
 			      FBINFO_HWACCEL_FILLRECT |
 			      FBINFO_HWACCEL_IMAGEBLIT;
 	info->fbops = &nouveau_fbcon_sw_ops;
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
index d12164878e05..fed7d7698164 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
@@ -90,7 +90,6 @@ static int rockchip_drm_fbdev_create(struct drm_fb_helper *helper,
 		goto out;
 	}
 
-	fbi->flags = FBINFO_FLAG_DEFAULT;
 	fbi->fbops = &rockchip_drm_fbdev_ops;
 
 	fb = helper->fb;
diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index 82348ddd0b83..ea82184073bd 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -255,7 +255,6 @@ static int tegra_fbdev_probe(struct drm_fb_helper *helper,
 	helper->fb = fb;
 	helper->fbdev = info;
 
-	info->flags = FBINFO_FLAG_DEFAULT;
 	info->fbops = &tegra_fb_ops;
 
 	drm_fb_helper_fill_info(info, helper);
-- 
2.20.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* ✗ Fi.CI.BAT: failure for some cleanups, mostly around fbdev emulation
  2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
                   ` (24 preceding siblings ...)
  2019-01-24 16:58 ` [PATCH 25/26] drm/fb-helper: Unexport fill_{var,info} Daniel Vetter
@ 2019-01-24 17:01 ` Patchwork
  25 siblings, 0 replies; 72+ messages in thread
From: Patchwork @ 2019-01-24 17:01 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: intel-gfx

== Series Details ==

Series: some cleanups, mostly around fbdev emulation
URL   : https://patchwork.freedesktop.org/series/55690/
State : failure

== Summary ==

Applying: drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install
Applying: drm: Switch DRIVER_ flags to an enum
Applying: drm/irq: Ditch DRIVER_IRQ_SHARED
Applying: drm/fb-helper: Add fill_info() functions
Applying: drm/fb-helper: set fbi->fix.id in fill_info()
Applying: drm/fb_helper: set info->par in fill_info()
Applying: drm/amdgpu: Use drm_fb_helper_fill_info
Using index info to reconstruct a base tree...
M	drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
Falling back to patching base and 3-way merge...
Auto-merging drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch' to see the failed patch
Patch failed at 0007 drm/amdgpu: Use drm_fb_helper_fill_info
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 05/26] drm/fb-helper: set fbi->fix.id in fill_info()
  2019-01-24 16:58 ` [PATCH 05/26] drm/fb-helper: set fbi->fix.id in fill_info() Daniel Vetter
@ 2019-01-24 17:28   ` Daniel Vetter
  0 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-24 17:28 UTC (permalink / raw)
  To: DRI Development, Ilia Mirkin; +Cc: Daniel Vetter, Intel Graphics Development

On Thu, Jan 24, 2019 at 5:58 PM Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
>
> Looking at the oldest/most popular drivers ${driver}drmfb seems to be
> the standard, except i915.ko went with "inteldrmfb". I guess renaming
> that for consistency won't hurt, it definitely confused me when I
> started with kms 10 years ago.
>
> I hope this never became uapi ... worst case drivers can overwrite it
> after having called fill_info().
>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>

Since subsequent patches change this for some drivers later on in the
series, here's the exhaustive list of where all fix.id is used:
- /proc/fb which prints the minor number and fix.id name.
- per-fb sysfs name file
- getfix ioctl, which is used by fbset only to print out the name when
dumping information
- lots and lots of places in dmesg, anytime anything happens with an
fbdev really

I think minimal to 0 chances that changing this will screw up a config
script or something, since outside of informational message it's not
used by anything to identify which fbdev maps to which minor. After
all the last fbset release is from 1999, and that predates even devfs
I think.

I'll add the above to the commit message when merging/resending.
Thanks to Ilia for pointing out.
-Daniel

> ---
>  drivers/gpu/drm/drm_fb_helper.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index 34c4ed378796..20969c05a9e3 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -2126,6 +2126,9 @@ void drm_fb_helper_fill_info(struct fb_info *info,
>         drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
>         drm_fb_helper_fill_var(info, fb_helper, fb->width, fb->height);
>
> +       snprintf(info->fix.id, sizeof(info->fix.id), "%sdrmfb",
> +                fb_helper->dev->driver->name);
> +
>  }
>  EXPORT_SYMBOL(drm_fb_helper_fill_info);
>
> @@ -3185,8 +3188,6 @@ int drm_fb_helper_generic_probe(struct drm_fb_helper *fb_helper,
>                 fbi->fix.smem_start =
>                         page_to_phys(virt_to_page(fbi->screen_buffer));
>  #endif
> -       strcpy(fbi->fix.id, "DRM emulated");
> -
>         drm_fb_helper_fill_info(fbi, fb_helper);
>
>         if (fb->funcs->dirty) {
> --
> 2.20.1
>


-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 02/26] drm: Switch DRIVER_ flags to an enum
  2019-01-24 16:58 ` [PATCH 02/26] drm: Switch DRIVER_ flags to an enum Daniel Vetter
@ 2019-01-24 17:38   ` Sam Ravnborg
  2019-01-25  9:35     ` Daniel Vetter
  0 siblings, 1 reply; 72+ messages in thread
From: Sam Ravnborg @ 2019-01-24 17:38 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Daniel Vetter, Intel Graphics Development, DRI Development

Hi Daniel.

> +
> +	/**
> +	 * @DRIVER_HAVE_DMA:
> +	 *
> +	 * Driver supports DMA, the userspace DMA API will be supported. Only
> +	 * for legacy drivers. Do not use.
> +	 */
> +	DRIVER_HAVE_DMA			= BIT(4),

What about grouping all the "legacy, do not use" flags in the bottom.
Maybe counting backwards.

Then one does not have "noise" in-between when trying to rad and understand the
relevant flags for a new driver.
Unless I am mistaken nothing should break because we change the bit for a certain
function, but I see you kept the current order thus the current vlaues.


> @@ -662,7 +766,7 @@ static inline bool drm_dev_is_unplugged(struct drm_device *dev)
>   * @feature: feature flag
>   *
>   * This checks @dev for driver features, see &drm_driver.driver_features,
> - * &drm_device.driver_features, and the various DRIVER_\* flags.
> + * &drm_device.driver_features, and the various &enum drm_driver_feature flags.
>   *
>   * Returns true if the @feature is supported, false otherwise.
>   */

Thanks for fixing this - I had a patch floating to do the same.
But this fix is better than what I did.

With or without a change in ordering you can add:

Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH 04/26] drm/fb-helper: Add fill_info() functions
  2019-01-24 16:58 ` [PATCH 04/26] drm/fb-helper: Add fill_info() functions Daniel Vetter
@ 2019-01-24 17:40   ` Noralf Trønnes
  2019-01-25  8:48     ` Daniel Vetter
  0 siblings, 1 reply; 72+ messages in thread
From: Noralf Trønnes @ 2019-01-24 17:40 UTC (permalink / raw)
  To: Daniel Vetter, DRI Development; +Cc: Daniel Vetter, Intel Graphics Development



Den 24.01.2019 17.58, skrev Daniel Vetter:
> The fbdev split between fix and var information is kinda
> pointless for drm drivers since everything is fixed: The fbdev
> emulation doesn't support changing modes at all.
> 
> Create a new simplified helper and use it in the generic fbdev
> helper code. Follow-up patches will beef it up more and roll
> it out to all drivers.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> ---
>  drivers/gpu/drm/drm_fb_helper.c | 27 +++++++++++++++++++++++++--
>  include/drm/drm_fb_helper.h     |  1 +
>  2 files changed, 26 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index 5eaccd202f4f..34c4ed378796 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -2105,6 +2105,30 @@ void drm_fb_helper_fill_var(struct fb_info *info, struct drm_fb_helper *fb_helpe
>  }
>  EXPORT_SYMBOL(drm_fb_helper_fill_var);
>  
> +/**
> + * drm_fb_helper_fill_info - initializes fbdev information
> + * @info: fbdev instance to set up
> + * @fb_helper: fb helper instance to use as template
> + *
> + *
> + * Sets up the variable and fixed fbdev metainformation from the given fb helper
> + * instance and the drm framebuffer allocated in &drm_fb_helper.fb.
> + *
> + * Drivers should call this (or their equivalent setup code) from their
> + * &drm_fb_helper_funcs.fb_probe callback after having allocated the fbdev
> + * backing storage framebuffer.
> + */
> +void drm_fb_helper_fill_info(struct fb_info *info,

No need to pass in fb_info it's available as fb_helper->fbdev. Set by
drm_fb_helper_alloc_fbi().

> +			     struct drm_fb_helper *fb_helper)
> +{
> +	struct drm_framebuffer *fb = fb_helper->fb;
> +
> +	drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
> +	drm_fb_helper_fill_var(info, fb_helper, fb->width, fb->height);

AFAIU fb->width/height can be different from sizes->fb_width/fb_height
when there's double/triple buffering. I belive you need to use the sizes
values here.

Noralf.

> +
> +}
> +EXPORT_SYMBOL(drm_fb_helper_fill_info);
> +
>  static int drm_fb_helper_probe_connector_modes(struct drm_fb_helper *fb_helper,
>  						uint32_t maxX,
>  						uint32_t maxY)
> @@ -3163,8 +3187,7 @@ int drm_fb_helper_generic_probe(struct drm_fb_helper *fb_helper,
>  #endif
>  	strcpy(fbi->fix.id, "DRM emulated");
>  
> -	drm_fb_helper_fill_fix(fbi, fb->pitches[0], fb->format->depth);
> -	drm_fb_helper_fill_var(fbi, fb_helper, sizes->fb_width, sizes->fb_height);
> +	drm_fb_helper_fill_info(fbi, fb_helper);
>  
>  	if (fb->funcs->dirty) {
>  		struct fb_ops *fbops;
> diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h
> index bb9acea61369..e8d92724f472 100644
> --- a/include/drm/drm_fb_helper.h
> +++ b/include/drm/drm_fb_helper.h
> @@ -292,6 +292,7 @@ void drm_fb_helper_fill_var(struct fb_info *info, struct drm_fb_helper *fb_helpe
>  			    uint32_t fb_width, uint32_t fb_height);
>  void drm_fb_helper_fill_fix(struct fb_info *info, uint32_t pitch,
>  			    uint32_t depth);
> +void drm_fb_helper_fill_info(struct fb_info *info, struct drm_fb_helper *fb_helper);
>  
>  void drm_fb_helper_unlink_fbi(struct drm_fb_helper *fb_helper);
>  
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 06/26] drm/fb_helper: set info->par in fill_info()
  2019-01-24 16:58 ` [PATCH 06/26] drm/fb_helper: set info->par " Daniel Vetter
@ 2019-01-24 17:45   ` Sam Ravnborg
  2019-01-25  8:44     ` Daniel Vetter
  0 siblings, 1 reply; 72+ messages in thread
From: Sam Ravnborg @ 2019-01-24 17:45 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Intel Graphics Development, DRI Development

Hi Daniel.

On Thu, Jan 24, 2019 at 05:58:11PM +0100, Daniel Vetter wrote:
> The fbdev emulation helpers pretty much assume that this is set.
> Let's do it for everyone.

I do not know this code at all.
But I failed to follow the code from the patch description.

It do not give _me_ a clue why the assignment is removed from
drm_fb_helper_generic_probe().
But it may be obvious for people that actually know this.


> 
> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>  drivers/gpu/drm/drm_fb_helper.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index 20969c05a9e3..cbe7fda3f8af 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -2126,6 +2126,7 @@ void drm_fb_helper_fill_info(struct fb_info *info,
>  	drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
>  	drm_fb_helper_fill_var(info, fb_helper, fb->width, fb->height);
>  
> +	info->par = fb_helper;
>  	snprintf(info->fix.id, sizeof(info->fix.id), "%sdrmfb",
>  		 fb_helper->dev->driver->name);
>  
> @@ -3177,7 +3178,6 @@ int drm_fb_helper_generic_probe(struct drm_fb_helper *fb_helper,
>  	if (IS_ERR(fbi))
>  		return PTR_ERR(fbi);
>  
> -	fbi->par = fb_helper;
>  	fbi->fbops = &drm_fbdev_fb_ops;
>  	fbi->screen_size = fb->height * fb->pitches[0];
>  	fbi->fix.smem_len = fbi->screen_size;

	Sam
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 09/26] drm/ast: Use drm_fb_helper_fill_info
  2019-01-24 16:58 ` [PATCH 09/26] drm/ast: " Daniel Vetter
@ 2019-01-24 18:00   ` Sam Ravnborg
  2019-01-25  8:51     ` Daniel Vetter
  0 siblings, 1 reply; 72+ messages in thread
From: Sam Ravnborg @ 2019-01-24 18:00 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Sam Bobroff, Intel Graphics Development, YueHaibing,
	DRI Development, Junwei Zhang, Dave Airlie, Alex Deucher,
	Daniel Vetter, Christian König

Hi Daniel.

On Thu, Jan 24, 2019 at 05:58:14PM +0100, Daniel Vetter wrote:
> Should not result in any changes.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Dave Airlie <airlied@redhat.com>
> Cc: Junwei Zhang <Jerry.Zhang@amd.com>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: "Christian König" <christian.koenig@amd.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Sean Paul <sean@poorly.run>
> Cc: YueHaibing <yuehaibing@huawei.com>
> Cc: Sam Bobroff <sbobroff@linux.ibm.com>
> ---
>  drivers/gpu/drm/ast/ast_drv.h | 2 +-
>  drivers/gpu/drm/ast/ast_fb.c  | 7 +------
>  2 files changed, 2 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/ast/ast_drv.h b/drivers/gpu/drm/ast/ast_drv.h
> index bfc65040dfcb..ffce4608e0c5 100644
> --- a/drivers/gpu/drm/ast/ast_drv.h
> +++ b/drivers/gpu/drm/ast/ast_drv.h
> @@ -259,7 +259,7 @@ struct ast_framebuffer {
>  };
>  
>  struct ast_fbdev {
> -	struct drm_fb_helper helper;
> +	struct drm_fb_helper helper; /* must be first */

Again in the category "I do not know the code",
but I failed to see whay "struct drm_fb_helper" have to be first.

I saw no ugly cast or similar when browsign the code, but I
must have missed something?

	Sam
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 19/26] drm/qxl: Use drm_fb_helper_fill_info
  2019-01-24 16:58 ` [PATCH 19/26] drm/qxl: " Daniel Vetter
@ 2019-01-25  6:39   ` Gerd Hoffmann
  2019-01-25  6:39   ` Gerd Hoffmann
  1 sibling, 0 replies; 72+ messages in thread
From: Gerd Hoffmann @ 2019-01-25  6:39 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Dave Airlie, Intel Graphics Development, DRI Development,
	virtualization, spice-devel, Daniel Vetter

On Thu, Jan 24, 2019 at 05:58:24PM +0100, Daniel Vetter wrote:
> This should not result in any changes.

I'd love to merge https://patchwork.freedesktop.org/series/53951/
instead (which will -- among other things -- switch qxl over to the
generic fbdev emulation and remove the code you are patching here).

Anyone willing to review?  Dave?

thanks,
  Gerd

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

* Re: [PATCH 19/26] drm/qxl: Use drm_fb_helper_fill_info
  2019-01-24 16:58 ` [PATCH 19/26] drm/qxl: " Daniel Vetter
  2019-01-25  6:39   ` Gerd Hoffmann
@ 2019-01-25  6:39   ` Gerd Hoffmann
  2019-01-25  8:52     ` Daniel Vetter
  2019-01-25  8:52     ` Daniel Vetter
  1 sibling, 2 replies; 72+ messages in thread
From: Gerd Hoffmann @ 2019-01-25  6:39 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Dave Airlie, Intel Graphics Development, DRI Development,
	virtualization, spice-devel, Daniel Vetter

On Thu, Jan 24, 2019 at 05:58:24PM +0100, Daniel Vetter wrote:
> This should not result in any changes.

I'd love to merge https://patchwork.freedesktop.org/series/53951/
instead (which will -- among other things -- switch qxl over to the
generic fbdev emulation and remove the code you are patching here).

Anyone willing to review?  Dave?

thanks,
  Gerd

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 06/26] drm/fb_helper: set info->par in fill_info()
  2019-01-24 17:45   ` Sam Ravnborg
@ 2019-01-25  8:44     ` Daniel Vetter
  2019-01-25 18:25       ` Sam Ravnborg
  0 siblings, 1 reply; 72+ messages in thread
From: Daniel Vetter @ 2019-01-25  8:44 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Daniel Vetter, Intel Graphics Development, DRI Development

On Thu, Jan 24, 2019 at 06:45:52PM +0100, Sam Ravnborg wrote:
> Hi Daniel.
> 
> On Thu, Jan 24, 2019 at 05:58:11PM +0100, Daniel Vetter wrote:
> > The fbdev emulation helpers pretty much assume that this is set.
> > Let's do it for everyone.
> 
> I do not know this code at all.
> But I failed to follow the code from the patch description.
> 
> It do not give _me_ a clue why the assignment is removed from
> drm_fb_helper_generic_probe().
> But it may be obvious for people that actually know this.

generic_probe calls the new fill_info function, so it's not removed, it's
just moved, so that I can roll it out to all the drivers in the subsequent
patches.
-Daniel

> 
> 
> > 
> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> > ---
> >  drivers/gpu/drm/drm_fb_helper.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> > index 20969c05a9e3..cbe7fda3f8af 100644
> > --- a/drivers/gpu/drm/drm_fb_helper.c
> > +++ b/drivers/gpu/drm/drm_fb_helper.c
> > @@ -2126,6 +2126,7 @@ void drm_fb_helper_fill_info(struct fb_info *info,
> >  	drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
> >  	drm_fb_helper_fill_var(info, fb_helper, fb->width, fb->height);
> >  
> > +	info->par = fb_helper;
> >  	snprintf(info->fix.id, sizeof(info->fix.id), "%sdrmfb",
> >  		 fb_helper->dev->driver->name);
> >  
> > @@ -3177,7 +3178,6 @@ int drm_fb_helper_generic_probe(struct drm_fb_helper *fb_helper,
> >  	if (IS_ERR(fbi))
> >  		return PTR_ERR(fbi);
> >  
> > -	fbi->par = fb_helper;
> >  	fbi->fbops = &drm_fbdev_fb_ops;
> >  	fbi->screen_size = fb->height * fb->pitches[0];
> >  	fbi->fix.smem_len = fbi->screen_size;
> 
> 	Sam

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH 04/26] drm/fb-helper: Add fill_info() functions
  2019-01-24 17:40   ` Noralf Trønnes
@ 2019-01-25  8:48     ` Daniel Vetter
  2019-01-25  9:46       ` Noralf Trønnes
  0 siblings, 1 reply; 72+ messages in thread
From: Daniel Vetter @ 2019-01-25  8:48 UTC (permalink / raw)
  To: Noralf Trønnes
  Cc: Daniel Vetter, Intel Graphics Development, DRI Development,
	Daniel Vetter

On Thu, Jan 24, 2019 at 06:40:52PM +0100, Noralf Trønnes wrote:
> 
> 
> Den 24.01.2019 17.58, skrev Daniel Vetter:
> > The fbdev split between fix and var information is kinda
> > pointless for drm drivers since everything is fixed: The fbdev
> > emulation doesn't support changing modes at all.
> > 
> > Create a new simplified helper and use it in the generic fbdev
> > helper code. Follow-up patches will beef it up more and roll
> > it out to all drivers.
> > 
> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> > ---
> >  drivers/gpu/drm/drm_fb_helper.c | 27 +++++++++++++++++++++++++--
> >  include/drm/drm_fb_helper.h     |  1 +
> >  2 files changed, 26 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> > index 5eaccd202f4f..34c4ed378796 100644
> > --- a/drivers/gpu/drm/drm_fb_helper.c
> > +++ b/drivers/gpu/drm/drm_fb_helper.c
> > @@ -2105,6 +2105,30 @@ void drm_fb_helper_fill_var(struct fb_info *info, struct drm_fb_helper *fb_helpe
> >  }
> >  EXPORT_SYMBOL(drm_fb_helper_fill_var);
> >  
> > +/**
> > + * drm_fb_helper_fill_info - initializes fbdev information
> > + * @info: fbdev instance to set up
> > + * @fb_helper: fb helper instance to use as template
> > + *
> > + *
> > + * Sets up the variable and fixed fbdev metainformation from the given fb helper
> > + * instance and the drm framebuffer allocated in &drm_fb_helper.fb.
> > + *
> > + * Drivers should call this (or their equivalent setup code) from their
> > + * &drm_fb_helper_funcs.fb_probe callback after having allocated the fbdev
> > + * backing storage framebuffer.
> > + */
> > +void drm_fb_helper_fill_info(struct fb_info *info,
> 
> No need to pass in fb_info it's available as fb_helper->fbdev. Set by
> drm_fb_helper_alloc_fbi().

Uh, I get to edit all the patches. Still, thanks for pointing out.

I also realized that I've forgotten to add the dummy functiont for
!CONFIG_FB, will fix that too.

> > +			     struct drm_fb_helper *fb_helper)
> > +{
> > +	struct drm_framebuffer *fb = fb_helper->fb;
> > +
> > +	drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
> > +	drm_fb_helper_fill_var(info, fb_helper, fb->width, fb->height);
> 
> AFAIU fb->width/height can be different from sizes->fb_width/fb_height
> when there's double/triple buffering. I belive you need to use the sizes
> values here.

Yup they're bigger than the actual screen size, but so is sizes: For
overallocting we adjust sizes before we call ->fb_probe, and the
->fb_probe callbacks in turn then call this helper. So I think it should
be all equivalent. Agreed or do I miss something?
-Daniel

> 
> Noralf.
> 
> > +
> > +}
> > +EXPORT_SYMBOL(drm_fb_helper_fill_info);
> > +
> >  static int drm_fb_helper_probe_connector_modes(struct drm_fb_helper *fb_helper,
> >  						uint32_t maxX,
> >  						uint32_t maxY)
> > @@ -3163,8 +3187,7 @@ int drm_fb_helper_generic_probe(struct drm_fb_helper *fb_helper,
> >  #endif
> >  	strcpy(fbi->fix.id, "DRM emulated");
> >  
> > -	drm_fb_helper_fill_fix(fbi, fb->pitches[0], fb->format->depth);
> > -	drm_fb_helper_fill_var(fbi, fb_helper, sizes->fb_width, sizes->fb_height);
> > +	drm_fb_helper_fill_info(fbi, fb_helper);
> >  
> >  	if (fb->funcs->dirty) {
> >  		struct fb_ops *fbops;
> > diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h
> > index bb9acea61369..e8d92724f472 100644
> > --- a/include/drm/drm_fb_helper.h
> > +++ b/include/drm/drm_fb_helper.h
> > @@ -292,6 +292,7 @@ void drm_fb_helper_fill_var(struct fb_info *info, struct drm_fb_helper *fb_helpe
> >  			    uint32_t fb_width, uint32_t fb_height);
> >  void drm_fb_helper_fill_fix(struct fb_info *info, uint32_t pitch,
> >  			    uint32_t depth);
> > +void drm_fb_helper_fill_info(struct fb_info *info, struct drm_fb_helper *fb_helper);
> >  
> >  void drm_fb_helper_unlink_fbi(struct drm_fb_helper *fb_helper);
> >  
> > 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH 24/26] staging/vboxvideo: Use drm_fb_helper_fill_info
  2019-01-24 16:58 ` [PATCH 24/26] staging/vboxvideo: " Daniel Vetter
@ 2019-01-25  8:51   ` Greg Kroah-Hartman
  0 siblings, 0 replies; 72+ messages in thread
From: Greg Kroah-Hartman @ 2019-01-25  8:51 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Alexander Kapshuk, Bartlomiej Zolnierkiewicz,
	Intel Graphics Development, DRI Development, Daniel Vetter

On Thu, Jan 24, 2019 at 05:58:29PM +0100, Daniel Vetter wrote:
> This should not result in any changes.
> 
> v2: Rebase over vbox changes - vbox gained it's own line to fill
> fix.id.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Hans de Goede <hdegoede@redhat.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Alexander Kapshuk <alexander.kapshuk@gmail.com>
> Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
> ---
>  drivers/staging/vboxvideo/vbox_fb.c | 8 +-------
>  1 file changed, 1 insertion(+), 7 deletions(-)

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 09/26] drm/ast: Use drm_fb_helper_fill_info
  2019-01-24 18:00   ` Sam Ravnborg
@ 2019-01-25  8:51     ` Daniel Vetter
  0 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-25  8:51 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Sam Bobroff, Daniel Vetter, Intel Graphics Development,
	YueHaibing, DRI Development, Junwei Zhang, Dave Airlie,
	Alex Deucher, Daniel Vetter, Christian König

On Thu, Jan 24, 2019 at 07:00:11PM +0100, Sam Ravnborg wrote:
> Hi Daniel.
> 
> On Thu, Jan 24, 2019 at 05:58:14PM +0100, Daniel Vetter wrote:
> > Should not result in any changes.
> > 
> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> > Cc: Dave Airlie <airlied@redhat.com>
> > Cc: Junwei Zhang <Jerry.Zhang@amd.com>
> > Cc: Alex Deucher <alexander.deucher@amd.com>
> > Cc: "Christian König" <christian.koenig@amd.com>
> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> > Cc: Sean Paul <sean@poorly.run>
> > Cc: YueHaibing <yuehaibing@huawei.com>
> > Cc: Sam Bobroff <sbobroff@linux.ibm.com>
> > ---
> >  drivers/gpu/drm/ast/ast_drv.h | 2 +-
> >  drivers/gpu/drm/ast/ast_fb.c  | 7 +------
> >  2 files changed, 2 insertions(+), 7 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/ast/ast_drv.h b/drivers/gpu/drm/ast/ast_drv.h
> > index bfc65040dfcb..ffce4608e0c5 100644
> > --- a/drivers/gpu/drm/ast/ast_drv.h
> > +++ b/drivers/gpu/drm/ast/ast_drv.h
> > @@ -259,7 +259,7 @@ struct ast_framebuffer {
> >  };
> >  
> >  struct ast_fbdev {
> > -	struct drm_fb_helper helper;
> > +	struct drm_fb_helper helper; /* must be first */
> 
> Again in the category "I do not know the code",
> but I failed to see whay "struct drm_fb_helper" have to be first.
> 
> I saw no ugly cast or similar when browsign the code, but I
> must have missed something?

It's casting the void *info->par to either struct ast_fbdev *(in ast code)
or struct drm_fb_helper * (in fb helper code).
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 19/26] drm/qxl: Use drm_fb_helper_fill_info
  2019-01-25  6:39   ` Gerd Hoffmann
  2019-01-25  8:52     ` Daniel Vetter
@ 2019-01-25  8:52     ` Daniel Vetter
  1 sibling, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-25  8:52 UTC (permalink / raw)
  To: Gerd Hoffmann
  Cc: Daniel Vetter, Intel Graphics Development, DRI Development,
	virtualization, spice-devel, Daniel Vetter, Dave Airlie

On Fri, Jan 25, 2019 at 07:39:26AM +0100, Gerd Hoffmann wrote:
> On Thu, Jan 24, 2019 at 05:58:24PM +0100, Daniel Vetter wrote:
> > This should not result in any changes.
> 
> I'd love to merge https://patchwork.freedesktop.org/series/53951/
> instead (which will -- among other things -- switch qxl over to the
> generic fbdev emulation and remove the code you are patching here).

Ah yes very happy to drop my patch in favour of yours.

> Anyone willing to review?  Dave?

Noralf might be a good choice too, with you cross-reviewing some of his
in-flight work.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

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

* Re: [PATCH 19/26] drm/qxl: Use drm_fb_helper_fill_info
  2019-01-25  6:39   ` Gerd Hoffmann
@ 2019-01-25  8:52     ` Daniel Vetter
  2019-01-25  8:52     ` Daniel Vetter
  1 sibling, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-25  8:52 UTC (permalink / raw)
  To: Gerd Hoffmann
  Cc: Daniel Vetter, Intel Graphics Development, DRI Development,
	virtualization, spice-devel, Daniel Vetter, Dave Airlie

On Fri, Jan 25, 2019 at 07:39:26AM +0100, Gerd Hoffmann wrote:
> On Thu, Jan 24, 2019 at 05:58:24PM +0100, Daniel Vetter wrote:
> > This should not result in any changes.
> 
> I'd love to merge https://patchwork.freedesktop.org/series/53951/
> instead (which will -- among other things -- switch qxl over to the
> generic fbdev emulation and remove the code you are patching here).

Ah yes very happy to drop my patch in favour of yours.

> Anyone willing to review?  Dave?

Noralf might be a good choice too, with you cross-reviewing some of his
in-flight work.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 02/26] drm: Switch DRIVER_ flags to an enum
  2019-01-24 17:38   ` Sam Ravnborg
@ 2019-01-25  9:35     ` Daniel Vetter
  0 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-25  9:35 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Daniel Vetter, Intel Graphics Development, DRI Development,
	Daniel Vetter

On Thu, Jan 24, 2019 at 06:38:33PM +0100, Sam Ravnborg wrote:
> Hi Daniel.
> 
> > +
> > +	/**
> > +	 * @DRIVER_HAVE_DMA:
> > +	 *
> > +	 * Driver supports DMA, the userspace DMA API will be supported. Only
> > +	 * for legacy drivers. Do not use.
> > +	 */
> > +	DRIVER_HAVE_DMA			= BIT(4),
> 
> What about grouping all the "legacy, do not use" flags in the bottom.
> Maybe counting backwards.
> 
> Then one does not have "noise" in-between when trying to rad and understand the
> relevant flags for a new driver.
> Unless I am mistaken nothing should break because we change the bit for a certain
> function, but I see you kept the current order thus the current vlaues.

Good idea, will do.

> > @@ -662,7 +766,7 @@ static inline bool drm_dev_is_unplugged(struct drm_device *dev)
> >   * @feature: feature flag
> >   *
> >   * This checks @dev for driver features, see &drm_driver.driver_features,
> > - * &drm_device.driver_features, and the various DRIVER_\* flags.
> > + * &drm_device.driver_features, and the various &enum drm_driver_feature flags.
> >   *
> >   * Returns true if the @feature is supported, false otherwise.
> >   */
> 
> Thanks for fixing this - I had a patch floating to do the same.
> But this fix is better than what I did.

Just realized I've forgotten to remove the FIXME from the commit message
about this.

> With or without a change in ordering you can add:
> 
> Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

I'll respind, thanks for reviewing. Can I motivate you to also review
patch 1, with that I could merge the first 2 in this series.

Thanks, Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH 04/26] drm/fb-helper: Add fill_info() functions
  2019-01-25  8:48     ` Daniel Vetter
@ 2019-01-25  9:46       ` Noralf Trønnes
  2019-01-25 10:15         ` Daniel Vetter
  0 siblings, 1 reply; 72+ messages in thread
From: Noralf Trønnes @ 2019-01-25  9:46 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Daniel Vetter, Intel Graphics Development, DRI Development,
	Daniel Vetter



Den 25.01.2019 09.48, skrev Daniel Vetter:
> On Thu, Jan 24, 2019 at 06:40:52PM +0100, Noralf Trønnes wrote:
>>
>>
>> Den 24.01.2019 17.58, skrev Daniel Vetter:
>>> The fbdev split between fix and var information is kinda
>>> pointless for drm drivers since everything is fixed: The fbdev
>>> emulation doesn't support changing modes at all.
>>>
>>> Create a new simplified helper and use it in the generic fbdev
>>> helper code. Follow-up patches will beef it up more and roll
>>> it out to all drivers.
>>>
>>> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
>>> ---
>>>  drivers/gpu/drm/drm_fb_helper.c | 27 +++++++++++++++++++++++++--
>>>  include/drm/drm_fb_helper.h     |  1 +
>>>  2 files changed, 26 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
>>> index 5eaccd202f4f..34c4ed378796 100644
>>> --- a/drivers/gpu/drm/drm_fb_helper.c
>>> +++ b/drivers/gpu/drm/drm_fb_helper.c
>>> @@ -2105,6 +2105,30 @@ void drm_fb_helper_fill_var(struct fb_info *info, struct drm_fb_helper *fb_helpe
>>>  }
>>>  EXPORT_SYMBOL(drm_fb_helper_fill_var);
>>>  
>>> +/**
>>> + * drm_fb_helper_fill_info - initializes fbdev information
>>> + * @info: fbdev instance to set up
>>> + * @fb_helper: fb helper instance to use as template
>>> + *
>>> + *
>>> + * Sets up the variable and fixed fbdev metainformation from the given fb helper
>>> + * instance and the drm framebuffer allocated in &drm_fb_helper.fb.
>>> + *
>>> + * Drivers should call this (or their equivalent setup code) from their
>>> + * &drm_fb_helper_funcs.fb_probe callback after having allocated the fbdev
>>> + * backing storage framebuffer.
>>> + */
>>> +void drm_fb_helper_fill_info(struct fb_info *info,
>>
>> No need to pass in fb_info it's available as fb_helper->fbdev. Set by
>> drm_fb_helper_alloc_fbi().
> 
> Uh, I get to edit all the patches. Still, thanks for pointing out.
> 
> I also realized that I've forgotten to add the dummy functiont for
> !CONFIG_FB, will fix that too.
> 
>>> +			     struct drm_fb_helper *fb_helper)
>>> +{
>>> +	struct drm_framebuffer *fb = fb_helper->fb;
>>> +
>>> +	drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
>>> +	drm_fb_helper_fill_var(info, fb_helper, fb->width, fb->height);
>>
>> AFAIU fb->width/height can be different from sizes->fb_width/fb_height
>> when there's double/triple buffering. I belive you need to use the sizes
>> values here.
> 
> Yup they're bigger than the actual screen size, but so is sizes: For
> overallocting we adjust sizes before we call ->fb_probe, and the
> ->fb_probe callbacks in turn then call this helper. So I think it should
> be all equivalent. Agreed or do I miss something?

I did a test setting drm_fbdev_overalloc = 200:

[drm:drm_setup_crtcs] desired mode 320x240 set on crtc 33 (0,0)
[drm:drm_fb_helper_generic_probe] surface width(320), height(480) and
bpp(16)
[drm:drm_fb_helper_generic_probe] fb_width(320), fb_height(240)

sizes->surface_height != sizes->fb_height

sizes->surface_height is used to create the framebuffer -> fb->height.
My driver doesn't allow me to create such a big framebuffer so I didn't
see the actual fb->height value come out the other end, but I still
believe you need to use sizes->fb_height.

Noralf.

> -Daniel
> 
>>
>> Noralf.
>>
>>> +
>>> +}
>>> +EXPORT_SYMBOL(drm_fb_helper_fill_info);
>>> +
>>>  static int drm_fb_helper_probe_connector_modes(struct drm_fb_helper *fb_helper,
>>>  						uint32_t maxX,
>>>  						uint32_t maxY)
>>> @@ -3163,8 +3187,7 @@ int drm_fb_helper_generic_probe(struct drm_fb_helper *fb_helper,
>>>  #endif
>>>  	strcpy(fbi->fix.id, "DRM emulated");
>>>  
>>> -	drm_fb_helper_fill_fix(fbi, fb->pitches[0], fb->format->depth);
>>> -	drm_fb_helper_fill_var(fbi, fb_helper, sizes->fb_width, sizes->fb_height);
>>> +	drm_fb_helper_fill_info(fbi, fb_helper);
>>>  
>>>  	if (fb->funcs->dirty) {
>>>  		struct fb_ops *fbops;
>>> diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h
>>> index bb9acea61369..e8d92724f472 100644
>>> --- a/include/drm/drm_fb_helper.h
>>> +++ b/include/drm/drm_fb_helper.h
>>> @@ -292,6 +292,7 @@ void drm_fb_helper_fill_var(struct fb_info *info, struct drm_fb_helper *fb_helpe
>>>  			    uint32_t fb_width, uint32_t fb_height);
>>>  void drm_fb_helper_fill_fix(struct fb_info *info, uint32_t pitch,
>>>  			    uint32_t depth);
>>> +void drm_fb_helper_fill_info(struct fb_info *info, struct drm_fb_helper *fb_helper);
>>>  
>>>  void drm_fb_helper_unlink_fbi(struct drm_fb_helper *fb_helper);
>>>  
>>>
> 
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH 04/26] drm/fb-helper: Add fill_info() functions
  2019-01-25  9:46       ` Noralf Trønnes
@ 2019-01-25 10:15         ` Daniel Vetter
  0 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-25 10:15 UTC (permalink / raw)
  To: Noralf Trønnes
  Cc: Daniel Vetter, Intel Graphics Development, DRI Development

On Fri, Jan 25, 2019 at 10:46 AM Noralf Trønnes <noralf@tronnes.org> wrote:
>
>
>
> Den 25.01.2019 09.48, skrev Daniel Vetter:
> > On Thu, Jan 24, 2019 at 06:40:52PM +0100, Noralf Trønnes wrote:
> >>
> >>
> >> Den 24.01.2019 17.58, skrev Daniel Vetter:
> >>> The fbdev split between fix and var information is kinda
> >>> pointless for drm drivers since everything is fixed: The fbdev
> >>> emulation doesn't support changing modes at all.
> >>>
> >>> Create a new simplified helper and use it in the generic fbdev
> >>> helper code. Follow-up patches will beef it up more and roll
> >>> it out to all drivers.
> >>>
> >>> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> >>> ---
> >>>  drivers/gpu/drm/drm_fb_helper.c | 27 +++++++++++++++++++++++++--
> >>>  include/drm/drm_fb_helper.h     |  1 +
> >>>  2 files changed, 26 insertions(+), 2 deletions(-)
> >>>
> >>> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> >>> index 5eaccd202f4f..34c4ed378796 100644
> >>> --- a/drivers/gpu/drm/drm_fb_helper.c
> >>> +++ b/drivers/gpu/drm/drm_fb_helper.c
> >>> @@ -2105,6 +2105,30 @@ void drm_fb_helper_fill_var(struct fb_info *info, struct drm_fb_helper *fb_helpe
> >>>  }
> >>>  EXPORT_SYMBOL(drm_fb_helper_fill_var);
> >>>
> >>> +/**
> >>> + * drm_fb_helper_fill_info - initializes fbdev information
> >>> + * @info: fbdev instance to set up
> >>> + * @fb_helper: fb helper instance to use as template
> >>> + *
> >>> + *
> >>> + * Sets up the variable and fixed fbdev metainformation from the given fb helper
> >>> + * instance and the drm framebuffer allocated in &drm_fb_helper.fb.
> >>> + *
> >>> + * Drivers should call this (or their equivalent setup code) from their
> >>> + * &drm_fb_helper_funcs.fb_probe callback after having allocated the fbdev
> >>> + * backing storage framebuffer.
> >>> + */
> >>> +void drm_fb_helper_fill_info(struct fb_info *info,
> >>
> >> No need to pass in fb_info it's available as fb_helper->fbdev. Set by
> >> drm_fb_helper_alloc_fbi().
> >
> > Uh, I get to edit all the patches. Still, thanks for pointing out.
> >
> > I also realized that I've forgotten to add the dummy functiont for
> > !CONFIG_FB, will fix that too.
> >
> >>> +                        struct drm_fb_helper *fb_helper)
> >>> +{
> >>> +   struct drm_framebuffer *fb = fb_helper->fb;
> >>> +
> >>> +   drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
> >>> +   drm_fb_helper_fill_var(info, fb_helper, fb->width, fb->height);
> >>
> >> AFAIU fb->width/height can be different from sizes->fb_width/fb_height
> >> when there's double/triple buffering. I belive you need to use the sizes
> >> values here.
> >
> > Yup they're bigger than the actual screen size, but so is sizes: For
> > overallocting we adjust sizes before we call ->fb_probe, and the
> > ->fb_probe callbacks in turn then call this helper. So I think it should
> > be all equivalent. Agreed or do I miss something?
>
> I did a test setting drm_fbdev_overalloc = 200:
>
> [drm:drm_setup_crtcs] desired mode 320x240 set on crtc 33 (0,0)
> [drm:drm_fb_helper_generic_probe] surface width(320), height(480) and
> bpp(16)
> [drm:drm_fb_helper_generic_probe] fb_width(320), fb_height(240)
>
> sizes->surface_height != sizes->fb_height
>
> sizes->surface_height is used to create the framebuffer -> fb->height.
> My driver doesn't allow me to create such a big framebuffer so I didn't
> see the actual fb->height value come out the other end, but I still
> believe you need to use sizes->fb_height.

Hm right, I totally missed that. So the right interface would be:

drm_fb_helper_fill_info(fb_helper, sizes);

I also just noticed tha we could move the call to
drm_fb_helper_fill_info into the helper itself, I think that would
work for all drivers.
-Daniel

>
> Noralf.
>
> > -Daniel
> >
> >>
> >> Noralf.
> >>
> >>> +
> >>> +}
> >>> +EXPORT_SYMBOL(drm_fb_helper_fill_info);
> >>> +
> >>>  static int drm_fb_helper_probe_connector_modes(struct drm_fb_helper *fb_helper,
> >>>                                             uint32_t maxX,
> >>>                                             uint32_t maxY)
> >>> @@ -3163,8 +3187,7 @@ int drm_fb_helper_generic_probe(struct drm_fb_helper *fb_helper,
> >>>  #endif
> >>>     strcpy(fbi->fix.id, "DRM emulated");
> >>>
> >>> -   drm_fb_helper_fill_fix(fbi, fb->pitches[0], fb->format->depth);
> >>> -   drm_fb_helper_fill_var(fbi, fb_helper, sizes->fb_width, sizes->fb_height);
> >>> +   drm_fb_helper_fill_info(fbi, fb_helper);
> >>>
> >>>     if (fb->funcs->dirty) {
> >>>             struct fb_ops *fbops;
> >>> diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h
> >>> index bb9acea61369..e8d92724f472 100644
> >>> --- a/include/drm/drm_fb_helper.h
> >>> +++ b/include/drm/drm_fb_helper.h
> >>> @@ -292,6 +292,7 @@ void drm_fb_helper_fill_var(struct fb_info *info, struct drm_fb_helper *fb_helpe
> >>>                         uint32_t fb_width, uint32_t fb_height);
> >>>  void drm_fb_helper_fill_fix(struct fb_info *info, uint32_t pitch,
> >>>                         uint32_t depth);
> >>> +void drm_fb_helper_fill_info(struct fb_info *info, struct drm_fb_helper *fb_helper);
> >>>
> >>>  void drm_fb_helper_unlink_fbi(struct drm_fb_helper *fb_helper);
> >>>
> >>>
> >



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 01/26] drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install
  2019-01-24 16:58   ` Daniel Vetter
  (?)
  (?)
@ 2019-01-25 10:40       ` Sam Ravnborg
  -1 siblings, 0 replies; 72+ messages in thread
From: Sam Ravnborg @ 2019-01-25 10:40 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Intel Graphics Development,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
	linux-renesas-soc-u79uwXL29TY76Z2rM5mHXA, DRI Development,
	spice-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Daniel Vetter,
	linux-amlogic-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r

Hi Daniel.

On Thu, Jan 24, 2019 at 05:58:06PM +0100, Daniel Vetter wrote:
> If a non-legacy driver calls these it's valid to assume there is
> interrupt support. The flag is really only needed for legacy drivers.
> 
> Also remove all the flag usage from non-legacy drivers.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: intel-gfx@lists.freedesktop.org
> Cc: linux-amlogic@lists.infradead.org
> Cc: linux-arm-msm@vger.kernel.org
> Cc: freedreno@lists.freedesktop.org
> Cc: virtualization@lists.linux-foundation.org
> Cc: spice-devel@lists.freedesktop.org
> Cc: amd-gfx@lists.freedesktop.org
> Cc: linux-renesas-soc@vger.kernel.org

The actual code changes looks good.
But if this is the right thing to do I cannot tell.

On this (limited) basis I provide an:
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

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

* Re: [PATCH 01/26] drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install
@ 2019-01-25 10:40       ` Sam Ravnborg
  0 siblings, 0 replies; 72+ messages in thread
From: Sam Ravnborg @ 2019-01-25 10:40 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: DRI Development, Daniel Vetter, linux-arm-msm,
	Intel Graphics Development, amd-gfx, virtualization,
	linux-renesas-soc, spice-devel, linux-amlogic, freedreno,
	linux-arm-kernel

Hi Daniel.

On Thu, Jan 24, 2019 at 05:58:06PM +0100, Daniel Vetter wrote:
> If a non-legacy driver calls these it's valid to assume there is
> interrupt support. The flag is really only needed for legacy drivers.
> 
> Also remove all the flag usage from non-legacy drivers.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: intel-gfx@lists.freedesktop.org
> Cc: linux-amlogic@lists.infradead.org
> Cc: linux-arm-msm@vger.kernel.org
> Cc: freedreno@lists.freedesktop.org
> Cc: virtualization@lists.linux-foundation.org
> Cc: spice-devel@lists.freedesktop.org
> Cc: amd-gfx@lists.freedesktop.org
> Cc: linux-renesas-soc@vger.kernel.org

The actual code changes looks good.
But if this is the right thing to do I cannot tell.

On this (limited) basis I provide an:
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

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

* Re: [PATCH 01/26] drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install
  2019-01-24 16:58   ` Daniel Vetter
                     ` (3 preceding siblings ...)
  (?)
@ 2019-01-25 10:40   ` Sam Ravnborg
  -1 siblings, 0 replies; 72+ messages in thread
From: Sam Ravnborg @ 2019-01-25 10:40 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: linux-arm-msm, Intel Graphics Development, amd-gfx,
	virtualization, linux-renesas-soc, DRI Development, spice-devel,
	Daniel Vetter, linux-amlogic, freedreno, linux-arm-kernel

Hi Daniel.

On Thu, Jan 24, 2019 at 05:58:06PM +0100, Daniel Vetter wrote:
> If a non-legacy driver calls these it's valid to assume there is
> interrupt support. The flag is really only needed for legacy drivers.
> 
> Also remove all the flag usage from non-legacy drivers.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: intel-gfx@lists.freedesktop.org
> Cc: linux-amlogic@lists.infradead.org
> Cc: linux-arm-msm@vger.kernel.org
> Cc: freedreno@lists.freedesktop.org
> Cc: virtualization@lists.linux-foundation.org
> Cc: spice-devel@lists.freedesktop.org
> Cc: amd-gfx@lists.freedesktop.org
> Cc: linux-renesas-soc@vger.kernel.org

The actual code changes looks good.
But if this is the right thing to do I cannot tell.

On this (limited) basis I provide an:
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

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

* Re: [PATCH 01/26] drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install
@ 2019-01-25 10:40       ` Sam Ravnborg
  0 siblings, 0 replies; 72+ messages in thread
From: Sam Ravnborg @ 2019-01-25 10:40 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: linux-arm-msm, Intel Graphics Development, amd-gfx,
	virtualization, linux-renesas-soc, DRI Development, spice-devel,
	Daniel Vetter, linux-amlogic, freedreno, linux-arm-kernel

Hi Daniel.

On Thu, Jan 24, 2019 at 05:58:06PM +0100, Daniel Vetter wrote:
> If a non-legacy driver calls these it's valid to assume there is
> interrupt support. The flag is really only needed for legacy drivers.
> 
> Also remove all the flag usage from non-legacy drivers.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: intel-gfx@lists.freedesktop.org
> Cc: linux-amlogic@lists.infradead.org
> Cc: linux-arm-msm@vger.kernel.org
> Cc: freedreno@lists.freedesktop.org
> Cc: virtualization@lists.linux-foundation.org
> Cc: spice-devel@lists.freedesktop.org
> Cc: amd-gfx@lists.freedesktop.org
> Cc: linux-renesas-soc@vger.kernel.org

The actual code changes looks good.
But if this is the right thing to do I cannot tell.

On this (limited) basis I provide an:
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH 01/26] drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install
@ 2019-01-25 10:40       ` Sam Ravnborg
  0 siblings, 0 replies; 72+ messages in thread
From: Sam Ravnborg @ 2019-01-25 10:40 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: linux-arm-msm, Intel Graphics Development, amd-gfx,
	virtualization, linux-renesas-soc, DRI Development, spice-devel,
	Daniel Vetter, linux-amlogic, freedreno, linux-arm-kernel

Hi Daniel.

On Thu, Jan 24, 2019 at 05:58:06PM +0100, Daniel Vetter wrote:
> If a non-legacy driver calls these it's valid to assume there is
> interrupt support. The flag is really only needed for legacy drivers.
> 
> Also remove all the flag usage from non-legacy drivers.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: intel-gfx@lists.freedesktop.org
> Cc: linux-amlogic@lists.infradead.org
> Cc: linux-arm-msm@vger.kernel.org
> Cc: freedreno@lists.freedesktop.org
> Cc: virtualization@lists.linux-foundation.org
> Cc: spice-devel@lists.freedesktop.org
> Cc: amd-gfx@lists.freedesktop.org
> Cc: linux-renesas-soc@vger.kernel.org

The actual code changes looks good.
But if this is the right thing to do I cannot tell.

On this (limited) basis I provide an:
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* Re: [PATCH 03/26] drm/irq: Ditch DRIVER_IRQ_SHARED
  2019-01-24 16:58 ` [PATCH 03/26] drm/irq: Ditch DRIVER_IRQ_SHARED Daniel Vetter
@ 2019-01-25 14:46   ` Emil Velikov
  2019-01-25 16:14     ` [Intel-gfx] " Daniel Vetter
  0 siblings, 1 reply; 72+ messages in thread
From: Emil Velikov @ 2019-01-25 14:46 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Daniel Vetter, Intel Graphics Development, DRI Development

On Thu, 24 Jan 2019 at 16:58, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
>
> This is only used by drm_irq_install(), which is an optional helper.
> And the right choice is to set it for all pci devices, and not for
> everything else.
>
Can you please add some information (or reference) why it's the right choice?

Thanks
Emil
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 26/26] drm/<drivers>: Don't set FBINFO_(FLAG_)DEFAULT
  2019-01-24 16:58     ` Daniel Vetter
@ 2019-01-25 15:02       ` Emil Velikov
  -1 siblings, 0 replies; 72+ messages in thread
From: Emil Velikov @ 2019-01-25 15:02 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: moderated list:ARM/S5P EXYNOS AR...,
	Heiko Stübner, Bartlomiej Zolnierkiewicz, ML nouveau,
	Intel Graphics Development, Seung-Woo Kim, Sandy Huang,
	Krzysztof Kozlowski, Jonathan Hunter, Inki Dae, linux-rockchip,
	Kyungmin Park, Kukjin Kim, DRI Development, Alexander Kapshuk,
	Greg Kroah-Hartman, linux-tegra, Daniel Vetter, Ben Skeggs,
	LAKML

On Thu, 24 Jan 2019 at 17:00, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
>
> It's 0.
>
I'd add a bit more information here. Feel free to reuse as much/little
of the following:

Both macros evaluate to 0. At the same time flag is already set to
zero since the struct is kzalloc'd in framebuffer_alloc().
As called by drm_fb_helper_alloc_fbi() in the DRM drivers.


-Emil
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH 26/26] drm/<drivers>: Don't set FBINFO_(FLAG_)DEFAULT
@ 2019-01-25 15:02       ` Emil Velikov
  0 siblings, 0 replies; 72+ messages in thread
From: Emil Velikov @ 2019-01-25 15:02 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: moderated list:ARM/S5P EXYNOS AR...,
	Heiko Stübner, Bartlomiej Zolnierkiewicz, ML nouveau,
	Intel Graphics Development, Seung-Woo Kim, Sandy Huang,
	Krzysztof Kozlowski, Jonathan Hunter, Inki Dae, linux-rockchip,
	Kyungmin Park, Kukjin Kim, DRI Development, Alexander Kapshuk,
	Greg Kroah-Hartman, linux-tegra, Daniel Vetter, Ben Skeggs,
	LAKML, Joonyoung Shim

On Thu, 24 Jan 2019 at 17:00, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
>
> It's 0.
>
I'd add a bit more information here. Feel free to reuse as much/little
of the following:

Both macros evaluate to 0. At the same time flag is already set to
zero since the struct is kzalloc'd in framebuffer_alloc().
As called by drm_fb_helper_alloc_fbi() in the DRM drivers.


-Emil

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH 01/26] drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install
  2019-01-24 16:58   ` Daniel Vetter
  (?)
  (?)
@ 2019-01-25 15:09     ` Emil Velikov
  -1 siblings, 0 replies; 72+ messages in thread
From: Emil Velikov @ 2019-01-25 15:09 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: linux-arm-msm, Intel Graphics Development, amd-gfx mailing list,
	open list:VIRTIO GPU DRIVER, linux-renesas-soc, DRI Development,
	spice-devel, Daniel Vetter, linux-amlogic, freedreno, LAKML

On Thu, 24 Jan 2019 at 16:58, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
>
> If a non-legacy driver calls these it's valid to assume there is
> interrupt support. The flag is really only needed for legacy drivers.

... legacy drivers which issue the IRQ via the DRM_IOCTL_CONTROL legacy IOCTL.

At a later stage, we might as well add LEGACY to the name:
DRIVER_LEGACY_HAVE_IRQ?


>  drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c      | 2 +-
>  drivers/gpu/drm/arm/hdlcd_drv.c              | 2 +-
>  drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 2 +-
>  drivers/gpu/drm/drm_irq.c                    | 6 ------
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c    | 2 +-
>  drivers/gpu/drm/gma500/psb_drv.c             | 2 +-
>  drivers/gpu/drm/i915/i915_drv.c              | 2 +-
>  drivers/gpu/drm/meson/meson_drv.c            | 2 +-
>  drivers/gpu/drm/msm/msm_drv.c                | 3 +--
>  drivers/gpu/drm/mxsfb/mxsfb_drv.c            | 3 +--
>  drivers/gpu/drm/qxl/qxl_drv.c                | 2 +-
>  drivers/gpu/drm/radeon/radeon_drv.c          | 2 +-
>  drivers/gpu/drm/shmobile/shmob_drm_drv.c     | 2 +-
>  drivers/gpu/drm/tilcdc/tilcdc_drv.c          | 2 +-
>  drivers/gpu/drm/vc4/vc4_drv.c                | 1 -
>  drivers/gpu/drm/vmwgfx/vmwgfx_drv.c          | 2 +-
>  drivers/staging/vboxvideo/vbox_drv.c         | 2 +-

Local grep shows one more non-legacy entry in
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c

With that file addressed and trivial comment additions, patches: 1, 2,
3 and 26 are
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

HTH
Emil
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 01/26] drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install
@ 2019-01-25 15:09     ` Emil Velikov
  0 siblings, 0 replies; 72+ messages in thread
From: Emil Velikov @ 2019-01-25 15:09 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: DRI Development, Daniel Vetter, linux-arm-msm,
	Intel Graphics Development, amd-gfx mailing list,
	open list:VIRTIO GPU DRIVER, linux-renesas-soc, spice-devel,
	linux-amlogic, freedreno, LAKML

On Thu, 24 Jan 2019 at 16:58, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
>
> If a non-legacy driver calls these it's valid to assume there is
> interrupt support. The flag is really only needed for legacy drivers.

... legacy drivers which issue the IRQ via the DRM_IOCTL_CONTROL legacy IOCTL.

At a later stage, we might as well add LEGACY to the name:
DRIVER_LEGACY_HAVE_IRQ?


>  drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c      | 2 +-
>  drivers/gpu/drm/arm/hdlcd_drv.c              | 2 +-
>  drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 2 +-
>  drivers/gpu/drm/drm_irq.c                    | 6 ------
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c    | 2 +-
>  drivers/gpu/drm/gma500/psb_drv.c             | 2 +-
>  drivers/gpu/drm/i915/i915_drv.c              | 2 +-
>  drivers/gpu/drm/meson/meson_drv.c            | 2 +-
>  drivers/gpu/drm/msm/msm_drv.c                | 3 +--
>  drivers/gpu/drm/mxsfb/mxsfb_drv.c            | 3 +--
>  drivers/gpu/drm/qxl/qxl_drv.c                | 2 +-
>  drivers/gpu/drm/radeon/radeon_drv.c          | 2 +-
>  drivers/gpu/drm/shmobile/shmob_drm_drv.c     | 2 +-
>  drivers/gpu/drm/tilcdc/tilcdc_drv.c          | 2 +-
>  drivers/gpu/drm/vc4/vc4_drv.c                | 1 -
>  drivers/gpu/drm/vmwgfx/vmwgfx_drv.c          | 2 +-
>  drivers/staging/vboxvideo/vbox_drv.c         | 2 +-

Local grep shows one more non-legacy entry in
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c

With that file addressed and trivial comment additions, patches: 1, 2,
3 and 26 are
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

HTH
Emil

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

* Re: [PATCH 01/26] drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install
  2019-01-24 16:58   ` Daniel Vetter
                     ` (5 preceding siblings ...)
  (?)
@ 2019-01-25 15:09   ` Emil Velikov
  -1 siblings, 0 replies; 72+ messages in thread
From: Emil Velikov @ 2019-01-25 15:09 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: linux-arm-msm, Intel Graphics Development, amd-gfx mailing list,
	open list:VIRTIO GPU DRIVER, linux-renesas-soc, DRI Development,
	spice-devel, Daniel Vetter, linux-amlogic, freedreno, LAKML

On Thu, 24 Jan 2019 at 16:58, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
>
> If a non-legacy driver calls these it's valid to assume there is
> interrupt support. The flag is really only needed for legacy drivers.

... legacy drivers which issue the IRQ via the DRM_IOCTL_CONTROL legacy IOCTL.

At a later stage, we might as well add LEGACY to the name:
DRIVER_LEGACY_HAVE_IRQ?


>  drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c      | 2 +-
>  drivers/gpu/drm/arm/hdlcd_drv.c              | 2 +-
>  drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 2 +-
>  drivers/gpu/drm/drm_irq.c                    | 6 ------
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c    | 2 +-
>  drivers/gpu/drm/gma500/psb_drv.c             | 2 +-
>  drivers/gpu/drm/i915/i915_drv.c              | 2 +-
>  drivers/gpu/drm/meson/meson_drv.c            | 2 +-
>  drivers/gpu/drm/msm/msm_drv.c                | 3 +--
>  drivers/gpu/drm/mxsfb/mxsfb_drv.c            | 3 +--
>  drivers/gpu/drm/qxl/qxl_drv.c                | 2 +-
>  drivers/gpu/drm/radeon/radeon_drv.c          | 2 +-
>  drivers/gpu/drm/shmobile/shmob_drm_drv.c     | 2 +-
>  drivers/gpu/drm/tilcdc/tilcdc_drv.c          | 2 +-
>  drivers/gpu/drm/vc4/vc4_drv.c                | 1 -
>  drivers/gpu/drm/vmwgfx/vmwgfx_drv.c          | 2 +-
>  drivers/staging/vboxvideo/vbox_drv.c         | 2 +-

Local grep shows one more non-legacy entry in
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c

With that file addressed and trivial comment additions, patches: 1, 2,
3 and 26 are
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

HTH
Emil

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

* Re: [PATCH 01/26] drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install
@ 2019-01-25 15:09     ` Emil Velikov
  0 siblings, 0 replies; 72+ messages in thread
From: Emil Velikov @ 2019-01-25 15:09 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: linux-arm-msm, Intel Graphics Development, amd-gfx mailing list,
	open list:VIRTIO GPU DRIVER, linux-renesas-soc, DRI Development,
	spice-devel, Daniel Vetter, linux-amlogic, freedreno, LAKML

On Thu, 24 Jan 2019 at 16:58, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
>
> If a non-legacy driver calls these it's valid to assume there is
> interrupt support. The flag is really only needed for legacy drivers.

... legacy drivers which issue the IRQ via the DRM_IOCTL_CONTROL legacy IOCTL.

At a later stage, we might as well add LEGACY to the name:
DRIVER_LEGACY_HAVE_IRQ?


>  drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c      | 2 +-
>  drivers/gpu/drm/arm/hdlcd_drv.c              | 2 +-
>  drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 2 +-
>  drivers/gpu/drm/drm_irq.c                    | 6 ------
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c    | 2 +-
>  drivers/gpu/drm/gma500/psb_drv.c             | 2 +-
>  drivers/gpu/drm/i915/i915_drv.c              | 2 +-
>  drivers/gpu/drm/meson/meson_drv.c            | 2 +-
>  drivers/gpu/drm/msm/msm_drv.c                | 3 +--
>  drivers/gpu/drm/mxsfb/mxsfb_drv.c            | 3 +--
>  drivers/gpu/drm/qxl/qxl_drv.c                | 2 +-
>  drivers/gpu/drm/radeon/radeon_drv.c          | 2 +-
>  drivers/gpu/drm/shmobile/shmob_drm_drv.c     | 2 +-
>  drivers/gpu/drm/tilcdc/tilcdc_drv.c          | 2 +-
>  drivers/gpu/drm/vc4/vc4_drv.c                | 1 -
>  drivers/gpu/drm/vmwgfx/vmwgfx_drv.c          | 2 +-
>  drivers/staging/vboxvideo/vbox_drv.c         | 2 +-

Local grep shows one more non-legacy entry in
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c

With that file addressed and trivial comment additions, patches: 1, 2,
3 and 26 are
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

HTH
Emil

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH 01/26] drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install
@ 2019-01-25 15:09     ` Emil Velikov
  0 siblings, 0 replies; 72+ messages in thread
From: Emil Velikov @ 2019-01-25 15:09 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: linux-arm-msm, Intel Graphics Development, amd-gfx mailing list,
	open list:VIRTIO GPU DRIVER, linux-renesas-soc, DRI Development,
	spice-devel, Daniel Vetter, linux-amlogic, freedreno, LAKML

On Thu, 24 Jan 2019 at 16:58, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
>
> If a non-legacy driver calls these it's valid to assume there is
> interrupt support. The flag is really only needed for legacy drivers.

... legacy drivers which issue the IRQ via the DRM_IOCTL_CONTROL legacy IOCTL.

At a later stage, we might as well add LEGACY to the name:
DRIVER_LEGACY_HAVE_IRQ?


>  drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c      | 2 +-
>  drivers/gpu/drm/arm/hdlcd_drv.c              | 2 +-
>  drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 2 +-
>  drivers/gpu/drm/drm_irq.c                    | 6 ------
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c    | 2 +-
>  drivers/gpu/drm/gma500/psb_drv.c             | 2 +-
>  drivers/gpu/drm/i915/i915_drv.c              | 2 +-
>  drivers/gpu/drm/meson/meson_drv.c            | 2 +-
>  drivers/gpu/drm/msm/msm_drv.c                | 3 +--
>  drivers/gpu/drm/mxsfb/mxsfb_drv.c            | 3 +--
>  drivers/gpu/drm/qxl/qxl_drv.c                | 2 +-
>  drivers/gpu/drm/radeon/radeon_drv.c          | 2 +-
>  drivers/gpu/drm/shmobile/shmob_drm_drv.c     | 2 +-
>  drivers/gpu/drm/tilcdc/tilcdc_drv.c          | 2 +-
>  drivers/gpu/drm/vc4/vc4_drv.c                | 1 -
>  drivers/gpu/drm/vmwgfx/vmwgfx_drv.c          | 2 +-
>  drivers/staging/vboxvideo/vbox_drv.c         | 2 +-

Local grep shows one more non-legacy entry in
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c

With that file addressed and trivial comment additions, patches: 1, 2,
3 and 26 are
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

HTH
Emil

_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* Re: [PATCH 22/26] drm/qxl: Use drm_fb_helper_fill_info
  2019-01-24 16:58 ` [PATCH 22/26] drm/qxl: " Daniel Vetter
@ 2019-01-25 15:14   ` Thierry Reding
  0 siblings, 0 replies; 72+ messages in thread
From: Thierry Reding @ 2019-01-25 15:14 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: linux-tegra, Daniel Vetter, Intel Graphics Development,
	DRI Development, Jonathan Hunter


[-- Attachment #1.1: Type: text/plain, Size: 512 bytes --]

On Thu, Jan 24, 2019 at 05:58:27PM +0100, Daniel Vetter wrote:
> Another driver that didn't set fbinfo->fix.id before.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Jonathan Hunter <jonathanh@nvidia.com>
> Cc: linux-tegra@vger.kernel.org
> ---
>  drivers/gpu/drm/tegra/fb.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)

In the subject: drm/qxl -> drm/tegra, with that:

Acked-by: Thierry Reding <treding@nvidia.com>

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 26/26] drm/<drivers>: Don't set FBINFO_(FLAG_)DEFAULT
  2019-01-24 16:58     ` Daniel Vetter
@ 2019-01-25 15:14       ` Thierry Reding
  -1 siblings, 0 replies; 72+ messages in thread
From: Thierry Reding @ 2019-01-25 15:14 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Heiko Stübner, nouveau, DRI Development,
	Krzysztof Kozlowski, Daniel Vetter, linux-samsung-soc,
	Joonyoung Shim, Jonathan Hunter, linux-rockchip, Kukjin Kim,
	Ben Skeggs, Alexander Kapshuk, Bartlomiej Zolnierkiewicz,
	Intel Graphics Development, Inki Dae, linux-tegra,
	linux-arm-kernel, Greg Kroah-Hartman, Seung-Woo Kim, Sandy Huang,
	Kyungmin Park


[-- Attachment #1.1: Type: text/plain, Size: 1522 bytes --]

On Thu, Jan 24, 2019 at 05:58:31PM +0100, Daniel Vetter wrote:
> It's 0.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Sandy Huang <hjc@rock-chips.com>
> Cc: "Heiko Stübner" <heiko@sntech.de>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Jonathan Hunter <jonathanh@nvidia.com>
> Cc: Hans de Goede <hdegoede@redhat.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
> Cc: Alexander Kapshuk <alexander.kapshuk@gmail.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-samsung-soc@vger.kernel.org
> Cc: nouveau@lists.freedesktop.org
> Cc: linux-rockchip@lists.infradead.org
> Cc: linux-tegra@vger.kernel.org
> ---
>  drivers/gpu/drm/exynos/exynos_drm_fbdev.c     | 1 -
>  drivers/gpu/drm/gma500/framebuffer.c          | 1 -
>  drivers/gpu/drm/nouveau/nouveau_fbcon.c       | 4 ++--
>  drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 1 -
>  drivers/gpu/drm/tegra/fb.c                    | 1 -
>  5 files changed, 2 insertions(+), 6 deletions(-)

Acked-by: Thierry Reding <treding@nvidia.com>

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 26/26] drm/<drivers>: Don't set FBINFO_(FLAG_)DEFAULT
@ 2019-01-25 15:14       ` Thierry Reding
  0 siblings, 0 replies; 72+ messages in thread
From: Thierry Reding @ 2019-01-25 15:14 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Heiko Stübner, nouveau, DRI Development,
	Krzysztof Kozlowski, Daniel Vetter, linux-samsung-soc,
	Joonyoung Shim, Patrik Jakobsson, Jonathan Hunter,
	linux-rockchip, Kukjin Kim, Ben Skeggs, Alexander Kapshuk,
	Bartlomiej Zolnierkiewicz, Intel Graphics Development, Inki Dae,
	Hans de Goede, linux-tegra, linux-arm-kernel, Greg Kroah-Hartman,
	Seung-Woo Kim, Sandy Huang, Kyungmin Park


[-- Attachment #1.1: Type: text/plain, Size: 1522 bytes --]

On Thu, Jan 24, 2019 at 05:58:31PM +0100, Daniel Vetter wrote:
> It's 0.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Sandy Huang <hjc@rock-chips.com>
> Cc: "Heiko Stübner" <heiko@sntech.de>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Jonathan Hunter <jonathanh@nvidia.com>
> Cc: Hans de Goede <hdegoede@redhat.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
> Cc: Alexander Kapshuk <alexander.kapshuk@gmail.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-samsung-soc@vger.kernel.org
> Cc: nouveau@lists.freedesktop.org
> Cc: linux-rockchip@lists.infradead.org
> Cc: linux-tegra@vger.kernel.org
> ---
>  drivers/gpu/drm/exynos/exynos_drm_fbdev.c     | 1 -
>  drivers/gpu/drm/gma500/framebuffer.c          | 1 -
>  drivers/gpu/drm/nouveau/nouveau_fbcon.c       | 4 ++--
>  drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 1 -
>  drivers/gpu/drm/tegra/fb.c                    | 1 -
>  5 files changed, 2 insertions(+), 6 deletions(-)

Acked-by: Thierry Reding <treding@nvidia.com>

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [Intel-gfx] [PATCH 03/26] drm/irq: Ditch DRIVER_IRQ_SHARED
  2019-01-25 14:46   ` Emil Velikov
@ 2019-01-25 16:14     ` Daniel Vetter
  2019-01-28 11:47       ` Emil Velikov
  0 siblings, 1 reply; 72+ messages in thread
From: Daniel Vetter @ 2019-01-25 16:14 UTC (permalink / raw)
  To: Emil Velikov
  Cc: Daniel Vetter, Intel Graphics Development, DRI Development,
	Daniel Vetter

On Fri, Jan 25, 2019 at 02:46:55PM +0000, Emil Velikov wrote:
> On Thu, 24 Jan 2019 at 16:58, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
> >
> > This is only used by drm_irq_install(), which is an optional helper.
> > And the right choice is to set it for all pci devices, and not for
> > everything else.
> >
> Can you please add some information (or reference) why it's the right choice?

pci devices can have a shared interrupt line. That's definitely the case
for legacy pci, and I guess carries over to pcie. msi/msi-x interrupts
will give you dedicated interrupts, but it doesn't really hurt to mark
them as shared.

I guess I could rephrase to state:

"This is only used by drm_irq_install(), which is an optional helper.
For legacy pci devices this is required (due to interrupt sharing without
msi/msi-x), and just making this the default exactly matches the behaviour
of all existing drivers using the drm_irq_install() helpers. In case that
ever becomes wrong drivers can roll their own irq handling, as many
drivers already do (for other reasons like needing a threaded interrupt
handler, or having an entire pile of different interrupt sources)."

That better?
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH 06/26] drm/fb_helper: set info->par in fill_info()
  2019-01-25  8:44     ` Daniel Vetter
@ 2019-01-25 18:25       ` Sam Ravnborg
  0 siblings, 0 replies; 72+ messages in thread
From: Sam Ravnborg @ 2019-01-25 18:25 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Daniel Vetter, Intel Graphics Development, DRI Development

On Fri, Jan 25, 2019 at 09:44:06AM +0100, Daniel Vetter wrote:
> On Thu, Jan 24, 2019 at 06:45:52PM +0100, Sam Ravnborg wrote:
> > Hi Daniel.
> > 
> > On Thu, Jan 24, 2019 at 05:58:11PM +0100, Daniel Vetter wrote:
> > > The fbdev emulation helpers pretty much assume that this is set.
> > > Let's do it for everyone.
> > 
> > I do not know this code at all.
> > But I failed to follow the code from the patch description.
> > 
> > It do not give _me_ a clue why the assignment is removed from
> > drm_fb_helper_generic_probe().
> > But it may be obvious for people that actually know this.
> 
> generic_probe calls the new fill_info function, so it's not removed, it's
> just moved, so that I can roll it out to all the drivers in the subsequent
> patches.
Obvious new you spell it out, thanks.
Patch is fine:

Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 21/26] drm/rockchip: Use drm_fb_helper_fill_info
  2019-01-24 16:58 ` [PATCH 21/26] drm/rockchip: " Daniel Vetter
@ 2019-01-27 19:18     ` Heiko Stuebner
  0 siblings, 0 replies; 72+ messages in thread
From: Heiko Stuebner @ 2019-01-27 19:18 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Intel Graphics Development, DRI Development, linux-rockchip,
	Daniel Vetter, linux-arm-kernel

Am Donnerstag, 24. Januar 2019, 17:58:26 CET schrieb Daniel Vetter:
> This will set an fb name for the first time!
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Sandy Huang <hjc@rock-chips.com>
> Cc: "Heiko Stübner" <heiko@sntech.de>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-rockchip@lists.infradead.org

After looking up the rest of the series and also realizing that
fbi->par seems to be set when a client attaches to the fb,
this looks good to me, so

Reviewed-by: Heiko Stuebner <heiko@sntech.de>

> ---
>  drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
> index 7bd3b89022be..d12164878e05 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
> @@ -90,13 +90,11 @@ static int rockchip_drm_fbdev_create(struct drm_fb_helper *helper,
>  		goto out;
>  	}
>  
> -	fbi->par = helper;
>  	fbi->flags = FBINFO_FLAG_DEFAULT;
>  	fbi->fbops = &rockchip_drm_fbdev_ops;
>  
>  	fb = helper->fb;
> -	drm_fb_helper_fill_fix(fbi, fb->pitches[0], fb->format->depth);
> -	drm_fb_helper_fill_var(fbi, helper, sizes->fb_width, sizes->fb_height);
> +	drm_fb_helper_fill_info(fbi, helper);
>  
>  	offset = fbi->var.xoffset * bytes_per_pixel;
>  	offset += fbi->var.yoffset * fb->pitches[0];
> 




_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH 21/26] drm/rockchip: Use drm_fb_helper_fill_info
@ 2019-01-27 19:18     ` Heiko Stuebner
  0 siblings, 0 replies; 72+ messages in thread
From: Heiko Stuebner @ 2019-01-27 19:18 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Intel Graphics Development, Sandy Huang, DRI Development,
	linux-rockchip, Daniel Vetter, linux-arm-kernel

Am Donnerstag, 24. Januar 2019, 17:58:26 CET schrieb Daniel Vetter:
> This will set an fb name for the first time!
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Sandy Huang <hjc@rock-chips.com>
> Cc: "Heiko Stübner" <heiko@sntech.de>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-rockchip@lists.infradead.org

After looking up the rest of the series and also realizing that
fbi->par seems to be set when a client attaches to the fb,
this looks good to me, so

Reviewed-by: Heiko Stuebner <heiko@sntech.de>

> ---
>  drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
> index 7bd3b89022be..d12164878e05 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
> @@ -90,13 +90,11 @@ static int rockchip_drm_fbdev_create(struct drm_fb_helper *helper,
>  		goto out;
>  	}
>  
> -	fbi->par = helper;
>  	fbi->flags = FBINFO_FLAG_DEFAULT;
>  	fbi->fbops = &rockchip_drm_fbdev_ops;
>  
>  	fb = helper->fb;
> -	drm_fb_helper_fill_fix(fbi, fb->pitches[0], fb->format->depth);
> -	drm_fb_helper_fill_var(fbi, helper, sizes->fb_width, sizes->fb_height);
> +	drm_fb_helper_fill_info(fbi, helper);
>  
>  	offset = fbi->var.xoffset * bytes_per_pixel;
>  	offset += fbi->var.yoffset * fb->pitches[0];
> 





_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [Intel-gfx] [PATCH 03/26] drm/irq: Ditch DRIVER_IRQ_SHARED
  2019-01-25 16:14     ` [Intel-gfx] " Daniel Vetter
@ 2019-01-28 11:47       ` Emil Velikov
  0 siblings, 0 replies; 72+ messages in thread
From: Emil Velikov @ 2019-01-28 11:47 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Daniel Vetter, Intel Graphics Development, DRI Development,
	Daniel Vetter

On 2019/01/25, Daniel Vetter wrote:
> On Fri, Jan 25, 2019 at 02:46:55PM +0000, Emil Velikov wrote:
> > On Thu, 24 Jan 2019 at 16:58, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
> > >
> > > This is only used by drm_irq_install(), which is an optional helper.
> > > And the right choice is to set it for all pci devices, and not for
> > > everything else.
> > >
> > Can you please add some information (or reference) why it's the right choice?
> 
> pci devices can have a shared interrupt line. That's definitely the case
> for legacy pci, and I guess carries over to pcie. msi/msi-x interrupts
> will give you dedicated interrupts, but it doesn't really hurt to mark
> them as shared.
> 
> I guess I could rephrase to state:
> 
> "This is only used by drm_irq_install(), which is an optional helper.
> For legacy pci devices this is required (due to interrupt sharing without
> msi/msi-x), and just making this the default exactly matches the behaviour
> of all existing drivers using the drm_irq_install() helpers. In case that
> ever becomes wrong drivers can roll their own irq handling, as many
> drivers already do (for other reasons like needing a threaded interrupt
> handler, or having an entire pile of different interrupt sources)."
> 
> That better?

It's amazing. Thank you very much.

-Emil
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH 26/26] drm/<drivers>: Don't set FBINFO_(FLAG_)DEFAULT
  2019-01-25 15:02       ` [Intel-gfx] " Emil Velikov
@ 2019-01-29  9:58         ` Daniel Vetter
  -1 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-29  9:58 UTC (permalink / raw)
  To: Emil Velikov
  Cc: Daniel Vetter, DRI Development, Daniel Vetter,
	moderated list:ARM/S5P EXYNOS AR...,
	Krzysztof Kozlowski, Jonathan Hunter, linux-rockchip, Kukjin Kim,
	Ben Skeggs, ML nouveau, Alexander Kapshuk,
	Bartlomiej Zolnierkiewicz, Intel Graphics Development,
	linux-tegra, LAKML, Greg Kroah-Hartman, Seung-Woo Kim,
	Kyungmin Park

On Fri, Jan 25, 2019 at 03:02:46PM +0000, Emil Velikov wrote:
> On Thu, 24 Jan 2019 at 17:00, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
> >
> > It's 0.
> >
> I'd add a bit more information here. Feel free to reuse as much/little
> of the following:
> 
> Both macros evaluate to 0. At the same time flag is already set to
> zero since the struct is kzalloc'd in framebuffer_alloc().
> As called by drm_fb_helper_alloc_fbi() in the DRM drivers.

Added&merged, thanks for your review.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH 26/26] drm/<drivers>: Don't set FBINFO_(FLAG_)DEFAULT
@ 2019-01-29  9:58         ` Daniel Vetter
  0 siblings, 0 replies; 72+ messages in thread
From: Daniel Vetter @ 2019-01-29  9:58 UTC (permalink / raw)
  To: Emil Velikov
  Cc: Heiko Stübner, Daniel Vetter, DRI Development,
	Daniel Vetter, moderated list:ARM/S5P EXYNOS AR...,
	Joonyoung Shim, Krzysztof Kozlowski, Jonathan Hunter,
	linux-rockchip, Kukjin Kim, Ben Skeggs, ML nouveau,
	Alexander Kapshuk, Bartlomiej Zolnierkiewicz,
	Intel Graphics Development, Inki Dae, linux-tegra, LAKML,
	Greg Kroah-Hartman, Seung-Woo Kim, Sandy Huang, Kyungmin Park

On Fri, Jan 25, 2019 at 03:02:46PM +0000, Emil Velikov wrote:
> On Thu, 24 Jan 2019 at 17:00, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
> >
> > It's 0.
> >
> I'd add a bit more information here. Feel free to reuse as much/little
> of the following:
> 
> Both macros evaluate to 0. At the same time flag is already set to
> zero since the struct is kzalloc'd in framebuffer_alloc().
> As called by drm_fb_helper_alloc_fbi() in the DRM drivers.

Added&merged, thanks for your review.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

end of thread, other threads:[~2019-01-29  9:58 UTC | newest]

Thread overview: 72+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-24 16:58 [PATCH 00/26] some cleanups, mostly around fbdev emulation Daniel Vetter
2019-01-24 16:58 ` [PATCH 01/26] drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install Daniel Vetter
2019-01-24 16:58   ` Daniel Vetter
2019-01-24 16:58   ` Daniel Vetter
2019-01-24 16:58   ` Daniel Vetter
     [not found]   ` <20190124165831.16427-2-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
2019-01-25 10:40     ` Sam Ravnborg
2019-01-25 10:40       ` Sam Ravnborg
2019-01-25 10:40       ` Sam Ravnborg
2019-01-25 10:40       ` Sam Ravnborg
2019-01-25 10:40   ` Sam Ravnborg
2019-01-25 15:09   ` Emil Velikov
2019-01-25 15:09     ` Emil Velikov
2019-01-25 15:09     ` Emil Velikov
2019-01-25 15:09     ` Emil Velikov
2019-01-25 15:09   ` Emil Velikov
2019-01-24 16:58 ` [PATCH 02/26] drm: Switch DRIVER_ flags to an enum Daniel Vetter
2019-01-24 17:38   ` Sam Ravnborg
2019-01-25  9:35     ` Daniel Vetter
2019-01-24 16:58 ` [PATCH 03/26] drm/irq: Ditch DRIVER_IRQ_SHARED Daniel Vetter
2019-01-25 14:46   ` Emil Velikov
2019-01-25 16:14     ` [Intel-gfx] " Daniel Vetter
2019-01-28 11:47       ` Emil Velikov
2019-01-24 16:58 ` [PATCH 04/26] drm/fb-helper: Add fill_info() functions Daniel Vetter
2019-01-24 17:40   ` Noralf Trønnes
2019-01-25  8:48     ` Daniel Vetter
2019-01-25  9:46       ` Noralf Trønnes
2019-01-25 10:15         ` Daniel Vetter
2019-01-24 16:58 ` [PATCH 05/26] drm/fb-helper: set fbi->fix.id in fill_info() Daniel Vetter
2019-01-24 17:28   ` Daniel Vetter
2019-01-24 16:58 ` [PATCH 06/26] drm/fb_helper: set info->par " Daniel Vetter
2019-01-24 17:45   ` Sam Ravnborg
2019-01-25  8:44     ` Daniel Vetter
2019-01-25 18:25       ` Sam Ravnborg
2019-01-24 16:58 ` [PATCH 07/26] drm/amdgpu: Use drm_fb_helper_fill_info Daniel Vetter
2019-01-24 16:58 ` [PATCH 08/26] drm/armada: " Daniel Vetter
2019-01-24 16:58 ` [PATCH 09/26] drm/ast: " Daniel Vetter
2019-01-24 18:00   ` Sam Ravnborg
2019-01-25  8:51     ` Daniel Vetter
2019-01-24 16:58 ` [PATCH 10/26] drm/cirrus: " Daniel Vetter
2019-01-24 16:58 ` [PATCH 11/26] drm/exynos: " Daniel Vetter
2019-01-24 16:58   ` Daniel Vetter
2019-01-24 16:58 ` [PATCH 12/26] drm/gma500: " Daniel Vetter
2019-01-24 16:58 ` [PATCH 13/26] drm/hibmc: " Daniel Vetter
2019-01-24 16:58 ` [PATCH 14/26] drm/i915: " Daniel Vetter
2019-01-24 16:58 ` [PATCH 15/26] drm/mga200g: " Daniel Vetter
     [not found] ` <20190124165831.16427-1-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
2019-01-24 16:58   ` [PATCH 16/26] drm/bochs: " Daniel Vetter
2019-01-24 16:58   ` [PATCH 26/26] drm/<drivers>: Don't set FBINFO_(FLAG_)DEFAULT Daniel Vetter
2019-01-24 16:58     ` Daniel Vetter
2019-01-25 15:02     ` Emil Velikov
2019-01-25 15:02       ` [Intel-gfx] " Emil Velikov
2019-01-29  9:58       ` Daniel Vetter
2019-01-29  9:58         ` Daniel Vetter
2019-01-25 15:14     ` Thierry Reding
2019-01-25 15:14       ` Thierry Reding
2019-01-24 16:58 ` [PATCH 17/26] drm/nouveau: Use drm_fb_helper_fill_info Daniel Vetter
2019-01-24 16:58 ` [PATCH 18/26] drm/omap: " Daniel Vetter
2019-01-24 16:58 ` [PATCH 19/26] drm/qxl: " Daniel Vetter
2019-01-25  6:39   ` Gerd Hoffmann
2019-01-25  6:39   ` Gerd Hoffmann
2019-01-25  8:52     ` Daniel Vetter
2019-01-25  8:52     ` Daniel Vetter
2019-01-24 16:58 ` [PATCH 20/26] drm/radeon: " Daniel Vetter
2019-01-24 16:58 ` [PATCH 21/26] drm/rockchip: " Daniel Vetter
2019-01-27 19:18   ` Heiko Stuebner
2019-01-27 19:18     ` Heiko Stuebner
2019-01-24 16:58 ` [PATCH 22/26] drm/qxl: " Daniel Vetter
2019-01-25 15:14   ` Thierry Reding
2019-01-24 16:58 ` [PATCH 23/26] drm/udl: " Daniel Vetter
2019-01-24 16:58 ` [PATCH 24/26] staging/vboxvideo: " Daniel Vetter
2019-01-25  8:51   ` Greg Kroah-Hartman
2019-01-24 16:58 ` [PATCH 25/26] drm/fb-helper: Unexport fill_{var,info} Daniel Vetter
2019-01-24 17:01 ` ✗ Fi.CI.BAT: failure for some cleanups, mostly around fbdev emulation Patchwork

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.