Merge branch 'sh/for-2.6.30' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6

* 'sh/for-2.6.30' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:
  video: stop sh_mobile_lcdcfb only if started
  sh: ap325 camera without i2c driver fix
This commit is contained in:
Linus Torvalds 2009-05-22 07:33:38 -07:00
commit 66a26a8fa7
2 changed files with 9 additions and 1 deletions

View file

@ -263,6 +263,9 @@ static int camera_probe(void)
struct i2c_msg msg; struct i2c_msg msg;
int ret; int ret;
if (!a)
return -ENODEV;
camera_power(1); camera_power(1);
msg.addr = 0x6e; msg.addr = 0x6e;
msg.buf = camera_ncm03j_magic; msg.buf = camera_ncm03j_magic;

View file

@ -47,6 +47,7 @@ struct sh_mobile_lcdc_priv {
#endif #endif
unsigned long lddckr; unsigned long lddckr;
struct sh_mobile_lcdc_chan ch[2]; struct sh_mobile_lcdc_chan ch[2];
int started;
}; };
/* shared registers */ /* shared registers */
@ -451,6 +452,7 @@ static int sh_mobile_lcdc_start(struct sh_mobile_lcdc_priv *priv)
/* start the lcdc */ /* start the lcdc */
sh_mobile_lcdc_start_stop(priv, 1); sh_mobile_lcdc_start_stop(priv, 1);
priv->started = 1;
/* tell the board code to enable the panel */ /* tell the board code to enable the panel */
for (k = 0; k < ARRAY_SIZE(priv->ch); k++) { for (k = 0; k < ARRAY_SIZE(priv->ch); k++) {
@ -493,7 +495,10 @@ static void sh_mobile_lcdc_stop(struct sh_mobile_lcdc_priv *priv)
} }
/* stop the lcdc */ /* stop the lcdc */
sh_mobile_lcdc_start_stop(priv, 0); if (priv->started) {
sh_mobile_lcdc_start_stop(priv, 0);
priv->started = 0;
}
/* stop clocks */ /* stop clocks */
for (k = 0; k < ARRAY_SIZE(priv->ch); k++) for (k = 0; k < ARRAY_SIZE(priv->ch); k++)