Re: [PATCH v5 1/5] drm: xlnx: Xilinx DRM KMS module
Hi Laurent, On Wed, 2018-02-21 at 15:17:25 -0800, Laurent Pinchart wrote: > Hi Hyun, > > Thank you for the patch. > > On Wednesday, 7 February 2018 03:36:36 EET Hyun Kwon wrote: > > Xilinx has various platforms for display, where users can create > > using multiple IPs in the programmable FPGA fabric, or where > > some hardened piepline is available on the chip. Furthermore, > > s/piepline/pipeline/ > Will fix. > > hardened pipeline can also interact with soft logics in FPGA. > > > > The Xilinx DRM KMS module is to integrate multiple subdevices and > > to represent the entire pipeline as a single DRM device. The module > > includes helper (ex, framebuffer and gem helpers) and > > glue logic (ex, crtc interface) functions. > > > > Signed-off-by: Hyun Kwon > > Acked-by: Daniel Vetter > > --- > > v5 > > - Redefine xlnx_pipeline_init() > > v4 > > - Fix a bug in of graph binding handling > > - Remove vblank callbacks from xlnx_crtc > > - Remove the dt binding. This module becomes more like a library. > > - Rephrase the commit message > > v3 > > - Add Laurent as a maintainer > > - Fix multiple-reference on gem objects > > v2 > > - Change the SPDX identifier format > > - Merge patches(crtc, gem, fb) into single one > > v2 of xlnx_drv > > - Rename kms to display in xlnx_drv > > - Replace some xlnx specific fb helper with common helpers in xlnx_drv > > - Don't set the commit tail callback in xlnx_drv > > - Support 'ports' graph binding in xlnx_drv > > v2 of xlnx_fb > > - Remove wrappers in xlnx_fb > > - Replace some functions with drm core helpers in xlnx_fb > > --- > > --- > > MAINTAINERS | 9 + > > drivers/gpu/drm/Kconfig | 2 + > > drivers/gpu/drm/Makefile | 1 + > > drivers/gpu/drm/xlnx/Kconfig | 12 + > > drivers/gpu/drm/xlnx/Makefile| 2 + > > drivers/gpu/drm/xlnx/xlnx_crtc.c | 177 ++ > > drivers/gpu/drm/xlnx/xlnx_crtc.h | 70 ++ > > drivers/gpu/drm/xlnx/xlnx_drv.c | 501 > > drivers/gpu/drm/xlnx/xlnx_drv.h | 33 +++ > > drivers/gpu/drm/xlnx/xlnx_fb.c | 298 +++ > > drivers/gpu/drm/xlnx/xlnx_fb.h | 33 +++ > > drivers/gpu/drm/xlnx/xlnx_gem.c | 47 > > drivers/gpu/drm/xlnx/xlnx_gem.h | 26 ++ > > 13 files changed, 1211 insertions(+) > > create mode 100644 drivers/gpu/drm/xlnx/Kconfig > > create mode 100644 drivers/gpu/drm/xlnx/Makefile > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_crtc.c > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_crtc.h > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_drv.c > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_drv.h > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_fb.c > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_fb.h > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_gem.c > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_gem.h > > > > diff --git a/MAINTAINERS b/MAINTAINERS > > index 5bc088f..07c0e73 100644 > > --- a/MAINTAINERS > > +++ b/MAINTAINERS > > @@ -4789,6 +4789,15 @@ F: drivers/gpu/drm/etnaviv/ > > F: include/uapi/drm/etnaviv_drm.h > > F: Documentation/devicetree/bindings/display/etnaviv/ > > > > +DRM DRIVERS FOR XILINX > > +M: Hyun Kwon > > +M: Laurent Pinchart > > +L: dri-devel@lists.freedesktop.org > > +S: Maintained > > +F: drivers/gpu/drm/xlnx/ > > +F: Documentation/devicetree/bindings/display/xlnx/ > > +T: git git://anongit.freedesktop.org/drm/drm-misc > > + > > DRM DRIVERS FOR ZTE ZX > > M: Shawn Guo > > L: dri-devel@lists.freedesktop.org > > diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig > > index deeefa7..5a3ec66 100644 > > --- a/drivers/gpu/drm/Kconfig > > + * This software is licensed under the terms of the GNU General Public [snip] > > + * License version 2, as published by the Free Software Foundation, and > > + * may be copied, distributed, and modified under those terms. > > + * > > + * This program is distributed in the hope that it will be useful, > > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > > + * GNU General Public License for more details. > > You can drop those two paragraphs as you now have an SPDX license header. > At the time of submission, it wasn't clear how to put this, and I was suggested to do it this way. I believe now I can remove, so I'll remove it from all. > > + */ > > + > > +#include > > + > > +#include > > + > > +#include "xlnx_crtc.h" > > +#include "xlnx_drv.h" > > + > > +/* > > + * Overview > > + * > > + * > > + * The Xilinx CRTC layer is to enable the custom interface to CRTC drivers. > > + * The interface is used by Xilinx DRM driver where it needs CRTC > > + * functionailty. CRTC drivers should attach the desired callbacks > > s/functionailty/functionality/ > > > + * to struct xlnx_crtc and register the xlnx_crtc with correcsponding > > s/correcsponding/corresponding/ > > > + * drm_device. It's highly recommende
Re: [PATCH v5 1/5] drm: xlnx: Xilinx DRM KMS module
Hi Laurent, On Thu, 2018-02-22 at 05:40:50 -0800, Laurent Pinchart wrote: > Hi Hyun, > > On Thursday, 22 February 2018 04:50:42 EET Hyun Kwon wrote: > > On Wed, 2018-02-21 at 15:17:25 -0800, Laurent Pinchart wrote: > > > On Wednesday, 7 February 2018 03:36:36 EET Hyun Kwon wrote: > > >> Xilinx has various platforms for display, where users can create > > >> using multiple IPs in the programmable FPGA fabric, or where > > >> some hardened piepline is available on the chip. Furthermore, > > > > > > s/piepline/pipeline/ > > > > > >> hardened pipeline can also interact with soft logics in FPGA. > > >> > > >> The Xilinx DRM KMS module is to integrate multiple subdevices and > > >> to represent the entire pipeline as a single DRM device. The module > > >> includes helper (ex, framebuffer and gem helpers) and > > >> glue logic (ex, crtc interface) functions. > > >> > > >> Signed-off-by: Hyun Kwon > > >> Acked-by: Daniel Vetter > > >> --- > > >> v5 > > >> - Redefine xlnx_pipeline_init() > > >> v4 > > >> - Fix a bug in of graph binding handling > > >> - Remove vblank callbacks from xlnx_crtc > > >> - Remove the dt binding. This module becomes more like a library. > > >> - Rephrase the commit message > > >> v3 > > >> - Add Laurent as a maintainer > > >> - Fix multiple-reference on gem objects > > >> v2 > > >> - Change the SPDX identifier format > > >> - Merge patches(crtc, gem, fb) into single one > > >> v2 of xlnx_drv > > >> - Rename kms to display in xlnx_drv > > >> - Replace some xlnx specific fb helper with common helpers in xlnx_drv > > >> - Don't set the commit tail callback in xlnx_drv > > >> - Support 'ports' graph binding in xlnx_drv > > >> v2 of xlnx_fb > > >> - Remove wrappers in xlnx_fb > > >> - Replace some functions with drm core helpers in xlnx_fb > > >> --- > > >> --- > > >> > > >> MAINTAINERS | 9 + > > >> drivers/gpu/drm/Kconfig | 2 + > > >> drivers/gpu/drm/Makefile | 1 + > > >> drivers/gpu/drm/xlnx/Kconfig | 12 + > > >> drivers/gpu/drm/xlnx/Makefile| 2 + > > >> drivers/gpu/drm/xlnx/xlnx_crtc.c | 177 ++ > > >> drivers/gpu/drm/xlnx/xlnx_crtc.h | 70 ++ > > >> drivers/gpu/drm/xlnx/xlnx_drv.c | 501 + > > >> drivers/gpu/drm/xlnx/xlnx_drv.h | 33 +++ > > >> drivers/gpu/drm/xlnx/xlnx_fb.c | 298 +++ > > >> drivers/gpu/drm/xlnx/xlnx_fb.h | 33 +++ > > >> drivers/gpu/drm/xlnx/xlnx_gem.c | 47 > > >> drivers/gpu/drm/xlnx/xlnx_gem.h | 26 ++ > > >> 13 files changed, 1211 insertions(+) > > >> create mode 100644 drivers/gpu/drm/xlnx/Kconfig > > >> create mode 100644 drivers/gpu/drm/xlnx/Makefile > > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_crtc.c > > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_crtc.h > > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_drv.c > > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_drv.h > > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_fb.c > > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_fb.h > > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_gem.c > > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_gem.h > > [snip] > > > >> diff --git a/drivers/gpu/drm/xlnx/xlnx_crtc.c > > >> b/drivers/gpu/drm/xlnx/xlnx_crtc.c new file mode 100644 > > >> index 000..de83905 > > >> --- /dev/null > > >> +++ b/drivers/gpu/drm/xlnx/xlnx_crtc.c > > [snip] > > > >> +uint32_t xlnx_crtc_helper_get_format(struct xlnx_crtc_helper *helper) > > > > > > You can use the u32 type within the kernel. > > > > > >> +{ > > >> +struct xlnx_crtc *crtc; > > >> +u32 format = 0, tmp; > > >> + > > >> +list_for_each_entry(crtc, &helper->xlnx_crtcs, list) { > > >> +if (crtc->get_format) { > > >> +tmp = crtc->get_format(crtc); > > >> +if (format && format != tmp) > > >> +return 0; > > >> +format = tmp; > > > > > > Same comments regarding the tmp variable and the list locking issue. > > > > > >> +} > > >> +} > > >> + > > >> +return format; > > > > > > Does this mean that your CRTCs support a single format each only ? > > Does it ? :-) > > > >> +} > > [snip] > > > >> diff --git a/drivers/gpu/drm/xlnx/xlnx_drv.c > > >> b/drivers/gpu/drm/xlnx/xlnx_drv.c new file mode 100644 > > >> index 000..8f0e357 > > >> --- /dev/null > > >> +++ b/drivers/gpu/drm/xlnx/xlnx_drv.c > > [snip] > > > >> +static int xlnx_of_component_probe(struct device *master_dev, > > >> + int (*compare_of)(struct device *, > > >> void *), > > >> + const struct component_master_ops > > >> *m_ops) > > > > > > As there's a single user of this function, do you need to pass compare_of > > > as a parameter ? Couldn't you move xlnx_compare_of() above and use it > > > directly ? > > > > > >> +{ > > >> +struct device *
Re: [PATCH v5 1/5] drm: xlnx: Xilinx DRM KMS module
Hi Hyun, On Thursday, 22 February 2018 04:50:42 EET Hyun Kwon wrote: > On Wed, 2018-02-21 at 15:17:25 -0800, Laurent Pinchart wrote: > > On Wednesday, 7 February 2018 03:36:36 EET Hyun Kwon wrote: > >> Xilinx has various platforms for display, where users can create > >> using multiple IPs in the programmable FPGA fabric, or where > >> some hardened piepline is available on the chip. Furthermore, > > > > s/piepline/pipeline/ > > > >> hardened pipeline can also interact with soft logics in FPGA. > >> > >> The Xilinx DRM KMS module is to integrate multiple subdevices and > >> to represent the entire pipeline as a single DRM device. The module > >> includes helper (ex, framebuffer and gem helpers) and > >> glue logic (ex, crtc interface) functions. > >> > >> Signed-off-by: Hyun Kwon > >> Acked-by: Daniel Vetter > >> --- > >> v5 > >> - Redefine xlnx_pipeline_init() > >> v4 > >> - Fix a bug in of graph binding handling > >> - Remove vblank callbacks from xlnx_crtc > >> - Remove the dt binding. This module becomes more like a library. > >> - Rephrase the commit message > >> v3 > >> - Add Laurent as a maintainer > >> - Fix multiple-reference on gem objects > >> v2 > >> - Change the SPDX identifier format > >> - Merge patches(crtc, gem, fb) into single one > >> v2 of xlnx_drv > >> - Rename kms to display in xlnx_drv > >> - Replace some xlnx specific fb helper with common helpers in xlnx_drv > >> - Don't set the commit tail callback in xlnx_drv > >> - Support 'ports' graph binding in xlnx_drv > >> v2 of xlnx_fb > >> - Remove wrappers in xlnx_fb > >> - Replace some functions with drm core helpers in xlnx_fb > >> --- > >> --- > >> > >> MAINTAINERS | 9 + > >> drivers/gpu/drm/Kconfig | 2 + > >> drivers/gpu/drm/Makefile | 1 + > >> drivers/gpu/drm/xlnx/Kconfig | 12 + > >> drivers/gpu/drm/xlnx/Makefile| 2 + > >> drivers/gpu/drm/xlnx/xlnx_crtc.c | 177 ++ > >> drivers/gpu/drm/xlnx/xlnx_crtc.h | 70 ++ > >> drivers/gpu/drm/xlnx/xlnx_drv.c | 501 + > >> drivers/gpu/drm/xlnx/xlnx_drv.h | 33 +++ > >> drivers/gpu/drm/xlnx/xlnx_fb.c | 298 +++ > >> drivers/gpu/drm/xlnx/xlnx_fb.h | 33 +++ > >> drivers/gpu/drm/xlnx/xlnx_gem.c | 47 > >> drivers/gpu/drm/xlnx/xlnx_gem.h | 26 ++ > >> 13 files changed, 1211 insertions(+) > >> create mode 100644 drivers/gpu/drm/xlnx/Kconfig > >> create mode 100644 drivers/gpu/drm/xlnx/Makefile > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_crtc.c > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_crtc.h > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_drv.c > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_drv.h > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_fb.c > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_fb.h > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_gem.c > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_gem.h [snip] > >> diff --git a/drivers/gpu/drm/xlnx/xlnx_crtc.c > >> b/drivers/gpu/drm/xlnx/xlnx_crtc.c new file mode 100644 > >> index 000..de83905 > >> --- /dev/null > >> +++ b/drivers/gpu/drm/xlnx/xlnx_crtc.c [snip] > >> +uint32_t xlnx_crtc_helper_get_format(struct xlnx_crtc_helper *helper) > > > > You can use the u32 type within the kernel. > > > >> +{ > >> + struct xlnx_crtc *crtc; > >> + u32 format = 0, tmp; > >> + > >> + list_for_each_entry(crtc, &helper->xlnx_crtcs, list) { > >> + if (crtc->get_format) { > >> + tmp = crtc->get_format(crtc); > >> + if (format && format != tmp) > >> + return 0; > >> + format = tmp; > > > > Same comments regarding the tmp variable and the list locking issue. > > > >> + } > >> + } > >> + > >> + return format; > > > > Does this mean that your CRTCs support a single format each only ? Does it ? :-) > >> +} [snip] > >> diff --git a/drivers/gpu/drm/xlnx/xlnx_drv.c > >> b/drivers/gpu/drm/xlnx/xlnx_drv.c new file mode 100644 > >> index 000..8f0e357 > >> --- /dev/null > >> +++ b/drivers/gpu/drm/xlnx/xlnx_drv.c [snip] > >> +static int xlnx_of_component_probe(struct device *master_dev, > >> + int (*compare_of)(struct device *, void *), > >> + const struct component_master_ops *m_ops) > > > > As there's a single user of this function, do you need to pass compare_of > > as a parameter ? Couldn't you move xlnx_compare_of() above and use it > > directly ? > > > >> +{ > >> + struct device *dev = master_dev->parent; > >> + struct device_node *ep, *port, *remote, *parent; > >> + struct component_match *match = NULL; > >> + int i; > > > > i is never negative, you can make it unsigned. > > > >> + if (!dev->of_node) > >> + return -EINVAL; > >> + > >> + component_match_add(master_dev, &match, compare_of, dev->of_node); > >> + > >> + for (i = 0; ; i++) { > >> + port = of_parse_phandle(dev->of_n
Re: [PATCH v5 1/5] drm: xlnx: Xilinx DRM KMS module
Hi Laurent, On Wed, 2018-02-21 at 15:22:31 -0800, Laurent Pinchart wrote: > Hi Hyun, > > On Tuesday, 20 February 2018 19:11:42 EET hyun.k...@xilinx.com wrote: > > On Monday, February 19, 2018 1:43 AM Daniel Vetter wrote: > > > On Tue, Feb 06, 2018 at 05:36:36PM -0800, Hyun Kwon wrote: > > >> Xilinx has various platforms for display, where users can create > > >> using multiple IPs in the programmable FPGA fabric, or where > > >> some hardened piepline is available on the chip. Furthermore, > > >> hardened pipeline can also interact with soft logics in FPGA. > > >> > > >> The Xilinx DRM KMS module is to integrate multiple subdevices and > > >> to represent the entire pipeline as a single DRM device. The module > > >> includes helper (ex, framebuffer and gem helpers) and > > >> glue logic (ex, crtc interface) functions. > > >> > > >> Signed-off-by: Hyun Kwon > > >> Acked-by: Daniel Vetter > > > > > > Looks all ready for merging. Did you apply for commit rights to drm-misc > > > already so you could push this right away? > > > > Yes, I've created the request, and am waiting for the response there: > > https://bugs.freedesktop.org/show_bug.cgi?id=105017 > > I've just sent an in-depth review of patch 1/5 (sorry for being late). There > are lots of small comments that could be addressed as follow-up patches in > the > worst case, but there's one comment regarding the ports DT property that > worries me and that I'd like to see addressed (or, if I got it wrong, > explained) before we merge this. Another related issue that I'd like to > discuss is the need for the artificial xilinx-drm platform device. And of > course if a v6 is needed, you can address all the other small comments :-) > Thanks! I skimmed through your comments, and I prefer to clear and address all in v6 before committing this. I've replied directly to those comments so we can continue to discuss there. Thanks, -hyun > > >> --- > > >> v5 > > >> - Redefine xlnx_pipeline_init() > > >> v4 > > >> - Fix a bug in of graph binding handling > > >> - Remove vblank callbacks from xlnx_crtc > > >> - Remove the dt binding. This module becomes more like a library. > > >> - Rephrase the commit message > > >> v3 > > >> - Add Laurent as a maintainer > > >> - Fix multiple-reference on gem objects > > >> v2 > > >> - Change the SPDX identifier format > > >> - Merge patches(crtc, gem, fb) into single one > > >> v2 of xlnx_drv > > >> - Rename kms to display in xlnx_drv > > >> - Replace some xlnx specific fb helper with common helpers in xlnx_drv > > >> - Don't set the commit tail callback in xlnx_drv > > >> - Support 'ports' graph binding in xlnx_drv > > >> v2 of xlnx_fb > > >> - Remove wrappers in xlnx_fb > > >> - Replace some functions with drm core helpers in xlnx_fb > > >> --- > > >> --- > > >> > > >> MAINTAINERS | 9 + > > >> drivers/gpu/drm/Kconfig | 2 + > > >> drivers/gpu/drm/Makefile | 1 + > > >> drivers/gpu/drm/xlnx/Kconfig | 12 + > > >> drivers/gpu/drm/xlnx/Makefile| 2 + > > >> drivers/gpu/drm/xlnx/xlnx_crtc.c | 177 ++ > > >> drivers/gpu/drm/xlnx/xlnx_crtc.h | 70 ++ > > >> drivers/gpu/drm/xlnx/xlnx_drv.c | 501 + > > >> drivers/gpu/drm/xlnx/xlnx_drv.h | 33 +++ > > >> drivers/gpu/drm/xlnx/xlnx_fb.c | 298 +++ > > >> drivers/gpu/drm/xlnx/xlnx_fb.h | 33 +++ > > >> drivers/gpu/drm/xlnx/xlnx_gem.c | 47 > > >> drivers/gpu/drm/xlnx/xlnx_gem.h | 26 ++ > > >> 13 files changed, 1211 insertions(+) > > >> create mode 100644 drivers/gpu/drm/xlnx/Kconfig > > >> create mode 100644 drivers/gpu/drm/xlnx/Makefile > > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_crtc.c > > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_crtc.h > > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_drv.c > > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_drv.h > > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_fb.c > > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_fb.h > > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_gem.c > > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_gem.h > > [snip] > > -- > Regards, > > Laurent Pinchart > > ___ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v5 1/5] drm: xlnx: Xilinx DRM KMS module
Hi Laurent, Thanks for the review. On Wed, 2018-02-21 at 15:17:25 -0800, Laurent Pinchart wrote: > Hi Hyun, > > Thank you for the patch. > > On Wednesday, 7 February 2018 03:36:36 EET Hyun Kwon wrote: > > Xilinx has various platforms for display, where users can create > > using multiple IPs in the programmable FPGA fabric, or where > > some hardened piepline is available on the chip. Furthermore, > > s/piepline/pipeline/ > > > hardened pipeline can also interact with soft logics in FPGA. > > > > The Xilinx DRM KMS module is to integrate multiple subdevices and > > to represent the entire pipeline as a single DRM device. The module > > includes helper (ex, framebuffer and gem helpers) and > > glue logic (ex, crtc interface) functions. > > > > Signed-off-by: Hyun Kwon > > Acked-by: Daniel Vetter > > --- > > v5 > > - Redefine xlnx_pipeline_init() > > v4 > > - Fix a bug in of graph binding handling > > - Remove vblank callbacks from xlnx_crtc > > - Remove the dt binding. This module becomes more like a library. > > - Rephrase the commit message > > v3 > > - Add Laurent as a maintainer > > - Fix multiple-reference on gem objects > > v2 > > - Change the SPDX identifier format > > - Merge patches(crtc, gem, fb) into single one > > v2 of xlnx_drv > > - Rename kms to display in xlnx_drv > > - Replace some xlnx specific fb helper with common helpers in xlnx_drv > > - Don't set the commit tail callback in xlnx_drv > > - Support 'ports' graph binding in xlnx_drv > > v2 of xlnx_fb > > - Remove wrappers in xlnx_fb > > - Replace some functions with drm core helpers in xlnx_fb > > --- > > --- > > MAINTAINERS | 9 + > > drivers/gpu/drm/Kconfig | 2 + > > drivers/gpu/drm/Makefile | 1 + > > drivers/gpu/drm/xlnx/Kconfig | 12 + > > drivers/gpu/drm/xlnx/Makefile| 2 + > > drivers/gpu/drm/xlnx/xlnx_crtc.c | 177 ++ > > drivers/gpu/drm/xlnx/xlnx_crtc.h | 70 ++ > > drivers/gpu/drm/xlnx/xlnx_drv.c | 501 > > drivers/gpu/drm/xlnx/xlnx_drv.h | 33 +++ > > drivers/gpu/drm/xlnx/xlnx_fb.c | 298 +++ > > drivers/gpu/drm/xlnx/xlnx_fb.h | 33 +++ > > drivers/gpu/drm/xlnx/xlnx_gem.c | 47 > > drivers/gpu/drm/xlnx/xlnx_gem.h | 26 ++ > > 13 files changed, 1211 insertions(+) > > create mode 100644 drivers/gpu/drm/xlnx/Kconfig > > create mode 100644 drivers/gpu/drm/xlnx/Makefile > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_crtc.c > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_crtc.h > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_drv.c > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_drv.h > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_fb.c > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_fb.h > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_gem.c > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_gem.h > > > > diff --git a/MAINTAINERS b/MAINTAINERS > > index 5bc088f..07c0e73 100644 > > --- a/MAINTAINERS > > +++ b/MAINTAINERS > > @@ -4789,6 +4789,15 @@ F: drivers/gpu/drm/etnaviv/ > > F: include/uapi/drm/etnaviv_drm.h > > F: Documentation/devicetree/bindings/display/etnaviv/ > > > > +DRM DRIVERS FOR XILINX > > +M: Hyun Kwon > > +M: Laurent Pinchart > > +L: dri-devel@lists.freedesktop.org > > +S: Maintained > > +F: drivers/gpu/drm/xlnx/ > > +F: Documentation/devicetree/bindings/display/xlnx/ > > +T: git git://anongit.freedesktop.org/drm/drm-misc > > + > > DRM DRIVERS FOR ZTE ZX > > M: Shawn Guo > > L: dri-devel@lists.freedesktop.org > > diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig > > index deeefa7..5a3ec66 100644 > > --- a/drivers/gpu/drm/Kconfig > > +++ b/drivers/gpu/drm/Kconfig > > @@ -289,6 +289,8 @@ source "drivers/gpu/drm/pl111/Kconfig" > > > > source "drivers/gpu/drm/tve200/Kconfig" > > > > +source "drivers/gpu/drm/xlnx/Kconfig" > > I would have spelled that out completely as I think it will be easier to > understand, but it's up to you. > > > # Keep legacy drivers last > > > > menuconfig DRM_LEGACY > > diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile > > index 50093ff..f93557e 100644 > > --- a/drivers/gpu/drm/Makefile > > +++ b/drivers/gpu/drm/Makefile > > @@ -103,3 +103,4 @@ obj-$(CONFIG_DRM_MXSFB) += mxsfb/ > > obj-$(CONFIG_DRM_TINYDRM) += tinydrm/ > > obj-$(CONFIG_DRM_PL111) += pl111/ > > obj-$(CONFIG_DRM_TVE200) += tve200/ > > +obj-$(CONFIG_DRM_XLNX) += xlnx/ > > diff --git a/drivers/gpu/drm/xlnx/Kconfig b/drivers/gpu/drm/xlnx/Kconfig > > new file mode 100644 > > index 000..19fd7cd > > --- /dev/null > > +++ b/drivers/gpu/drm/xlnx/Kconfig > > @@ -0,0 +1,12 @@ > > +config DRM_XLNX > > + tristate "Xilinx DRM KMS Driver" > > + depends on DRM && OF > > + select DRM_KMS_HELPER > > + select DRM_KMS_CMA_HELPER > > + select DRM_GEM_CMA_HELPER > > + help > > + Xilinx DRM KMS driver. Choose this option if you have > > + a Xilinx SoCs with hardened display pipeline or soft > > + dis
Re: [PATCH v5 1/5] drm: xlnx: Xilinx DRM KMS module
Hi Hyun, On Tuesday, 20 February 2018 19:11:42 EET hyun.k...@xilinx.com wrote: > On Monday, February 19, 2018 1:43 AM Daniel Vetter wrote: > > On Tue, Feb 06, 2018 at 05:36:36PM -0800, Hyun Kwon wrote: > >> Xilinx has various platforms for display, where users can create > >> using multiple IPs in the programmable FPGA fabric, or where > >> some hardened piepline is available on the chip. Furthermore, > >> hardened pipeline can also interact with soft logics in FPGA. > >> > >> The Xilinx DRM KMS module is to integrate multiple subdevices and > >> to represent the entire pipeline as a single DRM device. The module > >> includes helper (ex, framebuffer and gem helpers) and > >> glue logic (ex, crtc interface) functions. > >> > >> Signed-off-by: Hyun Kwon > >> Acked-by: Daniel Vetter > > > > Looks all ready for merging. Did you apply for commit rights to drm-misc > > already so you could push this right away? > > Yes, I've created the request, and am waiting for the response there: > https://bugs.freedesktop.org/show_bug.cgi?id=105017 I've just sent an in-depth review of patch 1/5 (sorry for being late). There are lots of small comments that could be addressed as follow-up patches in the worst case, but there's one comment regarding the ports DT property that worries me and that I'd like to see addressed (or, if I got it wrong, explained) before we merge this. Another related issue that I'd like to discuss is the need for the artificial xilinx-drm platform device. And of course if a v6 is needed, you can address all the other small comments :-) > >> --- > >> v5 > >> - Redefine xlnx_pipeline_init() > >> v4 > >> - Fix a bug in of graph binding handling > >> - Remove vblank callbacks from xlnx_crtc > >> - Remove the dt binding. This module becomes more like a library. > >> - Rephrase the commit message > >> v3 > >> - Add Laurent as a maintainer > >> - Fix multiple-reference on gem objects > >> v2 > >> - Change the SPDX identifier format > >> - Merge patches(crtc, gem, fb) into single one > >> v2 of xlnx_drv > >> - Rename kms to display in xlnx_drv > >> - Replace some xlnx specific fb helper with common helpers in xlnx_drv > >> - Don't set the commit tail callback in xlnx_drv > >> - Support 'ports' graph binding in xlnx_drv > >> v2 of xlnx_fb > >> - Remove wrappers in xlnx_fb > >> - Replace some functions with drm core helpers in xlnx_fb > >> --- > >> --- > >> > >> MAINTAINERS | 9 + > >> drivers/gpu/drm/Kconfig | 2 + > >> drivers/gpu/drm/Makefile | 1 + > >> drivers/gpu/drm/xlnx/Kconfig | 12 + > >> drivers/gpu/drm/xlnx/Makefile| 2 + > >> drivers/gpu/drm/xlnx/xlnx_crtc.c | 177 ++ > >> drivers/gpu/drm/xlnx/xlnx_crtc.h | 70 ++ > >> drivers/gpu/drm/xlnx/xlnx_drv.c | 501 + > >> drivers/gpu/drm/xlnx/xlnx_drv.h | 33 +++ > >> drivers/gpu/drm/xlnx/xlnx_fb.c | 298 +++ > >> drivers/gpu/drm/xlnx/xlnx_fb.h | 33 +++ > >> drivers/gpu/drm/xlnx/xlnx_gem.c | 47 > >> drivers/gpu/drm/xlnx/xlnx_gem.h | 26 ++ > >> 13 files changed, 1211 insertions(+) > >> create mode 100644 drivers/gpu/drm/xlnx/Kconfig > >> create mode 100644 drivers/gpu/drm/xlnx/Makefile > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_crtc.c > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_crtc.h > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_drv.c > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_drv.h > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_fb.c > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_fb.h > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_gem.c > >> create mode 100644 drivers/gpu/drm/xlnx/xlnx_gem.h [snip] -- Regards, Laurent Pinchart ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v5 1/5] drm: xlnx: Xilinx DRM KMS module
Hi Hyun, Thank you for the patch. On Wednesday, 7 February 2018 03:36:36 EET Hyun Kwon wrote: > Xilinx has various platforms for display, where users can create > using multiple IPs in the programmable FPGA fabric, or where > some hardened piepline is available on the chip. Furthermore, s/piepline/pipeline/ > hardened pipeline can also interact with soft logics in FPGA. > > The Xilinx DRM KMS module is to integrate multiple subdevices and > to represent the entire pipeline as a single DRM device. The module > includes helper (ex, framebuffer and gem helpers) and > glue logic (ex, crtc interface) functions. > > Signed-off-by: Hyun Kwon > Acked-by: Daniel Vetter > --- > v5 > - Redefine xlnx_pipeline_init() > v4 > - Fix a bug in of graph binding handling > - Remove vblank callbacks from xlnx_crtc > - Remove the dt binding. This module becomes more like a library. > - Rephrase the commit message > v3 > - Add Laurent as a maintainer > - Fix multiple-reference on gem objects > v2 > - Change the SPDX identifier format > - Merge patches(crtc, gem, fb) into single one > v2 of xlnx_drv > - Rename kms to display in xlnx_drv > - Replace some xlnx specific fb helper with common helpers in xlnx_drv > - Don't set the commit tail callback in xlnx_drv > - Support 'ports' graph binding in xlnx_drv > v2 of xlnx_fb > - Remove wrappers in xlnx_fb > - Replace some functions with drm core helpers in xlnx_fb > --- > --- > MAINTAINERS | 9 + > drivers/gpu/drm/Kconfig | 2 + > drivers/gpu/drm/Makefile | 1 + > drivers/gpu/drm/xlnx/Kconfig | 12 + > drivers/gpu/drm/xlnx/Makefile| 2 + > drivers/gpu/drm/xlnx/xlnx_crtc.c | 177 ++ > drivers/gpu/drm/xlnx/xlnx_crtc.h | 70 ++ > drivers/gpu/drm/xlnx/xlnx_drv.c | 501 > drivers/gpu/drm/xlnx/xlnx_drv.h | 33 +++ > drivers/gpu/drm/xlnx/xlnx_fb.c | 298 +++ > drivers/gpu/drm/xlnx/xlnx_fb.h | 33 +++ > drivers/gpu/drm/xlnx/xlnx_gem.c | 47 > drivers/gpu/drm/xlnx/xlnx_gem.h | 26 ++ > 13 files changed, 1211 insertions(+) > create mode 100644 drivers/gpu/drm/xlnx/Kconfig > create mode 100644 drivers/gpu/drm/xlnx/Makefile > create mode 100644 drivers/gpu/drm/xlnx/xlnx_crtc.c > create mode 100644 drivers/gpu/drm/xlnx/xlnx_crtc.h > create mode 100644 drivers/gpu/drm/xlnx/xlnx_drv.c > create mode 100644 drivers/gpu/drm/xlnx/xlnx_drv.h > create mode 100644 drivers/gpu/drm/xlnx/xlnx_fb.c > create mode 100644 drivers/gpu/drm/xlnx/xlnx_fb.h > create mode 100644 drivers/gpu/drm/xlnx/xlnx_gem.c > create mode 100644 drivers/gpu/drm/xlnx/xlnx_gem.h > > diff --git a/MAINTAINERS b/MAINTAINERS > index 5bc088f..07c0e73 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -4789,6 +4789,15 @@ F: drivers/gpu/drm/etnaviv/ > F: include/uapi/drm/etnaviv_drm.h > F: Documentation/devicetree/bindings/display/etnaviv/ > > +DRM DRIVERS FOR XILINX > +M: Hyun Kwon > +M: Laurent Pinchart > +L: dri-devel@lists.freedesktop.org > +S: Maintained > +F: drivers/gpu/drm/xlnx/ > +F: Documentation/devicetree/bindings/display/xlnx/ > +T: git git://anongit.freedesktop.org/drm/drm-misc > + > DRM DRIVERS FOR ZTE ZX > M: Shawn Guo > L: dri-devel@lists.freedesktop.org > diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig > index deeefa7..5a3ec66 100644 > --- a/drivers/gpu/drm/Kconfig > +++ b/drivers/gpu/drm/Kconfig > @@ -289,6 +289,8 @@ source "drivers/gpu/drm/pl111/Kconfig" > > source "drivers/gpu/drm/tve200/Kconfig" > > +source "drivers/gpu/drm/xlnx/Kconfig" I would have spelled that out completely as I think it will be easier to understand, but it's up to you. > # Keep legacy drivers last > > menuconfig DRM_LEGACY > diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile > index 50093ff..f93557e 100644 > --- a/drivers/gpu/drm/Makefile > +++ b/drivers/gpu/drm/Makefile > @@ -103,3 +103,4 @@ obj-$(CONFIG_DRM_MXSFB) += mxsfb/ > obj-$(CONFIG_DRM_TINYDRM) += tinydrm/ > obj-$(CONFIG_DRM_PL111) += pl111/ > obj-$(CONFIG_DRM_TVE200) += tve200/ > +obj-$(CONFIG_DRM_XLNX) += xlnx/ > diff --git a/drivers/gpu/drm/xlnx/Kconfig b/drivers/gpu/drm/xlnx/Kconfig > new file mode 100644 > index 000..19fd7cd > --- /dev/null > +++ b/drivers/gpu/drm/xlnx/Kconfig > @@ -0,0 +1,12 @@ > +config DRM_XLNX > + tristate "Xilinx DRM KMS Driver" > + depends on DRM && OF > + select DRM_KMS_HELPER > + select DRM_KMS_CMA_HELPER > + select DRM_GEM_CMA_HELPER > + help > + Xilinx DRM KMS driver. Choose this option if you have > + a Xilinx SoCs with hardened display pipeline or soft > + display pipeline using Xilinx IPs in FPGA. This module > + provides the kernel mode setting functionalities > + for Xilinx display drivers. > diff --git a/drivers/gpu/drm/xlnx/Makefile b/drivers/gpu/drm/xlnx/Makefile > new file mode 100644 > index 000..c60a281 > --- /dev/null > +++ b/drivers/gpu/drm
RE: [PATCH v5 1/5] drm: xlnx: Xilinx DRM KMS module
> -Original Message- > From: Daniel Vetter [mailto:daniel.vet...@ffwll.ch] On Behalf Of Daniel > Vetter > Sent: Monday, February 19, 2018 1:43 AM > To: Hyun Kwon > Cc: dri-devel@lists.freedesktop.org; devicet...@vger.kernel.org; Daniel > Vetter ; Rob Herring ; > Michal Simek ; Laurent Pinchart > > Subject: Re: [PATCH v5 1/5] drm: xlnx: Xilinx DRM KMS module > > On Tue, Feb 06, 2018 at 05:36:36PM -0800, Hyun Kwon wrote: > > Xilinx has various platforms for display, where users can create > > using multiple IPs in the programmable FPGA fabric, or where > > some hardened piepline is available on the chip. Furthermore, > > hardened pipeline can also interact with soft logics in FPGA. > > > > The Xilinx DRM KMS module is to integrate multiple subdevices and > > to represent the entire pipeline as a single DRM device. The module > > includes helper (ex, framebuffer and gem helpers) and > > glue logic (ex, crtc interface) functions. > > > > Signed-off-by: Hyun Kwon > > Acked-by: Daniel Vetter > > Looks all ready for merging. Did you apply for commit rights to drm-misc > already so you could push this right away? Yes, I've created the request, and am waiting for the response there: https://bugs.freedesktop.org/show_bug.cgi?id=105017 Thanks, -hyun > -Daniel > > > --- > > v5 > > - Redefine xlnx_pipeline_init() > > v4 > > - Fix a bug in of graph binding handling > > - Remove vblank callbacks from xlnx_crtc > > - Remove the dt binding. This module becomes more like a library. > > - Rephrase the commit message > > v3 > > - Add Laurent as a maintainer > > - Fix multiple-reference on gem objects > > v2 > > - Change the SPDX identifier format > > - Merge patches(crtc, gem, fb) into single one > > v2 of xlnx_drv > > - Rename kms to display in xlnx_drv > > - Replace some xlnx specific fb helper with common helpers in xlnx_drv > > - Don't set the commit tail callback in xlnx_drv > > - Support 'ports' graph binding in xlnx_drv > > v2 of xlnx_fb > > - Remove wrappers in xlnx_fb > > - Replace some functions with drm core helpers in xlnx_fb > > --- > > --- > > MAINTAINERS | 9 + > > drivers/gpu/drm/Kconfig | 2 + > > drivers/gpu/drm/Makefile | 1 + > > drivers/gpu/drm/xlnx/Kconfig | 12 + > > drivers/gpu/drm/xlnx/Makefile| 2 + > > drivers/gpu/drm/xlnx/xlnx_crtc.c | 177 ++ > > drivers/gpu/drm/xlnx/xlnx_crtc.h | 70 ++ > > drivers/gpu/drm/xlnx/xlnx_drv.c | 501 > +++ > > drivers/gpu/drm/xlnx/xlnx_drv.h | 33 +++ > > drivers/gpu/drm/xlnx/xlnx_fb.c | 298 +++ > > drivers/gpu/drm/xlnx/xlnx_fb.h | 33 +++ > > drivers/gpu/drm/xlnx/xlnx_gem.c | 47 > > drivers/gpu/drm/xlnx/xlnx_gem.h | 26 ++ > > 13 files changed, 1211 insertions(+) > > create mode 100644 drivers/gpu/drm/xlnx/Kconfig > > create mode 100644 drivers/gpu/drm/xlnx/Makefile > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_crtc.c > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_crtc.h > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_drv.c > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_drv.h > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_fb.c > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_fb.h > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_gem.c > > create mode 100644 drivers/gpu/drm/xlnx/xlnx_gem.h > > > > diff --git a/MAINTAINERS b/MAINTAINERS > > index 5bc088f..07c0e73 100644 > > --- a/MAINTAINERS > > +++ b/MAINTAINERS > > @@ -4789,6 +4789,15 @@ F: drivers/gpu/drm/etnaviv/ > > F: include/uapi/drm/etnaviv_drm.h > > F: Documentation/devicetree/bindings/display/etnaviv/ > > > > +DRM DRIVERS FOR XILINX > > +M: Hyun Kwon > > +M: Laurent Pinchart > > +L: dri-devel@lists.freedesktop.org > > +S: Maintained > > +F: drivers/gpu/drm/xlnx/ > > +F: Documentation/devicetree/bindings/display/xlnx/ > > +T: git git://anongit.freedesktop.org/drm/drm-misc > > + > > DRM DRIVERS FOR ZTE ZX > > M: Shawn Guo > > L: dri-devel@lists.freedesktop.org > > diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig > > index deeefa7..5a3ec66 100644 > > --- a/drivers/gpu/drm/Kconfig > > +++ b/drivers/gpu/drm/Kconfig > > @@ -289,6 +289,8 @@ source "drivers/gpu/drm/pl111/Kconfig" > > > > source "drivers/gpu/drm/tve200/Kconfig" > > > > +source "drivers/gpu/drm/xlnx/Kconfig&quo
Re: [PATCH v5 1/5] drm: xlnx: Xilinx DRM KMS module
On Tue, Feb 06, 2018 at 05:36:36PM -0800, Hyun Kwon wrote: > Xilinx has various platforms for display, where users can create > using multiple IPs in the programmable FPGA fabric, or where > some hardened piepline is available on the chip. Furthermore, > hardened pipeline can also interact with soft logics in FPGA. > > The Xilinx DRM KMS module is to integrate multiple subdevices and > to represent the entire pipeline as a single DRM device. The module > includes helper (ex, framebuffer and gem helpers) and > glue logic (ex, crtc interface) functions. > > Signed-off-by: Hyun Kwon > Acked-by: Daniel Vetter Looks all ready for merging. Did you apply for commit rights to drm-misc already so you could push this right away? -Daniel > --- > v5 > - Redefine xlnx_pipeline_init() > v4 > - Fix a bug in of graph binding handling > - Remove vblank callbacks from xlnx_crtc > - Remove the dt binding. This module becomes more like a library. > - Rephrase the commit message > v3 > - Add Laurent as a maintainer > - Fix multiple-reference on gem objects > v2 > - Change the SPDX identifier format > - Merge patches(crtc, gem, fb) into single one > v2 of xlnx_drv > - Rename kms to display in xlnx_drv > - Replace some xlnx specific fb helper with common helpers in xlnx_drv > - Don't set the commit tail callback in xlnx_drv > - Support 'ports' graph binding in xlnx_drv > v2 of xlnx_fb > - Remove wrappers in xlnx_fb > - Replace some functions with drm core helpers in xlnx_fb > --- > --- > MAINTAINERS | 9 + > drivers/gpu/drm/Kconfig | 2 + > drivers/gpu/drm/Makefile | 1 + > drivers/gpu/drm/xlnx/Kconfig | 12 + > drivers/gpu/drm/xlnx/Makefile| 2 + > drivers/gpu/drm/xlnx/xlnx_crtc.c | 177 ++ > drivers/gpu/drm/xlnx/xlnx_crtc.h | 70 ++ > drivers/gpu/drm/xlnx/xlnx_drv.c | 501 > +++ > drivers/gpu/drm/xlnx/xlnx_drv.h | 33 +++ > drivers/gpu/drm/xlnx/xlnx_fb.c | 298 +++ > drivers/gpu/drm/xlnx/xlnx_fb.h | 33 +++ > drivers/gpu/drm/xlnx/xlnx_gem.c | 47 > drivers/gpu/drm/xlnx/xlnx_gem.h | 26 ++ > 13 files changed, 1211 insertions(+) > create mode 100644 drivers/gpu/drm/xlnx/Kconfig > create mode 100644 drivers/gpu/drm/xlnx/Makefile > create mode 100644 drivers/gpu/drm/xlnx/xlnx_crtc.c > create mode 100644 drivers/gpu/drm/xlnx/xlnx_crtc.h > create mode 100644 drivers/gpu/drm/xlnx/xlnx_drv.c > create mode 100644 drivers/gpu/drm/xlnx/xlnx_drv.h > create mode 100644 drivers/gpu/drm/xlnx/xlnx_fb.c > create mode 100644 drivers/gpu/drm/xlnx/xlnx_fb.h > create mode 100644 drivers/gpu/drm/xlnx/xlnx_gem.c > create mode 100644 drivers/gpu/drm/xlnx/xlnx_gem.h > > diff --git a/MAINTAINERS b/MAINTAINERS > index 5bc088f..07c0e73 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -4789,6 +4789,15 @@ F: drivers/gpu/drm/etnaviv/ > F: include/uapi/drm/etnaviv_drm.h > F: Documentation/devicetree/bindings/display/etnaviv/ > > +DRM DRIVERS FOR XILINX > +M: Hyun Kwon > +M: Laurent Pinchart > +L: dri-devel@lists.freedesktop.org > +S: Maintained > +F: drivers/gpu/drm/xlnx/ > +F: Documentation/devicetree/bindings/display/xlnx/ > +T: git git://anongit.freedesktop.org/drm/drm-misc > + > DRM DRIVERS FOR ZTE ZX > M: Shawn Guo > L: dri-devel@lists.freedesktop.org > diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig > index deeefa7..5a3ec66 100644 > --- a/drivers/gpu/drm/Kconfig > +++ b/drivers/gpu/drm/Kconfig > @@ -289,6 +289,8 @@ source "drivers/gpu/drm/pl111/Kconfig" > > source "drivers/gpu/drm/tve200/Kconfig" > > +source "drivers/gpu/drm/xlnx/Kconfig" > + > # Keep legacy drivers last > > menuconfig DRM_LEGACY > diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile > index 50093ff..f93557e 100644 > --- a/drivers/gpu/drm/Makefile > +++ b/drivers/gpu/drm/Makefile > @@ -103,3 +103,4 @@ obj-$(CONFIG_DRM_MXSFB) += mxsfb/ > obj-$(CONFIG_DRM_TINYDRM) += tinydrm/ > obj-$(CONFIG_DRM_PL111) += pl111/ > obj-$(CONFIG_DRM_TVE200) += tve200/ > +obj-$(CONFIG_DRM_XLNX) += xlnx/ > diff --git a/drivers/gpu/drm/xlnx/Kconfig b/drivers/gpu/drm/xlnx/Kconfig > new file mode 100644 > index 000..19fd7cd > --- /dev/null > +++ b/drivers/gpu/drm/xlnx/Kconfig > @@ -0,0 +1,12 @@ > +config DRM_XLNX > + tristate "Xilinx DRM KMS Driver" > + depends on DRM && OF > + select DRM_KMS_HELPER > + select DRM_KMS_CMA_HELPER > + select DRM_GEM_CMA_HELPER > + help > + Xilinx DRM KMS driver. Choose this option if you have > + a Xilinx SoCs with hardened display pipeline or soft > + display pipeline using Xilinx IPs in FPGA. This module > + provides the kernel mode setting functionalities > + for Xilinx display drivers. > diff --git a/drivers/gpu/drm/xlnx/Makefile b/drivers/gpu/drm/xlnx/Makefile > new file mode 100644 > index 000..c60a281 > --- /dev/null > +++ b/drivers/gpu/drm/xlnx/Makefile > @@ -0,0 +1,
[PATCH v5 1/5] drm: xlnx: Xilinx DRM KMS module
Xilinx has various platforms for display, where users can create using multiple IPs in the programmable FPGA fabric, or where some hardened piepline is available on the chip. Furthermore, hardened pipeline can also interact with soft logics in FPGA. The Xilinx DRM KMS module is to integrate multiple subdevices and to represent the entire pipeline as a single DRM device. The module includes helper (ex, framebuffer and gem helpers) and glue logic (ex, crtc interface) functions. Signed-off-by: Hyun Kwon Acked-by: Daniel Vetter --- v5 - Redefine xlnx_pipeline_init() v4 - Fix a bug in of graph binding handling - Remove vblank callbacks from xlnx_crtc - Remove the dt binding. This module becomes more like a library. - Rephrase the commit message v3 - Add Laurent as a maintainer - Fix multiple-reference on gem objects v2 - Change the SPDX identifier format - Merge patches(crtc, gem, fb) into single one v2 of xlnx_drv - Rename kms to display in xlnx_drv - Replace some xlnx specific fb helper with common helpers in xlnx_drv - Don't set the commit tail callback in xlnx_drv - Support 'ports' graph binding in xlnx_drv v2 of xlnx_fb - Remove wrappers in xlnx_fb - Replace some functions with drm core helpers in xlnx_fb --- --- MAINTAINERS | 9 + drivers/gpu/drm/Kconfig | 2 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/xlnx/Kconfig | 12 + drivers/gpu/drm/xlnx/Makefile| 2 + drivers/gpu/drm/xlnx/xlnx_crtc.c | 177 ++ drivers/gpu/drm/xlnx/xlnx_crtc.h | 70 ++ drivers/gpu/drm/xlnx/xlnx_drv.c | 501 +++ drivers/gpu/drm/xlnx/xlnx_drv.h | 33 +++ drivers/gpu/drm/xlnx/xlnx_fb.c | 298 +++ drivers/gpu/drm/xlnx/xlnx_fb.h | 33 +++ drivers/gpu/drm/xlnx/xlnx_gem.c | 47 drivers/gpu/drm/xlnx/xlnx_gem.h | 26 ++ 13 files changed, 1211 insertions(+) create mode 100644 drivers/gpu/drm/xlnx/Kconfig create mode 100644 drivers/gpu/drm/xlnx/Makefile create mode 100644 drivers/gpu/drm/xlnx/xlnx_crtc.c create mode 100644 drivers/gpu/drm/xlnx/xlnx_crtc.h create mode 100644 drivers/gpu/drm/xlnx/xlnx_drv.c create mode 100644 drivers/gpu/drm/xlnx/xlnx_drv.h create mode 100644 drivers/gpu/drm/xlnx/xlnx_fb.c create mode 100644 drivers/gpu/drm/xlnx/xlnx_fb.h create mode 100644 drivers/gpu/drm/xlnx/xlnx_gem.c create mode 100644 drivers/gpu/drm/xlnx/xlnx_gem.h diff --git a/MAINTAINERS b/MAINTAINERS index 5bc088f..07c0e73 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4789,6 +4789,15 @@ F: drivers/gpu/drm/etnaviv/ F: include/uapi/drm/etnaviv_drm.h F: Documentation/devicetree/bindings/display/etnaviv/ +DRM DRIVERS FOR XILINX +M: Hyun Kwon +M: Laurent Pinchart +L: dri-devel@lists.freedesktop.org +S: Maintained +F: drivers/gpu/drm/xlnx/ +F: Documentation/devicetree/bindings/display/xlnx/ +T: git git://anongit.freedesktop.org/drm/drm-misc + DRM DRIVERS FOR ZTE ZX M: Shawn Guo L: dri-devel@lists.freedesktop.org diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index deeefa7..5a3ec66 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -289,6 +289,8 @@ source "drivers/gpu/drm/pl111/Kconfig" source "drivers/gpu/drm/tve200/Kconfig" +source "drivers/gpu/drm/xlnx/Kconfig" + # Keep legacy drivers last menuconfig DRM_LEGACY diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile index 50093ff..f93557e 100644 --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@ -103,3 +103,4 @@ obj-$(CONFIG_DRM_MXSFB) += mxsfb/ obj-$(CONFIG_DRM_TINYDRM) += tinydrm/ obj-$(CONFIG_DRM_PL111) += pl111/ obj-$(CONFIG_DRM_TVE200) += tve200/ +obj-$(CONFIG_DRM_XLNX) += xlnx/ diff --git a/drivers/gpu/drm/xlnx/Kconfig b/drivers/gpu/drm/xlnx/Kconfig new file mode 100644 index 000..19fd7cd --- /dev/null +++ b/drivers/gpu/drm/xlnx/Kconfig @@ -0,0 +1,12 @@ +config DRM_XLNX + tristate "Xilinx DRM KMS Driver" + depends on DRM && OF + select DRM_KMS_HELPER + select DRM_KMS_CMA_HELPER + select DRM_GEM_CMA_HELPER + help + Xilinx DRM KMS driver. Choose this option if you have + a Xilinx SoCs with hardened display pipeline or soft + display pipeline using Xilinx IPs in FPGA. This module + provides the kernel mode setting functionalities + for Xilinx display drivers. diff --git a/drivers/gpu/drm/xlnx/Makefile b/drivers/gpu/drm/xlnx/Makefile new file mode 100644 index 000..c60a281 --- /dev/null +++ b/drivers/gpu/drm/xlnx/Makefile @@ -0,0 +1,2 @@ +xlnx_drm-objs += xlnx_crtc.o xlnx_drv.o xlnx_fb.o xlnx_gem.o +obj-$(CONFIG_DRM_XLNX) += xlnx_drm.o diff --git a/drivers/gpu/drm/xlnx/xlnx_crtc.c b/drivers/gpu/drm/xlnx/xlnx_crtc.c new file mode 100644 index 000..de83905 --- /dev/null +++ b/drivers/gpu/drm/xlnx/xlnx_crtc.c @@ -0,0 +1,177 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Xilinx DRM crtc driver + * + * Copyright (C) 2017 - 2