提交 fb9bb182 编写于 作者: L Linus Torvalds

Merge tag 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM SoC bug fixes from Arnd Bergmann:
 "Four patches for arm-soc this week:

   - Kevin Hilman is no longer reachable under his previous email
     address.  He submitted the patch earlier, but nobody felt
     responsible to pick it up.

   - One Tegra fix for an incorect register address in device tree.

   - IMX multiplatform support exposes a configuration option that leads
     to unbootable kernels on all other machines and that needs to
     depend on that platform.

   - A nontrivial bug fix for the setup of the mxs video output."

* tag 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
  MAINTAINERS: update email address for Kevin Hilman
  ARM: tegra: fix register address of slink controller
  ARM: imx: add dependency check for DEBUG_IMX_UART_PORT
  ARM: video: mxs: Fix mxsfb misconfiguring VDCTRL0
...@@ -5683,7 +5683,7 @@ S: Maintained ...@@ -5683,7 +5683,7 @@ S: Maintained
F: arch/arm/*omap*/*clock* F: arch/arm/*omap*/*clock*
OMAP POWER MANAGEMENT SUPPORT OMAP POWER MANAGEMENT SUPPORT
M: Kevin Hilman <khilman@ti.com> M: Kevin Hilman <khilman@deeprootsystems.com>
L: linux-omap@vger.kernel.org L: linux-omap@vger.kernel.org
S: Maintained S: Maintained
F: arch/arm/*omap*/*pm* F: arch/arm/*omap*/*pm*
...@@ -5777,7 +5777,7 @@ F: arch/arm/*omap*/usb* ...@@ -5777,7 +5777,7 @@ F: arch/arm/*omap*/usb*
OMAP GPIO DRIVER OMAP GPIO DRIVER
M: Santosh Shilimkar <santosh.shilimkar@ti.com> M: Santosh Shilimkar <santosh.shilimkar@ti.com>
M: Kevin Hilman <khilman@ti.com> M: Kevin Hilman <khilman@deeprootsystems.com>
L: linux-omap@vger.kernel.org L: linux-omap@vger.kernel.org
S: Maintained S: Maintained
F: drivers/gpio/gpio-omap.c F: drivers/gpio/gpio-omap.c
...@@ -7173,7 +7173,7 @@ F: arch/arm/mach-s3c2410/bast-irq.c ...@@ -7173,7 +7173,7 @@ F: arch/arm/mach-s3c2410/bast-irq.c
TI DAVINCI MACHINE SUPPORT TI DAVINCI MACHINE SUPPORT
M: Sekhar Nori <nsekhar@ti.com> M: Sekhar Nori <nsekhar@ti.com>
M: Kevin Hilman <khilman@ti.com> M: Kevin Hilman <khilman@deeprootsystems.com>
L: davinci-linux-open-source@linux.davincidsp.com (moderated for non-subscribers) L: davinci-linux-open-source@linux.davincidsp.com (moderated for non-subscribers)
T: git git://gitorious.org/linux-davinci/linux-davinci.git T: git git://gitorious.org/linux-davinci/linux-davinci.git
Q: http://patchwork.kernel.org/project/linux-davinci/list/ Q: http://patchwork.kernel.org/project/linux-davinci/list/
......
...@@ -495,6 +495,7 @@ config DEBUG_IMX_UART_PORT ...@@ -495,6 +495,7 @@ config DEBUG_IMX_UART_PORT
DEBUG_IMX53_UART || \ DEBUG_IMX53_UART || \
DEBUG_IMX6Q_UART DEBUG_IMX6Q_UART
default 1 default 1
depends on ARCH_MXC
help help
Choose UART port on which kernel low-level debug messages Choose UART port on which kernel low-level debug messages
should be output. should be output.
......
...@@ -385,7 +385,7 @@ ...@@ -385,7 +385,7 @@
spi@7000d800 { spi@7000d800 {
compatible = "nvidia,tegra20-slink"; compatible = "nvidia,tegra20-slink";
reg = <0x7000d480 0x200>; reg = <0x7000d800 0x200>;
interrupts = <0 83 0x04>; interrupts = <0 83 0x04>;
nvidia,dma-request-selector = <&apbdma 17>; nvidia,dma-request-selector = <&apbdma 17>;
#address-cells = <1>; #address-cells = <1>;
......
...@@ -372,7 +372,7 @@ ...@@ -372,7 +372,7 @@
spi@7000d800 { spi@7000d800 {
compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink"; compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
reg = <0x7000d480 0x200>; reg = <0x7000d800 0x200>;
interrupts = <0 83 0x04>; interrupts = <0 83 0x04>;
nvidia,dma-request-selector = <&apbdma 17>; nvidia,dma-request-selector = <&apbdma 17>;
#address-cells = <1>; #address-cells = <1>;
......
...@@ -41,8 +41,6 @@ static struct fb_videomode mx23evk_video_modes[] = { ...@@ -41,8 +41,6 @@ static struct fb_videomode mx23evk_video_modes[] = {
.lower_margin = 4, .lower_margin = 4,
.hsync_len = 1, .hsync_len = 1,
.vsync_len = 1, .vsync_len = 1,
.sync = FB_SYNC_DATA_ENABLE_HIGH_ACT |
FB_SYNC_DOTCLK_FAILING_ACT,
}, },
}; };
...@@ -59,8 +57,6 @@ static struct fb_videomode mx28evk_video_modes[] = { ...@@ -59,8 +57,6 @@ static struct fb_videomode mx28evk_video_modes[] = {
.lower_margin = 10, .lower_margin = 10,
.hsync_len = 10, .hsync_len = 10,
.vsync_len = 10, .vsync_len = 10,
.sync = FB_SYNC_DATA_ENABLE_HIGH_ACT |
FB_SYNC_DOTCLK_FAILING_ACT,
}, },
}; };
...@@ -77,7 +73,6 @@ static struct fb_videomode m28evk_video_modes[] = { ...@@ -77,7 +73,6 @@ static struct fb_videomode m28evk_video_modes[] = {
.lower_margin = 45, .lower_margin = 45,
.hsync_len = 1, .hsync_len = 1,
.vsync_len = 1, .vsync_len = 1,
.sync = FB_SYNC_DATA_ENABLE_HIGH_ACT,
}, },
}; };
...@@ -94,9 +89,7 @@ static struct fb_videomode apx4devkit_video_modes[] = { ...@@ -94,9 +89,7 @@ static struct fb_videomode apx4devkit_video_modes[] = {
.lower_margin = 13, .lower_margin = 13,
.hsync_len = 48, .hsync_len = 48,
.vsync_len = 3, .vsync_len = 3,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT | .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
FB_SYNC_DATA_ENABLE_HIGH_ACT |
FB_SYNC_DOTCLK_FAILING_ACT,
}, },
}; };
...@@ -113,9 +106,7 @@ static struct fb_videomode apf28dev_video_modes[] = { ...@@ -113,9 +106,7 @@ static struct fb_videomode apf28dev_video_modes[] = {
.lower_margin = 0x15, .lower_margin = 0x15,
.hsync_len = 64, .hsync_len = 64,
.vsync_len = 4, .vsync_len = 4,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT | .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
FB_SYNC_DATA_ENABLE_HIGH_ACT |
FB_SYNC_DOTCLK_FAILING_ACT,
}, },
}; };
...@@ -132,7 +123,6 @@ static struct fb_videomode cfa10049_video_modes[] = { ...@@ -132,7 +123,6 @@ static struct fb_videomode cfa10049_video_modes[] = {
.lower_margin = 2, .lower_margin = 2,
.hsync_len = 15, .hsync_len = 15,
.vsync_len = 15, .vsync_len = 15,
.sync = FB_SYNC_DATA_ENABLE_HIGH_ACT
}, },
}; };
...@@ -259,6 +249,8 @@ static void __init imx23_evk_init(void) ...@@ -259,6 +249,8 @@ static void __init imx23_evk_init(void)
mxsfb_pdata.mode_count = ARRAY_SIZE(mx23evk_video_modes); mxsfb_pdata.mode_count = ARRAY_SIZE(mx23evk_video_modes);
mxsfb_pdata.default_bpp = 32; mxsfb_pdata.default_bpp = 32;
mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT; mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT;
mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT |
MXSFB_SYNC_DOTCLK_FAILING_ACT;
} }
static inline void enable_clk_enet_out(void) static inline void enable_clk_enet_out(void)
...@@ -278,6 +270,8 @@ static void __init imx28_evk_init(void) ...@@ -278,6 +270,8 @@ static void __init imx28_evk_init(void)
mxsfb_pdata.mode_count = ARRAY_SIZE(mx28evk_video_modes); mxsfb_pdata.mode_count = ARRAY_SIZE(mx28evk_video_modes);
mxsfb_pdata.default_bpp = 32; mxsfb_pdata.default_bpp = 32;
mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT; mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT;
mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT |
MXSFB_SYNC_DOTCLK_FAILING_ACT;
mxs_saif_clkmux_select(MXS_DIGCTL_SAIF_CLKMUX_EXTMSTR0); mxs_saif_clkmux_select(MXS_DIGCTL_SAIF_CLKMUX_EXTMSTR0);
} }
...@@ -297,6 +291,7 @@ static void __init m28evk_init(void) ...@@ -297,6 +291,7 @@ static void __init m28evk_init(void)
mxsfb_pdata.mode_count = ARRAY_SIZE(m28evk_video_modes); mxsfb_pdata.mode_count = ARRAY_SIZE(m28evk_video_modes);
mxsfb_pdata.default_bpp = 16; mxsfb_pdata.default_bpp = 16;
mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT; mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT;
mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT;
} }
static void __init sc_sps1_init(void) static void __init sc_sps1_init(void)
...@@ -322,6 +317,8 @@ static void __init apx4devkit_init(void) ...@@ -322,6 +317,8 @@ static void __init apx4devkit_init(void)
mxsfb_pdata.mode_count = ARRAY_SIZE(apx4devkit_video_modes); mxsfb_pdata.mode_count = ARRAY_SIZE(apx4devkit_video_modes);
mxsfb_pdata.default_bpp = 32; mxsfb_pdata.default_bpp = 32;
mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT; mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT;
mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT |
MXSFB_SYNC_DOTCLK_FAILING_ACT;
} }
#define ENET0_MDC__GPIO_4_0 MXS_GPIO_NR(4, 0) #define ENET0_MDC__GPIO_4_0 MXS_GPIO_NR(4, 0)
...@@ -407,6 +404,7 @@ static void __init cfa10049_init(void) ...@@ -407,6 +404,7 @@ static void __init cfa10049_init(void)
mxsfb_pdata.mode_count = ARRAY_SIZE(cfa10049_video_modes); mxsfb_pdata.mode_count = ARRAY_SIZE(cfa10049_video_modes);
mxsfb_pdata.default_bpp = 32; mxsfb_pdata.default_bpp = 32;
mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT; mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT;
mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT;
} }
static void __init cfa10037_init(void) static void __init cfa10037_init(void)
...@@ -423,6 +421,8 @@ static void __init apf28_init(void) ...@@ -423,6 +421,8 @@ static void __init apf28_init(void)
mxsfb_pdata.mode_count = ARRAY_SIZE(apf28dev_video_modes); mxsfb_pdata.mode_count = ARRAY_SIZE(apf28dev_video_modes);
mxsfb_pdata.default_bpp = 16; mxsfb_pdata.default_bpp = 16;
mxsfb_pdata.ld_intf_width = STMLCDIF_16BIT; mxsfb_pdata.ld_intf_width = STMLCDIF_16BIT;
mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT |
MXSFB_SYNC_DOTCLK_FAILING_ACT;
} }
static void __init mxs_machine_init(void) static void __init mxs_machine_init(void)
......
...@@ -169,6 +169,7 @@ struct mxsfb_info { ...@@ -169,6 +169,7 @@ struct mxsfb_info {
unsigned dotclk_delay; unsigned dotclk_delay;
const struct mxsfb_devdata *devdata; const struct mxsfb_devdata *devdata;
int mapped; int mapped;
u32 sync;
}; };
#define mxsfb_is_v3(host) (host->devdata->ipversion == 3) #define mxsfb_is_v3(host) (host->devdata->ipversion == 3)
...@@ -456,9 +457,9 @@ static int mxsfb_set_par(struct fb_info *fb_info) ...@@ -456,9 +457,9 @@ static int mxsfb_set_par(struct fb_info *fb_info)
vdctrl0 |= VDCTRL0_HSYNC_ACT_HIGH; vdctrl0 |= VDCTRL0_HSYNC_ACT_HIGH;
if (fb_info->var.sync & FB_SYNC_VERT_HIGH_ACT) if (fb_info->var.sync & FB_SYNC_VERT_HIGH_ACT)
vdctrl0 |= VDCTRL0_VSYNC_ACT_HIGH; vdctrl0 |= VDCTRL0_VSYNC_ACT_HIGH;
if (fb_info->var.sync & FB_SYNC_DATA_ENABLE_HIGH_ACT) if (host->sync & MXSFB_SYNC_DATA_ENABLE_HIGH_ACT)
vdctrl0 |= VDCTRL0_ENABLE_ACT_HIGH; vdctrl0 |= VDCTRL0_ENABLE_ACT_HIGH;
if (fb_info->var.sync & FB_SYNC_DOTCLK_FAILING_ACT) if (host->sync & MXSFB_SYNC_DOTCLK_FAILING_ACT)
vdctrl0 |= VDCTRL0_DOTCLK_ACT_FAILING; vdctrl0 |= VDCTRL0_DOTCLK_ACT_FAILING;
writel(vdctrl0, host->base + LCDC_VDCTRL0); writel(vdctrl0, host->base + LCDC_VDCTRL0);
...@@ -861,6 +862,8 @@ static int mxsfb_probe(struct platform_device *pdev) ...@@ -861,6 +862,8 @@ static int mxsfb_probe(struct platform_device *pdev)
INIT_LIST_HEAD(&fb_info->modelist); INIT_LIST_HEAD(&fb_info->modelist);
host->sync = pdata->sync;
ret = mxsfb_init_fbinfo(host); ret = mxsfb_init_fbinfo(host);
if (ret != 0) if (ret != 0)
goto error_init_fb; goto error_init_fb;
......
...@@ -24,8 +24,8 @@ ...@@ -24,8 +24,8 @@
#define STMLCDIF_18BIT 2 /** pixel data bus to the display is of 18 bit width */ #define STMLCDIF_18BIT 2 /** pixel data bus to the display is of 18 bit width */
#define STMLCDIF_24BIT 3 /** pixel data bus to the display is of 24 bit width */ #define STMLCDIF_24BIT 3 /** pixel data bus to the display is of 24 bit width */
#define FB_SYNC_DATA_ENABLE_HIGH_ACT (1 << 6) #define MXSFB_SYNC_DATA_ENABLE_HIGH_ACT (1 << 6)
#define FB_SYNC_DOTCLK_FAILING_ACT (1 << 7) /* failing/negtive edge sampling */ #define MXSFB_SYNC_DOTCLK_FAILING_ACT (1 << 7) /* failing/negtive edge sampling */
struct mxsfb_platform_data { struct mxsfb_platform_data {
struct fb_videomode *mode_list; struct fb_videomode *mode_list;
...@@ -44,6 +44,9 @@ struct mxsfb_platform_data { ...@@ -44,6 +44,9 @@ struct mxsfb_platform_data {
* allocated. If specified,fb_size must also be specified. * allocated. If specified,fb_size must also be specified.
* fb_phys must be unused by Linux. * fb_phys must be unused by Linux.
*/ */
u32 sync; /* sync mask, contains MXSFB specifics not
* carried in fb_info->var.sync
*/
}; };
#endif /* __LINUX_MXSFB_H */ #endif /* __LINUX_MXSFB_H */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册