hdcp_workqueue
if (!adev->dm.hdcp_workqueue)
hdcp_reset_display(adev->dm.hdcp_workqueue, aconnector->dc_link->link_index);
old_con_state, connector, adev->dm.hdcp_workqueue)) {
struct hdcp_workqueue *hdcp_work = adev->dm.hdcp_workqueue;
struct hdcp_workqueue *hdcp_w =
adev->dm.hdcp_workqueue, aconnector->dc_link->link_index, aconnector,
adev->dm.hdcp_workqueue = hdcp_create_workqueue(adev, &init_params.cp_psp, adev->dm.dc);
if (!adev->dm.hdcp_workqueue)
adev->dm.hdcp_workqueue);
if (adev->dm.hdcp_workqueue) {
hdcp_destroy(&adev->dev->kobj, adev->dm.hdcp_workqueue);
adev->dm.hdcp_workqueue = NULL;
if (adev->dm.hdcp_workqueue) {
hdcp_reset_display(adev->dm.hdcp_workqueue, aconnector->dc_link->link_index);
if (adev->dm.hdcp_workqueue)
hdcp_handle_cpirq(adev->dm.hdcp_workqueue, aconnector->base.index);
if (adev->dm.hdcp_workqueue)
struct hdcp_workqueue *hdcp_w)
struct hdcp_workqueue *hdcp_workqueue;
static void process_output(struct hdcp_workqueue *hdcp_work)
static void link_lock(struct hdcp_workqueue *work, bool lock)
void hdcp_update_display(struct hdcp_workqueue *hdcp_work,
struct hdcp_workqueue *hdcp_w = &hdcp_work[link_index];
static void hdcp_remove_display(struct hdcp_workqueue *hdcp_work,
struct hdcp_workqueue *hdcp_w = &hdcp_work[link_index];
void hdcp_reset_display(struct hdcp_workqueue *hdcp_work, unsigned int link_index)
struct hdcp_workqueue *hdcp_w = &hdcp_work[link_index];
void hdcp_handle_cpirq(struct hdcp_workqueue *hdcp_work, unsigned int link_index)
struct hdcp_workqueue *hdcp_w = &hdcp_work[link_index];
struct hdcp_workqueue *hdcp_work;
hdcp_work = container_of(to_delayed_work(work), struct hdcp_workqueue,
struct hdcp_workqueue *hdcp_work = container_of(work, struct hdcp_workqueue,
struct hdcp_workqueue *hdcp_work =
container_of(to_delayed_work(work), struct hdcp_workqueue, property_validate_dwork);
struct hdcp_workqueue *hdcp_work;
struct hdcp_workqueue,
struct hdcp_workqueue *hdcp_work;
hdcp_work = container_of(work, struct hdcp_workqueue, cpirq_work);
void hdcp_destroy(struct kobject *kobj, struct hdcp_workqueue *hdcp_work)
struct hdcp_workqueue *hdcp_work = handle;
struct hdcp_workqueue *hdcp_work = handle;
struct hdcp_workqueue *hdcp_w = &hdcp_work[link_index];
struct hdcp_workqueue *work;
work = container_of(bin_attr, struct hdcp_workqueue, attr);
struct hdcp_workqueue *work;
work = container_of(bin_attr, struct hdcp_workqueue, attr);
struct hdcp_workqueue *hdcp_create_workqueue(struct amdgpu_device *adev,
struct hdcp_workqueue *hdcp_work;
void hdcp_update_display(struct hdcp_workqueue *hdcp_work,
void hdcp_reset_display(struct hdcp_workqueue *work, unsigned int link_index);
void hdcp_handle_cpirq(struct hdcp_workqueue *work, unsigned int link_index);
void hdcp_destroy(struct kobject *kobj, struct hdcp_workqueue *work);
struct hdcp_workqueue *hdcp_create_workqueue(struct amdgpu_device *adev, struct cp_psp *cp_psp, struct dc *dc);
if (adev->dm.hdcp_workqueue) {
struct hdcp_workqueue *hdcp_work = adev->dm.hdcp_workqueue;
struct hdcp_workqueue *hdcp_w =
queue_delayed_work(ctx->hdcp_workqueue,
flush_workqueue(ctx->hdcp_workqueue);
platform->hdcp_workqueue = create_workqueue("hdcp workqueue");
if (!platform->hdcp_workqueue) {
if (platform->hdcp_workqueue)
destroy_workqueue(platform->hdcp_workqueue);
if (platform->hdcp_workqueue) {
destroy_workqueue(platform->hdcp_workqueue);
struct workqueue_struct *hdcp_workqueue;