#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/slab.h>
+ #include <linux/spinlock.h>
+#include <linux/switch.h>
#include <linux/workqueue.h>
#include <mach/clk.h>
struct clk *disp1_clk;
struct clk *disp2_clk;
+ struct switch_dev hpd_switch;
++
+ spinlock_t suspend_lock;
+ bool suspended;
+ bool hpd_pending;
};
const struct fb_videomode tegra_dc_hdmi_supported_modes[] = {
hdmi->clk = clk;
hdmi->disp1_clk = disp1_clk;
hdmi->disp2_clk = disp2_clk;
+ hdmi->suspended = false;
+ hdmi->hpd_pending = false;
+ spin_lock_init(&hdmi->suspend_lock);
+ hdmi->hpd_switch.name = "hdmi";
+ switch_dev_register(&hdmi->hpd_switch);
+
dc->out->depth = 24;
tegra_dc_set_outdata(dc, hdmi);