DF-4965 / run.log
== DF-4965: dce110 offset_to_id DDC-family branches == T[DDC1 ] offset_to_id(0x4869, 0x100) = true en=0 id=-1591942955(?) <== id UNWRITTEN T[DDC2 ] offset_to_id(0x486d, 0x100) = true en=1 id=-1591942955(?) <== id UNWRITTEN T[DDC3 ] offset_to_id(0x4871, 0x100) = true en=2 id=-1591942955(?) <== id UNWRITTEN T[DDC4 ] offset_to_id(0x4875, 0x100) = true en=3 id=-1591942955(?) <== id UNWRITTEN T[DDC5 ] offset_to_id(0x4879, 0x100) = true en=4 id=-1591942955(?) <== id UNWRITTEN T[DDC6 ] offset_to_id(0x487d, 0x100) = true en=5 id=-1591942955(?) <== id UNWRITTEN T[DDCVGA ] offset_to_id(0x4881, 0x100) = true en=6 id=-1591942955(?) <== id UNWRITTEN T[I2CPAD ] offset_to_id(0x4899, 0x1) = true en=7 id=-1591942955(?) <== id UNWRITTEN == controls (id IS written / rejected) == T[GENERIC ] offset_to_id(0x4861, 0x1) = true en=0 id=2(GENERIC(2)) T[HPD ] offset_to_id(0x488d, 0x1) = true en=0 id=3(HPD(3)) T[SYNCA ] offset_to_id(0x4885, 0x1) = true en=0 id=6(SYNC(6)) T[PWRSEQ ] offset_to_id(0x4891, 0x1) = false en=2703024341 id=-1591942955(?) <== id UNWRITTEN T[DEBUG ] offset_to_id(0x4804, 0x1) = false en=2703024341 id=-1591942955(?) <== id UNWRITTEN T[PADSTR1 ] offset_to_id(0x4894, 0x1) = false en=2703024341 id=-1591942955(?) <== id UNWRITTEN T[BOGUS ] offset_to_id(0x4fff, 0x1) = false en=2703024341 id=-1591942955(?) <== id UNWRITTEN T[GPIOPAD ] offset_to_id(0x0183, 0x1) = false en=2703024341 id=-1591942955(?) <== id UNWRITTEN == consumer chain (dal_gpio_service_create_irq, gpio_service.c:148) == id uninitialized; if garbage == GPIO_ID_HPD(3): dal_gpio_create_irq(HPD, en) -> dal_gpio_service_open(HPD, en) -> define_hpd_registers(pin, en) -> &hpd_regs[en] hpd_regs[] has 6 entries (hw_factory_dce110.c:57-64); en=6 (DDC_VGA) and en=7 (I2C_PAD) index 1 and 2 entries OOB -> garbage int_status/toggle_filt_cntl descriptors drive MMIO (hw_hpd.c REG_GET/REG_UPDATE). == DF-4966: I2C pad SDA wrong-bit == id_to_offset(DDC_DATA, I2C_PAD) = true offset=0x4899 mask=0x100 real DC_GPIO_I2CPAD_A fields: SCL=0x1 SDA=0x2 -> mask 0x100 WRONG: bit 8 does not exist in DC_GPIO_I2CPAD_A (SDA is bit 1) id_to_offset(DDC_CLOCK, I2C_PAD) = true offset=0x4899 mask=0x1 (==SCL, correct by coincidence) id_to_offset(DDC_DATA, DDC1) = true offset=0x4869 mask=0x100 (==DDC1DATA, shared mask correct for real DDC lines) id_to_offset(GPIO_PAD, 5) = false (no GPIO_PAD branch: no DF-4944 twin) EXIT=0 === FIXED BUILD (fix.diff: *id = GPIO_ID_DDC_DATA in all 8 DDC branches) === == DF-4965: dce110 offset_to_id DDC-family branches == T[DDC1 ] offset_to_id(0x4869, 0x100) = true en=0 id=0(DDC_DATA(0)) T[DDC2 ] offset_to_id(0x486d, 0x100) = true en=1 id=0(DDC_DATA(0)) T[DDC3 ] offset_to_id(0x4871, 0x100) = true en=2 id=0(DDC_DATA(0)) T[DDC4 ] offset_to_id(0x4875, 0x100) = true en=3 id=0(DDC_DATA(0)) T[DDC5 ] offset_to_id(0x4879, 0x100) = true en=4 id=0(DDC_DATA(0)) T[DDC6 ] offset_to_id(0x487d, 0x100) = true en=5 id=0(DDC_DATA(0)) T[DDCVGA ] offset_to_id(0x4881, 0x100) = true en=6 id=0(DDC_DATA(0)) T[I2CPAD ] offset_to_id(0x4899, 0x1) = true en=7 id=0(DDC_DATA(0)) == controls (id IS written / rejected) == T[GENERIC ] offset_to_id(0x4861, 0x1) = true en=0 id=2(GENERIC(2)) T[HPD ] offset_to_id(0x488d, 0x1) = true en=0 id=3(HPD(3)) T[SYNCA ] offset_to_id(0x4885, 0x1) = true en=0 id=6(SYNC(6)) T[PWRSEQ ] offset_to_id(0x4891, 0x1) = false en=2703024341 id=-1591942955(?) <== id UNWRITTEN T[DEBUG ] offset_to_id(0x4804, 0x1) = false en=2703024341 id=-1591942955(?) <== id UNWRITTEN T[PADSTR1 ] offset_to_id(0x4894, 0x1) = false en=2703024341 id=-1591942955(?) <== id UNWRITTEN T[BOGUS ] offset_to_id(0x4fff, 0x1) = false en=2703024341 id=-1591942955(?) <== id UNWRITTEN T[GPIOPAD ] offset_to_id(0x0183, 0x1) = false en=2703024341 id=-1591942955(?) <== id UNWRITTEN == consumer chain (dal_gpio_service_create_irq, gpio_service.c:148) == id uninitialized; if garbage == GPIO_ID_HPD(3): dal_gpio_create_irq(HPD, en) -> dal_gpio_service_open(HPD, en) -> define_hpd_registers(pin, en) -> &hpd_regs[en] hpd_regs[] has 6 entries (hw_factory_dce110.c:57-64); en=6 (DDC_VGA) and en=7 (I2C_PAD) index 1 and 2 entries OOB -> garbage int_status/toggle_filt_cntl descriptors drive MMIO (hw_hpd.c REG_GET/REG_UPDATE). == DF-4966: I2C pad SDA wrong-bit == id_to_offset(DDC_DATA, I2C_PAD) = true offset=0x4899 mask=0x100 real DC_GPIO_I2CPAD_A fields: SCL=0x1 SDA=0x2 -> mask 0x100 WRONG: bit 8 does not exist in DC_GPIO_I2CPAD_A (SDA is bit 1) id_to_offset(DDC_CLOCK, I2C_PAD) = true offset=0x4899 mask=0x1 (==SCL, correct by coincidence) id_to_offset(DDC_DATA, DDC1) = true offset=0x4869 mask=0x100 (==DDC1DATA, shared mask correct for real DDC lines) id_to_offset(GPIO_PAD, 5) = false (no GPIO_PAD branch: no DF-4944 twin) EXIT=0