From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932544AbcBPNwH (ORCPT ); Tue, 16 Feb 2016 08:52:07 -0500 Received: from bear.ext.ti.com ([192.94.94.41]:46819 "EHLO bear.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932326AbcBPNwD (ORCPT ); Tue, 16 Feb 2016 08:52:03 -0500 Subject: Re: [PATCH] ARM: omapfb: Add early framebuffer memory allocator To: Ivaylo Dimitrov , =?UTF-8?Q?Pali_Roh=c3=a1r?= References: <52A062A0.3070005@ti.com> <1388013159-3036-1-git-send-email-ivo.g.dimitrov.75@gmail.com> <201601011301.27415@pali> <568A5970.2000201@ti.com> <568A6DD1.5050700@gmail.com> <5693F5B7.8040608@ti.com> <56BEDA57.4030300@gmail.com> CC: , , , , , Ivaylo Dimitrov From: Tomi Valkeinen X-Enigmail-Draft-Status: N1110 Message-ID: <56C32966.9020105@ti.com> Date: Tue, 16 Feb 2016 15:51:34 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <56BEDA57.4030300@gmail.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="Kw5o9xVV9Jx0IOUFmFsm5Ars8BiXmuuJE" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --Kw5o9xVV9Jx0IOUFmFsm5Ars8BiXmuuJE Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 13/02/16 09:25, Ivaylo Dimitrov wrote: > Hi Tomi, >=20 > On 11.01.2016 20:34, Tomi Valkeinen wrote: >> >> So, I'm not very enthusiastic about adding this feature as an omapfb >> specific boot parameter. >> >=20 > What about something like (not properly formatted, just want your > opinion on the idea): >=20 > diff --git a/arch/arm/mach-omap2/fb.c b/arch/arm/mach-omap2/fb.c > index 1f1ecf8..0d109d8 100644 > --- a/arch/arm/mach-omap2/fb.c > +++ b/arch/arm/mach-omap2/fb.c > @@ -28,6 +28,7 @@ > #include > #include > #include > +#include >=20 > #include >=20 > @@ -110,6 +111,49 @@ int __init omap_init_fb(void) > { > return platform_device_register(&omap_fb_device); > } > + > +static int rmem_omapfb_device_init(struct reserved_mem *rmem, struct > device *dev) > +{ > + int dma; > + > + if (rmem->priv) > + return 0; > + > + dma =3D dma_declare_coherent_memory(&omap_fb_device.dev, rmem->= base, > + rmem->base, rmem->size, > + DMA_MEMORY_MAP | > + DMA_MEMORY_EXCLUSIVE); > + > + if (!(dma & DMA_MEMORY_MAP)) { > + pr_err("omapfb: dma_declare_coherent_memory failed\n");= > + return -ENOMEM; > + } > + else > + rmem->priv =3D omap_fb_device.dev.dma_mem; > + > + return 0; > +} > + > +static void rmem_omapfb_device_release(struct reserved_mem *rmem, > + struct device *dev) > +{ > + dma_release_declared_memory(&omap_fb_device.dev); > +} > + > +static const struct reserved_mem_ops rmem_omapfb_ops =3D { > + .device_init =3D rmem_omapfb_device_init, > + .device_release =3D rmem_omapfb_device_release, > +}; > + > +static int __init rmem_omapfb_setup(struct reserved_mem *rmem) > +{ > + rmem->ops =3D &rmem_omapfb_ops; > + pr_info("omapfb: reserved %d bytes at %pa\n", rmem->size, > &rmem->base); > + > + return 0; > +} > + > +RESERVEDMEM_OF_DECLARE(dss, "ti,omapfb-memsize", rmem_omapfb_setup); > #else > int __init omap_init_fb(void) { return 0; } > #endif >=20 > diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/displa= y.c > index 6ab13d1..6f0ba03 100644 > --- a/arch/arm/mach-omap2/display.c > +++ b/arch/arm/mach-omap2/display.c > @@ -28,6 +28,7 @@ > #include > #include > #include > +#include >=20 > #include