From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Lankhorst, Maarten" Subject: Re: [v3 6/7] drm: Add Client Cap for advance gamma mode Date: Mon, 15 Apr 2019 10:57:52 +0000 Message-ID: <1555325871.3259.1.camel@intel.com> References: <1555064463-18479-1-git-send-email-uma.shankar@intel.com> <1555064463-18479-7-git-send-email-uma.shankar@intel.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1825572148==" Return-path: In-Reply-To: <1555064463-18479-7-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" , "dri-devel@lists.freedesktop.org" Cc: "Syrjala, Ville" , "sam@ravnborg.org" , "seanpaul@chromium.org" , "dcastagna@chromium.org" List-Id: dri-devel@lists.freedesktop.org --===============1825572148== Content-Language: en-US Content-Type: multipart/signed; micalg=sha-1; protocol="application/x-pkcs7-signature"; boundary="=-1ASjnM2hUpAliJvfbKFx" --=-1ASjnM2hUpAliJvfbKFx Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable fre 2019-04-12 klockan 15:51 +0530 skrev Uma Shankar: > Introduced a client cap for advance cap mode > capability. Userspace should set this to get > to be able to use the new gamma_mode property. >=20 > If this is not set, driver will work in legacy > mode. >=20 > Suggested-by: Ville Syrj=C3=A4l=C3=A4 > Signed-off-by: Uma Shankar Nack, this doesn't seem like a sensible idea. We already guard it behind the gamma mode property. Userspace shouldn't set the gamma mode to a value it doesn't understand. ~Maarten > drivers/gpu/drm/drm_atomic_uapi.c | 3 +++ > drivers/gpu/drm/drm_ioctl.c | 5 +++++ > include/drm/drm_atomic.h | 1 + > include/drm/drm_crtc.h | 7 +++++++ > include/drm/drm_file.h | 8 ++++++++ > include/uapi/drm/drm.h | 2 ++ > 6 files changed, 26 insertions(+) >=20 > diff --git a/drivers/gpu/drm/drm_atomic_uapi.c > b/drivers/gpu/drm/drm_atomic_uapi.c > index d85e0c9..590c87a 100644 > --- a/drivers/gpu/drm/drm_atomic_uapi.c > +++ b/drivers/gpu/drm/drm_atomic_uapi.c > @@ -974,6 +974,8 @@ int drm_atomic_set_property(struct > drm_atomic_state *state, > break; > } > =20 > + crtc_state->advance_gamma_mode_active =3D > + state- > >advance_gamma_mode_active; > ret =3D drm_atomic_crtc_set_property(crtc, > crtc_state, prop, prop_value); > break; > @@ -1297,6 +1299,7 @@ int drm_mode_atomic_ioctl(struct drm_device > *dev, > drm_modeset_acquire_init(&ctx, > DRM_MODESET_ACQUIRE_INTERRUPTIBLE); > state->acquire_ctx =3D &ctx; > state->allow_modeset =3D !!(arg->flags & > DRM_MODE_ATOMIC_ALLOW_MODESET); > + state->advance_gamma_mode_active =3D file_priv- > >advance_gamma_mode_active; > =20 > retry: > copied_objs =3D 0; > diff --git a/drivers/gpu/drm/drm_ioctl.c > b/drivers/gpu/drm/drm_ioctl.c > index d337f16..e593a4c 100644 > --- a/drivers/gpu/drm/drm_ioctl.c > +++ b/drivers/gpu/drm/drm_ioctl.c > @@ -348,6 +348,11 @@ static int drm_getcap(struct drm_device *dev, > void *data, struct drm_file *file_ > return -EINVAL; > file_priv->writeback_connectors =3D req->value; > break; > + case DRM_CLIENT_CAP_ADVANCE_GAMMA_MODES: > + if (req->value > 1) > + return -EINVAL; > + file_priv->advance_gamma_mode_active =3D req->value; > + break; > default: > return -EINVAL; > } > diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h > index 824a5ed..02c1a68 100644 > --- a/include/drm/drm_atomic.h > +++ b/include/drm/drm_atomic.h > @@ -338,6 +338,7 @@ struct drm_atomic_state { > * states. > */ > bool duplicated : 1; > + bool advance_gamma_mode_active : 1; > struct __drm_planes_state *planes; > struct __drm_crtcs_state *crtcs; > int num_connector; > diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h > index f789359..f11dc25 100644 > --- a/include/drm/drm_crtc.h > +++ b/include/drm/drm_crtc.h > @@ -170,6 +170,11 @@ struct drm_crtc_state { > bool color_mgmt_changed : 1; > =20 > /** > + * This is to indicate advance gamma mode support > + */ > + bool advance_gamma_mode_active : 1; > + > + /** > * @no_vblank: > * > * Reflects the ability of a CRTC to send VBLANK events. > This state > @@ -952,6 +957,8 @@ struct drm_crtc { > */ > bool enabled; > =20 > + bool advance_gamma_mode_active : 1; > + > /** > * @mode: > * > diff --git a/include/drm/drm_file.h b/include/drm/drm_file.h > index 6710b61..b5aa24e 100644 > --- a/include/drm/drm_file.h > +++ b/include/drm/drm_file.h > @@ -201,6 +201,14 @@ struct drm_file { > bool writeback_connectors; > =20 > /** > + * This is to enable advance gamma modes using > + * gamma_mode property > + * > + * True if client understands advance gamma > + */ > + bool advance_gamma_mode_active : 1; > + > + /** > * @is_master: > * > * This client is the creator of @master. Protected by > struct > diff --git a/include/uapi/drm/drm.h b/include/uapi/drm/drm.h > index 236b01a..abef966 100644 > --- a/include/uapi/drm/drm.h > +++ b/include/uapi/drm/drm.h > @@ -696,6 +696,8 @@ struct drm_get_cap { > */ > #define DRM_CLIENT_CAP_WRITEBACK_CONNECTORS 5 > =20 > +#define DRM_CLIENT_CAP_ADVANCE_GAMMA_MODES 6 > + > /** DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */ > struct drm_set_client_cap { > __u64 capability; --=-1ASjnM2hUpAliJvfbKFx Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Disposition: attachment; filename="smime.p7s" Content-Transfer-Encoding: base64 MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIKfTCCBOsw ggPToAMCAQICEFLpAsoR6ESdlGU4L6MaMLswDQYJKoZIhvcNAQEFBQAwbzELMAkGA1UEBhMCU0Ux FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5hbCBUVFAgTmV0 d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9vdDAeFw0xMzAzMTkwMDAwMDBa Fw0yMDA1MzAxMDQ4MzhaMHkxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEUMBIGA1UEBxMLU2Fu dGEgQ2xhcmExGjAYBgNVBAoTEUludGVsIENvcnBvcmF0aW9uMSswKQYDVQQDEyJJbnRlbCBFeHRl cm5hbCBCYXNpYyBJc3N1aW5nIENBIDRBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA 4LDMgJ3YSVX6A9sE+jjH3b+F3Xa86z3LLKu/6WvjIdvUbxnoz2qnvl9UKQI3sE1zURQxrfgvtP0b Pgt1uDwAfLc6H5eqnyi+7FrPsTGCR4gwDmq1WkTQgNDNXUgb71e9/6sfq+WfCDpi8ScaglyLCRp7 ph/V60cbitBvnZFelKCDBh332S6KG3bAdnNGB/vk86bwDlY6omDs6/RsfNwzQVwo/M3oPrux6y6z yIoRulfkVENbM0/9RrzQOlyK4W5Vk4EEsfW2jlCV4W83QKqRccAKIUxw2q/HoHVPbbETrrLmE6RR Z/+eWlkGWl+mtx42HOgOmX0BRdTRo9vH7yeBowIDAQABo4IBdzCCAXMwHwYDVR0jBBgwFoAUrb2Y ejS0Jvf6xCZU7wO94CTLVBowHQYDVR0OBBYEFB5pKrTcKP5HGE4hCz+8rBEv8Jj1MA4GA1UdDwEB /wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMDYGA1UdJQQvMC0GCCsGAQUFBwMEBgorBgEEAYI3 CgMEBgorBgEEAYI3CgMMBgkrBgEEAYI3FQUwFwYDVR0gBBAwDjAMBgoqhkiG+E0BBQFpMEkGA1Ud HwRCMEAwPqA8oDqGOGh0dHA6Ly9jcmwudHJ1c3QtcHJvdmlkZXIuY29tL0FkZFRydXN0RXh0ZXJu YWxDQVJvb3QuY3JsMDoGCCsGAQUFBwEBBC4wLDAqBggrBgEFBQcwAYYeaHR0cDovL29jc3AudHJ1 c3QtcHJvdmlkZXIuY29tMDUGA1UdHgQuMCygKjALgQlpbnRlbC5jb20wG6AZBgorBgEEAYI3FAID oAsMCWludGVsLmNvbTANBgkqhkiG9w0BAQUFAAOCAQEAKcLNo/2So1Jnoi8G7W5Q6FSPq1fmyKW3 sSDf1amvyHkjEgd25n7MKRHGEmRxxoziPKpcmbfXYU+J0g560nCo5gPF78Wd7ZmzcmCcm1UFFfIx fw6QA19bRpTC8bMMaSSEl8y39Pgwa+HENmoPZsM63DdZ6ziDnPqcSbcfYs8qd/m5d22rpXq5IGVU tX6LX7R/hSSw/3sfATnBLgiJtilVyY7OGGmYKCAS2I04itvSS1WtecXTt9OZDyNbl7LtObBrgMLh ZkpJW+pOR9f3h5VG2S5uKkA7Th9NC9EoScdwQCAIw+UWKbSQ0Isj2UFL7fHKvmqWKVTL98sRzvI3 seNC4DCCBYowggRyoAMCAQICEzMAAMuUYnf6N6NWCloAAAAAy5QwDQYJKoZIhvcNAQEFBQAweTEL MAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRQwEgYDVQQHEwtTYW50YSBDbGFyYTEaMBgGA1UEChMR SW50ZWwgQ29ycG9yYXRpb24xKzApBgNVBAMTIkludGVsIEV4dGVybmFsIEJhc2ljIElzc3Vpbmcg Q0EgNEEwHhcNMTkwMTA5MTAyNDU4WhcNMjAwMTA0MTAyNDU4WjBJMRswGQYDVQQDExJMYW5raG9y c3QsIE1hYXJ0ZW4xKjAoBgkqhkiG9w0BCQEWG21hYXJ0ZW4ubGFua2hvcnN0QGludGVsLmNvbTCC ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKGBTSDGyIIRTDxiylSYzMdKubmrpQJ+IB/h xKWy/7CS3/AjWPIPc9w1ISNs6T/oe/eRS1ipljyJQGMQVnVjOAQKkZfevvNK2D5EX8VAT4Cw4W3L h7s0ehUnGNsLvmGubgXVXzoabI+YFIFVn4m6NFTgHPH9w9n/+/0ROI6y9Tmu5cShl103nuxmimF7 XoIWc3NF8tooYErqmSGhD5BihGZciCCmJD3qpXL56Yl5obvLatEDTSzBWbz7REEHcU6CtPcKUFg+ 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 XTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xOTA0MTUxMDU3NTFa MCMGCSqGSIb3DQEJBDEWBBQyBfhj+d7MM0QSfNu6Pe0HDL6FVDANBgkqhkiG9w0BAQEFAASCAQA4 pjT1YAxQQEpYrnY4huvCnQt9ar4mDlIdGU7pI/he0B/Sru1SWt075u1o3R8A2iu3DpmhkXV1WmlO lEKiSXmfbLMY5xOttqxY3soxiYXBDHNGqBOQyV5VRhv7MIUozK+3nkGOLGxWlURlXIQBM1VavGXI BwktNg7dC0ZxwS1q7iTrOTUiN5vKfKPMstJRnlC0EC15PBYNTbGBbVCtV8TqKGxZgkEPc3tb3Zp/ ELn8INvTeH+SMDclDvP933aRGoZ25lAtDkR2sTla6Akx5DwtUwSgtRNPlrr3hDNytpSP1wj5QSWV /5l7DOY23szbrbRJvdBbQEiumbZEJsR8893WAAAAAAAA --=-1ASjnM2hUpAliJvfbKFx-- --===============1825572148== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 --===============1825572148==--