linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [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).