#include "ivsrcid/ivsrcid_vislands30.h"
 
-static bool hpd_ack(
-       struct irq_service *irq_service,
-       const struct irq_source_info *info)
-{
-       uint32_t addr = info->status_reg;
-       uint32_t value = dm_read_reg(irq_service->ctx, addr);
-       uint32_t current_status =
-               get_reg_field_value(
-                       value,
-                       HPD0_DC_HPD_INT_STATUS,
-                       DC_HPD_SENSE_DELAYED);
-
-       dal_irq_service_ack_generic(irq_service, info);
-
-       value = dm_read_reg(irq_service->ctx, info->enable_reg);
-
-       set_reg_field_value(
-               value,
-               current_status ? 0 : 1,
-               HPD0_DC_HPD_INT_CONTROL,
-               DC_HPD_INT_POLARITY);
-
-       dm_write_reg(irq_service->ctx, info->enable_reg, value);
-
-       return true;
-}
-
 static struct irq_source_info_funcs hpd_irq_info_funcs  = {
        .set = NULL,
-       .ack = hpd_ack
+       .ack = hpd0_ack
 };
 
 static struct irq_source_info_funcs hpd_rx_irq_info_funcs = {
 
 
 #include "dc_types.h"
 
-static bool hpd_ack(
-       struct irq_service *irq_service,
-       const struct irq_source_info *info)
-{
-       uint32_t addr = info->status_reg;
-       uint32_t value = dm_read_reg(irq_service->ctx, addr);
-       uint32_t current_status =
-               get_reg_field_value(
-                       value,
-                       DC_HPD1_INT_STATUS,
-                       DC_HPD1_SENSE_DELAYED);
-
-       dal_irq_service_ack_generic(irq_service, info);
-
-       value = dm_read_reg(irq_service->ctx, info->enable_reg);
-
-       set_reg_field_value(
-               value,
-               current_status ? 0 : 1,
-               DC_HPD1_INT_CONTROL,
-               DC_HPD1_INT_POLARITY);
-
-       dm_write_reg(irq_service->ctx, info->enable_reg, value);
-
-       return true;
-}
-
 static struct irq_source_info_funcs hpd_irq_info_funcs  = {
        .set = NULL,
-       .ack = hpd_ack
+       .ack = hpd1_ack
 };
 
 static struct irq_source_info_funcs hpd_rx_irq_info_funcs = {
        dce60_irq_construct(irq_service, init_data);
        return irq_service;
 }
-
-
 
 
 #include "dc_types.h"
 
-static bool hpd_ack(
-       struct irq_service *irq_service,
-       const struct irq_source_info *info)
-{
-       uint32_t addr = info->status_reg;
-       uint32_t value = dm_read_reg(irq_service->ctx, addr);
-       uint32_t current_status =
-               get_reg_field_value(
-                       value,
-                       DC_HPD1_INT_STATUS,
-                       DC_HPD1_SENSE_DELAYED);
-
-       dal_irq_service_ack_generic(irq_service, info);
-
-       value = dm_read_reg(irq_service->ctx, info->enable_reg);
-
-       set_reg_field_value(
-               value,
-               current_status ? 0 : 1,
-               DC_HPD1_INT_CONTROL,
-               DC_HPD1_INT_POLARITY);
-
-       dm_write_reg(irq_service->ctx, info->enable_reg, value);
-
-       return true;
-}
-
 static struct irq_source_info_funcs hpd_irq_info_funcs  = {
        .set = NULL,
-       .ack = hpd_ack
+       .ack = hpd1_ack
 };
 
 static struct irq_source_info_funcs hpd_rx_irq_info_funcs = {
        dce80_irq_construct(irq_service, init_data);
        return irq_service;
 }
-
-
 
        }
 }
 
-static bool hpd_ack(
-       struct irq_service *irq_service,
-       const struct irq_source_info *info)
-{
-       uint32_t addr = info->status_reg;
-       uint32_t value = dm_read_reg(irq_service->ctx, addr);
-       uint32_t current_status =
-               get_reg_field_value(
-                       value,
-                       HPD0_DC_HPD_INT_STATUS,
-                       DC_HPD_SENSE_DELAYED);
-
-       dal_irq_service_ack_generic(irq_service, info);
-
-       value = dm_read_reg(irq_service->ctx, info->enable_reg);
-
-       set_reg_field_value(
-               value,
-               current_status ? 0 : 1,
-               HPD0_DC_HPD_INT_CONTROL,
-               DC_HPD_INT_POLARITY);
-
-       dm_write_reg(irq_service->ctx, info->enable_reg, value);
-
-       return true;
-}
-
 static struct irq_source_info_funcs hpd_irq_info_funcs  = {
        .set = NULL,
-       .ack = hpd_ack
+       .ack = hpd0_ack
 };
 
 static struct irq_source_info_funcs hpd_rx_irq_info_funcs = {
 
        }
 }
 
-static bool hpd_ack(
-       struct irq_service *irq_service,
-       const struct irq_source_info *info)
-{
-       uint32_t addr = info->status_reg;
-       uint32_t value = dm_read_reg(irq_service->ctx, addr);
-       uint32_t current_status =
-               get_reg_field_value(
-                       value,
-                       HPD0_DC_HPD_INT_STATUS,
-                       DC_HPD_SENSE_DELAYED);
-
-       dal_irq_service_ack_generic(irq_service, info);
-
-       value = dm_read_reg(irq_service->ctx, info->enable_reg);
-
-       set_reg_field_value(
-               value,
-               current_status ? 0 : 1,
-               HPD0_DC_HPD_INT_CONTROL,
-               DC_HPD_INT_POLARITY);
-
-       dm_write_reg(irq_service->ctx, info->enable_reg, value);
-
-       return true;
-}
-
 static struct irq_source_info_funcs hpd_irq_info_funcs  = {
        .set = NULL,
-       .ack = hpd_ack
+       .ack = hpd0_ack
 };
 
 static struct irq_source_info_funcs hpd_rx_irq_info_funcs = {
 
        }
 }
 
-static bool hpd_ack(
-       struct irq_service *irq_service,
-       const struct irq_source_info *info)
-{
-       uint32_t addr = info->status_reg;
-       uint32_t value = dm_read_reg(irq_service->ctx, addr);
-       uint32_t current_status =
-               get_reg_field_value(
-                       value,
-                       HPD0_DC_HPD_INT_STATUS,
-                       DC_HPD_SENSE_DELAYED);
-
-       dal_irq_service_ack_generic(irq_service, info);
-
-       value = dm_read_reg(irq_service->ctx, info->enable_reg);
-
-       set_reg_field_value(
-               value,
-               current_status ? 0 : 1,
-               HPD0_DC_HPD_INT_CONTROL,
-               DC_HPD_INT_POLARITY);
-
-       dm_write_reg(irq_service->ctx, info->enable_reg, value);
-
-       return true;
-}
-
 static struct irq_source_info_funcs hpd_irq_info_funcs  = {
        .set = NULL,
-       .ack = hpd_ack
+       .ack = hpd0_ack
 };
 
 static struct irq_source_info_funcs hpd_rx_irq_info_funcs = {
 
        return DC_IRQ_SOURCE_INVALID;
 }
 
-static bool hpd_ack(
-       struct irq_service *irq_service,
-       const struct irq_source_info *info)
-{
-       uint32_t addr = info->status_reg;
-       uint32_t value = dm_read_reg(irq_service->ctx, addr);
-       uint32_t current_status =
-               get_reg_field_value(
-                       value,
-                       HPD0_DC_HPD_INT_STATUS,
-                       DC_HPD_SENSE_DELAYED);
-
-       dal_irq_service_ack_generic(irq_service, info);
-
-       value = dm_read_reg(irq_service->ctx, info->enable_reg);
-
-       set_reg_field_value(
-               value,
-               current_status ? 0 : 1,
-               HPD0_DC_HPD_INT_CONTROL,
-               DC_HPD_INT_POLARITY);
-
-       dm_write_reg(irq_service->ctx, info->enable_reg, value);
-
-       return true;
-}
-
 static struct irq_source_info_funcs hpd_irq_info_funcs  = {
        .set = NULL,
-       .ack = hpd_ack
+       .ack = hpd0_ack
 };
 
 static struct irq_source_info_funcs hpd_rx_irq_info_funcs = {
 
        }
 }
 
-static bool hpd_ack(
-       struct irq_service *irq_service,
-       const struct irq_source_info *info)
-{
-       uint32_t addr = info->status_reg;
-       uint32_t value = dm_read_reg(irq_service->ctx, addr);
-       uint32_t current_status =
-               get_reg_field_value(
-                       value,
-                       HPD0_DC_HPD_INT_STATUS,
-                       DC_HPD_SENSE_DELAYED);
-
-       dal_irq_service_ack_generic(irq_service, info);
-
-       value = dm_read_reg(irq_service->ctx, info->enable_reg);
-
-       set_reg_field_value(
-               value,
-               current_status ? 0 : 1,
-               HPD0_DC_HPD_INT_CONTROL,
-               DC_HPD_INT_POLARITY);
-
-       dm_write_reg(irq_service->ctx, info->enable_reg, value);
-
-       return true;
-}
-
 static struct irq_source_info_funcs hpd_irq_info_funcs  = {
        .set = NULL,
-       .ack = hpd_ack
+       .ack = hpd0_ack
 };
 
 static struct irq_source_info_funcs hpd_rx_irq_info_funcs = {
        dcn30_irq_construct(irq_service, init_data);
        return irq_service;
 }
-
 
        }
 }
 
-static bool hpd_ack(struct irq_service *irq_service, const struct irq_source_info *info)
-{
-       uint32_t addr = info->status_reg;
-       uint32_t value = dm_read_reg(irq_service->ctx, addr);
-       uint32_t current_status = get_reg_field_value(value, HPD0_DC_HPD_INT_STATUS, DC_HPD_SENSE_DELAYED);
-
-       dal_irq_service_ack_generic(irq_service, info);
-
-       value = dm_read_reg(irq_service->ctx, info->enable_reg);
-
-       set_reg_field_value(value, current_status ? 0 : 1, HPD0_DC_HPD_INT_CONTROL, DC_HPD_INT_POLARITY);
-
-       dm_write_reg(irq_service->ctx, info->enable_reg, value);
-
-       return true;
-}
-
 static struct irq_source_info_funcs hpd_irq_info_funcs  = {
                .set = NULL,
-               .ack = hpd_ack
+               .ack = hpd0_ack
 };
 
 static struct irq_source_info_funcs hpd_rx_irq_info_funcs = {
 
        }
 }
 
-static bool hpd_ack(struct irq_service *irq_service, const struct irq_source_info *info)
-{
-       uint32_t addr = info->status_reg;
-       uint32_t value = dm_read_reg(irq_service->ctx, addr);
-       uint32_t current_status = get_reg_field_value(value, HPD0_DC_HPD_INT_STATUS, DC_HPD_SENSE_DELAYED);
-
-       dal_irq_service_ack_generic(irq_service, info);
-
-       value = dm_read_reg(irq_service->ctx, info->enable_reg);
-
-       set_reg_field_value(value, current_status ? 0 : 1, HPD0_DC_HPD_INT_CONTROL, DC_HPD_INT_POLARITY);
-
-       dm_write_reg(irq_service->ctx, info->enable_reg, value);
-
-       return true;
-}
-
 static struct irq_source_info_funcs hpd_irq_info_funcs  = {
                .set = NULL,
-               .ack = hpd_ack
+               .ack = hpd0_ack
 };
 
 static struct irq_source_info_funcs hpd_rx_irq_info_funcs = {
 
        }
 }
 
-static bool hpd_ack(
-       struct irq_service *irq_service,
-       const struct irq_source_info *info)
-{
-       uint32_t addr = info->status_reg;
-       uint32_t value = dm_read_reg(irq_service->ctx, addr);
-       uint32_t current_status =
-               get_reg_field_value(
-                       value,
-                       HPD0_DC_HPD_INT_STATUS,
-                       DC_HPD_SENSE_DELAYED);
-
-       dal_irq_service_ack_generic(irq_service, info);
-
-       value = dm_read_reg(irq_service->ctx, info->enable_reg);
-
-       set_reg_field_value(
-               value,
-               current_status ? 0 : 1,
-               HPD0_DC_HPD_INT_CONTROL,
-               DC_HPD_INT_POLARITY);
-
-       dm_write_reg(irq_service->ctx, info->enable_reg, value);
-
-       return true;
-}
-
 static struct irq_source_info_funcs hpd_irq_info_funcs  = {
        .set = NULL,
-       .ack = hpd_ack
+       .ack = hpd0_ack
 };
 
 static struct irq_source_info_funcs hpd_rx_irq_info_funcs = {
 
        }
 }
 
-static bool hpd_ack(
-       struct irq_service *irq_service,
-       const struct irq_source_info *info)
-{
-       uint32_t addr = info->status_reg;
-       uint32_t value = dm_read_reg(irq_service->ctx, addr);
-       uint32_t current_status =
-               get_reg_field_value(
-                       value,
-                       HPD0_DC_HPD_INT_STATUS,
-                       DC_HPD_SENSE_DELAYED);
-
-       dal_irq_service_ack_generic(irq_service, info);
-
-       value = dm_read_reg(irq_service->ctx, info->enable_reg);
-
-       set_reg_field_value(
-               value,
-               current_status ? 0 : 1,
-               HPD0_DC_HPD_INT_CONTROL,
-               DC_HPD_INT_POLARITY);
-
-       dm_write_reg(irq_service->ctx, info->enable_reg, value);
-
-       return true;
-}
-
 static struct irq_source_info_funcs hpd_irq_info_funcs  = {
        .set = NULL,
-       .ack = hpd_ack
+       .ack = hpd0_ack
 };
 
 static struct irq_source_info_funcs hpd_rx_irq_info_funcs = {
 
        }
 }
 
-static bool hpd_ack(
-       struct irq_service *irq_service,
-       const struct irq_source_info *info)
-{
-       uint32_t addr = info->status_reg;
-       uint32_t value = dm_read_reg(irq_service->ctx, addr);
-       uint32_t current_status =
-               get_reg_field_value(
-                       value,
-                       HPD0_DC_HPD_INT_STATUS,
-                       DC_HPD_SENSE_DELAYED);
-
-       dal_irq_service_ack_generic(irq_service, info);
-
-       value = dm_read_reg(irq_service->ctx, info->enable_reg);
-
-       set_reg_field_value(
-               value,
-               current_status ? 0 : 1,
-               HPD0_DC_HPD_INT_CONTROL,
-               DC_HPD_INT_POLARITY);
-
-       dm_write_reg(irq_service->ctx, info->enable_reg, value);
-
-       return true;
-}
-
 static struct irq_source_info_funcs hpd_irq_info_funcs  = {
        .set = NULL,
-       .ack = hpd_ack
+       .ack = hpd0_ack
 };
 
 static struct irq_source_info_funcs hpd_rx_irq_info_funcs = {
 
        }
 }
 
-static bool hpd_ack(
-       struct irq_service *irq_service,
-       const struct irq_source_info *info)
-{
-       uint32_t addr = info->status_reg;
-       uint32_t value = dm_read_reg(irq_service->ctx, addr);
-       uint32_t current_status =
-               get_reg_field_value(
-                       value,
-                       HPD0_DC_HPD_INT_STATUS,
-                       DC_HPD_SENSE_DELAYED);
-
-       dal_irq_service_ack_generic(irq_service, info);
-
-       value = dm_read_reg(irq_service->ctx, info->enable_reg);
-
-       set_reg_field_value(
-               value,
-               current_status ? 0 : 1,
-               HPD0_DC_HPD_INT_CONTROL,
-               DC_HPD_INT_POLARITY);
-
-       dm_write_reg(irq_service->ctx, info->enable_reg, value);
-
-       return true;
-}
-
 static struct irq_source_info_funcs hpd_irq_info_funcs  = {
        .set = NULL,
-       .ack = hpd_ack
+       .ack = hpd0_ack
 };
 
 static struct irq_source_info_funcs hpd_rx_irq_info_funcs = {
 
        }
 }
 
-static bool hpd_ack(
-       struct irq_service *irq_service,
-       const struct irq_source_info *info)
-{
-       uint32_t addr = info->status_reg;
-       uint32_t value = dm_read_reg(irq_service->ctx, addr);
-       uint32_t current_status =
-               get_reg_field_value(
-                       value,
-                       HPD0_DC_HPD_INT_STATUS,
-                       DC_HPD_SENSE_DELAYED);
-
-       dal_irq_service_ack_generic(irq_service, info);
-
-       value = dm_read_reg(irq_service->ctx, info->enable_reg);
-
-       set_reg_field_value(
-               value,
-               current_status ? 0 : 1,
-               HPD0_DC_HPD_INT_CONTROL,
-               DC_HPD_INT_POLARITY);
-
-       dm_write_reg(irq_service->ctx, info->enable_reg, value);
-
-       return true;
-}
-
 static struct irq_source_info_funcs hpd_irq_info_funcs = {
        .set = NULL,
-       .ack = hpd_ack
+       .ack = hpd0_ack
 };
 
 static struct irq_source_info_funcs hpd_rx_irq_info_funcs = {
 
        }
 }
 
-static bool hpd_ack(
-       struct irq_service *irq_service,
-       const struct irq_source_info *info)
-{
-       uint32_t addr = info->status_reg;
-       uint32_t value = dm_read_reg(irq_service->ctx, addr);
-       uint32_t current_status =
-               get_reg_field_value(
-                       value,
-                       HPD0_DC_HPD_INT_STATUS,
-                       DC_HPD_SENSE_DELAYED);
-
-       dal_irq_service_ack_generic(irq_service, info);
-
-       value = dm_read_reg(irq_service->ctx, info->enable_reg);
-
-       set_reg_field_value(
-               value,
-               current_status ? 0 : 1,
-               HPD0_DC_HPD_INT_CONTROL,
-               DC_HPD_INT_POLARITY);
-
-       dm_write_reg(irq_service->ctx, info->enable_reg, value);
-
-       return true;
-}
-
 static struct irq_source_info_funcs hpd_irq_info_funcs = {
        .set = NULL,
-       .ack = hpd_ack
+       .ack = hpd0_ack
 };
 
 static struct irq_source_info_funcs hpd_rx_irq_info_funcs = {
 
        }
 }
 
-static bool hpd_ack(
-       struct irq_service *irq_service,
-       const struct irq_source_info *info)
-{
-       uint32_t addr = info->status_reg;
-       uint32_t value = dm_read_reg(irq_service->ctx, addr);
-       uint32_t current_status =
-               get_reg_field_value(
-                       value,
-                       HPD0_DC_HPD_INT_STATUS,
-                       DC_HPD_SENSE_DELAYED);
-
-       dal_irq_service_ack_generic(irq_service, info);
-
-       value = dm_read_reg(irq_service->ctx, info->enable_reg);
-
-       set_reg_field_value(
-               value,
-               current_status ? 0 : 1,
-               HPD0_DC_HPD_INT_CONTROL,
-               DC_HPD_INT_POLARITY);
-
-       dm_write_reg(irq_service->ctx, info->enable_reg, value);
-
-       return true;
-}
-
 static struct irq_source_info_funcs hpd_irq_info_funcs = {
        .set = NULL,
-       .ack = hpd_ack
+       .ack = hpd0_ack
 };
 
 static struct irq_source_info_funcs hpd_rx_irq_info_funcs = {
 
        }
 }
 
-static bool hpd_ack(
-       struct irq_service *irq_service,
-       const struct irq_source_info *info)
-{
-       uint32_t addr = info->status_reg;
-       uint32_t value = dm_read_reg(irq_service->ctx, addr);
-       uint32_t current_status =
-               get_reg_field_value(
-                       value,
-                       HPD0_DC_HPD_INT_STATUS,
-                       DC_HPD_SENSE_DELAYED);
-
-       dal_irq_service_ack_generic(irq_service, info);
-
-       value = dm_read_reg(irq_service->ctx, info->enable_reg);
-
-       set_reg_field_value(
-               value,
-               current_status ? 0 : 1,
-               HPD0_DC_HPD_INT_CONTROL,
-               DC_HPD_INT_POLARITY);
-
-       dm_write_reg(irq_service->ctx, info->enable_reg, value);
-
-       return true;
-}
-
 static struct irq_source_info_funcs hpd_irq_info_funcs = {
        .set = NULL,
-       .ack = hpd_ack
+       .ack = hpd0_ack
 };
 
 static struct irq_source_info_funcs hpd_rx_irq_info_funcs = {
 
 #include "reg_helper.h"
 #include "irq_service.h"
 
+//HPD0_DC_HPD_INT_STATUS
+#define HPD0_DC_HPD_INT_STATUS__DC_HPD_SENSE_DELAYED_MASK              0x00000010L
+#define HPD0_DC_HPD_INT_CONTROL__DC_HPD_INT_POLARITY_MASK              0x00000100L
+#define HPD0_DC_HPD_INT_STATUS__DC_HPD_SENSE_DELAYED__SHIFT            0x4
+#define HPD0_DC_HPD_INT_CONTROL__DC_HPD_INT_POLARITY__SHIFT     0x8
+//HPD1_DC_HPD_INT_STATUS
+#define DC_HPD1_INT_STATUS__DC_HPD1_SENSE_DELAYED_MASK                 0x10
+#define DC_HPD1_INT_STATUS__DC_HPD1_SENSE_DELAYED__SHIFT               0x4
+#define DC_HPD1_INT_CONTROL__DC_HPD1_INT_POLARITY_MASK                 0x100
+#define DC_HPD1_INT_CONTROL__DC_HPD1_INT_POLARITY__SHIFT               0x8
 
 
 #define CTX \
                src_id,
                ext_id);
 }
+
+bool hpd0_ack(
+       struct irq_service *irq_service,
+       const struct irq_source_info *info)
+{
+       uint32_t addr = info->status_reg;
+       uint32_t value = dm_read_reg(irq_service->ctx, addr);
+       uint32_t current_status =
+               get_reg_field_value(
+                       value,
+                       HPD0_DC_HPD_INT_STATUS,
+                       DC_HPD_SENSE_DELAYED);
+
+       dal_irq_service_ack_generic(irq_service, info);
+
+       value = dm_read_reg(irq_service->ctx, info->enable_reg);
+
+       set_reg_field_value(
+               value,
+               current_status ? 0 : 1,
+               HPD0_DC_HPD_INT_CONTROL,
+               DC_HPD_INT_POLARITY);
+
+       dm_write_reg(irq_service->ctx, info->enable_reg, value);
+
+       return true;
+}
+
+bool hpd1_ack(
+       struct irq_service *irq_service,
+       const struct irq_source_info *info)
+{
+       uint32_t addr = info->status_reg;
+       uint32_t value = dm_read_reg(irq_service->ctx, addr);
+       uint32_t current_status =
+               get_reg_field_value(
+                       value,
+                       DC_HPD1_INT_STATUS,
+                       DC_HPD1_SENSE_DELAYED);
+
+       dal_irq_service_ack_generic(irq_service, info);
+
+       value = dm_read_reg(irq_service->ctx, info->enable_reg);
+
+       set_reg_field_value(
+               value,
+               current_status ? 0 : 1,
+               DC_HPD1_INT_CONTROL,
+               DC_HPD1_INT_POLARITY);
+
+       dm_write_reg(irq_service->ctx, info->enable_reg, value);
+
+       return true;
+}
 
        const struct irq_source_info *info,
        bool enable);
 
+bool hpd0_ack(
+       struct irq_service *irq_service,
+       const struct irq_source_info *info);
+
+bool hpd1_ack(
+       struct irq_service *irq_service,
+       const struct irq_source_info *info);
+
 #endif