* [PATCH 1/2] drm/fsl-dcu: remove separate compilation unit for fbdev emulation
@ 2016-11-17 1:35 Stefan Agner
2016-11-17 1:35 ` [PATCH 2/2] drm/fsl-dcu: introduce kernel parameter to specify fbdev depth Stefan Agner
2016-11-29 2:36 ` [PATCH 1/2] drm/fsl-dcu: remove separate compilation unit for fbdev emulation Stefan Agner
0 siblings, 2 replies; 3+ messages in thread
From: Stefan Agner @ 2016-11-17 1:35 UTC (permalink / raw)
To: dri-devel; +Cc: meng.yi, linux-kernel, alison.wang
The separate file fsl_dcu_drm_fbdev.c only initialized fbdev
emulation which is a one-line operation. There is not much more
code on sight which justifies a separate file, hence call the
initialization helper directly from the drv file.
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
drivers/gpu/drm/fsl-dcu/Makefile | 1 -
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 2 +-
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h | 1 -
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_fbdev.c | 23 -----------------------
4 files changed, 1 insertion(+), 26 deletions(-)
delete mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_fbdev.c
diff --git a/drivers/gpu/drm/fsl-dcu/Makefile b/drivers/gpu/drm/fsl-dcu/Makefile
index b35a292..aca34f6 100644
--- a/drivers/gpu/drm/fsl-dcu/Makefile
+++ b/drivers/gpu/drm/fsl-dcu/Makefile
@@ -3,6 +3,5 @@ fsl-dcu-drm-y := fsl_dcu_drm_drv.o \
fsl_dcu_drm_rgb.o \
fsl_dcu_drm_plane.o \
fsl_dcu_drm_crtc.o \
- fsl_dcu_drm_fbdev.o \
fsl_tcon.o
obj-$(CONFIG_DRM_FSL_DCU) += fsl-dcu-drm.o
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 13569b8..c3c9349 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
@@ -85,7 +85,7 @@ static int fsl_dcu_load(struct drm_device *dev, unsigned long flags)
goto done;
dev->irq_enabled = true;
- fsl_dcu_fbdev_init(dev);
+ fsl_dev->fbdev = drm_fbdev_cma_init(dev, 24, 1, 1);
return 0;
done:
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
index 3b371fe7..e9e9aee 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
@@ -197,7 +197,6 @@ struct fsl_dcu_drm_device {
struct drm_atomic_state *state;
};
-void fsl_dcu_fbdev_init(struct drm_device *dev);
int fsl_dcu_drm_modeset_init(struct fsl_dcu_drm_device *fsl_dev);
#endif /* __FSL_DCU_DRM_DRV_H__ */
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_fbdev.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_fbdev.c
deleted file mode 100644
index 8b8b819..0000000
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_fbdev.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright 2015 Freescale Semiconductor, Inc.
- *
- * Freescale DCU drm device driver
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- */
-
-#include <drm/drmP.h>
-#include <drm/drm_fb_cma_helper.h>
-
-#include "fsl_dcu_drm_drv.h"
-
-/* initialize fbdev helper */
-void fsl_dcu_fbdev_init(struct drm_device *dev)
-{
- struct fsl_dcu_drm_device *fsl_dev = dev_get_drvdata(dev->dev);
-
- fsl_dev->fbdev = drm_fbdev_cma_init(dev, 24, 1, 1);
-}
--
2.10.2
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] drm/fsl-dcu: introduce kernel parameter to specify fbdev depth
2016-11-17 1:35 [PATCH 1/2] drm/fsl-dcu: remove separate compilation unit for fbdev emulation Stefan Agner
@ 2016-11-17 1:35 ` Stefan Agner
2016-11-29 2:36 ` [PATCH 1/2] drm/fsl-dcu: remove separate compilation unit for fbdev emulation Stefan Agner
1 sibling, 0 replies; 3+ messages in thread
From: Stefan Agner @ 2016-11-17 1:35 UTC (permalink / raw)
To: dri-devel; +Cc: airlied, meng.yi, alison.wang, linux-kernel, Stefan Agner
Add a kernel parameter legancyfb_depth (like the i.MX drm driver)
to control the legancy fbdev depth. Default to the so far hard
coded depth of 24-bit. Currently changing the framebuffer depth
is not possible from user space when using the fbdev emulation
layer... This provides a rudimentary mechanism to change depth
without having to change kernel code.
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
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 c3c9349..537ca15 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
@@ -32,6 +32,9 @@
#include "fsl_dcu_drm_drv.h"
#include "fsl_tcon.h"
+static int legacyfb_depth = 24;
+module_param(legacyfb_depth, int, 0444);
+
static bool fsl_dcu_drm_is_volatile_reg(struct device *dev, unsigned int reg)
{
if (reg == DCU_INT_STATUS || reg == DCU_UPDATE_MODE)
@@ -85,7 +88,18 @@ static int fsl_dcu_load(struct drm_device *dev, unsigned long flags)
goto done;
dev->irq_enabled = true;
- fsl_dev->fbdev = drm_fbdev_cma_init(dev, 24, 1, 1);
+ if (legacyfb_depth != 16 && legacyfb_depth != 24 &&
+ legacyfb_depth != 32) {
+ dev_warn(dev->dev,
+ "Invalid legacyfb_depth. Defaulting to 24bpp\n");
+ legacyfb_depth = 24;
+ }
+ fsl_dev->fbdev = drm_fbdev_cma_init(dev, legacyfb_depth, 1, 1);
+ if (IS_ERR(fsl_dev->fbdev)) {
+ ret = PTR_ERR(fsl_dev->fbdev);
+ fsl_dev->fbdev = NULL;
+ goto done;
+ }
return 0;
done:
--
2.10.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 1/2] drm/fsl-dcu: remove separate compilation unit for fbdev emulation
2016-11-17 1:35 [PATCH 1/2] drm/fsl-dcu: remove separate compilation unit for fbdev emulation Stefan Agner
2016-11-17 1:35 ` [PATCH 2/2] drm/fsl-dcu: introduce kernel parameter to specify fbdev depth Stefan Agner
@ 2016-11-29 2:36 ` Stefan Agner
1 sibling, 0 replies; 3+ messages in thread
From: Stefan Agner @ 2016-11-29 2:36 UTC (permalink / raw)
To: dri-devel; +Cc: meng.yi, linux-kernel, alison.wang
On 2016-11-16 17:35, Stefan Agner wrote:
> The separate file fsl_dcu_drm_fbdev.c only initialized fbdev
> emulation which is a one-line operation. There is not much more
> code on sight which justifies a separate file, hence call the
> initialization helper directly from the drv file.
Both applied to my for-next branch.
>
> Signed-off-by: Stefan Agner <stefan@agner.ch>
> ---
> drivers/gpu/drm/fsl-dcu/Makefile | 1 -
> drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 2 +-
> drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h | 1 -
> drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_fbdev.c | 23 -----------------------
> 4 files changed, 1 insertion(+), 26 deletions(-)
> delete mode 100644 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_fbdev.c
>
> diff --git a/drivers/gpu/drm/fsl-dcu/Makefile b/drivers/gpu/drm/fsl-dcu/Makefile
> index b35a292..aca34f6 100644
> --- a/drivers/gpu/drm/fsl-dcu/Makefile
> +++ b/drivers/gpu/drm/fsl-dcu/Makefile
> @@ -3,6 +3,5 @@ fsl-dcu-drm-y := fsl_dcu_drm_drv.o \
> fsl_dcu_drm_rgb.o \
> fsl_dcu_drm_plane.o \
> fsl_dcu_drm_crtc.o \
> - fsl_dcu_drm_fbdev.o \
> fsl_tcon.o
> obj-$(CONFIG_DRM_FSL_DCU) += fsl-dcu-drm.o
> 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 13569b8..c3c9349 100644
> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
> @@ -85,7 +85,7 @@ static int fsl_dcu_load(struct drm_device *dev,
> unsigned long flags)
> goto done;
> dev->irq_enabled = true;
>
> - fsl_dcu_fbdev_init(dev);
> + fsl_dev->fbdev = drm_fbdev_cma_init(dev, 24, 1, 1);
>
> return 0;
> done:
> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
> b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
> index 3b371fe7..e9e9aee 100644
> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
> @@ -197,7 +197,6 @@ struct fsl_dcu_drm_device {
> struct drm_atomic_state *state;
> };
>
> -void fsl_dcu_fbdev_init(struct drm_device *dev);
> int fsl_dcu_drm_modeset_init(struct fsl_dcu_drm_device *fsl_dev);
>
> #endif /* __FSL_DCU_DRM_DRV_H__ */
> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_fbdev.c
> b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_fbdev.c
> deleted file mode 100644
> index 8b8b819..0000000
> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_fbdev.c
> +++ /dev/null
> @@ -1,23 +0,0 @@
> -/*
> - * Copyright 2015 Freescale Semiconductor, Inc.
> - *
> - * Freescale DCU drm device driver
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License as published by
> - * the Free Software Foundation; either version 2 of the License, or
> - * (at your option) any later version.
> - */
> -
> -#include <drm/drmP.h>
> -#include <drm/drm_fb_cma_helper.h>
> -
> -#include "fsl_dcu_drm_drv.h"
> -
> -/* initialize fbdev helper */
> -void fsl_dcu_fbdev_init(struct drm_device *dev)
> -{
> - struct fsl_dcu_drm_device *fsl_dev = dev_get_drvdata(dev->dev);
> -
> - fsl_dev->fbdev = drm_fbdev_cma_init(dev, 24, 1, 1);
> -}
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-11-29 2:42 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-17 1:35 [PATCH 1/2] drm/fsl-dcu: remove separate compilation unit for fbdev emulation Stefan Agner
2016-11-17 1:35 ` [PATCH 2/2] drm/fsl-dcu: introduce kernel parameter to specify fbdev depth Stefan Agner
2016-11-29 2:36 ` [PATCH 1/2] drm/fsl-dcu: remove separate compilation unit for fbdev emulation Stefan Agner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).