linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* Lockups reading from i.MX51 SSI registers
@ 2012-08-10 19:50 Mark Brown
  2012-08-10 19:56 ` Sascha Hauer
  0 siblings, 1 reply; 12+ messages in thread
From: Mark Brown @ 2012-08-10 19:50 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

I'm trying to use -next to test AC'97 register I/O on an i.MX51 board
but I'm seeing the CPU hang during probe at:

	lreg = (reg & 0x7f) <<  12 ;
	writel(lreg, base + SSI_SACADD);

in imx_ssi_ac97_read().  I'm somewhat suspicious this might be because
the IP block isn't clocked properly, I do notice the recent conversion
to the clock API which looks rather involved but it's possible something
else broke.  Does anyone have any bright ideas what might be going on
here?  The board doesn't have the reste functions defined so this is the
first interaction with the hardware block AFAICT.

Thanks,
Mark

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Lockups reading from i.MX51 SSI registers
  2012-08-10 19:50 Lockups reading from i.MX51 SSI registers Mark Brown
@ 2012-08-10 19:56 ` Sascha Hauer
  2012-08-10 20:14   ` Uwe Kleine-König
  0 siblings, 1 reply; 12+ messages in thread
From: Sascha Hauer @ 2012-08-10 19:56 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Aug 10, 2012 at 08:50:08PM +0100, Mark Brown wrote:
> Hi,
> 
> I'm trying to use -next to test AC'97 register I/O on an i.MX51 board
> but I'm seeing the CPU hang during probe at:
> 
> 	lreg = (reg & 0x7f) <<  12 ;
> 	writel(lreg, base + SSI_SACADD);
> 
> in imx_ssi_ac97_read().  I'm somewhat suspicious this might be because
> the IP block isn't clocked properly, I do notice the recent conversion
> to the clock API which looks rather involved but it's possible something
> else broke.  Does anyone have any bright ideas what might be going on
> here?  The board doesn't have the reste functions defined so this is the
> first interaction with the hardware block AFAICT.

No idea currently, just adding Uwe to Cc because I think he has seen
something similar on an i.MX35 board recently.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Lockups reading from i.MX51 SSI registers
  2012-08-10 19:56 ` Sascha Hauer
@ 2012-08-10 20:14   ` Uwe Kleine-König
  2012-08-10 21:06     ` Sascha Hauer
  0 siblings, 1 reply; 12+ messages in thread
From: Uwe Kleine-König @ 2012-08-10 20:14 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

On Fri, Aug 10, 2012 at 09:56:38PM +0200, Sascha Hauer wrote:
> On Fri, Aug 10, 2012 at 08:50:08PM +0100, Mark Brown wrote:
> > I'm trying to use -next to test AC'97 register I/O on an i.MX51 board
> > but I'm seeing the CPU hang during probe at:
> > 
> > 	lreg = (reg & 0x7f) <<  12 ;
> > 	writel(lreg, base + SSI_SACADD);
> > 
> > in imx_ssi_ac97_read().  I'm somewhat suspicious this might be because
> > the IP block isn't clocked properly, I do notice the recent conversion
> > to the clock API which looks rather involved but it's possible something
> > else broke.  Does anyone have any bright ideas what might be going on
> > here?  The board doesn't have the reste functions defined so this is the
> > first interaction with the hardware block AFAICT.
> 
> No idea currently, just adding Uwe to Cc because I think he has seen
> something similar on an i.MX35 board recently.
I havn't debugged that yet, but one issue I think needs to be solved is
that since the clk conversion there are two ssi clocks. And from a quick
look the ssi driver only handles one of them.

Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Lockups reading from i.MX51 SSI registers
  2012-08-10 20:14   ` Uwe Kleine-König
@ 2012-08-10 21:06     ` Sascha Hauer
  2012-08-17 19:08       ` [alsa-devel] " Fabio Estevam
  0 siblings, 1 reply; 12+ messages in thread
From: Sascha Hauer @ 2012-08-10 21:06 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Aug 10, 2012 at 10:14:56PM +0200, Uwe Kleine-K?nig wrote:
> Hi,
> 
> On Fri, Aug 10, 2012 at 09:56:38PM +0200, Sascha Hauer wrote:
> > On Fri, Aug 10, 2012 at 08:50:08PM +0100, Mark Brown wrote:
> > > I'm trying to use -next to test AC'97 register I/O on an i.MX51 board
> > > but I'm seeing the CPU hang during probe at:
> > > 
> > > 	lreg = (reg & 0x7f) <<  12 ;
> > > 	writel(lreg, base + SSI_SACADD);
> > > 
> > > in imx_ssi_ac97_read().  I'm somewhat suspicious this might be because
> > > the IP block isn't clocked properly, I do notice the recent conversion
> > > to the clock API which looks rather involved but it's possible something
> > > else broke.  Does anyone have any bright ideas what might be going on
> > > here?  The board doesn't have the reste functions defined so this is the
> > > first interaction with the hardware block AFAICT.
> > 
> > No idea currently, just adding Uwe to Cc because I think he has seen
> > something similar on an i.MX35 board recently.
> I havn't debugged that yet, but one issue I think needs to be solved is
> that since the clk conversion there are two ssi clocks. And from a quick
> look the ssi driver only handles one of them.

One clock is for the bus which must be turned on. The other is for the
bitclock which we currently can ignore since we only support clock slave
mode.
On an i.MX5 ssi[123]_ipg_gate must be turned on by the ssi driver. From
a quick look to the clock code it looks correct.

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [alsa-devel] Lockups reading from i.MX51 SSI registers
  2012-08-10 21:06     ` Sascha Hauer
@ 2012-08-17 19:08       ` Fabio Estevam
  2012-08-17 22:27         ` Mark Brown
  0 siblings, 1 reply; 12+ messages in thread
From: Fabio Estevam @ 2012-08-17 19:08 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Aug 10, 2012 at 6:06 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote:

> One clock is for the bus which must be turned on. The other is for the
> bitclock which we currently can ignore since we only support clock slave
> mode.
> On an i.MX5 ssi[123]_ipg_gate must be turned on by the ssi driver. From
> a quick look to the clock code it looks correct.

I tested audio playback on a mx51evk board last week using linux-next
and it worked fine (it has a sgtl5000).

I don't have any hardware with ac97 to try it.

Also, for the playback to work you need to install the SDMA firmware.

Regards,

Fabio Estevam

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [alsa-devel] Lockups reading from i.MX51 SSI registers
  2012-08-17 19:08       ` [alsa-devel] " Fabio Estevam
@ 2012-08-17 22:27         ` Mark Brown
  2012-08-17 23:35           ` Fabio Estevam
  2012-08-18  7:42           ` Uwe Kleine-König
  0 siblings, 2 replies; 12+ messages in thread
From: Mark Brown @ 2012-08-17 22:27 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Aug 17, 2012 at 04:08:47PM -0300, Fabio Estevam wrote:

> Also, for the playback to work you need to install the SDMA firmware.

This is deadlocking during boot, I'm getting nowhere near trying
playback.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120817/4714a7a7/attachment.sig>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [alsa-devel] Lockups reading from i.MX51 SSI registers
  2012-08-17 22:27         ` Mark Brown
@ 2012-08-17 23:35           ` Fabio Estevam
  2012-08-18  6:31             ` Christoph Fritz
  2012-08-20 13:18             ` Mark Brown
  2012-08-18  7:42           ` Uwe Kleine-König
  1 sibling, 2 replies; 12+ messages in thread
From: Fabio Estevam @ 2012-08-17 23:35 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Aug 17, 2012 at 7:27 PM, Mark Brown
<broonie@opensource.wolfsonmicro.com> wrote:
> On Fri, Aug 17, 2012 at 04:08:47PM -0300, Fabio Estevam wrote:
>
>> Also, for the playback to work you need to install the SDMA firmware.
>
> This is deadlocking during boot, I'm getting nowhere near trying
> playback.

Are you running a dt or non-dt kernel? In case of a dt kernel, can you
share the dts file?

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [alsa-devel] Lockups reading from i.MX51 SSI registers
  2012-08-17 23:35           ` Fabio Estevam
@ 2012-08-18  6:31             ` Christoph Fritz
  2012-08-20 13:18             ` Mark Brown
  1 sibling, 0 replies; 12+ messages in thread
From: Christoph Fritz @ 2012-08-18  6:31 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, 2012-08-17 at 20:35 -0300, Fabio Estevam wrote:
> On Fri, Aug 17, 2012 at 7:27 PM, Mark Brown
> <broonie@opensource.wolfsonmicro.com> wrote:
> > On Fri, Aug 17, 2012 at 04:08:47PM -0300, Fabio Estevam wrote:
> >
> >> Also, for the playback to work you need to install the SDMA firmware.
> >
> > This is deadlocking during boot, I'm getting nowhere near trying
> > playback.
> 
> Are you running a dt or non-dt kernel? In case of a dt kernel, can you
> share the dts file?

I suppose Mark means an i.MX35 not an i.MX51.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [alsa-devel] Lockups reading from i.MX51 SSI registers
  2012-08-17 22:27         ` Mark Brown
  2012-08-17 23:35           ` Fabio Estevam
@ 2012-08-18  7:42           ` Uwe Kleine-König
  2012-08-18 14:53             ` Fabio Estevam
  1 sibling, 1 reply; 12+ messages in thread
From: Uwe Kleine-König @ 2012-08-18  7:42 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Aug 17, 2012 at 11:27:38PM +0100, Mark Brown wrote:
> On Fri, Aug 17, 2012 at 04:08:47PM -0300, Fabio Estevam wrote:
> 
> > Also, for the playback to work you need to install the SDMA firmware.
> 
> This is deadlocking during boot, I'm getting nowhere near trying
> playback.
You're on i.MX35, right. I had to add

	clk_register_clkdev(clk[ssi1_gate], NULL, "imx-ssi.0");

to arch/arm/mach-imx/clk-imx35.c to be able to access the codec.
(Obviously this is a hack, and to do it better, you'd need to change

	clk_register_clkdev(clk[ssi1_div_post], "per", "imx-ssi.0");

to use ssi1_gate and fix the ssi-driver to be aware that there are two
clocks to handle.)

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [alsa-devel] Lockups reading from i.MX51 SSI registers
  2012-08-18  7:42           ` Uwe Kleine-König
@ 2012-08-18 14:53             ` Fabio Estevam
  0 siblings, 0 replies; 12+ messages in thread
From: Fabio Estevam @ 2012-08-18 14:53 UTC (permalink / raw)
  To: linux-arm-kernel

On Sat, Aug 18, 2012 at 4:42 AM, Uwe Kleine-K?nig
<u.kleine-koenig@pengutronix.de> wrote:

> You're on i.MX35, right. I had to add
>
>         clk_register_clkdev(clk[ssi1_gate], NULL, "imx-ssi.0");

Ah, ok. This is the same we have on arch/arm/mach-imx/clk-imx31.c ,

and mx31 audio playback is functional in next, so it looks like this
will fix Mark's issue on mx35.

Uwe, would you like to send this patch for clk-imx35.c ?

Regards,

Fabio Estevam

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [alsa-devel] Lockups reading from i.MX51 SSI registers
  2012-08-17 23:35           ` Fabio Estevam
  2012-08-18  6:31             ` Christoph Fritz
@ 2012-08-20 13:18             ` Mark Brown
  2012-08-20 13:24               ` Fabio Estevam
  1 sibling, 1 reply; 12+ messages in thread
From: Mark Brown @ 2012-08-20 13:18 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Aug 17, 2012 at 08:35:49PM -0300, Fabio Estevam wrote:

> Are you running a dt or non-dt kernel? In case of a dt kernel, can you
> share the dts file?

Non-DT.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120820/ba0bd2b2/attachment.sig>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [alsa-devel] Lockups reading from i.MX51 SSI registers
  2012-08-20 13:18             ` Mark Brown
@ 2012-08-20 13:24               ` Fabio Estevam
  0 siblings, 0 replies; 12+ messages in thread
From: Fabio Estevam @ 2012-08-20 13:24 UTC (permalink / raw)
  To: linux-arm-kernel

On 8/20/12, Mark Brown <broonie@opensource.wolfsonmicro.com> wrote:
> On Fri, Aug 17, 2012 at 08:35:49PM -0300, Fabio Estevam wrote:
>
>> Are you running a dt or non-dt kernel? In case of a dt kernel, can you
>> share the dts file?
>
> Non-DT.

Please try this patch:
http://www.spinics.net/lists/arm-kernel/msg190040.html

Regards,

Fabio Estevam

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2012-08-20 13:24 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-10 19:50 Lockups reading from i.MX51 SSI registers Mark Brown
2012-08-10 19:56 ` Sascha Hauer
2012-08-10 20:14   ` Uwe Kleine-König
2012-08-10 21:06     ` Sascha Hauer
2012-08-17 19:08       ` [alsa-devel] " Fabio Estevam
2012-08-17 22:27         ` Mark Brown
2012-08-17 23:35           ` Fabio Estevam
2012-08-18  6:31             ` Christoph Fritz
2012-08-20 13:18             ` Mark Brown
2012-08-20 13:24               ` Fabio Estevam
2012-08-18  7:42           ` Uwe Kleine-König
2012-08-18 14:53             ` Fabio Estevam

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).