From 134d22eb58b72c4fe5e6ca3ebcaccd4975f06842 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Fri, 9 Sep 2011 16:08:02 +0200 Subject: sh_mobile_hdmi: Remove platform data lcd_dev field The field is used to print debug messages only. Remove it. Signed-off-by: Laurent Pinchart --- arch/arm/mach-shmobile/board-mackerel.c | 1 - 1 file changed, 1 deletion(-) (limited to 'arch/arm/mach-shmobile/board-mackerel.c') diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index a2813247b455..1e0229390197 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c @@ -480,7 +480,6 @@ static struct platform_device hdmi_lcdc_device = { static struct sh_mobile_hdmi_info hdmi_info = { .lcd_chan = &hdmi_lcdc_info.ch[0], - .lcd_dev = &hdmi_lcdc_device.dev, .flags = HDMI_SND_SRC_SPDIF, }; -- cgit v1.2.1 From a1022adbdff45c76dea27f89cdb3d77e76b75620 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 11 Sep 2011 23:30:45 +0200 Subject: arm: mach-shmobile: Add LCDC tx_dev field to platform data Make sure the transmitter devices get registered before the associated LCDC devices. Signed-off-by: Laurent Pinchart --- arch/arm/mach-shmobile/board-mackerel.c | 66 +++++++++++++++++---------------- 1 file changed, 35 insertions(+), 31 deletions(-) (limited to 'arch/arm/mach-shmobile/board-mackerel.c') diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index 1e0229390197..740f022fd7be 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c @@ -426,6 +426,38 @@ static struct platform_device lcdc_device = { }, }; +/* HDMI */ +static struct sh_mobile_lcdc_info hdmi_lcdc_info; + +static struct sh_mobile_hdmi_info hdmi_info = { + .lcd_chan = &hdmi_lcdc_info.ch[0], + .flags = HDMI_SND_SRC_SPDIF, +}; + +static struct resource hdmi_resources[] = { + [0] = { + .name = "HDMI", + .start = 0xe6be0000, + .end = 0xe6be00ff, + .flags = IORESOURCE_MEM, + }, + [1] = { + /* There's also an HDMI interrupt on INTCS @ 0x18e0 */ + .start = evt2irq(0x17e0), + .flags = IORESOURCE_IRQ, + }, +}; + +static struct platform_device hdmi_device = { + .name = "sh-mobile-hdmi", + .num_resources = ARRAY_SIZE(hdmi_resources), + .resource = hdmi_resources, + .id = -1, + .dev = { + .platform_data = &hdmi_info, + }, +}; + static struct sh_mobile_meram_cfg hdmi_meram_cfg = { .icb[0] = { .marker_icb = 30, @@ -440,7 +472,7 @@ static struct sh_mobile_meram_cfg hdmi_meram_cfg = { .meram_size = 0x100, }, }; -/* HDMI */ + static struct sh_mobile_lcdc_info hdmi_lcdc_info = { .meram_dev = &mackerel_meram_info, .clock_source = LCDC_CLK_EXTERNAL, @@ -451,6 +483,7 @@ static struct sh_mobile_lcdc_info hdmi_lcdc_info = { .clock_divider = 1, .flags = LCDC_FLAGS_DWPOL, .meram_cfg = &hdmi_meram_cfg, + .tx_dev = &hdmi_device, } }; @@ -478,35 +511,6 @@ static struct platform_device hdmi_lcdc_device = { }, }; -static struct sh_mobile_hdmi_info hdmi_info = { - .lcd_chan = &hdmi_lcdc_info.ch[0], - .flags = HDMI_SND_SRC_SPDIF, -}; - -static struct resource hdmi_resources[] = { - [0] = { - .name = "HDMI", - .start = 0xe6be0000, - .end = 0xe6be00ff, - .flags = IORESOURCE_MEM, - }, - [1] = { - /* There's also an HDMI interrupt on INTCS @ 0x18e0 */ - .start = evt2irq(0x17e0), - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device hdmi_device = { - .name = "sh-mobile-hdmi", - .num_resources = ARRAY_SIZE(hdmi_resources), - .resource = hdmi_resources, - .id = -1, - .dev = { - .platform_data = &hdmi_info, - }, -}; - static struct platform_device fsi_hdmi_device = { .name = "sh_fsi2_b_hdmi", }; @@ -1275,8 +1279,8 @@ static struct platform_device *mackerel_devices[] __initdata = { &sh_mmcif_device, &ceu_device, &mackerel_camera, - &hdmi_lcdc_device, &hdmi_device, + &hdmi_lcdc_device, &meram_device, }; -- cgit v1.2.1 From e2543c5ab299c67ddfb73a36eca4da6574259ab9 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 11 Sep 2011 23:30:45 +0200 Subject: arm: mach-shmobile: Don't initialize the hdmi_info lcd_chan field The field is unused and will be removed. Don't initialize it. Signed-off-by: Laurent Pinchart --- arch/arm/mach-shmobile/board-mackerel.c | 3 --- 1 file changed, 3 deletions(-) (limited to 'arch/arm/mach-shmobile/board-mackerel.c') diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index 740f022fd7be..f275a817939c 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c @@ -427,10 +427,7 @@ static struct platform_device lcdc_device = { }; /* HDMI */ -static struct sh_mobile_lcdc_info hdmi_lcdc_info; - static struct sh_mobile_hdmi_info hdmi_info = { - .lcd_chan = &hdmi_lcdc_info.ch[0], .flags = HDMI_SND_SRC_SPDIF, }; -- cgit v1.2.1 From 018882aa66f5110478edc14e6c3fecc2b46ca0c0 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 11 Sep 2011 22:59:04 +0200 Subject: fbdev: sh_mobile_lcdc: Remove board configuration board_data field The field is unused, remove it. Update board code accordingly. Signed-off-by: Laurent Pinchart --- arch/arm/mach-shmobile/board-mackerel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'arch/arm/mach-shmobile/board-mackerel.c') diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index f275a817939c..d366e7873a34 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c @@ -351,14 +351,14 @@ static struct fb_videomode mackerel_lcdc_modes[] = { }, }; -static int mackerel_set_brightness(void *board_data, int brightness) +static int mackerel_set_brightness(int brightness) { gpio_set_value(GPIO_PORT31, brightness); return 0; } -static int mackerel_get_brightness(void *board_data) +static int mackerel_get_brightness(void) { return gpio_get_value(GPIO_PORT31); } -- cgit v1.2.1 From 43059b0f46f814b4152f327c701d079253904540 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 11 Sep 2011 22:59:04 +0200 Subject: fbdev: sh_mobile_lcdc: Move brightness ops to sh_mobile_lcdc_bl_info Update board code accordingly. Signed-off-by: Laurent Pinchart --- arch/arm/mach-shmobile/board-mackerel.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'arch/arm/mach-shmobile/board-mackerel.c') diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index d366e7873a34..123232329a88 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c @@ -391,13 +391,11 @@ static struct sh_mobile_lcdc_info lcdc_info = { .flags = 0, .lcd_size_cfg.width = 152, .lcd_size_cfg.height = 91, - .board_cfg = { - .set_brightness = mackerel_set_brightness, - .get_brightness = mackerel_get_brightness, - }, .bl_info = { .name = "sh_mobile_lcdc_bl", .max_brightness = 1, + .set_brightness = mackerel_set_brightness, + .get_brightness = mackerel_get_brightness, }, .meram_cfg = &lcd_meram_cfg, } -- cgit v1.2.1 From afaad83b9c0d24eac88535cc5a8c6019f0c45bcb Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 11 Sep 2011 22:59:04 +0200 Subject: fbdev: sh_mobile_lcdc: Merge board_cfg and lcd_size_cfg into panel_cfg Update board code accordingly. Signed-off-by: Laurent Pinchart --- arch/arm/mach-shmobile/board-mackerel.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'arch/arm/mach-shmobile/board-mackerel.c') diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index 123232329a88..9228cc555b46 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c @@ -389,8 +389,10 @@ static struct sh_mobile_lcdc_info lcdc_info = { .interface_type = RGB24, .clock_divider = 3, .flags = 0, - .lcd_size_cfg.width = 152, - .lcd_size_cfg.height = 91, + .panel_cfg = { + .width = 152, + .height = 91, + }, .bl_info = { .name = "sh_mobile_lcdc_bl", .max_brightness = 1, -- cgit v1.2.1 From 93ff259846a774ff37dca54792c5a3a6425882c0 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Tue, 29 Nov 2011 14:33:41 +0100 Subject: fbdev: sh_mobile_lcdc: Rename (lcd|num)_cfg (lcd|num)_modes The struct sh_mobile_lcdc_chan_cfg platform data contains a list of video modes. Name the lcd_cfg and num_cfg fields to reflect that they describe video modes. Signed-off-by: Laurent Pinchart --- arch/arm/mach-shmobile/board-mackerel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'arch/arm/mach-shmobile/board-mackerel.c') diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index 9228cc555b46..aff7df8ccc30 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c @@ -384,8 +384,8 @@ static struct sh_mobile_lcdc_info lcdc_info = { .ch[0] = { .chan = LCDC_CHAN_MAINLCD, .fourcc = V4L2_PIX_FMT_RGB565, - .lcd_cfg = mackerel_lcdc_modes, - .num_cfg = ARRAY_SIZE(mackerel_lcdc_modes), + .lcd_modes = mackerel_lcdc_modes, + .num_modes = ARRAY_SIZE(mackerel_lcdc_modes), .interface_type = RGB24, .clock_divider = 3, .flags = 0, -- cgit v1.2.1 From e71504d579945932e283b7d4ea07b4942248bc20 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 11 Sep 2011 23:30:45 +0200 Subject: arm: mach-shmobile: Split MERAM resources into regs and meram The MERAM resource currently combines both the registers space and the MERAM space. Only the register space needs to be ioremapped, split the resource to make that possible. Signed-off-by: Laurent Pinchart --- arch/arm/mach-shmobile/board-mackerel.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'arch/arm/mach-shmobile/board-mackerel.c') diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index aff7df8ccc30..17ba6bccf97b 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c @@ -318,8 +318,14 @@ static struct sh_mobile_meram_info mackerel_meram_info = { static struct resource meram_resources[] = { [0] = { - .name = "MERAM", + .name = "regs", .start = 0xe8000000, + .end = 0xe807ffff, + .flags = IORESOURCE_MEM, + }, + [1] = { + .name = "meram", + .start = 0xe8080000, .end = 0xe81fffff, .flags = IORESOURCE_MEM, }, -- cgit v1.2.1 From 974d250be2c70c7bf899275b23b241685d4ed7f8 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 19 Sep 2011 11:40:31 +0200 Subject: fbdev: sh_mobile_meram: Use genalloc to manage MERAM allocation Instead of requiring the users to hardcode MERAM allocation in platform data, allocate blocks at runtime using genalloc. Signed-off-by: Laurent Pinchart --- arch/arm/mach-shmobile/board-mackerel.c | 4 ---- 1 file changed, 4 deletions(-) (limited to 'arch/arm/mach-shmobile/board-mackerel.c') diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index 17ba6bccf97b..0c0fd4f0c308 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c @@ -373,13 +373,11 @@ static struct sh_mobile_meram_cfg lcd_meram_cfg = { .icb[0] = { .marker_icb = 28, .cache_icb = 24, - .meram_offset = 0x0, .meram_size = 0x40, }, .icb[1] = { .marker_icb = 29, .cache_icb = 25, - .meram_offset = 0x40, .meram_size = 0x40, }, }; @@ -465,13 +463,11 @@ static struct sh_mobile_meram_cfg hdmi_meram_cfg = { .icb[0] = { .marker_icb = 30, .cache_icb = 26, - .meram_offset = 0x80, .meram_size = 0x100, }, .icb[1] = { .marker_icb = 31, .cache_icb = 27, - .meram_offset = 0x180, .meram_size = 0x100, }, }; -- cgit v1.2.1 From b0a49d98fa4315c17a098cb60ccc626645ed9756 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 11 Sep 2011 23:30:45 +0200 Subject: arm: mach-shmobile: Don't set MERAM ICB numbers in platform data The marker and cache ICBs are now allocated automatically, there's no need to specify them manually anymore. Signed-off-by: Laurent Pinchart --- arch/arm/mach-shmobile/board-mackerel.c | 8 -------- 1 file changed, 8 deletions(-) (limited to 'arch/arm/mach-shmobile/board-mackerel.c') diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index 0c0fd4f0c308..a6ad4a4bd6f7 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c @@ -371,13 +371,9 @@ static int mackerel_get_brightness(void) static struct sh_mobile_meram_cfg lcd_meram_cfg = { .icb[0] = { - .marker_icb = 28, - .cache_icb = 24, .meram_size = 0x40, }, .icb[1] = { - .marker_icb = 29, - .cache_icb = 25, .meram_size = 0x40, }, }; @@ -461,13 +457,9 @@ static struct platform_device hdmi_device = { static struct sh_mobile_meram_cfg hdmi_meram_cfg = { .icb[0] = { - .marker_icb = 30, - .cache_icb = 26, .meram_size = 0x100, }, .icb[1] = { - .marker_icb = 31, - .cache_icb = 27, .meram_size = 0x100, }, }; -- cgit v1.2.1 From c241a0e0c27882ecab1df57a44d202db6e02012c Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 11 Sep 2011 23:30:45 +0200 Subject: arm: mach-shmobile: Constify sh_mobile_meram_cfg structures The structures, passed to the sh_mobile_lcdcfb driver through platform data, are read only by the driver. Make them const. Signed-off-by: Laurent Pinchart --- arch/arm/mach-shmobile/board-mackerel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'arch/arm/mach-shmobile/board-mackerel.c') diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index a6ad4a4bd6f7..e761b280a602 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c @@ -369,7 +369,7 @@ static int mackerel_get_brightness(void) return gpio_get_value(GPIO_PORT31); } -static struct sh_mobile_meram_cfg lcd_meram_cfg = { +static const struct sh_mobile_meram_cfg lcd_meram_cfg = { .icb[0] = { .meram_size = 0x40, }, @@ -455,7 +455,7 @@ static struct platform_device hdmi_device = { }, }; -static struct sh_mobile_meram_cfg hdmi_meram_cfg = { +static const struct sh_mobile_meram_cfg hdmi_meram_cfg = { .icb[0] = { .meram_size = 0x100, }, -- cgit v1.2.1