[Armadeus-commitlog] armadeus branch, buildroot-update, updated. armadeus-6.0-218-g78e2737
Brought to you by:
sszy
|
From: Sébastien S. <ss...@us...> - 2017-02-15 10:17:55
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, buildroot-update has been updated
via 78e27372df3357b9fe3678ef8f2063a0961267ae (commit)
via e71ecad5ae5d195c9fa7f94162788d24bb5f26f0 (commit)
from 7d7bc3c8aec702bd42579e9a75d0b820d31db04b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 78e27372df3357b9fe3678ef8f2063a0961267ae
Author: Sébastien Szymanski <seb...@ar...>
Date: Wed Feb 15 11:22:25 2017 +0100
[LINUX] 4.1.mx6_legacy: Make DVI monitors working
Pachtes come from Boundary Devices github:
https://github.com/boundarydevices/linux-imx6.git
commit e71ecad5ae5d195c9fa7f94162788d24bb5f26f0
Author: Sébastien Szymanski <seb...@ar...>
Date: Wed Feb 15 11:21:36 2017 +0100
[LINUX] 4.1.mx6_legacy: make LCD working
Patches come from Boundary Devices github:
https://github.com/boundarydevices/linux-imx6.git
-----------------------------------------------------------------------
Summary of changes:
...500-mxc_ipuv3_fb-unblank-displays-at-init.patch | 82 +++++++
..._fb-move-fb_blank-call-after-registration.patch | 67 ++++++
...able-overflow-interrupt-after-initializat.patch | 40 ++++
.../0503-Add-support-for-DVI-monitors.patch} | 243 +++++++++++----------
4 files changed, 313 insertions(+), 119 deletions(-)
create mode 100644 patches/linux/4.1.mx6_legacy/0500-mxc_ipuv3_fb-unblank-displays-at-init.patch
create mode 100644 patches/linux/4.1.mx6_legacy/0501-mxc_ipuv3_fb-move-fb_blank-call-after-registration.patch
create mode 100644 patches/linux/4.1.mx6_legacy/0502-mxc_hdmi-enable-overflow-interrupt-after-initializat.patch
copy patches/linux/{3.14.mx6_legacy/0507-Add-support-for-DVI-monitors.patch => 4.1.mx6_legacy/0503-Add-support-for-DVI-monitors.patch} (58%)
diff --git a/patches/linux/4.1.mx6_legacy/0500-mxc_ipuv3_fb-unblank-displays-at-init.patch b/patches/linux/4.1.mx6_legacy/0500-mxc_ipuv3_fb-unblank-displays-at-init.patch
new file mode 100644
index 0000000..21c489a
--- /dev/null
+++ b/patches/linux/4.1.mx6_legacy/0500-mxc_ipuv3_fb-unblank-displays-at-init.patch
@@ -0,0 +1,82 @@
+From 7f3ef83ef0fd353fba137853db89116c61f9d568 Mon Sep 17 00:00:00 2001
+From: Troy Kisky <tro...@bo...>
+Date: Mon, 29 Jul 2013 14:56:59 -0700
+Subject: [PATCH] mxc_ipuv3_fb: unblank displays at init
+
+---
+ drivers/video/fbdev/mxc/mxc_ipuv3_fb.c | 23 ++++++++++++++++++++---
+ 1 file changed, 20 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/video/fbdev/mxc/mxc_ipuv3_fb.c b/drivers/video/fbdev/mxc/mxc_ipuv3_fb.c
+index e61ef67..2dc42e4 100644
+--- a/drivers/video/fbdev/mxc/mxc_ipuv3_fb.c
++++ b/drivers/video/fbdev/mxc/mxc_ipuv3_fb.c
+@@ -1314,6 +1314,15 @@ static int mxcfb_set_par(struct fb_info *fbi)
+
+ dev_dbg(fbi->device, "pixclock = %ul Hz\n",
+ (u32) (PICOS2KHZ(fbi->var.pixclock) * 1000UL));
++ dev_info(fbi->device,"%dx%d h_sync,r,l: %d,%d,%d v_sync,l,u: %d,%d,%d pixclock=%u Hz\n",
++ fbi->var.xres, fbi->var.yres,
++ fbi->var.hsync_len,
++ fbi->var.right_margin,
++ fbi->var.left_margin,
++ fbi->var.vsync_len,
++ fbi->var.lower_margin,
++ fbi->var.upper_margin,
++ (u32)(PICOS2KHZ(fbi->var.pixclock) * 1000UL));
+
+ if (ipu_init_sync_panel(mxc_fbi->ipu, mxc_fbi->ipu_di,
+ (PICOS2KHZ(fbi->var.pixclock)) * 1000UL,
+@@ -3047,6 +3056,10 @@ static int mxcfb_option_setup(struct platform_device *pdev, struct fb_info *fbi)
+
+ name[5] += pdev->id;
+ if (fb_get_options(name, &options)) {
++ if (options && !strncmp(options, "off", 3)) {
++ dev_info(&pdev->dev, "%s is turned off!\n", name);
++ return -ENODEV;
++ }
+ dev_err(&pdev->dev, "Can't get fb option for %s!\n", name);
+ return -ENODEV;
+ }
+@@ -3340,8 +3353,10 @@ static void mxcfb_unsetup_overlay(struct fb_info *fbi_bg)
+ }
+
+ static bool ipu_usage[2][2];
+-static int ipu_test_set_usage(int ipu, int di)
++static int ipu_test_set_usage(unsigned ipu, unsigned di)
+ {
++ if ((ipu >= 2) || (di >= 2))
++ return -EINVAL;
+ if (ipu_usage[ipu][di])
+ return -EBUSY;
+ else
+@@ -3351,6 +3366,8 @@ static int ipu_test_set_usage(int ipu, int di)
+
+ static void ipu_clear_usage(int ipu, int di)
+ {
++ if ((ipu >= 2) || (di >= 2))
++ return;
+ ipu_usage[ipu][di] = false;
+ }
+
+@@ -3522,7 +3539,7 @@ static int mxcfb_probe(struct platform_device *pdev)
+ mxcfbi->ipu_alp_ch_irq = IPU_IRQ_BG_ALPHA_SYNC_EOF;
+ mxcfbi->ipu_ch = MEM_BG_SYNC;
+ /* Unblank the primary fb only by default */
+- if (pdev->id == 0)
++ if (1) //if (pdev->id == 0)
+ mxcfbi->cur_blank = mxcfbi->next_blank = FB_BLANK_UNBLANK;
+ else
+ mxcfbi->cur_blank = mxcfbi->next_blank = FB_BLANK_POWERDOWN;
+@@ -3563,7 +3580,7 @@ static int mxcfb_probe(struct platform_device *pdev)
+ mxcfbi->ipu_ch_nf_irq = IPU_IRQ_DC_SYNC_NFACK;
+ mxcfbi->ipu_alp_ch_irq = -1;
+ mxcfbi->ipu_ch = MEM_DC_SYNC;
+- mxcfbi->cur_blank = mxcfbi->next_blank = FB_BLANK_POWERDOWN;
++ mxcfbi->cur_blank = mxcfbi->next_blank = FB_BLANK_UNBLANK;
+
+ ret = mxcfb_register(fbi);
+ if (ret < 0)
+--
+2.7.3
+
diff --git a/patches/linux/4.1.mx6_legacy/0501-mxc_ipuv3_fb-move-fb_blank-call-after-registration.patch b/patches/linux/4.1.mx6_legacy/0501-mxc_ipuv3_fb-move-fb_blank-call-after-registration.patch
new file mode 100644
index 0000000..7270cc1
--- /dev/null
+++ b/patches/linux/4.1.mx6_legacy/0501-mxc_ipuv3_fb-move-fb_blank-call-after-registration.patch
@@ -0,0 +1,67 @@
+From ce7c8d0b2384ed0f4711f3bdca47024d3406cd29 Mon Sep 17 00:00:00 2001
+From: Troy Kisky <tro...@bo...>
+Date: Tue, 12 Apr 2016 12:35:25 -0700
+Subject: [PATCH] mxc_ipuv3_fb: move fb_blank call after registration
+
+If the fb_blank call is before being registered, then
+the node member of fb_info is wrong and the backlight
+code will not work correctly.
+
+Signed-off-by: Troy Kisky <tro...@bo...>
+---
+ drivers/video/fbdev/mxc/mxc_ipuv3_fb.c | 25 +++++++++++++------------
+ 1 file changed, 13 insertions(+), 12 deletions(-)
+
+diff --git a/drivers/video/fbdev/mxc/mxc_ipuv3_fb.c b/drivers/video/fbdev/mxc/mxc_ipuv3_fb.c
+index 9771a76..62035c8 100644
+--- a/drivers/video/fbdev/mxc/mxc_ipuv3_fb.c
++++ b/drivers/video/fbdev/mxc/mxc_ipuv3_fb.c
+@@ -3492,17 +3492,6 @@ static int mxcfb_register(struct fb_info *fbi)
+ dev_err(fbi->device, "Error fb_set_var ret:%d\n", ret);
+ goto err3;
+ }
+-
+- if (mxcfbi->next_blank == FB_BLANK_UNBLANK) {
+- console_lock();
+- ret = fb_blank(fbi, FB_BLANK_UNBLANK);
+- console_unlock();
+- if (ret < 0) {
+- dev_err(fbi->device,
+- "Error fb_blank ret:%d\n", ret);
+- goto err4;
+- }
+- }
+ } else {
+ /*
+ * Setup the channel again though bootloader
+@@ -3522,6 +3511,19 @@ static int mxcfb_register(struct fb_info *fbi)
+ if (ret < 0)
+ goto err5;
+
++ if (!mxcfbi->late_init) {
++ if (mxcfbi->next_blank == FB_BLANK_UNBLANK) {
++ console_lock();
++ ret = fb_blank(fbi, FB_BLANK_UNBLANK);
++ console_unlock();
++ if (ret < 0) {
++ dev_err(fbi->device,
++ "Error fb_blank ret:%d\n", ret);
++ unregister_framebuffer(fbi);
++ goto err5;
++ }
++ }
++ }
+ return ret;
+ err5:
+ if (mxcfbi->next_blank == FB_BLANK_UNBLANK) {
+@@ -3540,7 +3542,6 @@ err5:
+ }
+ console_unlock();
+ }
+-err4:
+ err3:
+ if (mxcfbi->ipu_alp_ch_irq != -1)
+ ipu_free_irq(mxcfbi->ipu, mxcfbi->ipu_alp_ch_irq, fbi);
+--
+2.7.3
+
diff --git a/patches/linux/4.1.mx6_legacy/0502-mxc_hdmi-enable-overflow-interrupt-after-initializat.patch b/patches/linux/4.1.mx6_legacy/0502-mxc_hdmi-enable-overflow-interrupt-after-initializat.patch
new file mode 100644
index 0000000..7579145
--- /dev/null
+++ b/patches/linux/4.1.mx6_legacy/0502-mxc_hdmi-enable-overflow-interrupt-after-initializat.patch
@@ -0,0 +1,40 @@
+From c8f43d0690a7ce400d68075c9548c26e99e35996 Mon Sep 17 00:00:00 2001
+From: Troy Kisky <tro...@bo...>
+Date: Thu, 9 Jan 2014 14:29:52 -0700
+Subject: [PATCH] mxc_hdmi: enable overflow interrupt after initialization
+ complete
+
+If enabled too early, a flood of interrupts can happen, and as
+console_lock is held, you cannot see any messages being printed.
+
+Signed-off-by: Troy Kisky <tro...@bo...>
+---
+ drivers/video/fbdev/mxc/mxc_hdmi.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/video/fbdev/mxc/mxc_hdmi.c b/drivers/video/fbdev/mxc/mxc_hdmi.c
+index 513ab16..9aed90b 100644
+--- a/drivers/video/fbdev/mxc/mxc_hdmi.c
++++ b/drivers/video/fbdev/mxc/mxc_hdmi.c
+@@ -1261,9 +1261,6 @@ static void mxc_hdmi_phy_init(struct mxc_hdmi *hdmi)
+ || (hdmi->blank != FB_BLANK_UNBLANK))
+ return;
+
+- if (!hdmi->hdmi_data.video_mode.mDVI)
+- hdmi_enable_overflow_interrupts();
+-
+ /*check csc whether needed activated in HDMI mode */
+ cscon = (isColorSpaceConversion(hdmi) &&
+ !hdmi->hdmi_data.video_mode.mDVI);
+@@ -1280,6 +1277,8 @@ static void mxc_hdmi_phy_init(struct mxc_hdmi *hdmi)
+ }
+
+ hdmi->phy_enabled = true;
++ if (!hdmi->hdmi_data.video_mode.mDVI)
++ hdmi_enable_overflow_interrupts();
+ }
+
+ static void hdmi_config_AVI(struct mxc_hdmi *hdmi)
+--
+2.7.3
+
diff --git a/patches/linux/3.14.mx6_legacy/0507-Add-support-for-DVI-monitors.patch b/patches/linux/4.1.mx6_legacy/0503-Add-support-for-DVI-monitors.patch
similarity index 58%
copy from patches/linux/3.14.mx6_legacy/0507-Add-support-for-DVI-monitors.patch
copy to patches/linux/4.1.mx6_legacy/0503-Add-support-for-DVI-monitors.patch
index 293a1fd..e341350 100644
--- a/patches/linux/3.14.mx6_legacy/0507-Add-support-for-DVI-monitors.patch
+++ b/patches/linux/4.1.mx6_legacy/0503-Add-support-for-DVI-monitors.patch
@@ -1,37 +1,37 @@
-From 3d62c205b713695bbf24fe253d6bebf78107a883 Mon Sep 17 00:00:00 2001
+From 557d2bada8538e0be980700a47aa38edaa114daa Mon Sep 17 00:00:00 2001
From: Robert Winkler <rob...@bo...>
Date: Wed, 8 Jan 2014 17:20:54 -0700
Subject: [PATCH] Add support for DVI monitors
Signed-off-by: Robert Winkler <rob...@bo...>
---
- drivers/video/mxc/mxc_hdmi.c | 100 ++++++++++++++++++-------------------------
- include/video/mxc_hdmi.h | 7 +++
+ drivers/video/fbdev/mxc/mxc_hdmi.c | 100 ++++++++++++++++---------------------
+ include/video/mxc_hdmi.h | 7 +++
2 files changed, 49 insertions(+), 58 deletions(-)
-Index: linux-imx_3.14.52_1.1.0_ga/drivers/video/mxc/mxc_hdmi.c
-===================================================================
---- linux-imx_3.14.52_1.1.0_ga.orig/drivers/video/mxc/mxc_hdmi.c
-+++ linux-imx_3.14.52_1.1.0_ga/drivers/video/mxc/mxc_hdmi.c
-@@ -170,7 +170,6 @@ struct mxc_hdmi {
- bool dft_mode_set;
- char *dft_mode_str;
- int default_bpp;
+diff --git a/drivers/video/fbdev/mxc/mxc_hdmi.c b/drivers/video/fbdev/mxc/mxc_hdmi.c
+index 9aed90b..01048b7 100644
+--- a/drivers/video/fbdev/mxc/mxc_hdmi.c
++++ b/drivers/video/fbdev/mxc/mxc_hdmi.c
+@@ -162,7 +162,6 @@ struct mxc_hdmi {
+ bool dft_mode_set;
+ char *dft_mode_str;
+ int default_bpp;
- u8 latest_intr_stat;
- bool irq_enabled;
- spinlock_t irq_lock;
- bool phy_enabled;
-@@ -1997,58 +1996,46 @@ static void hotplug_worker(struct work_s
- struct delayed_work *delay_work = to_delayed_work(work);
- struct mxc_hdmi *hdmi =
- container_of(delay_work, struct mxc_hdmi, hotplug_work);
+ bool irq_enabled;
+ spinlock_t irq_lock;
+ bool phy_enabled;
+@@ -1994,58 +1993,46 @@ static void hotplug_worker(struct work_struct *work)
+ struct delayed_work *delay_work = to_delayed_work(work);
+ struct mxc_hdmi *hdmi =
+ container_of(delay_work, struct mxc_hdmi, hotplug_work);
- u32 phy_int_stat, phy_int_pol, phy_int_mask;
- u8 val;
+ u32 hdmi_phy_stat0, hdmi_phy_pol0, hdmi_phy_mask0;
- unsigned long flags;
- char event_string[32];
- char *envp[] = { event_string, NULL };
-
+ unsigned long flags;
+ char event_string[32];
+ char *envp[] = { event_string, NULL };
+
- phy_int_stat = hdmi->latest_intr_stat;
- phy_int_pol = hdmi_readb(HDMI_PHY_POL0);
+ hdmi_phy_stat0 = hdmi_readb(HDMI_PHY_STAT0);
@@ -39,14 +39,14 @@ Index: linux-imx_3.14.52_1.1.0_ga/drivers/video/mxc/mxc_hdmi.c
+
+ dev_dbg(&hdmi->pdev->dev, "hdmi_phy_stat0=0x%x, hdmi_phy_pol0=0x%x\n",
+ hdmi_phy_stat0, hdmi_phy_pol0);
-
+
- dev_dbg(&hdmi->pdev->dev, "phy_int_stat=0x%x, phy_int_pol=0x%x\n",
- phy_int_stat, phy_int_pol);
+ /* Make HPD intr active low to capture unplug event or
+ * active high to capture plugin event */
+ hdmi_writeb((HDMI_DVI_STAT & ~hdmi_phy_stat0), HDMI_PHY_POL0);
-
- /* check cable status */
+
+ /* check cable status */
- if (phy_int_stat & HDMI_IH_PHY_STAT0_HPD) {
- /* cable connection changes */
- if (phy_int_pol & HDMI_PHY_HPD) {
@@ -58,162 +58,167 @@ Index: linux-imx_3.14.52_1.1.0_ga/drivers/video/mxc/mxc_hdmi.c
- val = hdmi_readb(HDMI_PHY_POL0);
- val &= ~HDMI_PHY_HPD;
- hdmi_writeb(val, HDMI_PHY_POL0);
-+ if (hdmi_phy_stat0 & HDMI_DVI_STAT) {
-+ /* Plugin event */
-+ dev_dbg(&hdmi->pdev->dev, "EVENT=plugin\n");
-+ mxc_hdmi_cable_connected(hdmi);
-
+-
- hdmi_set_cable_state(1);
-+ hdmi_set_cable_state(1);
-
+-
- sprintf(event_string, "EVENT=plugin");
- kobject_uevent_env(&hdmi->pdev->dev.kobj, KOBJ_CHANGE, envp);
-+ sprintf(event_string, "EVENT=plugin");
-+ kobject_uevent_env(&hdmi->pdev->dev.kobj, KOBJ_CHANGE, envp);
- #ifdef CONFIG_MXC_HDMI_CEC
+-#ifdef CONFIG_MXC_HDMI_CEC
- mxc_hdmi_cec_handle(0x80);
-+ mxc_hdmi_cec_handle(0x80);
- #endif
+-#endif
- } else if (!(phy_int_pol & HDMI_PHY_HPD)) {
- /* Plugout event */
- dev_dbg(&hdmi->pdev->dev, "EVENT=plugout\n");
- hdmi_set_cable_state(0);
- mxc_hdmi_abort_stream();
- mxc_hdmi_cable_disconnected(hdmi);
--
++ if (hdmi_phy_stat0 & HDMI_DVI_STAT) {
++ /* Plugin event */
++ dev_dbg(&hdmi->pdev->dev, "EVENT=plugin\n");
++ mxc_hdmi_cable_connected(hdmi);
+
- /* Make HPD intr active high to capture plugin event */
- val = hdmi_readb(HDMI_PHY_POL0);
- val |= HDMI_PHY_HPD;
- hdmi_writeb(val, HDMI_PHY_POL0);
++ hdmi_set_cable_state(1);
+
+- sprintf(event_string, "EVENT=plugout");
+- kobject_uevent_env(&hdmi->pdev->dev.kobj, KOBJ_CHANGE, envp);
++ sprintf(event_string, "EVENT=plugin");
++ kobject_uevent_env(&hdmi->pdev->dev.kobj, KOBJ_CHANGE, envp);
+ #ifdef CONFIG_MXC_HDMI_CEC
+- mxc_hdmi_cec_handle(0x100);
++ mxc_hdmi_cec_handle(0x80);
+ #endif
+ } else {
+ /* Plugout event */
+ dev_dbg(&hdmi->pdev->dev, "EVENT=plugout\n");
+ hdmi_set_cable_state(0);
+ mxc_hdmi_abort_stream();
+ mxc_hdmi_cable_disconnected(hdmi);
-
-- sprintf(event_string, "EVENT=plugout");
-- kobject_uevent_env(&hdmi->pdev->dev.kobj, KOBJ_CHANGE, envp);
+
+- } else
+- dev_dbg(&hdmi->pdev->dev, "EVENT=none?\n");
+ sprintf(event_string, "EVENT=plugout");
+ kobject_uevent_env(&hdmi->pdev->dev.kobj, KOBJ_CHANGE, envp);
- #ifdef CONFIG_MXC_HDMI_CEC
-- mxc_hdmi_cec_handle(0x100);
++#ifdef CONFIG_MXC_HDMI_CEC
+ mxc_hdmi_cec_handle(0x100);
- #endif
--
-- } else
-- dev_dbg(&hdmi->pdev->dev, "EVENT=none?\n");
- }
-
- /* Lock here to ensure full powerdown sequence
-@@ -2056,12 +2043,12 @@ static void hotplug_worker(struct work_s
- spin_lock_irqsave(&hdmi->irq_lock, flags);
-
- /* Re-enable HPD interrupts */
++#endif
+ }
+
+ /* Lock here to ensure full powerdown sequence
+@@ -2053,12 +2040,12 @@ static void hotplug_worker(struct work_struct *work)
+ spin_lock_irqsave(&hdmi->irq_lock, flags);
+
+ /* Re-enable HPD interrupts */
- phy_int_mask = hdmi_readb(HDMI_PHY_MASK0);
- phy_int_mask &= ~HDMI_PHY_HPD;
- hdmi_writeb(phy_int_mask, HDMI_PHY_MASK0);
+ hdmi_phy_mask0 = hdmi_readb(HDMI_PHY_MASK0);
+ hdmi_phy_mask0 &= ~HDMI_DVI_STAT;
+ hdmi_writeb(hdmi_phy_mask0, HDMI_PHY_MASK0);
-
- /* Unmute interrupts */
+
+ /* Unmute interrupts */
- hdmi_writeb(~HDMI_IH_MUTE_PHY_STAT0_HPD, HDMI_IH_MUTE_PHY_STAT0);
+ hdmi_writeb(~HDMI_DVI_IH_STAT, HDMI_IH_MUTE_PHY_STAT0);
-
- if (hdmi_readb(HDMI_IH_FC_STAT2) & HDMI_IH_FC_STAT2_OVERFLOW_MASK)
- mxc_hdmi_clear_overflow(hdmi);
-@@ -2087,7 +2074,7 @@ static void hdcp_hdp_worker(struct work_
+
+ if (hdmi_readb(HDMI_IH_FC_STAT2) & HDMI_IH_FC_STAT2_OVERFLOW_MASK)
+ mxc_hdmi_clear_overflow(hdmi);
+@@ -2084,7 +2071,7 @@ static void hdcp_hdp_worker(struct work_struct *work)
static irqreturn_t mxc_hdmi_hotplug(int irq, void *data)
{
- struct mxc_hdmi *hdmi = data;
+ struct mxc_hdmi *hdmi = data;
- u8 val, intr_stat;
+ u8 val;
- unsigned long flags;
-
- spin_lock_irqsave(&hdmi->irq_lock, flags);
-@@ -2109,25 +2096,22 @@ static irqreturn_t mxc_hdmi_hotplug(int
- * HDMI registers.
- */
- /* Capture status - used in hotplug_worker ISR */
+ unsigned long flags;
+
+ spin_lock_irqsave(&hdmi->irq_lock, flags);
+@@ -2106,25 +2093,22 @@ static irqreturn_t mxc_hdmi_hotplug(int irq, void *data)
+ * HDMI registers.
+ */
+ /* Capture status - used in hotplug_worker ISR */
- intr_stat = hdmi_readb(HDMI_IH_PHY_STAT0);
-
- if (intr_stat & HDMI_IH_PHY_STAT0_HPD) {
+ if (hdmi_readb(HDMI_IH_PHY_STAT0) & HDMI_DVI_IH_STAT) {
-
- dev_dbg(&hdmi->pdev->dev, "Hotplug interrupt received\n");
+
+ dev_dbg(&hdmi->pdev->dev, "Hotplug interrupt received\n");
- hdmi->latest_intr_stat = intr_stat;
-
- /* Mute interrupts until handled */
-
- val = hdmi_readb(HDMI_IH_MUTE_PHY_STAT0);
+
+ /* Mute interrupts until handled */
+
+ val = hdmi_readb(HDMI_IH_MUTE_PHY_STAT0);
- val |= HDMI_IH_MUTE_PHY_STAT0_HPD;
+ val |= HDMI_DVI_IH_STAT;
- hdmi_writeb(val, HDMI_IH_MUTE_PHY_STAT0);
-
- val = hdmi_readb(HDMI_PHY_MASK0);
+ hdmi_writeb(val, HDMI_IH_MUTE_PHY_STAT0);
+
+ val = hdmi_readb(HDMI_PHY_MASK0);
- val |= HDMI_PHY_HPD;
+ val |= HDMI_DVI_STAT;
- hdmi_writeb(val, HDMI_PHY_MASK0);
-
- /* Clear Hotplug interrupts */
+ hdmi_writeb(val, HDMI_PHY_MASK0);
+
+ /* Clear Hotplug interrupts */
- hdmi_writeb(HDMI_IH_PHY_STAT0_HPD, HDMI_IH_PHY_STAT0);
+ hdmi_writeb(HDMI_DVI_IH_STAT, HDMI_IH_PHY_STAT0);
-
- schedule_delayed_work(&(hdmi->hotplug_work), msecs_to_jiffies(20));
- }
-@@ -2279,13 +2263,13 @@ static void mxc_hdmi_fb_registered(struc
- HDMI_PHY_I2CM_CTLINT_ADDR);
-
- /* enable cable hot plug irq */
+
+ schedule_delayed_work(&(hdmi->hotplug_work), msecs_to_jiffies(20));
+ }
+@@ -2276,13 +2260,13 @@ static void mxc_hdmi_fb_registered(struct mxc_hdmi *hdmi)
+ HDMI_PHY_I2CM_CTLINT_ADDR);
+
+ /* enable cable hot plug irq */
- hdmi_writeb((u8)~HDMI_PHY_HPD, HDMI_PHY_MASK0);
+ hdmi_writeb((u8)~HDMI_DVI_STAT, HDMI_PHY_MASK0);
-
- /* Clear Hotplug interrupts */
+
+ /* Clear Hotplug interrupts */
- hdmi_writeb(HDMI_IH_PHY_STAT0_HPD, HDMI_IH_PHY_STAT0);
+ hdmi_writeb(HDMI_DVI_IH_STAT, HDMI_IH_PHY_STAT0);
-
- /* Unmute interrupts */
+
+ /* Unmute interrupts */
- hdmi_writeb(~HDMI_IH_MUTE_PHY_STAT0_HPD, HDMI_IH_MUTE_PHY_STAT0);
+ hdmi_writeb(~HDMI_DVI_IH_STAT, HDMI_IH_MUTE_PHY_STAT0);
-
- hdmi->fb_reg = true;
-
-@@ -2617,10 +2601,10 @@ static int mxc_hdmi_disp_init(struct mxc
-
- /* Configure registers related to HDMI interrupt
- * generation before registering IRQ. */
+
+ hdmi->fb_reg = true;
+
+@@ -2614,10 +2598,10 @@ static int mxc_hdmi_disp_init(struct mxc_dispdrv_handle *disp,
+
+ /* Configure registers related to HDMI interrupt
+ * generation before registering IRQ. */
- hdmi_writeb(HDMI_PHY_HPD, HDMI_PHY_POL0);
+ hdmi_writeb(HDMI_DVI_STAT, HDMI_PHY_POL0);
-
- /* Clear Hotplug interrupts */
+
+ /* Clear Hotplug interrupts */
- hdmi_writeb(HDMI_IH_PHY_STAT0_HPD, HDMI_IH_PHY_STAT0);
+ hdmi_writeb(HDMI_DVI_IH_STAT, HDMI_IH_PHY_STAT0);
-
- hdmi->nb.notifier_call = mxc_hdmi_fb_event;
- ret = fb_register_client(&hdmi->nb);
-Index: linux-imx_3.14.52_1.1.0_ga/include/video/mxc_hdmi.h
-===================================================================
---- linux-imx_3.14.52_1.1.0_ga.orig/include/video/mxc_hdmi.h
-+++ linux-imx_3.14.52_1.1.0_ga/include/video/mxc_hdmi.h
-@@ -580,6 +580,10 @@ enum {
- HDMI_IH_MUTE_PHY_STAT0_TX_PHY_LOCK = 0x2,
- HDMI_IH_MUTE_PHY_STAT0_HPD = 0x1,
-
+
+ hdmi->nb.notifier_call = mxc_hdmi_fb_event;
+ ret = fb_register_client(&hdmi->nb);
+diff --git a/include/video/mxc_hdmi.h b/include/video/mxc_hdmi.h
+index 79eb302..bb0d33a 100644
+--- a/include/video/mxc_hdmi.h
++++ b/include/video/mxc_hdmi.h
+@@ -573,6 +573,10 @@ enum {
+ HDMI_IH_MUTE_PHY_STAT0_TX_PHY_LOCK = 0x2,
+ HDMI_IH_MUTE_PHY_STAT0_HPD = 0x1,
+
+/* IH and IH_MUTE convenience macro RX_SENSE | HPD*/
+ HDMI_DVI_IH_STAT = 0x3D,
+
+
/* IH_AHBDMAAUD_STAT0 field values */
- HDMI_IH_AHBDMAAUD_STAT0_ERROR = 0x20,
- HDMI_IH_AHBDMAAUD_STAT0_LOST = 0x10,
-@@ -875,6 +879,9 @@ enum {
- HDMI_PHY_HPD = 0x02,
- HDMI_PHY_TX_PHY_LOCK = 0x01,
-
+ HDMI_IH_AHBDMAAUD_STAT0_ERROR = 0x20,
+ HDMI_IH_AHBDMAAUD_STAT0_LOST = 0x10,
+@@ -871,6 +875,9 @@ enum {
+ HDMI_PHY_HPD = 0x02,
+ HDMI_PHY_TX_PHY_LOCK = 0x01,
+
+/* HDMI STAT convenience RX_SENSE | HPD */
+ HDMI_DVI_STAT = 0xF2,
+
/* PHY_I2CM_SLAVE_ADDR field values */
- HDMI_PHY_I2CM_SLAVE_ADDR_PHY_GEN2 = 0x69,
- HDMI_PHY_I2CM_SLAVE_ADDR_HEAC_PHY = 0x49,
+ HDMI_PHY_I2CM_SLAVE_ADDR_PHY_GEN2 = 0x69,
+ HDMI_PHY_I2CM_SLAVE_ADDR_HEAC_PHY = 0x49,
+--
+2.7.3
+
hooks/post-receive
--
armadeus
|