If the data correctness check is enabled (see Table 12-353, DISPC Internal Diagnostic Check Regions Parameters):
- When a new signature is generated, it is compared against the reference signature provided by the software. A SAFETY_REF_SIGNATURE register must be configured with a reference signature data, see Table 12-353, DISPC Internal Diagnostic Check Regions Parameters.
- If signatures do not match, an interrupt event is generated to indicate data mismatch.
If the freeze frame detection is enabled (see Table 12-353, DISPC Internal Diagnostic Check Regions Parameters):
- When a new signature is generated, it is first compared against the saved signature (from previous frame).
- There exists a capability within the frame freeze detection logic to skip alternate frames during comparison. This feature is useful while handling ping-pong buffers or interlaced input video. This feature is controlled via the [12-11] FRAMESKIP field within a SAFETY_ATTRIBUTES register.
- If signatures match, an internal counter used to keep track of the number of frames with no data change (for the region) is incremented.
- If signatures do not match, the counter is cleared.
- If the counter value is greater than the user programmed freeze frame detection threshold value (see Table 12-353, DISPC Internal Diagnostic Check Regions Parameters), an interrupt event (VIDSAFETYREGION_IRQ or VPSAFETYREGION_IRQ, see Section 12.6.3.5, DISPC Interrupt Requests) is generated to indicate a possible freeze frame detection. The threshold value must be configured with the maximum number of identical successive frames allowed before an interrupt is generated.
- After the comparison, the signature is saved as the previous signature.
- The counter is cleared when the interrupt event is generated or when freeze frame detection check is disabled.
This frame freeze is different from the display getting frozen due to pipeline lock up. In that case, the DISPC will generate an SYNCLOST_IRQ and/or DMA VIDBUFFERUNDERFLOW_IRQ interrupt. The freeze frame detection is for source data getting frozen while the DSS is working normally.
The two internal diagnostic checks are continuously performed over multiple frames as long as their mode enable register bits are set.