irq_service
struct irq_service *irqs;
bool dal_irq_service_dummy_set(struct irq_service *irq_service,
bool dal_irq_service_dummy_ack(struct irq_service *irq_service,
bool dce110_vblank_set(struct irq_service *irq_service,
struct dc_context *dc_ctx = irq_service->ctx;
struct dc *core_dc = irq_service->ctx->dc;
dc_interrupt_to_irq_source(irq_service->ctx->dc,
dal_irq_service_set_generic(irq_service, info, enable);
struct irq_service *irq_service,
static void construct(struct irq_service *irq_service,
irq_service->ctx->logger
dal_irq_service_construct(irq_service, init_data);
irq_service->info = irq_source_info_dce110;
irq_service->funcs = &irq_service_funcs_dce110;
struct irq_service *
struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
if (!irq_service)
construct(irq_service, init_data);
return irq_service;
static bool hpd_ack(struct irq_service *irq_service,
uint32_t value = dm_read_reg(irq_service->ctx, addr);
dal_irq_service_ack_generic(irq_service, info);
value = dm_read_reg(irq_service->ctx, info->enable_reg);
dm_write_reg(irq_service->ctx, info->enable_reg, value);
struct irq_service *dal_irq_service_dce110_create(
struct irq_service *irq_service,
struct irq_service *irq_service,
struct irq_service *irq_service,
struct irq_service *irq_service,
struct irq_service *irq_service,
dal_irq_service_construct(irq_service, init_data);
irq_service->info = irq_source_info_dce120;
irq_service->funcs = &irq_service_funcs_dce120;
struct irq_service *dal_irq_service_dce120_create(
struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
if (!irq_service)
construct(irq_service, init_data);
return irq_service;
struct irq_service *irq_service,
uint32_t value = dm_read_reg(irq_service->ctx, addr);
dal_irq_service_ack_generic(irq_service, info);
value = dm_read_reg(irq_service->ctx, info->enable_reg);
dm_write_reg(irq_service->ctx, info->enable_reg, value);
struct irq_service *dal_irq_service_dce120_create(
struct irq_service *irq_service,
dal_irq_service_construct(irq_service, init_data);
irq_service->info = irq_source_info_dce80;
irq_service->funcs = &irq_service_funcs_dce80;
struct irq_service *dal_irq_service_dce80_create(
struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
if (!irq_service)
construct(irq_service, init_data);
return irq_service;
struct irq_service *irq_service,
uint32_t value = dm_read_reg(irq_service->ctx, addr);
dal_irq_service_ack_generic(irq_service, info);
value = dm_read_reg(irq_service->ctx, info->enable_reg);
dm_write_reg(irq_service->ctx, info->enable_reg, value);
struct irq_service *dal_irq_service_dce80_create(
struct irq_service *irq_service,
uint32_t value = dm_read_reg(irq_service->ctx, addr);
dal_irq_service_ack_generic(irq_service, info);
value = dm_read_reg(irq_service->ctx, info->enable_reg);
dm_write_reg(irq_service->ctx, info->enable_reg, value);
struct irq_service *irq_service,
dal_irq_service_construct(irq_service, init_data);
irq_service->info = irq_source_info_dcn10;
irq_service->funcs = &irq_service_funcs_dcn10;
struct irq_service *dal_irq_service_dcn10_create(
struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
if (!irq_service)
construct(irq_service, init_data);
return irq_service;
struct irq_service *irq_service,
struct irq_service *dal_irq_service_dcn10_create(
struct irq_service *irq_service,
find_irq_source_info(irq_service, source);
dal_irq_service_ack(irq_service, source);
return info->funcs->set(irq_service, info, enable);
dal_irq_service_set_generic(irq_service, info, enable);
struct irq_service *irq_service,
uint32_t value = dm_read_reg(irq_service->ctx, addr);
dm_write_reg(irq_service->ctx, addr, value);
struct irq_service *irq_service,
find_irq_source_info(irq_service, source);
return info->funcs->ack(irq_service, info);
dal_irq_service_ack_generic(irq_service, info);
struct irq_service *irq_service,
return irq_service->funcs->to_dal_irq_source(
irq_service,
irq_service->ctx
irq_service->ctx->logger
struct irq_service *irq_service,
irq_service->ctx = init_data->ctx;
void dal_irq_service_destroy(struct irq_service **irq_service)
if (!irq_service || !*irq_service) {
kfree(*irq_service);
*irq_service = NULL;
struct irq_service *irq_service,
return &irq_service->info[source];
struct irq_service *irq_service,
uint32_t value = dm_read_reg(irq_service->ctx, addr);
dm_write_reg(irq_service->ctx, addr, value);
struct irq_service;
struct irq_service *irq_service,
struct irq_service *irq_service,
struct irq_service *irq_service,
struct irq_service *irq_service,
struct irq_service *irq_service,
struct irq_service *irq_service,
struct irq_service;
void dal_irq_service_destroy(struct irq_service **irq_service);
struct irq_service *irq_service,
struct irq_service *irq_service,
struct irq_service *irq_service,