* [PATCH] drm/color: un-inline drm_color_lut_extract() @ 2017-01-23 9:42 Jani Nikula 2017-01-23 10:15 ` [Intel-gfx] " Daniel Vetter ` (3 more replies) 0 siblings, 4 replies; 10+ messages in thread From: Jani Nikula @ 2017-01-23 9:42 UTC (permalink / raw) To: dri-devel; +Cc: jani.nikula, intel-gfx The function is not that big, but it's also not used for anything performance critical. Make it a normal function. As a side effect, this apparently makes sparse smarter about what it's doing, and gets rid of the warning: ./include/drm/drm_color_mgmt.h:53:28: warning: shift too big (4294967295) for type unsigned long ./include/drm/drm_color_mgmt.h:53:28: warning: cast truncates bits from constant value (8000000000000000 becomes 0) Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- drivers/gpu/drm/drm_color_mgmt.c | 24 ++++++++++++++++++++++++ include/drm/drm_color_mgmt.h | 27 ++------------------------- 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/drivers/gpu/drm/drm_color_mgmt.c b/drivers/gpu/drm/drm_color_mgmt.c index 789b4c65cd69..5618f60c7690 100644 --- a/drivers/gpu/drm/drm_color_mgmt.c +++ b/drivers/gpu/drm/drm_color_mgmt.c @@ -88,6 +88,30 @@ */ /** + * drm_color_lut_extract - clamp&round LUT entries + * @user_input: input value + * @bit_precision: number of bits the hw LUT supports + * + * Extract a degamma/gamma LUT value provided by user (in the form of + * &drm_color_lut entries) and round it to the precision supported by the + * hardware. + */ +uint32_t drm_color_lut_extract(uint32_t user_input, uint32_t bit_precision) +{ + uint32_t val = user_input; + uint32_t max = 0xffff >> (16 - bit_precision); + + /* Round only if we're not using full precision. */ + if (bit_precision < 16) { + val += 1UL << (16 - bit_precision - 1); + val >>= 16 - bit_precision; + } + + return clamp_val(val, 0, max); +} +EXPORT_SYMBOL(drm_color_lut_extract); + +/** * drm_crtc_enable_color_mgmt - enable color management properties * @crtc: DRM CRTC * @degamma_lut_size: the size of the degamma lut (before CSC) diff --git a/include/drm/drm_color_mgmt.h b/include/drm/drm_color_mgmt.h index c767238ac9d5..bce4a532836d 100644 --- a/include/drm/drm_color_mgmt.h +++ b/include/drm/drm_color_mgmt.h @@ -25,6 +25,8 @@ #include <linux/ctype.h> +uint32_t drm_color_lut_extract(uint32_t user_input, uint32_t bit_precision); + void drm_crtc_enable_color_mgmt(struct drm_crtc *crtc, uint degamma_lut_size, bool has_ctm, @@ -33,29 +35,4 @@ void drm_crtc_enable_color_mgmt(struct drm_crtc *crtc, int drm_mode_crtc_set_gamma_size(struct drm_crtc *crtc, int gamma_size); -/** - * drm_color_lut_extract - clamp&round LUT entries - * @user_input: input value - * @bit_precision: number of bits the hw LUT supports - * - * Extract a degamma/gamma LUT value provided by user (in the form of - * &drm_color_lut entries) and round it to the precision supported by the - * hardware. - */ -static inline uint32_t drm_color_lut_extract(uint32_t user_input, - uint32_t bit_precision) -{ - uint32_t val = user_input; - uint32_t max = 0xffff >> (16 - bit_precision); - - /* Round only if we're not using full precision. */ - if (bit_precision < 16) { - val += 1UL << (16 - bit_precision - 1); - val >>= 16 - bit_precision; - } - - return clamp_val(val, 0, max); -} - - #endif -- 2.1.4 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/color: un-inline drm_color_lut_extract() 2017-01-23 9:42 [PATCH] drm/color: un-inline drm_color_lut_extract() Jani Nikula @ 2017-01-23 10:15 ` Daniel Vetter 2017-01-23 11:18 ` Jani Nikula 2017-01-23 11:54 ` ✗ Fi.CI.BAT: failure for " Patchwork ` (2 subsequent siblings) 3 siblings, 1 reply; 10+ messages in thread From: Daniel Vetter @ 2017-01-23 10:15 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx, dri-devel On Mon, Jan 23, 2017 at 11:42:59AM +0200, Jani Nikula wrote: > The function is not that big, but it's also not used for anything > performance critical. Make it a normal function. > > As a side effect, this apparently makes sparse smarter about what it's > doing, and gets rid of the warning: > > ./include/drm/drm_color_mgmt.h:53:28: warning: shift too big (4294967295) for type unsigned long > ./include/drm/drm_color_mgmt.h:53:28: warning: cast truncates bits from constant value (8000000000000000 becomes 0) Not really clear to me what's going on, but if it helps ... > Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> > Signed-off-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > drivers/gpu/drm/drm_color_mgmt.c | 24 ++++++++++++++++++++++++ > include/drm/drm_color_mgmt.h | 27 ++------------------------- > 2 files changed, 26 insertions(+), 25 deletions(-) > > diff --git a/drivers/gpu/drm/drm_color_mgmt.c b/drivers/gpu/drm/drm_color_mgmt.c > index 789b4c65cd69..5618f60c7690 100644 > --- a/drivers/gpu/drm/drm_color_mgmt.c > +++ b/drivers/gpu/drm/drm_color_mgmt.c > @@ -88,6 +88,30 @@ > */ > > /** > + * drm_color_lut_extract - clamp&round LUT entries > + * @user_input: input value > + * @bit_precision: number of bits the hw LUT supports > + * > + * Extract a degamma/gamma LUT value provided by user (in the form of > + * &drm_color_lut entries) and round it to the precision supported by the > + * hardware. > + */ > +uint32_t drm_color_lut_extract(uint32_t user_input, uint32_t bit_precision) > +{ > + uint32_t val = user_input; > + uint32_t max = 0xffff >> (16 - bit_precision); > + > + /* Round only if we're not using full precision. */ > + if (bit_precision < 16) { > + val += 1UL << (16 - bit_precision - 1); > + val >>= 16 - bit_precision; > + } > + > + return clamp_val(val, 0, max); > +} > +EXPORT_SYMBOL(drm_color_lut_extract); > + > +/** > * drm_crtc_enable_color_mgmt - enable color management properties > * @crtc: DRM CRTC > * @degamma_lut_size: the size of the degamma lut (before CSC) > diff --git a/include/drm/drm_color_mgmt.h b/include/drm/drm_color_mgmt.h > index c767238ac9d5..bce4a532836d 100644 > --- a/include/drm/drm_color_mgmt.h > +++ b/include/drm/drm_color_mgmt.h > @@ -25,6 +25,8 @@ > > #include <linux/ctype.h> > > +uint32_t drm_color_lut_extract(uint32_t user_input, uint32_t bit_precision); > + > void drm_crtc_enable_color_mgmt(struct drm_crtc *crtc, > uint degamma_lut_size, > bool has_ctm, > @@ -33,29 +35,4 @@ void drm_crtc_enable_color_mgmt(struct drm_crtc *crtc, > int drm_mode_crtc_set_gamma_size(struct drm_crtc *crtc, > int gamma_size); > > -/** > - * drm_color_lut_extract - clamp&round LUT entries > - * @user_input: input value > - * @bit_precision: number of bits the hw LUT supports > - * > - * Extract a degamma/gamma LUT value provided by user (in the form of > - * &drm_color_lut entries) and round it to the precision supported by the > - * hardware. > - */ > -static inline uint32_t drm_color_lut_extract(uint32_t user_input, > - uint32_t bit_precision) > -{ > - uint32_t val = user_input; > - uint32_t max = 0xffff >> (16 - bit_precision); > - > - /* Round only if we're not using full precision. */ > - if (bit_precision < 16) { > - val += 1UL << (16 - bit_precision - 1); > - val >>= 16 - bit_precision; > - } > - > - return clamp_val(val, 0, max); > -} > - > - > #endif > -- > 2.1.4 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] drm/color: un-inline drm_color_lut_extract() 2017-01-23 10:15 ` [Intel-gfx] " Daniel Vetter @ 2017-01-23 11:18 ` Jani Nikula 0 siblings, 0 replies; 10+ messages in thread From: Jani Nikula @ 2017-01-23 11:18 UTC (permalink / raw) To: Daniel Vetter; +Cc: intel-gfx, dri-devel On Mon, 23 Jan 2017, Daniel Vetter <daniel@ffwll.ch> wrote: > On Mon, Jan 23, 2017 at 11:42:59AM +0200, Jani Nikula wrote: >> The function is not that big, but it's also not used for anything >> performance critical. Make it a normal function. >> >> As a side effect, this apparently makes sparse smarter about what it's >> doing, and gets rid of the warning: >> >> ./include/drm/drm_color_mgmt.h:53:28: warning: shift too big (4294967295) for type unsigned long >> ./include/drm/drm_color_mgmt.h:53:28: warning: cast truncates bits from constant value (8000000000000000 becomes 0) > > Not really clear to me what's going on, but if it helps ... Apparently sparse is clever enough to notice bit_precision < 16 when this is a regular function, but not when it's an inline function. The second warning we could get rid of just by changing s/1UL/1U/. BR, Jani. > >> Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> >> Signed-off-by: Jani Nikula <jani.nikula@intel.com> > > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > >> --- >> drivers/gpu/drm/drm_color_mgmt.c | 24 ++++++++++++++++++++++++ >> include/drm/drm_color_mgmt.h | 27 ++------------------------- >> 2 files changed, 26 insertions(+), 25 deletions(-) >> >> diff --git a/drivers/gpu/drm/drm_color_mgmt.c b/drivers/gpu/drm/drm_color_mgmt.c >> index 789b4c65cd69..5618f60c7690 100644 >> --- a/drivers/gpu/drm/drm_color_mgmt.c >> +++ b/drivers/gpu/drm/drm_color_mgmt.c >> @@ -88,6 +88,30 @@ >> */ >> >> /** >> + * drm_color_lut_extract - clamp&round LUT entries >> + * @user_input: input value >> + * @bit_precision: number of bits the hw LUT supports >> + * >> + * Extract a degamma/gamma LUT value provided by user (in the form of >> + * &drm_color_lut entries) and round it to the precision supported by the >> + * hardware. >> + */ >> +uint32_t drm_color_lut_extract(uint32_t user_input, uint32_t bit_precision) >> +{ >> + uint32_t val = user_input; >> + uint32_t max = 0xffff >> (16 - bit_precision); >> + >> + /* Round only if we're not using full precision. */ >> + if (bit_precision < 16) { >> + val += 1UL << (16 - bit_precision - 1); >> + val >>= 16 - bit_precision; >> + } >> + >> + return clamp_val(val, 0, max); >> +} >> +EXPORT_SYMBOL(drm_color_lut_extract); >> + >> +/** >> * drm_crtc_enable_color_mgmt - enable color management properties >> * @crtc: DRM CRTC >> * @degamma_lut_size: the size of the degamma lut (before CSC) >> diff --git a/include/drm/drm_color_mgmt.h b/include/drm/drm_color_mgmt.h >> index c767238ac9d5..bce4a532836d 100644 >> --- a/include/drm/drm_color_mgmt.h >> +++ b/include/drm/drm_color_mgmt.h >> @@ -25,6 +25,8 @@ >> >> #include <linux/ctype.h> >> >> +uint32_t drm_color_lut_extract(uint32_t user_input, uint32_t bit_precision); >> + >> void drm_crtc_enable_color_mgmt(struct drm_crtc *crtc, >> uint degamma_lut_size, >> bool has_ctm, >> @@ -33,29 +35,4 @@ void drm_crtc_enable_color_mgmt(struct drm_crtc *crtc, >> int drm_mode_crtc_set_gamma_size(struct drm_crtc *crtc, >> int gamma_size); >> >> -/** >> - * drm_color_lut_extract - clamp&round LUT entries >> - * @user_input: input value >> - * @bit_precision: number of bits the hw LUT supports >> - * >> - * Extract a degamma/gamma LUT value provided by user (in the form of >> - * &drm_color_lut entries) and round it to the precision supported by the >> - * hardware. >> - */ >> -static inline uint32_t drm_color_lut_extract(uint32_t user_input, >> - uint32_t bit_precision) >> -{ >> - uint32_t val = user_input; >> - uint32_t max = 0xffff >> (16 - bit_precision); >> - >> - /* Round only if we're not using full precision. */ >> - if (bit_precision < 16) { >> - val += 1UL << (16 - bit_precision - 1); >> - val >>= 16 - bit_precision; >> - } >> - >> - return clamp_val(val, 0, max); >> -} >> - >> - >> #endif >> -- >> 2.1.4 >> >> _______________________________________________ >> Intel-gfx mailing list >> Intel-gfx@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Jani Nikula, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 10+ messages in thread
* ✗ Fi.CI.BAT: failure for drm/color: un-inline drm_color_lut_extract() 2017-01-23 9:42 [PATCH] drm/color: un-inline drm_color_lut_extract() Jani Nikula 2017-01-23 10:15 ` [Intel-gfx] " Daniel Vetter @ 2017-01-23 11:54 ` Patchwork 2017-01-27 9:49 ` [PATCH] " Lionel Landwerlin 2017-01-30 12:55 ` ✓ Fi.CI.BAT: success for drm/color: un-inline drm_color_lut_extract() (rev2) Patchwork 3 siblings, 0 replies; 10+ messages in thread From: Patchwork @ 2017-01-23 11:54 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx == Series Details == Series: drm/color: un-inline drm_color_lut_extract() URL : https://patchwork.freedesktop.org/series/18391/ State : failure == Summary == Series 18391v1 drm/color: un-inline drm_color_lut_extract() https://patchwork.freedesktop.org/api/1.0/series/18391/revisions/1/mbox/ Test gem_sync: Subgroup basic-store-all: pass -> FAIL (fi-ivb-3770) fi-bdw-5557u total:246 pass:232 dwarn:0 dfail:0 fail:0 skip:14 fi-bsw-n3050 total:246 pass:207 dwarn:0 dfail:0 fail:0 skip:39 fi-bxt-j4205 total:246 pass:224 dwarn:0 dfail:0 fail:0 skip:22 fi-bxt-t5700 total:79 pass:66 dwarn:0 dfail:0 fail:0 skip:12 fi-byt-j1900 total:246 pass:219 dwarn:0 dfail:0 fail:0 skip:27 fi-byt-n2820 total:246 pass:215 dwarn:0 dfail:0 fail:0 skip:31 fi-hsw-4770 total:246 pass:227 dwarn:0 dfail:0 fail:0 skip:19 fi-hsw-4770r total:246 pass:227 dwarn:0 dfail:0 fail:0 skip:19 fi-ivb-3520m total:246 pass:225 dwarn:0 dfail:0 fail:0 skip:21 fi-ivb-3770 total:246 pass:224 dwarn:0 dfail:0 fail:1 skip:21 fi-kbl-7500u total:246 pass:225 dwarn:0 dfail:0 fail:0 skip:21 fi-skl-6260u total:246 pass:233 dwarn:0 dfail:0 fail:0 skip:13 fi-skl-6700hq total:246 pass:226 dwarn:0 dfail:0 fail:0 skip:20 fi-skl-6700k total:246 pass:222 dwarn:3 dfail:0 fail:0 skip:21 fi-skl-6770hq total:246 pass:233 dwarn:0 dfail:0 fail:0 skip:13 fi-snb-2520m total:246 pass:215 dwarn:0 dfail:0 fail:0 skip:31 fi-snb-2600 total:246 pass:214 dwarn:0 dfail:0 fail:0 skip:32 3599f990bcb8b72f9ae062a97140439ab9df22b7 drm-tip: 2017y-01m-23d-09h-16m-39s UTC integration manifest f61931a drm/color: un-inline drm_color_lut_extract() == Logs == For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_3579/ _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] drm/color: un-inline drm_color_lut_extract() 2017-01-23 9:42 [PATCH] drm/color: un-inline drm_color_lut_extract() Jani Nikula 2017-01-23 10:15 ` [Intel-gfx] " Daniel Vetter 2017-01-23 11:54 ` ✗ Fi.CI.BAT: failure for " Patchwork @ 2017-01-27 9:49 ` Lionel Landwerlin 2017-01-27 11:02 ` Jani Nikula 2017-01-30 12:55 ` ✓ Fi.CI.BAT: success for drm/color: un-inline drm_color_lut_extract() (rev2) Patchwork 3 siblings, 1 reply; 10+ messages in thread From: Lionel Landwerlin @ 2017-01-27 9:49 UTC (permalink / raw) To: Jani Nikula, dri-devel; +Cc: intel-gfx Hi Jani, Looks good to me : Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> On 23/01/17 09:42, Jani Nikula wrote: > The function is not that big, but it's also not used for anything > performance critical. Make it a normal function. > > As a side effect, this apparently makes sparse smarter about what it's > doing, and gets rid of the warning: > > ./include/drm/drm_color_mgmt.h:53:28: warning: shift too big (4294967295) for type unsigned long > ./include/drm/drm_color_mgmt.h:53:28: warning: cast truncates bits from constant value (8000000000000000 becomes 0) > > Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> > Signed-off-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/gpu/drm/drm_color_mgmt.c | 24 ++++++++++++++++++++++++ > include/drm/drm_color_mgmt.h | 27 ++------------------------- > 2 files changed, 26 insertions(+), 25 deletions(-) > > diff --git a/drivers/gpu/drm/drm_color_mgmt.c b/drivers/gpu/drm/drm_color_mgmt.c > index 789b4c65cd69..5618f60c7690 100644 > --- a/drivers/gpu/drm/drm_color_mgmt.c > +++ b/drivers/gpu/drm/drm_color_mgmt.c > @@ -88,6 +88,30 @@ > */ > > /** > + * drm_color_lut_extract - clamp&round LUT entries > + * @user_input: input value > + * @bit_precision: number of bits the hw LUT supports > + * > + * Extract a degamma/gamma LUT value provided by user (in the form of > + * &drm_color_lut entries) and round it to the precision supported by the > + * hardware. > + */ > +uint32_t drm_color_lut_extract(uint32_t user_input, uint32_t bit_precision) > +{ > + uint32_t val = user_input; > + uint32_t max = 0xffff >> (16 - bit_precision); > + > + /* Round only if we're not using full precision. */ > + if (bit_precision < 16) { > + val += 1UL << (16 - bit_precision - 1); > + val >>= 16 - bit_precision; > + } > + > + return clamp_val(val, 0, max); > +} > +EXPORT_SYMBOL(drm_color_lut_extract); > + > +/** > * drm_crtc_enable_color_mgmt - enable color management properties > * @crtc: DRM CRTC > * @degamma_lut_size: the size of the degamma lut (before CSC) > diff --git a/include/drm/drm_color_mgmt.h b/include/drm/drm_color_mgmt.h > index c767238ac9d5..bce4a532836d 100644 > --- a/include/drm/drm_color_mgmt.h > +++ b/include/drm/drm_color_mgmt.h > @@ -25,6 +25,8 @@ > > #include <linux/ctype.h> > > +uint32_t drm_color_lut_extract(uint32_t user_input, uint32_t bit_precision); > + > void drm_crtc_enable_color_mgmt(struct drm_crtc *crtc, > uint degamma_lut_size, > bool has_ctm, > @@ -33,29 +35,4 @@ void drm_crtc_enable_color_mgmt(struct drm_crtc *crtc, > int drm_mode_crtc_set_gamma_size(struct drm_crtc *crtc, > int gamma_size); > > -/** > - * drm_color_lut_extract - clamp&round LUT entries > - * @user_input: input value > - * @bit_precision: number of bits the hw LUT supports > - * > - * Extract a degamma/gamma LUT value provided by user (in the form of > - * &drm_color_lut entries) and round it to the precision supported by the > - * hardware. > - */ > -static inline uint32_t drm_color_lut_extract(uint32_t user_input, > - uint32_t bit_precision) > -{ > - uint32_t val = user_input; > - uint32_t max = 0xffff >> (16 - bit_precision); > - > - /* Round only if we're not using full precision. */ > - if (bit_precision < 16) { > - val += 1UL << (16 - bit_precision - 1); > - val >>= 16 - bit_precision; > - } > - > - return clamp_val(val, 0, max); > -} > - > - > #endif _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] drm/color: un-inline drm_color_lut_extract() 2017-01-27 9:49 ` [PATCH] " Lionel Landwerlin @ 2017-01-27 11:02 ` Jani Nikula 2017-01-27 14:36 ` Jani Nikula 0 siblings, 1 reply; 10+ messages in thread From: Jani Nikula @ 2017-01-27 11:02 UTC (permalink / raw) To: Lionel Landwerlin, dri-devel; +Cc: Daniel Vetter, intel-gfx On Fri, 27 Jan 2017, Lionel Landwerlin <lionel.g.landwerlin@intel.com> wrote: > Hi Jani, > > Looks good to me : > > Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Thanks for the reviews, pushed... to drm-intel-next-queued instead of drm-misc-next. /o\ Dave, Daniel, please advise, shall I revert or shall we let this flow in via drm-intel? Sorry for the mess. BR, Jani. > > On 23/01/17 09:42, Jani Nikula wrote: >> The function is not that big, but it's also not used for anything >> performance critical. Make it a normal function. >> >> As a side effect, this apparently makes sparse smarter about what it's >> doing, and gets rid of the warning: >> >> ./include/drm/drm_color_mgmt.h:53:28: warning: shift too big (4294967295) for type unsigned long >> ./include/drm/drm_color_mgmt.h:53:28: warning: cast truncates bits from constant value (8000000000000000 becomes 0) >> >> Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> >> Signed-off-by: Jani Nikula <jani.nikula@intel.com> >> --- >> drivers/gpu/drm/drm_color_mgmt.c | 24 ++++++++++++++++++++++++ >> include/drm/drm_color_mgmt.h | 27 ++------------------------- >> 2 files changed, 26 insertions(+), 25 deletions(-) >> >> diff --git a/drivers/gpu/drm/drm_color_mgmt.c b/drivers/gpu/drm/drm_color_mgmt.c >> index 789b4c65cd69..5618f60c7690 100644 >> --- a/drivers/gpu/drm/drm_color_mgmt.c >> +++ b/drivers/gpu/drm/drm_color_mgmt.c >> @@ -88,6 +88,30 @@ >> */ >> >> /** >> + * drm_color_lut_extract - clamp&round LUT entries >> + * @user_input: input value >> + * @bit_precision: number of bits the hw LUT supports >> + * >> + * Extract a degamma/gamma LUT value provided by user (in the form of >> + * &drm_color_lut entries) and round it to the precision supported by the >> + * hardware. >> + */ >> +uint32_t drm_color_lut_extract(uint32_t user_input, uint32_t bit_precision) >> +{ >> + uint32_t val = user_input; >> + uint32_t max = 0xffff >> (16 - bit_precision); >> + >> + /* Round only if we're not using full precision. */ >> + if (bit_precision < 16) { >> + val += 1UL << (16 - bit_precision - 1); >> + val >>= 16 - bit_precision; >> + } >> + >> + return clamp_val(val, 0, max); >> +} >> +EXPORT_SYMBOL(drm_color_lut_extract); >> + >> +/** >> * drm_crtc_enable_color_mgmt - enable color management properties >> * @crtc: DRM CRTC >> * @degamma_lut_size: the size of the degamma lut (before CSC) >> diff --git a/include/drm/drm_color_mgmt.h b/include/drm/drm_color_mgmt.h >> index c767238ac9d5..bce4a532836d 100644 >> --- a/include/drm/drm_color_mgmt.h >> +++ b/include/drm/drm_color_mgmt.h >> @@ -25,6 +25,8 @@ >> >> #include <linux/ctype.h> >> >> +uint32_t drm_color_lut_extract(uint32_t user_input, uint32_t bit_precision); >> + >> void drm_crtc_enable_color_mgmt(struct drm_crtc *crtc, >> uint degamma_lut_size, >> bool has_ctm, >> @@ -33,29 +35,4 @@ void drm_crtc_enable_color_mgmt(struct drm_crtc *crtc, >> int drm_mode_crtc_set_gamma_size(struct drm_crtc *crtc, >> int gamma_size); >> >> -/** >> - * drm_color_lut_extract - clamp&round LUT entries >> - * @user_input: input value >> - * @bit_precision: number of bits the hw LUT supports >> - * >> - * Extract a degamma/gamma LUT value provided by user (in the form of >> - * &drm_color_lut entries) and round it to the precision supported by the >> - * hardware. >> - */ >> -static inline uint32_t drm_color_lut_extract(uint32_t user_input, >> - uint32_t bit_precision) >> -{ >> - uint32_t val = user_input; >> - uint32_t max = 0xffff >> (16 - bit_precision); >> - >> - /* Round only if we're not using full precision. */ >> - if (bit_precision < 16) { >> - val += 1UL << (16 - bit_precision - 1); >> - val >>= 16 - bit_precision; >> - } >> - >> - return clamp_val(val, 0, max); >> -} >> - >> - >> #endif > > -- Jani Nikula, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] drm/color: un-inline drm_color_lut_extract() 2017-01-27 11:02 ` Jani Nikula @ 2017-01-27 14:36 ` Jani Nikula 2017-01-27 15:34 ` [PATCH v2] " Jani Nikula 0 siblings, 1 reply; 10+ messages in thread From: Jani Nikula @ 2017-01-27 14:36 UTC (permalink / raw) To: Lionel Landwerlin, dri-devel; +Cc: Daniel Vetter, intel-gfx On Fri, 27 Jan 2017, Jani Nikula <jani.nikula@intel.com> wrote: > On Fri, 27 Jan 2017, Lionel Landwerlin <lionel.g.landwerlin@intel.com> wrote: >> Hi Jani, >> >> Looks good to me : >> >> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> > > Thanks for the reviews, pushed... to drm-intel-next-queued instead of > drm-misc-next. /o\ > > Dave, Daniel, please advise, shall I revert or shall we let this flow in > via drm-intel? > > Sorry for the mess. Reverted, there was a conflict in the docs updates as well so this is easier. I'll post a rebase version of the patch. BR, Jani. > > BR, > Jani. > > > >> >> On 23/01/17 09:42, Jani Nikula wrote: >>> The function is not that big, but it's also not used for anything >>> performance critical. Make it a normal function. >>> >>> As a side effect, this apparently makes sparse smarter about what it's >>> doing, and gets rid of the warning: >>> >>> ./include/drm/drm_color_mgmt.h:53:28: warning: shift too big (4294967295) for type unsigned long >>> ./include/drm/drm_color_mgmt.h:53:28: warning: cast truncates bits from constant value (8000000000000000 becomes 0) >>> >>> Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> >>> Signed-off-by: Jani Nikula <jani.nikula@intel.com> >>> --- >>> drivers/gpu/drm/drm_color_mgmt.c | 24 ++++++++++++++++++++++++ >>> include/drm/drm_color_mgmt.h | 27 ++------------------------- >>> 2 files changed, 26 insertions(+), 25 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/drm_color_mgmt.c b/drivers/gpu/drm/drm_color_mgmt.c >>> index 789b4c65cd69..5618f60c7690 100644 >>> --- a/drivers/gpu/drm/drm_color_mgmt.c >>> +++ b/drivers/gpu/drm/drm_color_mgmt.c >>> @@ -88,6 +88,30 @@ >>> */ >>> >>> /** >>> + * drm_color_lut_extract - clamp&round LUT entries >>> + * @user_input: input value >>> + * @bit_precision: number of bits the hw LUT supports >>> + * >>> + * Extract a degamma/gamma LUT value provided by user (in the form of >>> + * &drm_color_lut entries) and round it to the precision supported by the >>> + * hardware. >>> + */ >>> +uint32_t drm_color_lut_extract(uint32_t user_input, uint32_t bit_precision) >>> +{ >>> + uint32_t val = user_input; >>> + uint32_t max = 0xffff >> (16 - bit_precision); >>> + >>> + /* Round only if we're not using full precision. */ >>> + if (bit_precision < 16) { >>> + val += 1UL << (16 - bit_precision - 1); >>> + val >>= 16 - bit_precision; >>> + } >>> + >>> + return clamp_val(val, 0, max); >>> +} >>> +EXPORT_SYMBOL(drm_color_lut_extract); >>> + >>> +/** >>> * drm_crtc_enable_color_mgmt - enable color management properties >>> * @crtc: DRM CRTC >>> * @degamma_lut_size: the size of the degamma lut (before CSC) >>> diff --git a/include/drm/drm_color_mgmt.h b/include/drm/drm_color_mgmt.h >>> index c767238ac9d5..bce4a532836d 100644 >>> --- a/include/drm/drm_color_mgmt.h >>> +++ b/include/drm/drm_color_mgmt.h >>> @@ -25,6 +25,8 @@ >>> >>> #include <linux/ctype.h> >>> >>> +uint32_t drm_color_lut_extract(uint32_t user_input, uint32_t bit_precision); >>> + >>> void drm_crtc_enable_color_mgmt(struct drm_crtc *crtc, >>> uint degamma_lut_size, >>> bool has_ctm, >>> @@ -33,29 +35,4 @@ void drm_crtc_enable_color_mgmt(struct drm_crtc *crtc, >>> int drm_mode_crtc_set_gamma_size(struct drm_crtc *crtc, >>> int gamma_size); >>> >>> -/** >>> - * drm_color_lut_extract - clamp&round LUT entries >>> - * @user_input: input value >>> - * @bit_precision: number of bits the hw LUT supports >>> - * >>> - * Extract a degamma/gamma LUT value provided by user (in the form of >>> - * &drm_color_lut entries) and round it to the precision supported by the >>> - * hardware. >>> - */ >>> -static inline uint32_t drm_color_lut_extract(uint32_t user_input, >>> - uint32_t bit_precision) >>> -{ >>> - uint32_t val = user_input; >>> - uint32_t max = 0xffff >> (16 - bit_precision); >>> - >>> - /* Round only if we're not using full precision. */ >>> - if (bit_precision < 16) { >>> - val += 1UL << (16 - bit_precision - 1); >>> - val >>= 16 - bit_precision; >>> - } >>> - >>> - return clamp_val(val, 0, max); >>> -} >>> - >>> - >>> #endif >> >> -- Jani Nikula, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2] drm/color: un-inline drm_color_lut_extract() 2017-01-27 14:36 ` Jani Nikula @ 2017-01-27 15:34 ` Jani Nikula 2017-01-31 13:39 ` Jani Nikula 0 siblings, 1 reply; 10+ messages in thread From: Jani Nikula @ 2017-01-27 15:34 UTC (permalink / raw) To: Jani Nikula, Lionel Landwerlin, dri-devel; +Cc: Daniel Vetter, intel-gfx The function is not that big, but it's also not used for anything performance critical. Make it a normal function. As a side effect, this apparently makes sparse smarter about what it's doing, and gets rid of the warning: ./include/drm/drm_color_mgmt.h:53:28: warning: shift too big (4294967295) for type unsigned long ./include/drm/drm_color_mgmt.h:53:28: warning: cast truncates bits from constant value (8000000000000000 becomes 0) v2: rebased Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- drivers/gpu/drm/drm_color_mgmt.c | 24 ++++++++++++++++++++++++ include/drm/drm_color_mgmt.h | 27 ++------------------------- 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/drivers/gpu/drm/drm_color_mgmt.c b/drivers/gpu/drm/drm_color_mgmt.c index 789b4c65cd69..cc23b9a505c0 100644 --- a/drivers/gpu/drm/drm_color_mgmt.c +++ b/drivers/gpu/drm/drm_color_mgmt.c @@ -88,6 +88,30 @@ */ /** + * drm_color_lut_extract - clamp and round LUT entries + * @user_input: input value + * @bit_precision: number of bits the hw LUT supports + * + * Extract a degamma/gamma LUT value provided by user (in the form of + * &drm_color_lut entries) and round it to the precision supported by the + * hardware. + */ +uint32_t drm_color_lut_extract(uint32_t user_input, uint32_t bit_precision) +{ + uint32_t val = user_input; + uint32_t max = 0xffff >> (16 - bit_precision); + + /* Round only if we're not using full precision. */ + if (bit_precision < 16) { + val += 1UL << (16 - bit_precision - 1); + val >>= 16 - bit_precision; + } + + return clamp_val(val, 0, max); +} +EXPORT_SYMBOL(drm_color_lut_extract); + +/** * drm_crtc_enable_color_mgmt - enable color management properties * @crtc: DRM CRTC * @degamma_lut_size: the size of the degamma lut (before CSC) diff --git a/include/drm/drm_color_mgmt.h b/include/drm/drm_color_mgmt.h index d9c2f680f5ae..bce4a532836d 100644 --- a/include/drm/drm_color_mgmt.h +++ b/include/drm/drm_color_mgmt.h @@ -25,6 +25,8 @@ #include <linux/ctype.h> +uint32_t drm_color_lut_extract(uint32_t user_input, uint32_t bit_precision); + void drm_crtc_enable_color_mgmt(struct drm_crtc *crtc, uint degamma_lut_size, bool has_ctm, @@ -33,29 +35,4 @@ void drm_crtc_enable_color_mgmt(struct drm_crtc *crtc, int drm_mode_crtc_set_gamma_size(struct drm_crtc *crtc, int gamma_size); -/** - * drm_color_lut_extract - clamp and round LUT entries - * @user_input: input value - * @bit_precision: number of bits the hw LUT supports - * - * Extract a degamma/gamma LUT value provided by user (in the form of - * &drm_color_lut entries) and round it to the precision supported by the - * hardware. - */ -static inline uint32_t drm_color_lut_extract(uint32_t user_input, - uint32_t bit_precision) -{ - uint32_t val = user_input; - uint32_t max = 0xffff >> (16 - bit_precision); - - /* Round only if we're not using full precision. */ - if (bit_precision < 16) { - val += 1UL << (16 - bit_precision - 1); - val >>= 16 - bit_precision; - } - - return clamp_val(val, 0, max); -} - - #endif -- 2.1.4 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2] drm/color: un-inline drm_color_lut_extract() 2017-01-27 15:34 ` [PATCH v2] " Jani Nikula @ 2017-01-31 13:39 ` Jani Nikula 0 siblings, 0 replies; 10+ messages in thread From: Jani Nikula @ 2017-01-31 13:39 UTC (permalink / raw) To: Lionel Landwerlin, dri-devel; +Cc: Daniel Vetter, intel-gfx On Fri, 27 Jan 2017, Jani Nikula <jani.nikula@intel.com> wrote: > The function is not that big, but it's also not used for anything > performance critical. Make it a normal function. > > As a side effect, this apparently makes sparse smarter about what it's > doing, and gets rid of the warning: > > ./include/drm/drm_color_mgmt.h:53:28: warning: shift too big (4294967295) for type unsigned long > ./include/drm/drm_color_mgmt.h:53:28: warning: cast truncates bits from constant value (8000000000000000 becomes 0) > > v2: rebased > > Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> > Signed-off-by: Jani Nikula <jani.nikula@intel.com> This time, pushed to drm-misc-next. Thanks for the review. BR, Jani. > --- > drivers/gpu/drm/drm_color_mgmt.c | 24 ++++++++++++++++++++++++ > include/drm/drm_color_mgmt.h | 27 ++------------------------- > 2 files changed, 26 insertions(+), 25 deletions(-) > > diff --git a/drivers/gpu/drm/drm_color_mgmt.c b/drivers/gpu/drm/drm_color_mgmt.c > index 789b4c65cd69..cc23b9a505c0 100644 > --- a/drivers/gpu/drm/drm_color_mgmt.c > +++ b/drivers/gpu/drm/drm_color_mgmt.c > @@ -88,6 +88,30 @@ > */ > > /** > + * drm_color_lut_extract - clamp and round LUT entries > + * @user_input: input value > + * @bit_precision: number of bits the hw LUT supports > + * > + * Extract a degamma/gamma LUT value provided by user (in the form of > + * &drm_color_lut entries) and round it to the precision supported by the > + * hardware. > + */ > +uint32_t drm_color_lut_extract(uint32_t user_input, uint32_t bit_precision) > +{ > + uint32_t val = user_input; > + uint32_t max = 0xffff >> (16 - bit_precision); > + > + /* Round only if we're not using full precision. */ > + if (bit_precision < 16) { > + val += 1UL << (16 - bit_precision - 1); > + val >>= 16 - bit_precision; > + } > + > + return clamp_val(val, 0, max); > +} > +EXPORT_SYMBOL(drm_color_lut_extract); > + > +/** > * drm_crtc_enable_color_mgmt - enable color management properties > * @crtc: DRM CRTC > * @degamma_lut_size: the size of the degamma lut (before CSC) > diff --git a/include/drm/drm_color_mgmt.h b/include/drm/drm_color_mgmt.h > index d9c2f680f5ae..bce4a532836d 100644 > --- a/include/drm/drm_color_mgmt.h > +++ b/include/drm/drm_color_mgmt.h > @@ -25,6 +25,8 @@ > > #include <linux/ctype.h> > > +uint32_t drm_color_lut_extract(uint32_t user_input, uint32_t bit_precision); > + > void drm_crtc_enable_color_mgmt(struct drm_crtc *crtc, > uint degamma_lut_size, > bool has_ctm, > @@ -33,29 +35,4 @@ void drm_crtc_enable_color_mgmt(struct drm_crtc *crtc, > int drm_mode_crtc_set_gamma_size(struct drm_crtc *crtc, > int gamma_size); > > -/** > - * drm_color_lut_extract - clamp and round LUT entries > - * @user_input: input value > - * @bit_precision: number of bits the hw LUT supports > - * > - * Extract a degamma/gamma LUT value provided by user (in the form of > - * &drm_color_lut entries) and round it to the precision supported by the > - * hardware. > - */ > -static inline uint32_t drm_color_lut_extract(uint32_t user_input, > - uint32_t bit_precision) > -{ > - uint32_t val = user_input; > - uint32_t max = 0xffff >> (16 - bit_precision); > - > - /* Round only if we're not using full precision. */ > - if (bit_precision < 16) { > - val += 1UL << (16 - bit_precision - 1); > - val >>= 16 - bit_precision; > - } > - > - return clamp_val(val, 0, max); > -} > - > - > #endif -- Jani Nikula, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 10+ messages in thread
* ✓ Fi.CI.BAT: success for drm/color: un-inline drm_color_lut_extract() (rev2) 2017-01-23 9:42 [PATCH] drm/color: un-inline drm_color_lut_extract() Jani Nikula ` (2 preceding siblings ...) 2017-01-27 9:49 ` [PATCH] " Lionel Landwerlin @ 2017-01-30 12:55 ` Patchwork 3 siblings, 0 replies; 10+ messages in thread From: Patchwork @ 2017-01-30 12:55 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx == Series Details == Series: drm/color: un-inline drm_color_lut_extract() (rev2) URL : https://patchwork.freedesktop.org/series/18391/ State : success == Summary == Series 18391v2 drm/color: un-inline drm_color_lut_extract() https://patchwork.freedesktop.org/api/1.0/series/18391/revisions/2/mbox/ Test kms_pipe_crc_basic: Subgroup nonblocking-crc-pipe-b-frame-sequence: dmesg-warn -> PASS (fi-snb-2520m) fi-bdw-5557u total:246 pass:232 dwarn:0 dfail:0 fail:0 skip:14 fi-bsw-n3050 total:246 pass:207 dwarn:0 dfail:0 fail:0 skip:39 fi-bxt-j4205 total:246 pass:224 dwarn:0 dfail:0 fail:0 skip:22 fi-bxt-t5700 total:78 pass:65 dwarn:0 dfail:0 fail:0 skip:12 fi-byt-j1900 total:246 pass:219 dwarn:0 dfail:0 fail:0 skip:27 fi-byt-n2820 total:246 pass:215 dwarn:0 dfail:0 fail:0 skip:31 fi-hsw-4770 total:246 pass:227 dwarn:0 dfail:0 fail:0 skip:19 fi-hsw-4770r total:246 pass:227 dwarn:0 dfail:0 fail:0 skip:19 fi-ivb-3520m total:246 pass:225 dwarn:0 dfail:0 fail:0 skip:21 fi-ivb-3770 total:246 pass:225 dwarn:0 dfail:0 fail:0 skip:21 fi-kbl-7500u total:246 pass:223 dwarn:0 dfail:0 fail:2 skip:21 fi-skl-6260u total:246 pass:233 dwarn:0 dfail:0 fail:0 skip:13 fi-skl-6700hq total:246 pass:226 dwarn:0 dfail:0 fail:0 skip:20 fi-skl-6700k total:246 pass:221 dwarn:4 dfail:0 fail:0 skip:21 fi-snb-2520m total:246 pass:215 dwarn:0 dfail:0 fail:0 skip:31 fi-snb-2600 total:246 pass:214 dwarn:0 dfail:0 fail:0 skip:32 dc47d8d6ed4ea669aeccad104fde843fe039b9a5 drm-tip: 2017y-01m-30d-09h-12m-47s UTC integration manifest 79458e2 drm/color: un-inline drm_color_lut_extract() == Logs == For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_3634/ _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2017-01-31 13:39 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-01-23 9:42 [PATCH] drm/color: un-inline drm_color_lut_extract() Jani Nikula 2017-01-23 10:15 ` [Intel-gfx] " Daniel Vetter 2017-01-23 11:18 ` Jani Nikula 2017-01-23 11:54 ` ✗ Fi.CI.BAT: failure for " Patchwork 2017-01-27 9:49 ` [PATCH] " Lionel Landwerlin 2017-01-27 11:02 ` Jani Nikula 2017-01-27 14:36 ` Jani Nikula 2017-01-27 15:34 ` [PATCH v2] " Jani Nikula 2017-01-31 13:39 ` Jani Nikula 2017-01-30 12:55 ` ✓ Fi.CI.BAT: success for drm/color: un-inline drm_color_lut_extract() (rev2) Patchwork
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.