From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Lankhorst, Maarten" Subject: Re: [RFC v1 3/7] drm/i915: Add Support for Multi Segment Gamma Mode Date: Tue, 19 Mar 2019 08:46:27 +0000 Message-ID: <1552985186.2455.2.camel@intel.com> References: <1552984218-3357-1-git-send-email-uma.shankar@intel.com> <1552984218-3357-4-git-send-email-uma.shankar@intel.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1283624012==" Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 866A3894EA for ; Tue, 19 Mar 2019 08:46:31 +0000 (UTC) In-Reply-To: <1552984218-3357-4-git-send-email-uma.shankar@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Shankar, Uma" , "intel-gfx@lists.freedesktop.org" Cc: "Syrjala, Ville" List-Id: intel-gfx@lists.freedesktop.org --===============1283624012== Content-Language: en-US Content-Type: multipart/signed; micalg=sha-1; protocol="application/x-pkcs7-signature"; boundary="=-Ej6TgbTidWR1Axzrtelj" --=-Ej6TgbTidWR1Axzrtelj Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable tis 2019-03-19 klockan 14:00 +0530 skrev Uma Shankar: > Multi Segment Gamma Mode is added in Gen11+ platforms. > Added a property interface to enable that. >=20 > Signed-off-by: Uma Shankar > --- > drivers/gpu/drm/i915/i915_drv.h | 1 + > drivers/gpu/drm/i915/intel_color.c | 23 +++++++++++++++++++++++ > include/uapi/drm/i915_drm.h | 14 ++++++++++++++ > 3 files changed, 38 insertions(+) >=20 > diff --git a/drivers/gpu/drm/i915/i915_drv.h > b/drivers/gpu/drm/i915/i915_drv.h > index 02231ae..f20d418 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -1736,6 +1736,7 @@ struct drm_i915_private { > struct drm_property *force_audio_property; > =20 > struct drm_property *gamma_mode_property; > + struct drm_property *multi_segment_gamma_mode_property; Seems to me both properties should be part of drm core? > /* hda/i915 audio component */ > struct i915_audio_component *audio_component; > diff --git a/drivers/gpu/drm/i915/intel_color.c > b/drivers/gpu/drm/i915/intel_color.c > index 9d43d19..399d63d 100644 > --- a/drivers/gpu/drm/i915/intel_color.c > +++ b/drivers/gpu/drm/i915/intel_color.c > @@ -149,6 +149,26 @@ static bool crtc_state_is_legacy_gamma(const > struct intel_crtc_state *crtc_state > drm_object_attach_property(&crtc->base.base, prop, 0); > } > =20 > +void > +intel_attach_multi_segment_gamma_mode_property(struct intel_crtc > *crtc) > +{ > + struct drm_device *dev =3D crtc->base.dev; > + struct drm_i915_private *dev_priv =3D to_i915(dev); > + struct drm_property *prop; > + > + prop =3D dev_priv->multi_segment_gamma_mode_property; > + if (!prop) { > + prop =3D drm_property_create(dev, DRM_MODE_PROP_BLOB, > + "Multi-segment Gamma", > 0); > + if (!prop) > + return; > + > + dev_priv->multi_segment_gamma_mode_property =3D prop; > + } > + > + drm_object_attach_property(&crtc->base.base, prop, 0); > +} > + > /* > * When using limited range, multiply the matrix given by userspace > by > * the matrix that we would use for the limited range. > @@ -953,4 +973,7 @@ void intel_color_init(struct intel_crtc *crtc) > INTEL_INFO(dev_priv)- > >color.gamma_lut_size); > =20 > intel_attach_gamma_mode_property(crtc); > + > + if (INTEL_GEN(dev_priv) >=3D 11) > + intel_attach_multi_segment_gamma_mode_property(crtc) > ; > } > diff --git a/include/uapi/drm/i915_drm.h > b/include/uapi/drm/i915_drm.h > index aa2d4c7..8f1974e 100644 > --- a/include/uapi/drm/i915_drm.h > +++ b/include/uapi/drm/i915_drm.h > @@ -1842,6 +1842,20 @@ struct drm_i915_query_topology_info { > __u8 data[]; > }; > =20 > +/* > + * Structure for muti segmented gamma lut > + */ > +struct multi_segment_gamma_lut { > + /* Number of Lut Segments */ > + __u8 segment_cnt; > + /* Precison of LUT entries in bits */ > + __u8 precision_bits; > + /* Pointer having number of LUT elements in each segment */ > + __u32 *segment_lut_cnt_ptr; > + /* Pointer to store exact lut values for each segment */ > + __u32 *segment_lut_ptr; > +}; >=20 And perhaps a variation of this as description for all gamma mode types. --=-Ej6TgbTidWR1Axzrtelj Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Disposition: attachment; filename="smime.p7s" Content-Transfer-Encoding: base64 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 xgO/QM5ml/P+chZnuIFCJXUE/6FcIa/59il6k7ihcAEu3CeZUAMAl88TyxByoJmmV9hSf8b9jzI0 rU0CAwEAAaOCAjkwggI1MB0GA1UdDgQWBBSl4YD7AA88PgpdAuuEDDG4Ps2iITAfBgNVHSMEGDAW gBQeaSq03Cj+RxhOIQs/vKwRL/CY9TBlBgNVHR8EXjBcMFqgWKBWhlRodHRwOi8vd3d3LmludGVs LmNvbS9yZXBvc2l0b3J5L0NSTC9JbnRlbCUyMEV4dGVybmFsJTIwQmFzaWMlMjBJc3N1aW5nJTIw Q0ElMjA0QS5jcmwwgZ8GCCsGAQUFBwEBBIGSMIGPMGkGCCsGAQUFBzAChl1odHRwOi8vd3d3Lmlu dGVsLmNvbS9yZXBvc2l0b3J5L2NlcnRpZmljYXRlcy9JbnRlbCUyMEV4dGVybmFsJTIwQmFzaWMl MjBJc3N1aW5nJTIwQ0ElMjA0QS5jcnQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLmludGVsLmNv bS8wCwYDVR0PBAQDAgeAMDwGCSsGAQQBgjcVBwQvMC0GJSsGAQQBgjcVCIbDjHWEmeVRg/2BKIWO n1OCkcAJZ4HevTmV8EMCAWQCAQkwHwYDVR0lBBgwFgYIKwYBBQUHAwQGCisGAQQBgjcKAwwwKQYJ KwYBBAGCNxUKBBwwGjAKBggrBgEFBQcDBDAMBgorBgEEAYI3CgMMMFMGA1UdEQRMMEqgKwYKKwYB BAGCNxQCA6AdDBttYWFydGVuLmxhbmtob3JzdEBpbnRlbC5jb22BG21hYXJ0ZW4ubGFua2hvcnN0 QGludGVsLmNvbTANBgkqhkiG9w0BAQUFAAOCAQEATaztR6WZTxrtczyiSazcVhmuyca9zcLEqp7c a89HtMkaYySXsRrLxvTrycSptz0bjSF0epgcmDlqmIcE5ZIAxDudmLak1sSAzkWyzD9LOQuxJtAJ WaQ6VXVmOHvftigMHQY3xxWvBut9b3hqkHQzaN4aNxiQTeGNZdCccGxrufT5SO2TH417XUBeG6xq Ozw1exUjnPNZj9/rzxUqU8g7G2s8Yg2tiFpI6eKmP3FvzNqQLvWoXNVJ3AHUtJYaw9WeUYrnySJu swLq7RXcYsHWQGHLmq0DJuZUn2uLY7EqXz/E5qhsb6N0aXYFAaqaQdd5lA2YNWF8G0ra0f5uOhe2 EzGCAhcwggITAgEBMIGQMHkxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEUMBIGA1UEBxMLU2Fu dGEgQ2xhcmExGjAYBgNVBAoTEUludGVsIENvcnBvcmF0aW9uMSswKQYDVQQDEyJJbnRlbCBFeHRl cm5hbCBCYXNpYyBJc3N1aW5nIENBIDRBAhMzAADLlGJ3+jejVgpaAAAAAMuUMAkGBSsOAwIaBQCg XTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xOTAzMTkwODQ2MjZa MCMGCSqGSIb3DQEJBDEWBBRiAXylzoVlSYVO568PL3VsRXRyzTANBgkqhkiG9w0BAQEFAASCAQCT nPp3Bt98OIKmV63G5YvT9z31mxttKHb5NM+ca0kn+n3cOAIfgAusfUDZKctVH2LUO08hUo7uXsFO YzyyvmVJwXxopJpO50blEyMfUBBufhfemzcrerzGIxVmIhguPHrst2m/StqzNeeSN2OSc5PsgSYm Y5NFCM4Ix0WQCvzC8ncM1VuaenMutmZzeG0ugeAoMFAxMERiCarwWqG4HEAQYcBHsbtPsRNrtoeZ 3qI3TX2d2k2afVYkTbAEex1AtDduFaGmfWbRMoEL44pH8Id+lI7WxqcWDEp0t38nHxMLc3ead+T6 4a305tcfxOUvogrXNBVf8XCbJ2gsn4+nHzymAAAAAAAA --=-Ej6TgbTidWR1Axzrtelj-- --===============1283624012== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 --===============1283624012==--