diff for duplicates of <20120523074710.GP30400@pengutronix.de> diff --git a/a/1.txt b/N1/1.txt index 5d47215..db0ab5e 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -10,19 +10,19 @@ Thanks for this. > > +++ b/drivers/gpu/drm/imx/Kconfig > > @@ -0,0 +1,18 @@ > > +config DRM_IMX -> > + ? ? ? tristate "DRM Support for Freescale i.MX" -> > + ? ? ? select DRM_KMS_HELPER -> > + ? ? ? depends on DRM && ARCH_MXC +> > + tristate "DRM Support for Freescale i.MX" +> > + select DRM_KMS_HELPER +> > + depends on DRM && ARCH_MXC > > + > > +config DRM_IMX_FB_HELPER -> > + ? ? ? tristate "provide legacy framebuffer /dev/fb0" -> > + ? ? ? depends on DRM_IMX +> > + tristate "provide legacy framebuffer /dev/fb0" +> > + depends on DRM_IMX > > + > > +config DRM_IMX_LCDC -> > + ? ? ? tristate "DRM Support for Freescale i.MX1 and i.MX2" -> > + ? ? ? depends on DRM_IMX -> > + ? ? ? help -> > + ? ? ? ? Choose this if you have a i.MX1, i.MX21, i.MX25 or i.MX27 processor. +> > + tristate "DRM Support for Freescale i.MX1 and i.MX2" +> > + depends on DRM_IMX +> > + help +> > + Choose this if you have a i.MX1, i.MX21, i.MX25 or i.MX27 processor. > > do you have something like cpu_is_imx2() type macros? It would be > preferable not to have a compile time config option for building for @@ -39,30 +39,30 @@ DRM_IMX_IPU option next to this one for the newer i.MX SoCs which will be a second platform driver. > > + -> > + ? ? ? /* -> > + ? ? ? ?* without file_priv we are called from imx_drm_fbdev_create in which -> > + ? ? ? ?* case we only create a framebuffer without a handle. -> > + ? ? ? ?*/ -> > + ? ? ? if (!file_priv) { -> > + ? ? ? ? ? ? ? struct imx_drm_buf_entry *entry; +> > + /* +> > + * without file_priv we are called from imx_drm_fbdev_create in which +> > + * case we only create a framebuffer without a handle. +> > + */ +> > + if (!file_priv) { +> > + struct imx_drm_buf_entry *entry; > > + -> > + ? ? ? ? ? ? ? entry = imx_drm_buf_create(dev, size); -> > + ? ? ? ? ? ? ? if (IS_ERR(entry)) { -> > + ? ? ? ? ? ? ? ? ? ? ? ret = PTR_ERR(entry); -> > + ? ? ? ? ? ? ? ? ? ? ? goto err_buffer; -> > + ? ? ? ? ? ? ? } +> > + entry = imx_drm_buf_create(dev, size); +> > + if (IS_ERR(entry)) { +> > + ret = PTR_ERR(entry); +> > + goto err_buffer; +> > + } > > + -> > + ? ? ? ? ? ? ? imx_drm_fb->entry = entry; -> > + ? ? ? } else { -> > + ? ? ? ? ? ? ? obj = drm_gem_object_lookup(dev, file_priv, mode_cmd->handles[0]); -> > + ? ? ? ? ? ? ? if (!obj) { -> > + ? ? ? ? ? ? ? ? ? ? ? ret = -EINVAL; -> > + ? ? ? ? ? ? ? ? ? ? ? goto err_buffer; -> > + ? ? ? ? ? ? ? } +> > + imx_drm_fb->entry = entry; +> > + } else { +> > + obj = drm_gem_object_lookup(dev, file_priv, mode_cmd->handles[0]); +> > + if (!obj) { +> > + ret = -EINVAL; +> > + goto err_buffer; +> > + } > > + -> > + ? ? ? ? ? ? ? imx_drm_fb->imx_drm_gem_obj = to_imx_drm_gem_obj(obj); +> > + imx_drm_fb->imx_drm_gem_obj = to_imx_drm_gem_obj(obj); > > + -> > + ? ? ? ? ? ? ? drm_gem_object_unreference_unlocked(obj); +> > + drm_gem_object_unreference_unlocked(obj); > > > the fb probably should hold the reference to the GEM obj until it is @@ -82,16 +82,16 @@ Will fix this. > > + > > +static int imx_drm_gem_mmap_buffer(struct file *filp, -> > + ? ? ? ? ? ? ? struct vm_area_struct *vma) +> > + struct vm_area_struct *vma) > > +{ -> > + ? ? ? struct drm_gem_object *obj = filp->private_data; -> > + ? ? ? struct imx_drm_gem_obj *imx_drm_gem_obj = to_imx_drm_gem_obj(obj); -> > + ? ? ? struct imx_drm_buf_entry *entry; -> > + ? ? ? unsigned long pfn, vm_size; +> > + struct drm_gem_object *obj = filp->private_data; +> > + struct imx_drm_gem_obj *imx_drm_gem_obj = to_imx_drm_gem_obj(obj); +> > + struct imx_drm_buf_entry *entry; +> > + unsigned long pfn, vm_size; > > + -> > + ? ? ? vma->vm_flags |= VM_IO | VM_RESERVED; +> > + vma->vm_flags |= VM_IO | VM_RESERVED; > > + -> > + ? ? ? vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); +> > + vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); > > pgprot_writecombine()? diff --git a/a/content_digest b/N1/content_digest index 8933385..0a8366d 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,10 +1,12 @@ "ref\01337344032-25431-1-git-send-email-s.hauer@pengutronix.de\0" "ref\01337344032-25431-2-git-send-email-s.hauer@pengutronix.de\0" "ref\0CAF6AEGuhyRpMo+bsFDwq7A0YOD5BstUtA-z7dRWwwxPK9ru6bg@mail.gmail.com\0" - "From\0s.hauer@pengutronix.de (Sascha Hauer)\0" - "Subject\0[PATCH 1/2] DRM: add Freescale i.MX LCDC driver\0" + "From\0Sascha Hauer <s.hauer@pengutronix.de>\0" + "Subject\0Re: [PATCH 1/2] DRM: add Freescale i.MX LCDC driver\0" "Date\0Wed, 23 May 2012 09:47:10 +0200\0" - "To\0linux-arm-kernel@lists.infradead.org\0" + "To\0Rob Clark <rob.clark@linaro.org>\0" + "Cc\0linux-arm-kernel@lists.infradead.org" + " dri-devel@lists.freedesktop.org\0" "\00:1\0" "b\0" "Hi Rob,\n" @@ -19,19 +21,19 @@ "> > +++ b/drivers/gpu/drm/imx/Kconfig\n" "> > @@ -0,0 +1,18 @@\n" "> > +config DRM_IMX\n" - "> > + ? ? ? tristate \"DRM Support for Freescale i.MX\"\n" - "> > + ? ? ? select DRM_KMS_HELPER\n" - "> > + ? ? ? depends on DRM && ARCH_MXC\n" + "> > + \302\240 \302\240 \302\240 tristate \"DRM Support for Freescale i.MX\"\n" + "> > + \302\240 \302\240 \302\240 select DRM_KMS_HELPER\n" + "> > + \302\240 \302\240 \302\240 depends on DRM && ARCH_MXC\n" "> > +\n" "> > +config DRM_IMX_FB_HELPER\n" - "> > + ? ? ? tristate \"provide legacy framebuffer /dev/fb0\"\n" - "> > + ? ? ? depends on DRM_IMX\n" + "> > + \302\240 \302\240 \302\240 tristate \"provide legacy framebuffer /dev/fb0\"\n" + "> > + \302\240 \302\240 \302\240 depends on DRM_IMX\n" "> > +\n" "> > +config DRM_IMX_LCDC\n" - "> > + ? ? ? tristate \"DRM Support for Freescale i.MX1 and i.MX2\"\n" - "> > + ? ? ? depends on DRM_IMX\n" - "> > + ? ? ? help\n" - "> > + ? ? ? ? Choose this if you have a i.MX1, i.MX21, i.MX25 or i.MX27 processor.\n" + "> > + \302\240 \302\240 \302\240 tristate \"DRM Support for Freescale i.MX1 and i.MX2\"\n" + "> > + \302\240 \302\240 \302\240 depends on DRM_IMX\n" + "> > + \302\240 \302\240 \302\240 help\n" + "> > + \302\240 \302\240 \302\240 \302\240 Choose this if you have a i.MX1, i.MX21, i.MX25 or i.MX27 processor.\n" "> \n" "> do you have something like cpu_is_imx2() type macros? It would be\n" "> preferable not to have a compile time config option for building for\n" @@ -48,30 +50,30 @@ "be a second platform driver.\n" "\n" "> > +\n" - "> > + ? ? ? /*\n" - "> > + ? ? ? ?* without file_priv we are called from imx_drm_fbdev_create in which\n" - "> > + ? ? ? ?* case we only create a framebuffer without a handle.\n" - "> > + ? ? ? ?*/\n" - "> > + ? ? ? if (!file_priv) {\n" - "> > + ? ? ? ? ? ? ? struct imx_drm_buf_entry *entry;\n" + "> > + \302\240 \302\240 \302\240 /*\n" + "> > + \302\240 \302\240 \302\240 \302\240* without file_priv we are called from imx_drm_fbdev_create in which\n" + "> > + \302\240 \302\240 \302\240 \302\240* case we only create a framebuffer without a handle.\n" + "> > + \302\240 \302\240 \302\240 \302\240*/\n" + "> > + \302\240 \302\240 \302\240 if (!file_priv) {\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 struct imx_drm_buf_entry *entry;\n" "> > +\n" - "> > + ? ? ? ? ? ? ? entry = imx_drm_buf_create(dev, size);\n" - "> > + ? ? ? ? ? ? ? if (IS_ERR(entry)) {\n" - "> > + ? ? ? ? ? ? ? ? ? ? ? ret = PTR_ERR(entry);\n" - "> > + ? ? ? ? ? ? ? ? ? ? ? goto err_buffer;\n" - "> > + ? ? ? ? ? ? ? }\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 entry = imx_drm_buf_create(dev, size);\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 if (IS_ERR(entry)) {\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 ret = PTR_ERR(entry);\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 goto err_buffer;\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 }\n" "> > +\n" - "> > + ? ? ? ? ? ? ? imx_drm_fb->entry = entry;\n" - "> > + ? ? ? } else {\n" - "> > + ? ? ? ? ? ? ? obj = drm_gem_object_lookup(dev, file_priv, mode_cmd->handles[0]);\n" - "> > + ? ? ? ? ? ? ? if (!obj) {\n" - "> > + ? ? ? ? ? ? ? ? ? ? ? ret = -EINVAL;\n" - "> > + ? ? ? ? ? ? ? ? ? ? ? goto err_buffer;\n" - "> > + ? ? ? ? ? ? ? }\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 imx_drm_fb->entry = entry;\n" + "> > + \302\240 \302\240 \302\240 } else {\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 obj = drm_gem_object_lookup(dev, file_priv, mode_cmd->handles[0]);\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 if (!obj) {\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 ret = -EINVAL;\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 goto err_buffer;\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 }\n" "> > +\n" - "> > + ? ? ? ? ? ? ? imx_drm_fb->imx_drm_gem_obj = to_imx_drm_gem_obj(obj);\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 imx_drm_fb->imx_drm_gem_obj = to_imx_drm_gem_obj(obj);\n" "> > +\n" - "> > + ? ? ? ? ? ? ? drm_gem_object_unreference_unlocked(obj);\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 drm_gem_object_unreference_unlocked(obj);\n" "> \n" "> \n" "> the fb probably should hold the reference to the GEM obj until it is\n" @@ -91,16 +93,16 @@ "\n" "> > +\n" "> > +static int imx_drm_gem_mmap_buffer(struct file *filp,\n" - "> > + ? ? ? ? ? ? ? struct vm_area_struct *vma)\n" + "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 struct vm_area_struct *vma)\n" "> > +{\n" - "> > + ? ? ? struct drm_gem_object *obj = filp->private_data;\n" - "> > + ? ? ? struct imx_drm_gem_obj *imx_drm_gem_obj = to_imx_drm_gem_obj(obj);\n" - "> > + ? ? ? struct imx_drm_buf_entry *entry;\n" - "> > + ? ? ? unsigned long pfn, vm_size;\n" + "> > + \302\240 \302\240 \302\240 struct drm_gem_object *obj = filp->private_data;\n" + "> > + \302\240 \302\240 \302\240 struct imx_drm_gem_obj *imx_drm_gem_obj = to_imx_drm_gem_obj(obj);\n" + "> > + \302\240 \302\240 \302\240 struct imx_drm_buf_entry *entry;\n" + "> > + \302\240 \302\240 \302\240 unsigned long pfn, vm_size;\n" "> > +\n" - "> > + ? ? ? vma->vm_flags |= VM_IO | VM_RESERVED;\n" + "> > + \302\240 \302\240 \302\240 vma->vm_flags |= VM_IO | VM_RESERVED;\n" "> > +\n" - "> > + ? ? ? vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);\n" + "> > + \302\240 \302\240 \302\240 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);\n" "> \n" "> pgprot_writecombine()?\n" "\n" @@ -122,4 +124,4 @@ "Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |\n" Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | -0f69c15be09b3799361084761466d654b477ebebdab2a7003927cb0cb3a3cac7 +98b0dfe9d38cbae13183f89f13db5bc9a5f49ca60c12e8b9da03ed581c08ed02
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.