Re: [PATCH 2/4] drm/tve200: Add new driver for TVE200
On Mon, Aug 14, 2017 at 8:56 PM, Eric Anholtwrote: > I also recommend checking out panel-bridge for deleting a bunch of the > code, Daniel said the same. I tried to look into this but the drivers currently using it (like Atmel HLCDC) are so different using custom encoders and what not that I can't really see clearly how to apply it in this case. If you patch the PL111 driver to use the bridge helper I promise I will follow up and patch this driver the same way though! Yours, Linus Walleij ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 2/4] drm/tve200: Add new driver for TVE200
On Tue, Aug 15, 2017 at 10:02 PM, Linus Walleijwrote: > On Mon, Aug 14, 2017 at 4:20 PM, Daniel Vetter wrote: > >> Wrt merging/maintaining: Want to include it in the drm-misc pile? We'll >> happily throw commit rights at every driver submission (and honestly >> expect that, since it helps tremendously with balance maintainer loads for >> the oddball trivial patch). > > Yeah I'm game for it :) > > I need to reiterate the patch addressing yours and Eric's comments first. > > I *really* want to experience your development workflow first hand after > seeing your talks, so it'll be exciting. Just tell me how to proceed with > this and/or point me to the right docs and I'll get going with it. You need an fd.o account with acess to drm-misc. https://www.freedesktop.org/wiki/AccountRequests/ Meanwhile enjoy the docs: https://01.org/linuxgraphics/gfx-docs/maintainer-tools/drm-misc.html https://01.org/linuxgraphics/gfx-docs/maintainer-tools/dim.html (we have patches in flight to make it into a neat sphinx-style book like the kerneldocs now are) Then grab dim (our script) https://cgit.freedesktop.org/drm-intel/tree/dim?h=maintainer-tools Adjust dimrc to your taste and run dim setup (that will also grab a checkout of all the maintainer-tools so that it autoupdates). There's a bunch of howtos all around, and once fully installed there's also bash completion and stuff like that. If you hit a snag, best way to get help is over #dri-devel on freenode. That's also where we tend to organize/coordinate review and stuff. Also if anything is uncool with the tools pls pipe up, we constantly try to make them better. Cheers, Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 2/4] drm/tve200: Add new driver for TVE200
Linus Walleijwrites: > This adds a new DRM driver for the Faraday Technology TVE200 > block. This "TV Encoder" encodes a ITU-T BT.656 stream and can > be found in the StorLink SL3516 (later Cortina Systems CS3516) > as well as the Grain Media GM8180. > > I do not have definitive word from anyone at Faraday that this > IP block is theirs, but it bears the hallmark of their 3-digit > version code (200) and is used in two SoCs from completely > different companies. (Grain Media was fully owned by Faraday > until it was transferred to NovoTek this january, and > Faraday did lots of work on the StorLink SoCs.) > > The D-Link DIR-685 uses this in connection with the Ilitek > ILI9322 panel driver that supports BT.656 input, while the > GM8180 apparently has been used with the Cirrus Logic CS4954 > digital video encoder. The oldest user seems to be > something called Techwall 2835. > > This driver is heavily inspired by Eric Anholt's PL111 > driver and therefore I have mentioned all the ancestor authors > in the header file. This looks great! I've got just a couple of little things I noticed, but with the init error path bugs fixed it's: Reviewed-by: Eric Anholt I also recommend checking out panel-bridge for deleting a bunch of the code, and joining us in the drm-misc committer group :) > Signed-off-by: Linus Walleij > --- > Documentation/gpu/index.rst | 1 + > Documentation/gpu/tve200.rst | 6 + > MAINTAINERS | 6 + > drivers/gpu/drm/Kconfig | 2 + > drivers/gpu/drm/Makefile | 1 + > drivers/gpu/drm/tve200/Kconfig| 15 ++ > drivers/gpu/drm/tve200/Makefile | 5 + > drivers/gpu/drm/tve200/tve200_connector.c | 126 +++ > drivers/gpu/drm/tve200/tve200_display.c | 346 > ++ > drivers/gpu/drm/tve200/tve200_drm.h | 129 +++ > drivers/gpu/drm/tve200/tve200_drv.c | 277 > 11 files changed, 914 insertions(+) > create mode 100644 Documentation/gpu/tve200.rst > create mode 100644 drivers/gpu/drm/tve200/Kconfig > create mode 100644 drivers/gpu/drm/tve200/Makefile > create mode 100644 drivers/gpu/drm/tve200/tve200_connector.c > create mode 100644 drivers/gpu/drm/tve200/tve200_display.c > create mode 100644 drivers/gpu/drm/tve200/tve200_drm.h > create mode 100644 drivers/gpu/drm/tve200/tve200_drv.c > > diff --git a/Documentation/gpu/index.rst b/Documentation/gpu/index.rst > index 35d673bf9b56..c36586dad29d 100644 > --- a/Documentation/gpu/index.rst > +++ b/Documentation/gpu/index.rst > @@ -15,6 +15,7 @@ Linux GPU Driver Developer's Guide > pl111 > tegra > tinydrm > + tve200 > vc4 > vga-switcheroo > vgaarbiter > diff --git a/Documentation/gpu/tve200.rst b/Documentation/gpu/tve200.rst > new file mode 100644 > index ..69b17b324e12 > --- /dev/null > +++ b/Documentation/gpu/tve200.rst > @@ -0,0 +1,6 @@ > +== > + drm/tve200 Faraday TV Encoder 200 > +== > + > +.. kernel-doc:: drivers/gpu/drm/tve200/tve200_drv.c > + :doc: Faraday TV Encoder 200 > diff --git a/MAINTAINERS b/MAINTAINERS > index e87cba115ea4..c3d42d68253a 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -4305,6 +4305,12 @@ T: git git://anongit.freedesktop.org/drm/drm-misc > S: Maintained > F: drivers/gpu/drm/bochs/ > > +DRM DRIVER FOR FARADAY TVE200 TV ENCODER > +M: Linus Walleij > +T: git git://anongit.freedesktop.org/drm/drm-misc > +S: Maintained > +F: drivers/gpu/drm/tve200/ > + > DRM DRIVER FOR INTEL I810 VIDEO CARDS > S: Orphan / Obsolete > F: drivers/gpu/drm/i810/ > diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig > index 83cb2a88c204..c5e1a8409285 100644 > --- a/drivers/gpu/drm/Kconfig > +++ b/drivers/gpu/drm/Kconfig > @@ -278,6 +278,8 @@ source "drivers/gpu/drm/tinydrm/Kconfig" > > source "drivers/gpu/drm/pl111/Kconfig" > > +source "drivers/gpu/drm/tve200/Kconfig" > + > # Keep legacy drivers last > > menuconfig DRM_LEGACY > diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile > index 24a066e1841c..cc81813e2238 100644 > --- a/drivers/gpu/drm/Makefile > +++ b/drivers/gpu/drm/Makefile > @@ -100,3 +100,4 @@ obj-$(CONFIG_DRM_ZTE) += zte/ > obj-$(CONFIG_DRM_MXSFB) += mxsfb/ > obj-$(CONFIG_DRM_TINYDRM) += tinydrm/ > obj-$(CONFIG_DRM_PL111) += pl111/ > +obj-$(CONFIG_DRM_TVE200) += tve200/ > diff --git a/drivers/gpu/drm/tve200/Kconfig b/drivers/gpu/drm/tve200/Kconfig > new file mode 100644 > index ..21d9841ddb88 > --- /dev/null > +++ b/drivers/gpu/drm/tve200/Kconfig > @@ -0,0 +1,15 @@ > +config DRM_TVE200 > + tristate "DRM Support for Faraday TV Encoder TVE200" > + depends on DRM > + depends on CMA > + depends on ARM || COMPILE_TEST > + depends
Re: [PATCH 2/4] drm/tve200: Add new driver for TVE200
On Sun, Aug 13, 2017 at 05:11:30PM +0200, Linus Walleij wrote: > This adds a new DRM driver for the Faraday Technology TVE200 > block. This "TV Encoder" encodes a ITU-T BT.656 stream and can > be found in the StorLink SL3516 (later Cortina Systems CS3516) > as well as the Grain Media GM8180. > > I do not have definitive word from anyone at Faraday that this > IP block is theirs, but it bears the hallmark of their 3-digit > version code (200) and is used in two SoCs from completely > different companies. (Grain Media was fully owned by Faraday > until it was transferred to NovoTek this january, and > Faraday did lots of work on the StorLink SoCs.) > > The D-Link DIR-685 uses this in connection with the Ilitek > ILI9322 panel driver that supports BT.656 input, while the > GM8180 apparently has been used with the Cirrus Logic CS4954 > digital video encoder. The oldest user seems to be > something called Techwall 2835. > > This driver is heavily inspired by Eric Anholt's PL111 > driver and therefore I have mentioned all the ancestor authors > in the header file. > > Signed-off-by: Linus Walleij> --- > Documentation/gpu/index.rst | 1 + > Documentation/gpu/tve200.rst | 6 + > MAINTAINERS | 6 + > drivers/gpu/drm/Kconfig | 2 + > drivers/gpu/drm/Makefile | 1 + > drivers/gpu/drm/tve200/Kconfig| 15 ++ > drivers/gpu/drm/tve200/Makefile | 5 + > drivers/gpu/drm/tve200/tve200_connector.c | 126 +++ > drivers/gpu/drm/tve200/tve200_display.c | 346 > ++ > drivers/gpu/drm/tve200/tve200_drm.h | 129 +++ > drivers/gpu/drm/tve200/tve200_drv.c | 277 > 11 files changed, 914 insertions(+) > create mode 100644 Documentation/gpu/tve200.rst > create mode 100644 drivers/gpu/drm/tve200/Kconfig > create mode 100644 drivers/gpu/drm/tve200/Makefile > create mode 100644 drivers/gpu/drm/tve200/tve200_connector.c > create mode 100644 drivers/gpu/drm/tve200/tve200_display.c > create mode 100644 drivers/gpu/drm/tve200/tve200_drm.h > create mode 100644 drivers/gpu/drm/tve200/tve200_drv.c > > diff --git a/Documentation/gpu/index.rst b/Documentation/gpu/index.rst > index 35d673bf9b56..c36586dad29d 100644 > --- a/Documentation/gpu/index.rst > +++ b/Documentation/gpu/index.rst > @@ -15,6 +15,7 @@ Linux GPU Driver Developer's Guide > pl111 > tegra > tinydrm > + tve200 > vc4 > vga-switcheroo > vgaarbiter > diff --git a/Documentation/gpu/tve200.rst b/Documentation/gpu/tve200.rst > new file mode 100644 > index ..69b17b324e12 > --- /dev/null > +++ b/Documentation/gpu/tve200.rst > @@ -0,0 +1,6 @@ > +== > + drm/tve200 Faraday TV Encoder 200 > +== > + > +.. kernel-doc:: drivers/gpu/drm/tve200/tve200_drv.c > + :doc: Faraday TV Encoder 200 > diff --git a/MAINTAINERS b/MAINTAINERS > index e87cba115ea4..c3d42d68253a 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -4305,6 +4305,12 @@ T: git git://anongit.freedesktop.org/drm/drm-misc > S: Maintained > F: drivers/gpu/drm/bochs/ > > +DRM DRIVER FOR FARADAY TVE200 TV ENCODER > +M: Linus Walleij > +T: git git://anongit.freedesktop.org/drm/drm-misc > +S: Maintained > +F: drivers/gpu/drm/tve200/ > + > DRM DRIVER FOR INTEL I810 VIDEO CARDS > S: Orphan / Obsolete > F: drivers/gpu/drm/i810/ > diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig > index 83cb2a88c204..c5e1a8409285 100644 > --- a/drivers/gpu/drm/Kconfig > +++ b/drivers/gpu/drm/Kconfig > @@ -278,6 +278,8 @@ source "drivers/gpu/drm/tinydrm/Kconfig" > > source "drivers/gpu/drm/pl111/Kconfig" > > +source "drivers/gpu/drm/tve200/Kconfig" > + > # Keep legacy drivers last > > menuconfig DRM_LEGACY > diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile > index 24a066e1841c..cc81813e2238 100644 > --- a/drivers/gpu/drm/Makefile > +++ b/drivers/gpu/drm/Makefile > @@ -100,3 +100,4 @@ obj-$(CONFIG_DRM_ZTE) += zte/ > obj-$(CONFIG_DRM_MXSFB) += mxsfb/ > obj-$(CONFIG_DRM_TINYDRM) += tinydrm/ > obj-$(CONFIG_DRM_PL111) += pl111/ > +obj-$(CONFIG_DRM_TVE200) += tve200/ > diff --git a/drivers/gpu/drm/tve200/Kconfig b/drivers/gpu/drm/tve200/Kconfig > new file mode 100644 > index ..21d9841ddb88 > --- /dev/null > +++ b/drivers/gpu/drm/tve200/Kconfig > @@ -0,0 +1,15 @@ > +config DRM_TVE200 > + tristate "DRM Support for Faraday TV Encoder TVE200" > + depends on DRM > + depends on CMA > + depends on ARM || COMPILE_TEST > + depends on OF > + select DRM_PANEL > + select DRM_KMS_HELPER > + select DRM_KMS_CMA_HELPER > + select DRM_GEM_CMA_HELPER > + select VT_HW_CONSOLE_BINDING if FRAMEBUFFER_CONSOLE > + help > + Choose this option for DRM support for the Faraday TV
[PATCH 2/4] drm/tve200: Add new driver for TVE200
This adds a new DRM driver for the Faraday Technology TVE200 block. This "TV Encoder" encodes a ITU-T BT.656 stream and can be found in the StorLink SL3516 (later Cortina Systems CS3516) as well as the Grain Media GM8180. I do not have definitive word from anyone at Faraday that this IP block is theirs, but it bears the hallmark of their 3-digit version code (200) and is used in two SoCs from completely different companies. (Grain Media was fully owned by Faraday until it was transferred to NovoTek this january, and Faraday did lots of work on the StorLink SoCs.) The D-Link DIR-685 uses this in connection with the Ilitek ILI9322 panel driver that supports BT.656 input, while the GM8180 apparently has been used with the Cirrus Logic CS4954 digital video encoder. The oldest user seems to be something called Techwall 2835. This driver is heavily inspired by Eric Anholt's PL111 driver and therefore I have mentioned all the ancestor authors in the header file. Signed-off-by: Linus Walleij--- Documentation/gpu/index.rst | 1 + Documentation/gpu/tve200.rst | 6 + MAINTAINERS | 6 + drivers/gpu/drm/Kconfig | 2 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/tve200/Kconfig| 15 ++ drivers/gpu/drm/tve200/Makefile | 5 + drivers/gpu/drm/tve200/tve200_connector.c | 126 +++ drivers/gpu/drm/tve200/tve200_display.c | 346 ++ drivers/gpu/drm/tve200/tve200_drm.h | 129 +++ drivers/gpu/drm/tve200/tve200_drv.c | 277 11 files changed, 914 insertions(+) create mode 100644 Documentation/gpu/tve200.rst create mode 100644 drivers/gpu/drm/tve200/Kconfig create mode 100644 drivers/gpu/drm/tve200/Makefile create mode 100644 drivers/gpu/drm/tve200/tve200_connector.c create mode 100644 drivers/gpu/drm/tve200/tve200_display.c create mode 100644 drivers/gpu/drm/tve200/tve200_drm.h create mode 100644 drivers/gpu/drm/tve200/tve200_drv.c diff --git a/Documentation/gpu/index.rst b/Documentation/gpu/index.rst index 35d673bf9b56..c36586dad29d 100644 --- a/Documentation/gpu/index.rst +++ b/Documentation/gpu/index.rst @@ -15,6 +15,7 @@ Linux GPU Driver Developer's Guide pl111 tegra tinydrm + tve200 vc4 vga-switcheroo vgaarbiter diff --git a/Documentation/gpu/tve200.rst b/Documentation/gpu/tve200.rst new file mode 100644 index ..69b17b324e12 --- /dev/null +++ b/Documentation/gpu/tve200.rst @@ -0,0 +1,6 @@ +== + drm/tve200 Faraday TV Encoder 200 +== + +.. kernel-doc:: drivers/gpu/drm/tve200/tve200_drv.c + :doc: Faraday TV Encoder 200 diff --git a/MAINTAINERS b/MAINTAINERS index e87cba115ea4..c3d42d68253a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4305,6 +4305,12 @@ T: git git://anongit.freedesktop.org/drm/drm-misc S: Maintained F: drivers/gpu/drm/bochs/ +DRM DRIVER FOR FARADAY TVE200 TV ENCODER +M: Linus Walleij +T: git git://anongit.freedesktop.org/drm/drm-misc +S: Maintained +F: drivers/gpu/drm/tve200/ + DRM DRIVER FOR INTEL I810 VIDEO CARDS S: Orphan / Obsolete F: drivers/gpu/drm/i810/ diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 83cb2a88c204..c5e1a8409285 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -278,6 +278,8 @@ source "drivers/gpu/drm/tinydrm/Kconfig" source "drivers/gpu/drm/pl111/Kconfig" +source "drivers/gpu/drm/tve200/Kconfig" + # Keep legacy drivers last menuconfig DRM_LEGACY diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile index 24a066e1841c..cc81813e2238 100644 --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@ -100,3 +100,4 @@ obj-$(CONFIG_DRM_ZTE) += zte/ obj-$(CONFIG_DRM_MXSFB)+= mxsfb/ obj-$(CONFIG_DRM_TINYDRM) += tinydrm/ obj-$(CONFIG_DRM_PL111) += pl111/ +obj-$(CONFIG_DRM_TVE200) += tve200/ diff --git a/drivers/gpu/drm/tve200/Kconfig b/drivers/gpu/drm/tve200/Kconfig new file mode 100644 index ..21d9841ddb88 --- /dev/null +++ b/drivers/gpu/drm/tve200/Kconfig @@ -0,0 +1,15 @@ +config DRM_TVE200 + tristate "DRM Support for Faraday TV Encoder TVE200" + depends on DRM + depends on CMA + depends on ARM || COMPILE_TEST + depends on OF + select DRM_PANEL + select DRM_KMS_HELPER + select DRM_KMS_CMA_HELPER + select DRM_GEM_CMA_HELPER + select VT_HW_CONSOLE_BINDING if FRAMEBUFFER_CONSOLE + help + Choose this option for DRM support for the Faraday TV Encoder + TVE200 Controller. + If M is selected the module will be called tve200_drm. diff --git a/drivers/gpu/drm/tve200/Makefile b/drivers/gpu/drm/tve200/Makefile new file mode 100644 index ..a9dba54f7ee5 --- /dev/null +++