From: Liviu Dudau <Liviu.Dudau@arm.com> To: Ayan Halder <Ayan.Halder@arm.com> Cc: Brian Starkey <Brian.Starkey@arm.com>, "malidp@foss.arm.com" <malidp@foss.arm.com>, "airlied@linux.ie" <airlied@linux.ie>, "dri-devel@lists.freedesktop.org" <dri-devel@lists.freedesktop.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "maxime.ripard@bootlin.com" <maxime.ripard@bootlin.com>, "sean@poorly.run" <sean@poorly.run>, "maarten.lankhorst@linux.intel.com" <maarten.lankhorst@linux.intel.com>, "corbet@lwn.net" <corbet@lwn.net>, "mchehab+samsung@kernel.org" <mchehab+samsung@kernel.org>, "gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>, "davem@davemloft.net" <davem@davemloft.net>, "akpm@linux-foundation.org" <akpm@linux-foundation.org>, "nicolas.ferre@microchip.com" <nicolas.ferre@microchip.com>, "arnd@arndb.de" <arnd@arndb.de>, "linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>, nd <nd@arm.com> Subject: Re: [RFC v3 AFBC 12/12] drm/arm/malidp: Added support for AFBC modifiers for all layers except DE_SMART Date: Tue, 4 Dec 2018 17:54:21 +0000 [thread overview] Message-ID: <20181204175421.GT988@e110455-lin.cambridge.arm.com> (raw) In-Reply-To: <1543836703-8491-13-git-send-email-ayan.halder@arm.com> On Mon, Dec 03, 2018 at 11:32:06AM +0000, Ayan Halder wrote: > The list of modifiers to be supported for each plane has been dynamically generated > from 'malidp_format_modifiers[]' and 'malidp_hw_regmap->features'. > > Changes from v1:- > 1. Replaced DRM_ERROR() with DRM_DEBUG_KMS() in malidp_format_mod_supported() > to report unsupported modifiers. > > Changes from v2:- > 1. Removed malidp_format_mod_supported() from the current patch. This has been added > in "PATCH 7/12" > 2. Dynamically generate the list of modifiers (to be supported for each plane) from > 'malidp_format_modifiers' and features. > > Signed-off-by: Ayan Kumar halder <ayan.halder@arm.com> Reviewed-by: Liviu Dudau <liviu.dudau@arm.com> Best regards, Liviu > --- > drivers/gpu/drm/arm/malidp_drv.c | 1 + > drivers/gpu/drm/arm/malidp_planes.c | 28 ++++++++++++++++++++++++++-- > 2 files changed, 27 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c > index b2b97db..be45703 100644 > --- a/drivers/gpu/drm/arm/malidp_drv.c > +++ b/drivers/gpu/drm/arm/malidp_drv.c > @@ -388,6 +388,7 @@ static int malidp_init(struct drm_device *drm) > drm->mode_config.max_height = hwdev->max_line_size; > drm->mode_config.funcs = &malidp_mode_config_funcs; > drm->mode_config.helper_private = &malidp_mode_config_helpers; > + drm->mode_config.allow_fb_modifiers = true; > > ret = malidp_crtc_init(drm); > if (ret) > diff --git a/drivers/gpu/drm/arm/malidp_planes.c b/drivers/gpu/drm/arm/malidp_planes.c > index eec0442..01037d0 100644 > --- a/drivers/gpu/drm/arm/malidp_planes.c > +++ b/drivers/gpu/drm/arm/malidp_planes.c > @@ -934,6 +934,25 @@ int malidp_de_planes_init(struct drm_device *drm) > BIT(DRM_MODE_BLEND_COVERAGE); > u32 *formats; > int ret, i, j, n; > + u64 supported_modifiers[MODIFIERS_COUNT_MAX]; > + const u64 *modifiers; > + > + modifiers = malidp_format_modifiers; > + > + if (!(map->features & MALIDP_DEVICE_AFBC_SUPPORT_SPLIT)) { > + /* > + * Since our hardware does not support SPLIT, so build the list of > + * supported modifiers excluding SPLIT ones. > + */ > + while (*modifiers != DRM_FORMAT_MOD_INVALID) { > + if (!(*modifiers & AFBC_SPLIT)) > + supported_modifiers[j++] = *modifiers; > + > + modifiers++; > + } > + supported_modifiers[j++] = DRM_FORMAT_MOD_INVALID; > + modifiers = supported_modifiers; > + } > > formats = kcalloc(map->n_pixel_formats, sizeof(*formats), GFP_KERNEL); > if (!formats) { > @@ -958,9 +977,14 @@ int malidp_de_planes_init(struct drm_device *drm) > > plane_type = (i == 0) ? DRM_PLANE_TYPE_PRIMARY : > DRM_PLANE_TYPE_OVERLAY; > + > + /* > + * All the layers except smart layer supports AFBC modifiers. > + */ > ret = drm_universal_plane_init(drm, &plane->base, crtcs, > - &malidp_de_plane_funcs, formats, > - n, NULL, plane_type, NULL); > + &malidp_de_plane_funcs, formats, n, > + (id == DE_SMART) ? NULL : modifiers, plane_type, NULL); > + > if (ret < 0) > goto cleanup; > > -- > 2.7.4 > -- ==================== | I would like to | | fix the world, | | but they're not | | giving me the | \ source code! / --------------- ¯\_(ツ)_/¯
WARNING: multiple messages have this Message-ID (diff)
From: Liviu Dudau <Liviu.Dudau@arm.com> To: Ayan Halder <Ayan.Halder@arm.com> Cc: Brian Starkey <Brian.Starkey@arm.com>, "malidp@foss.arm.com" <malidp@foss.arm.com>, "airlied@linux.ie" <airlied@linux.ie>, "dri-devel@lists.freedesktop.org" <dri-devel@lists.freedesktop.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "maxime.ripard@bootlin.com" <maxime.ripard@bootlin.com>, "sean@poorly.run" <sean@poorly.run>, "maarten.lankhorst@linux.intel.com" <maarten.lankhorst@linux.intel.com>, "corbet@lwn.net" <corbet@lwn.net>, "mchehab+samsung@kernel.org" <mchehab+samsung@kernel.org>, "gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>, "davem@davemloft.net" <davem@davemloft.net>, "akpm@linux-foundation.org" <akpm@linux-foundation.org>, "nicolas.ferre@microchip.com" <nicolas.ferre@microchip.com>, "arnd@arndb.de" <arnd@arndb.de> Subject: Re: [RFC v3 AFBC 12/12] drm/arm/malidp: Added support for AFBC modifiers for all layers except DE_SMART Date: Tue, 4 Dec 2018 17:54:21 +0000 [thread overview] Message-ID: <20181204175421.GT988@e110455-lin.cambridge.arm.com> (raw) In-Reply-To: <1543836703-8491-13-git-send-email-ayan.halder@arm.com> On Mon, Dec 03, 2018 at 11:32:06AM +0000, Ayan Halder wrote: > The list of modifiers to be supported for each plane has been dynamically generated > from 'malidp_format_modifiers[]' and 'malidp_hw_regmap->features'. > > Changes from v1:- > 1. Replaced DRM_ERROR() with DRM_DEBUG_KMS() in malidp_format_mod_supported() > to report unsupported modifiers. > > Changes from v2:- > 1. Removed malidp_format_mod_supported() from the current patch. This has been added > in "PATCH 7/12" > 2. Dynamically generate the list of modifiers (to be supported for each plane) from > 'malidp_format_modifiers' and features. > > Signed-off-by: Ayan Kumar halder <ayan.halder@arm.com> Reviewed-by: Liviu Dudau <liviu.dudau@arm.com> Best regards, Liviu > --- > drivers/gpu/drm/arm/malidp_drv.c | 1 + > drivers/gpu/drm/arm/malidp_planes.c | 28 ++++++++++++++++++++++++++-- > 2 files changed, 27 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c > index b2b97db..be45703 100644 > --- a/drivers/gpu/drm/arm/malidp_drv.c > +++ b/drivers/gpu/drm/arm/malidp_drv.c > @@ -388,6 +388,7 @@ static int malidp_init(struct drm_device *drm) > drm->mode_config.max_height = hwdev->max_line_size; > drm->mode_config.funcs = &malidp_mode_config_funcs; > drm->mode_config.helper_private = &malidp_mode_config_helpers; > + drm->mode_config.allow_fb_modifiers = true; > > ret = malidp_crtc_init(drm); > if (ret) > diff --git a/drivers/gpu/drm/arm/malidp_planes.c b/drivers/gpu/drm/arm/malidp_planes.c > index eec0442..01037d0 100644 > --- a/drivers/gpu/drm/arm/malidp_planes.c > +++ b/drivers/gpu/drm/arm/malidp_planes.c > @@ -934,6 +934,25 @@ int malidp_de_planes_init(struct drm_device *drm) > BIT(DRM_MODE_BLEND_COVERAGE); > u32 *formats; > int ret, i, j, n; > + u64 supported_modifiers[MODIFIERS_COUNT_MAX]; > + const u64 *modifiers; > + > + modifiers = malidp_format_modifiers; > + > + if (!(map->features & MALIDP_DEVICE_AFBC_SUPPORT_SPLIT)) { > + /* > + * Since our hardware does not support SPLIT, so build the list of > + * supported modifiers excluding SPLIT ones. > + */ > + while (*modifiers != DRM_FORMAT_MOD_INVALID) { > + if (!(*modifiers & AFBC_SPLIT)) > + supported_modifiers[j++] = *modifiers; > + > + modifiers++; > + } > + supported_modifiers[j++] = DRM_FORMAT_MOD_INVALID; > + modifiers = supported_modifiers; > + } > > formats = kcalloc(map->n_pixel_formats, sizeof(*formats), GFP_KERNEL); > if (!formats) { > @@ -958,9 +977,14 @@ int malidp_de_planes_init(struct drm_device *drm) > > plane_type = (i == 0) ? DRM_PLANE_TYPE_PRIMARY : > DRM_PLANE_TYPE_OVERLAY; > + > + /* > + * All the layers except smart layer supports AFBC modifiers. > + */ > ret = drm_universal_plane_init(drm, &plane->base, crtcs, > - &malidp_de_plane_funcs, formats, > - n, NULL, plane_type, NULL); > + &malidp_de_plane_funcs, formats, n, > + (id == DE_SMART) ? NULL : modifiers, plane_type, NULL); > + > if (ret < 0) > goto cleanup; > > -- > 2.7.4 > -- ==================== | I would like to | | fix the world, | | but they're not | | giving me the | \ source code! / --------------- ¯\_(ツ)_/¯
next prev parent reply other threads:[~2018-12-04 17:54 UTC|newest] Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-12-03 11:31 [RFC AFBC v2 00/12] Add support for Arm Framebuffer Compression(AFBC) in mali display driver Ayan Halder 2018-12-03 11:31 ` Ayan Halder 2018-12-03 11:31 ` [RFC AFBC 01/12] drm/fourcc: Add AFBC yuv fourccs for Mali Ayan Halder 2018-12-03 11:31 ` Ayan Halder 2018-12-03 11:31 ` [RFC AFBC 02/12] drm: Added a new format DRM_FORMAT_XVYU2101010 Ayan Halder 2018-12-03 11:31 ` Ayan Halder 2018-12-04 16:31 ` Liviu Dudau 2018-12-04 16:31 ` Liviu Dudau 2018-12-03 11:31 ` [RFC AFBC 03/12] drm/afbc: Add AFBC modifier usage documentation Ayan Halder 2018-12-03 11:31 ` Ayan Halder 2019-01-03 20:44 ` Ezequiel Garcia 2019-01-03 20:44 ` Ezequiel Garcia 2019-01-11 18:07 ` Liviu Dudau 2019-01-11 18:07 ` Liviu Dudau 2019-01-14 12:23 ` Jani Nikula 2019-01-14 12:23 ` Jani Nikula 2019-01-14 14:13 ` Brian Starkey 2019-01-14 14:13 ` Brian Starkey 2019-01-14 14:24 ` Jani Nikula 2019-01-14 14:24 ` Jani Nikula 2018-12-03 11:31 ` [RFC v3 AFBC 04/12] drm/arm/malidp: Set the AFBC register bits if the framebuffer has AFBC modifier Ayan Halder 2018-12-03 11:31 ` Ayan Halder 2018-12-04 16:50 ` Liviu Dudau 2018-12-04 16:50 ` Liviu Dudau 2018-12-14 13:45 ` Ayan Halder 2018-12-14 13:45 ` Ayan Halder 2018-12-17 14:01 ` Liviu Dudau 2018-12-17 14:01 ` Liviu Dudau 2018-12-03 11:31 ` [RFC AFBC 05/12] drm/arm/malidp:- Define a common list of AFBC format modifiers supported for DP500, DP550 and DP650 Ayan Halder 2018-12-03 11:31 ` Ayan Halder 2018-12-04 16:56 ` Liviu Dudau 2018-12-04 16:56 ` Liviu Dudau 2018-12-03 11:32 ` [RFC AFBC 06/12] drm/arm/malidp:- Added support for new YUV formats " Ayan Halder 2018-12-03 11:32 ` Ayan Halder 2018-12-04 16:57 ` Liviu Dudau 2018-12-04 16:57 ` Liviu Dudau 2018-12-14 14:12 ` Ayan Halder 2018-12-14 14:12 ` Ayan Halder 2018-12-17 14:04 ` Liviu Dudau 2018-12-03 11:32 ` [RFC AFBC 07/12] drm/arm/malidp: Define the constraints on each supported drm_fourcc format for the AFBC modifiers Ayan Halder 2018-12-03 11:32 ` Ayan Halder 2018-12-04 17:49 ` Liviu Dudau 2018-12-04 17:49 ` Liviu Dudau 2018-12-14 14:23 ` Ayan Halder 2018-12-14 14:23 ` Ayan Halder 2018-12-03 11:32 ` [RFC AFBC 08/12] drm/arm/malidp: Specified the rotation memory requirements for AFBC YUV formats Ayan Halder 2018-12-03 11:32 ` Ayan Halder 2018-12-04 17:50 ` Liviu Dudau 2018-12-04 17:50 ` Liviu Dudau 2018-12-03 11:32 ` [RFC AFBC 09/12] drm/arm/malidp:- Writeback framebuffer does not support any modifiers Ayan Halder 2018-12-03 11:32 ` Ayan Halder 2018-12-04 17:50 ` Liviu Dudau 2018-12-04 17:50 ` Liviu Dudau 2018-12-03 11:32 ` [RFC AFBC 10/12] drm/arm/malidp:- Use the newly introduced malidp_format_get_bpp() instead of relying on cpp for calculating framebuffer size Ayan Halder 2018-12-03 11:32 ` Ayan Halder 2018-12-04 17:51 ` Liviu Dudau 2018-12-04 17:51 ` Liviu Dudau 2018-12-03 11:32 ` [RFC AFBC 11/12] drm/arm/malidp:- Disregard the pitch alignment constraint for AFBC framebuffer Ayan Halder 2018-12-03 11:32 ` Ayan Halder 2018-12-04 17:52 ` Liviu Dudau 2018-12-04 17:52 ` Liviu Dudau 2018-12-03 11:32 ` [RFC v3 AFBC 12/12] drm/arm/malidp: Added support for AFBC modifiers for all layers except DE_SMART Ayan Halder 2018-12-03 11:32 ` Ayan Halder 2018-12-04 17:54 ` Liviu Dudau [this message] 2018-12-04 17:54 ` Liviu Dudau
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20181204175421.GT988@e110455-lin.cambridge.arm.com \ --to=liviu.dudau@arm.com \ --cc=Ayan.Halder@arm.com \ --cc=Brian.Starkey@arm.com \ --cc=airlied@linux.ie \ --cc=akpm@linux-foundation.org \ --cc=arnd@arndb.de \ --cc=corbet@lwn.net \ --cc=davem@davemloft.net \ --cc=dri-devel@lists.freedesktop.org \ --cc=gregkh@linuxfoundation.org \ --cc=linux-doc@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=maarten.lankhorst@linux.intel.com \ --cc=malidp@foss.arm.com \ --cc=maxime.ripard@bootlin.com \ --cc=mchehab+samsung@kernel.org \ --cc=nd@arm.com \ --cc=nicolas.ferre@microchip.com \ --cc=sean@poorly.run \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.