static int hdmi_streamoff(struct hdmi_device *hdev) { struct device *dev = hdev->dev; dev_dbg(dev, "%s\n", __func__); if (hdev->hdcp_info.hdcp_enable && hdev->hdcp_info.hdcp_start) hdcp_stop(hdev); hdmi_audio_enable(hdev, 0); hdmi_enable(hdev, 0); hdmi_tg_enable(hdev, 0); hdev->streaming = HDMI_STOP; /* change the HPD interrupt: Internal -> External */ disable_irq(hdev->int_irq); cancel_work_sync(&hdev->hpd_work); hdmi_reg_set_ext_hpd(hdev); enable_irq(hdev->ext_irq); dev_info(hdev->dev, "HDMI interrupt changed to external\n"); hdmi_dumpregs(hdev, "streamoff"); return 0; }
static int hdmi_streamoff(struct hdmi_device *hdev) { struct device *dev = hdev->dev; dev_dbg(dev, "%s\n", __func__); hdmi_reg_set_ext_hpd(hdev); // if (edid_supports_hdmi(hdev)) { #if 1 if (hdev->hdcp_info.hdcp_enable && hdev->hdcp_info.hdcp_start) hdcp_stop(hdev); #endif // } hdmi_audio_enable(hdev, 0); hdmi_enable(hdev, 0); hdmi_tg_enable(hdev, 0); hdev->streaming = HDMI_STOP; hdmi_dumpregs(hdev, "streamoff"); return 0; }