* [GIT PULL] genesis updates for 2.6.37-rc1
@ 2010-10-25 1:48 Paul Mundt
2010-10-28 10:09 ` Russell King - ARM Linux
0 siblings, 1 reply; 3+ messages in thread
From: Paul Mundt @ 2010-10-25 1:48 UTC (permalink / raw)
To: linux-arm-kernel
Please pull from:
master.kernel.org:/pub/scm/linux/kernel/git/lethal/genesis-2.6.git
Which contains:
Guennadi Liakhovetski (22):
fbdev: sh_mobile_lcdcfb: use fb_videomode_to_var() instead of open-coding
fbdev: sh_mobile_hdmi: simplify the EDID reading procedure
fbdev: sh_mobile_lcdcfb: fix more error paths
fbdev: sh_mobile_lcdcfb: minor simplifications and clean up
fbdev: sh_mobile_lcdcfb: Support multiple video modes in platform data
fbdev: sh_mobile_lcdcfb: fix notifier callback return codes
fbdev: sh_mobile_lcdcfb: allocate memory, sufficient for the biggest mode
fbdev: sh_mobile_hdmi: add initial support for modes, other than 720p
fbdev: sh_mobile_hdmi: enable "external" mode
fbdev: sh_mobile_hdmi: implement locking
fbdev: sh_mobile_lcdcfb: separate display variable data from framebuffer data
fbdev: sh_mobile_hdmi: cosmetic improvements
fbdev: sh_mobile_hdmi: improve HDMI PHY parameters for high resolutions
fbdev: sh_mobile_hdmi: support hot-plugging of different HDMI / DVI displays
ARM: mach-shmobile: add two more video modes for HDMI
fbdev: sh_mobile_lcdc: reconfigure the framebuffer, when free
sh: fix an ms7724se compile breakage
fbdev: sh_mobile_lcdc: make platform videomode table optional
ARM: mach-shmobile: remove videomodes from ap4evb platform data
fbdev: sh_mobile_lcdc: relax .check_var() HSYNC test
fbdev: sh_mobile_hdmi: add support for the "video=" kernel command line option
ARM: arch-shmobile: Add IMX074 camera sensor data to the AP4EVB platform
Kuninori Morimoto (8):
ARM: mach-shmobile: ap4evb: modify tsc2007 platform settings
fbdev: sh-mobile_hdmi: remove un-necessity settings
ARM: mach-shmobile: pfc-sh7372: modify wrong comment
ARM: mach-shmobile: sh7372: modify INTCS table
ARM: mach-shmobile: ap4evb: modify touchpanel judgment condition
ARM: mach-shmobile: modify wrong array size of div6_reparent_clks
ARM: mach-shmobile: clock-sh7372: add sh7372_ prefix to global clocks
ARM: mach-shmobile: clock-sh7372: FSI parent select support
Magnus Damm (6):
ARM: mach-shmobile: Extend AP4EVB LCD comments
ARM: mach-shmobile: Use evt2irq() for sh7372 DMAC
ARM: shmobile: break out sh7372 platform devices
ARM: shmobile: make AP4EVB MMCIF resource string consistent
ARM: shmobile: use device name for timer clocks
ARM: mach-shmobile: add TMU platform data for sh7372
Nicolas Kaiser (1):
arm/shmobile: remove duplicated include
TAKEI Mitsuharu (1):
ARM: mach-shmobile: ap4evb: modify LCDC1 irq number
arch/arm/mach-shmobile/board-ap4evb.c | 326 +++++++++-----
arch/arm/mach-shmobile/clock-sh7367.c | 2 +-
arch/arm/mach-shmobile/clock-sh7372.c | 78 +++-
arch/arm/mach-shmobile/clock-sh7377.c | 2 +-
arch/arm/mach-shmobile/include/mach/sh7372.h | 10 +-
arch/arm/mach-shmobile/intc-sh7372.c | 28 ++
arch/arm/mach-shmobile/pfc-sh7372.c | 8 +-
arch/arm/mach-shmobile/setup-sh7367.c | 1 -
arch/arm/mach-shmobile/setup-sh7372.c | 94 ++++-
arch/arm/mach-shmobile/setup-sh7377.c | 1 -
arch/sh/boards/mach-ap325rxa/setup.c | 29 +-
arch/sh/boards/mach-ecovec24/setup.c | 60 ++-
arch/sh/boards/mach-kfr2r09/setup.c | 29 +-
arch/sh/boards/mach-migor/setup.c | 58 ++--
arch/sh/boards/mach-se/7724/setup.c | 54 ++-
drivers/video/sh_mipi_dsi.c | 32 +-
drivers/video/sh_mobile_hdmi.c | 614 +++++++++++++++++---------
drivers/video/sh_mobile_lcdcfb.c | 348 ++++++++++-----
drivers/video/sh_mobile_lcdcfb.h | 41 ++
include/video/sh_mobile_lcdc.h | 5 +-
20 files changed, 1213 insertions(+), 607 deletions(-)
create mode 100644 drivers/video/sh_mobile_lcdcfb.h
^ permalink raw reply [flat|nested] 3+ messages in thread
* [GIT PULL] genesis updates for 2.6.37-rc1
2010-10-25 1:48 [GIT PULL] genesis updates for 2.6.37-rc1 Paul Mundt
@ 2010-10-28 10:09 ` Russell King - ARM Linux
2010-10-28 18:55 ` Paul Mundt
0 siblings, 1 reply; 3+ messages in thread
From: Russell King - ARM Linux @ 2010-10-28 10:09 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, Oct 25, 2010 at 10:48:25AM +0900, Paul Mundt wrote:
> Please pull from:
>
> master.kernel.org:/pub/scm/linux/kernel/git/lethal/genesis-2.6.git
I'm seeing a merge conflict against current mainline. I'm not convinced
that there's a simple solution to this - it looks to me like the
snd_soc_register_codec() is not correctly placed here - as the codec
code references the hdmi data structure, but it's registered before the
hdmi data structure is setup.
>From bogus@does.not.exist.com Fri Oct 22 17:57:35 2010
From: bogus@does.not.exist.com ()
Date: Fri, 22 Oct 2010 21:57:35 -0000
Subject: No subject
Message-ID: <mailman.5.1288260565.1530.linux-arm-kernel@lists.infradead.org>
Auto-merging arch/arm/mach-shmobile/board-ap4evb.c
Auto-merging arch/sh/boards/mach-ecovec24/setup.c
Auto-merging drivers/video/sh_mobile_hdmi.c
CONFLICT (content): Merge conflict in drivers/video/sh_mobile_hdmi.c
Auto-merging drivers/video/sh_mobile_lcdcfb.c
diff --cc drivers/video/sh_mobile_hdmi.c
index ef989d9,f0ff284..0000000
--- a/drivers/video/sh_mobile_hdmi.c
+++ b/drivers/video/sh_mobile_hdmi.c
@@@ -224,60 -227,8 +229,60 @@@ static u8 hdmi_read(struct sh_hdmi *hdm
return ioread8(hdmi->base + reg);
}
+/*
+ * HDMI sound
+ */
+static unsigned int sh_hdmi_snd_read(struct snd_soc_codec *codec,
+ unsigned int reg)
+{
+ struct sh_hdmi *hdmi = snd_soc_codec_get_drvdata(codec);
+
+ return hdmi_read(hdmi, reg);
+}
+
+static int sh_hdmi_snd_write(struct snd_soc_codec *codec,
+ unsigned int reg,
+ unsigned int value)
+{
+ struct sh_hdmi *hdmi = snd_soc_codec_get_drvdata(codec);
+
+ hdmi_write(hdmi, value, reg);
+ return 0;
+}
+
+static struct snd_soc_dai_driver sh_hdmi_dai = {
+ .name = "sh_mobile_hdmi-hifi",
+ .playback = {
+ .stream_name = "Playback",
+ .channels_min = 2,
+ .channels_max = 8,
+ .rates = SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |
+ SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 |
+ SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_176400 |
+ SNDRV_PCM_RATE_192000,
+ .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE,
+ },
+};
+
+static int sh_hdmi_snd_probe(struct snd_soc_codec *codec)
+{
+ dev_info(codec->dev, "SH Mobile HDMI Audio Codec");
+
+ return 0;
+}
+
+static struct snd_soc_codec_driver soc_codec_dev_sh_hdmi = {
+ .probe = sh_hdmi_snd_probe,
+ .read = sh_hdmi_snd_read,
+ .write = sh_hdmi_snd_write,
+};
+
+/*
+ * HDMI video
+ */
+
/* External video parameter settings */
- static void hdmi_external_video_param(struct sh_hdmi *hdmi)
+ static void sh_hdmi_external_video_param(struct sh_hdmi *hdmi)
{
struct fb_var_screeninfo *var = &hdmi->var;
u16 htotal, hblank, hdelay, vtotal, vblank, vdelay, voffset;
@@@ -964,11 -1079,7 +1152,15 @@@ static int __init sh_hdmi_probe(struct
return -ENOMEM;
}
++<<<<<<< HEAD:drivers/video/sh_mobile_hdmi.c
+ ret = snd_soc_register_codec(&pdev->dev,
+ &soc_codec_dev_sh_hdmi, &sh_hdmi_dai, 1);
+ if (ret < 0)
+ goto esndreg;
+
++=======
+ mutex_init(&hdmi->mutex);
++>>>>>>> 1a0b1eac5012326e52d1dcf78695ac08f41c37d7:drivers/video/sh_mobile_hdmi.c
hdmi->dev = &pdev->dev;
hdmi->hdmi_clk = clk_get(&pdev->dev, "ick");
@@@ -1053,9 -1148,7 +1229,12 @@@ ereqreg
erate:
clk_put(hdmi->hdmi_clk);
egetclk:
++<<<<<<< HEAD:drivers/video/sh_mobile_hdmi.c
+ snd_soc_unregister_codec(&pdev->dev);
+esndreg:
++=======
+ mutex_destroy(&hdmi->mutex);
++>>>>>>> 1a0b1eac5012326e52d1dcf78695ac08f41c37d7:drivers/video/sh_mobile_hdmi.c
kfree(hdmi);
return ret;
@@@ -1066,17 -1159,19 +1245,27 @@@ static int __exit sh_hdmi_remove(struc
struct sh_mobile_hdmi_info *pdata = pdev->dev.platform_data;
struct sh_hdmi *hdmi = platform_get_drvdata(pdev);
struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ struct sh_mobile_lcdc_board_cfg *board_cfg = &pdata->lcd_chan->board_cfg;
int irq = platform_get_irq(pdev, 0);
++<<<<<<< HEAD:drivers/video/sh_mobile_hdmi.c
+ snd_soc_unregister_codec(&pdev->dev);
+
+ pdata->lcd_chan->board_cfg.display_on = NULL;
+ pdata->lcd_chan->board_cfg.display_off = NULL;
+ pdata->lcd_chan->board_cfg.board_data = NULL;
-
++=======
+ board_cfg->display_on = NULL;
+ board_cfg->display_off = NULL;
+ board_cfg->board_data = NULL;
+ board_cfg->owner = NULL;
++>>>>>>> 1a0b1eac5012326e52d1dcf78695ac08f41c37d7:drivers/video/sh_mobile_hdmi.c
+
+ /* No new work will be scheduled, wait for running ISR */
free_irq(irq, hdmi);
- pm_runtime_disable(&pdev->dev);
+ /* Wait for already scheduled work */
cancel_delayed_work_sync(&hdmi->edid_work);
+ pm_runtime_disable(&pdev->dev);
clk_disable(hdmi->hdmi_clk);
clk_put(hdmi->hdmi_clk);
iounmap(hdmi->base);
^ permalink raw reply [flat|nested] 3+ messages in thread
* [GIT PULL] genesis updates for 2.6.37-rc1
2010-10-28 10:09 ` Russell King - ARM Linux
@ 2010-10-28 18:55 ` Paul Mundt
0 siblings, 0 replies; 3+ messages in thread
From: Paul Mundt @ 2010-10-28 18:55 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Oct 28, 2010 at 11:09:12AM +0100, Russell King - ARM Linux wrote:
> On Mon, Oct 25, 2010 at 10:48:25AM +0900, Paul Mundt wrote:
> > Please pull from:
> >
> > master.kernel.org:/pub/scm/linux/kernel/git/lethal/genesis-2.6.git
>
> I'm seeing a merge conflict against current mainline. I'm not convinced
> that there's a simple solution to this - it looks to me like the
> snd_soc_register_codec() is not correctly placed here - as the codec
> code references the hdmi data structure, but it's registered before the
> hdmi data structure is setup.
>
I was afraid that would happen. The ordering is certainly suspect, so
I've moved it down and reworked it a bit. This seems to work ok:
---
diff --cc drivers/video/sh_mobile_hdmi.c
index ef989d9,f0ff284..0000000
--- a/drivers/video/sh_mobile_hdmi.c
+++ b/drivers/video/sh_mobile_hdmi.c
@@@ -224,60 -227,8 +229,60 @@@ static u8 hdmi_read(struct sh_hdmi *hdm
return ioread8(hdmi->base + reg);
}
+/*
+ * HDMI sound
+ */
+static unsigned int sh_hdmi_snd_read(struct snd_soc_codec *codec,
+ unsigned int reg)
+{
+ struct sh_hdmi *hdmi = snd_soc_codec_get_drvdata(codec);
+
+ return hdmi_read(hdmi, reg);
+}
+
+static int sh_hdmi_snd_write(struct snd_soc_codec *codec,
+ unsigned int reg,
+ unsigned int value)
+{
+ struct sh_hdmi *hdmi = snd_soc_codec_get_drvdata(codec);
+
+ hdmi_write(hdmi, value, reg);
+ return 0;
+}
+
+static struct snd_soc_dai_driver sh_hdmi_dai = {
+ .name = "sh_mobile_hdmi-hifi",
+ .playback = {
+ .stream_name = "Playback",
+ .channels_min = 2,
+ .channels_max = 8,
+ .rates = SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |
+ SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 |
+ SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_176400 |
+ SNDRV_PCM_RATE_192000,
+ .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE,
+ },
+};
+
+static int sh_hdmi_snd_probe(struct snd_soc_codec *codec)
+{
+ dev_info(codec->dev, "SH Mobile HDMI Audio Codec");
+
+ return 0;
+}
+
+static struct snd_soc_codec_driver soc_codec_dev_sh_hdmi = {
+ .probe = sh_hdmi_snd_probe,
+ .read = sh_hdmi_snd_read,
+ .write = sh_hdmi_snd_write,
+};
+
+/*
+ * HDMI video
+ */
+
/* External video parameter settings */
- static void hdmi_external_video_param(struct sh_hdmi *hdmi)
+ static void sh_hdmi_external_video_param(struct sh_hdmi *hdmi)
{
struct fb_var_screeninfo *var = &hdmi->var;
u16 htotal, hblank, hdelay, vtotal, vblank, vdelay, voffset;
@@@ -964,11 -1079,7 +1152,8 @@@ static int __init sh_hdmi_probe(struct
return -ENOMEM;
}
- ret = snd_soc_register_codec(&pdev->dev,
- &soc_codec_dev_sh_hdmi, &sh_hdmi_dai, 1);
- if (ret < 0)
- goto esndreg;
+ mutex_init(&hdmi->mutex);
+
hdmi->dev = &pdev->dev;
hdmi->hdmi_clk = clk_get(&pdev->dev, "ick");
@@@ -1041,8 -1136,8 +1210,17 @@@
goto ereqirq;
}
++ ret = snd_soc_register_codec(&pdev->dev,
++ &soc_codec_dev_sh_hdmi, &sh_hdmi_dai, 1);
++ if (ret < 0) {
++ dev_err(&pdev->dev, "codec registration failed\n");
++ goto ecodec;
++ }
++
return 0;
++ecodec:
++ free_irq(irq, hdmi);
ereqirq:
pm_runtime_disable(&pdev->dev);
iounmap(hdmi->base);
@@@ -1066,17 -1159,19 +1242,21 @@@ static int __exit sh_hdmi_remove(struc
struct sh_mobile_hdmi_info *pdata = pdev->dev.platform_data;
struct sh_hdmi *hdmi = platform_get_drvdata(pdev);
struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ struct sh_mobile_lcdc_board_cfg *board_cfg = &pdata->lcd_chan->board_cfg;
int irq = platform_get_irq(pdev, 0);
+ snd_soc_unregister_codec(&pdev->dev);
+
- pdata->lcd_chan->board_cfg.display_on = NULL;
- pdata->lcd_chan->board_cfg.display_off = NULL;
- pdata->lcd_chan->board_cfg.board_data = NULL;
+ board_cfg->display_on = NULL;
+ board_cfg->display_off = NULL;
+ board_cfg->board_data = NULL;
+ board_cfg->owner = NULL;
+ /* No new work will be scheduled, wait for running ISR */
free_irq(irq, hdmi);
- pm_runtime_disable(&pdev->dev);
+ /* Wait for already scheduled work */
cancel_delayed_work_sync(&hdmi->edid_work);
+ pm_runtime_disable(&pdev->dev);
clk_disable(hdmi->hdmi_clk);
clk_put(hdmi->hdmi_clk);
iounmap(hdmi->base);
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-10-28 18:55 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-25 1:48 [GIT PULL] genesis updates for 2.6.37-rc1 Paul Mundt
2010-10-28 10:09 ` Russell King - ARM Linux
2010-10-28 18:55 ` Paul Mundt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).