dm_plane_state
#define to_dm_plane_state(x) container_of(x, struct dm_plane_state, base)
struct dm_plane_state *dm_new_other_state, *dm_old_other_state;
struct dm_plane_state *dm_new_plane_state, *dm_old_plane_state;
struct dm_plane_state *dm_new_plane_state;
struct dm_plane_state *dm_new_plane_state = to_dm_plane_state(new_plane_state);
struct dm_plane_state *dm_plane_state = to_dm_plane_state(plane_state);
shaper = __extract_blob_lut(dm_plane_state->shaper_lut, &size);
lut3d = __extract_blob_lut(dm_plane_state->lut3d, &size);
struct dm_plane_state *dm_plane_state = to_dm_plane_state(plane_state);
degamma_lut = __extract_blob_lut(dm_plane_state->degamma_lut,
tf = dm_plane_state->degamma_tf;
struct dm_plane_state *dm_plane_state = to_dm_plane_state(plane_state);
dc_plane_state->hdr_mult = amdgpu_dm_fixpt_from_s3132(dm_plane_state->hdr_mult);
shaper_lut = __extract_blob_lut(dm_plane_state->shaper_lut, &shaper_size);
shaper_tf = dm_plane_state->shaper_tf;
lut3d = __extract_blob_lut(dm_plane_state->lut3d, &lut3d_size);
blend_tf = dm_plane_state->blend_tf;
blend_lut = __extract_blob_lut(dm_plane_state->blend_lut, &blend_size);
struct dm_plane_state *dm_plane_state = to_dm_plane_state(plane_state);
if (dm_plane_state->ctm) {
ctm = (struct drm_color_ctm_3x4 *)dm_plane_state->ctm->data;
struct dm_plane_state *dm_plane_state;
dm_plane_state = to_dm_plane_state(new_plane_state);
if (!dm_plane_state->dc_state)
if (dc_validate_plane(dc, dm_plane_state->dc_state) == DC_OK)
struct dm_plane_state *dm_plane_state = to_dm_plane_state(plane->state);
if (!dm_plane_state || !dm_plane_state->dc_state)
dc_plane_state = dm_plane_state->dc_state;
struct dm_plane_state *amdgpu_state = NULL;
struct dm_plane_state *dm_plane_state, *old_dm_plane_state;
dm_plane_state = kzalloc_obj(*dm_plane_state);
if (!dm_plane_state)
__drm_atomic_helper_plane_duplicate_state(plane, &dm_plane_state->base);
dm_plane_state->dc_state = old_dm_plane_state->dc_state;
dc_plane_state_retain(dm_plane_state->dc_state);
dm_plane_state->degamma_lut =
dm_plane_state->ctm =
dm_plane_state->shaper_lut =
dm_plane_state->lut3d =
dm_plane_state->blend_lut =
dm_plane_state->degamma_tf = old_dm_plane_state->degamma_tf;
dm_plane_state->hdr_mult = old_dm_plane_state->hdr_mult;
dm_plane_state->shaper_tf = old_dm_plane_state->shaper_tf;
dm_plane_state->blend_tf = old_dm_plane_state->blend_tf;
return &dm_plane_state->base;
struct dm_plane_state *dm_plane_state = to_dm_plane_state(state);
if (dm_plane_state->degamma_lut)
drm_property_blob_put(dm_plane_state->degamma_lut);
if (dm_plane_state->ctm)
drm_property_blob_put(dm_plane_state->ctm);
if (dm_plane_state->lut3d)
drm_property_blob_put(dm_plane_state->lut3d);
if (dm_plane_state->shaper_lut)
drm_property_blob_put(dm_plane_state->shaper_lut);
if (dm_plane_state->blend_lut)
drm_property_blob_put(dm_plane_state->blend_lut);
if (dm_plane_state->dc_state)
dc_plane_state_release(dm_plane_state->dc_state);
struct dm_plane_state *dm_plane_state = to_dm_plane_state(state);
&dm_plane_state->degamma_lut,
dm_plane_state->base.color_mgmt_changed |= replaced;
if (dm_plane_state->degamma_tf != val) {
dm_plane_state->degamma_tf = val;
dm_plane_state->base.color_mgmt_changed = 1;
if (dm_plane_state->hdr_mult != val) {
dm_plane_state->hdr_mult = val;
dm_plane_state->base.color_mgmt_changed = 1;
&dm_plane_state->ctm,
dm_plane_state->base.color_mgmt_changed |= replaced;
&dm_plane_state->shaper_lut,
dm_plane_state->base.color_mgmt_changed |= replaced;
if (dm_plane_state->shaper_tf != val) {
dm_plane_state->shaper_tf = val;
dm_plane_state->base.color_mgmt_changed = 1;
&dm_plane_state->lut3d,
dm_plane_state->base.color_mgmt_changed |= replaced;
&dm_plane_state->blend_lut,
dm_plane_state->base.color_mgmt_changed |= replaced;
if (dm_plane_state->blend_tf != val) {
dm_plane_state->blend_tf = val;
dm_plane_state->base.color_mgmt_changed = 1;
struct dm_plane_state *dm_plane_state = to_dm_plane_state(state);
*val = (dm_plane_state->degamma_lut) ?
dm_plane_state->degamma_lut->base.id : 0;
*val = dm_plane_state->degamma_tf;
*val = dm_plane_state->hdr_mult;
*val = (dm_plane_state->ctm) ?
dm_plane_state->ctm->base.id : 0;
*val = (dm_plane_state->shaper_lut) ?
dm_plane_state->shaper_lut->base.id : 0;
*val = dm_plane_state->shaper_tf;
*val = (dm_plane_state->lut3d) ?
dm_plane_state->lut3d->base.id : 0;
*val = (dm_plane_state->blend_lut) ?
dm_plane_state->blend_lut->base.id : 0;
*val = dm_plane_state->blend_tf;
struct dm_plane_state *dm_plane_state_new, *dm_plane_state_old;