noise issues when recording sound on i.MX28
Lothar Waßmann
LW at KARO-electronics.de
Wed Jan 27 22:38:36 PST 2016
Hi,
On Wed, 27 Jan 2016 15:43:40 +0100 Uwe Kleine-König wrote:
> Hello Fabio,
>
> [dropping Jack Lee from Cc: as his address doesn't exist.]
>
> On Wed, Jan 27, 2016 at 09:53:18AM -0200, Fabio Estevam wrote:
> > On Wed, Jan 27, 2016 at 8:56 AM, Uwe Kleine-König
> > <u.kleine-koenig at pengutronix.de> wrote:
> > > I currently work with an i.MX28 based machine and occasionally when
> > > recording sound with arecord but no microphone connected the result
> > > contains much noise.
> > >
> > > I found commits
> > >
> > > 90ce77d4468e ENGR00285446-3 [MX28] SAIF: Bit Shift in SAIF RX Data
> > > 1ea685a12f19 ENGR00285446-2 [MX28] SAIF: Bit Shift in SAIF RX Data
> > > 1ca899221d8b ENGR00285446-1 [MX28] SAIF: Bit Shift in SAIF RX Data
> > >
> > > in the Freescale vendor kernel (branch imx_2.6.35_maintain at
> > > git://git.freescale.com/imx/linux-2.6-imx.git). The kernel running on
> > > the machine in question is based on 3.10 with an impressive (that's
> > > negative) patch stack on top. I think patches -2 and -3 are not relevant
> > > for my setup because the two saif clocks are configured identically if
> > > I'm not mistaken. However implementing the soft reset as is done in
> >
> > Please make sure that the two saif clocks are configured identically.
>
> I think I have that. According to $debugfs/clk the two saif clocks have
> the same parent and frequency.
>
> > This was the most important part of the fix when we worked on this
> > problem on 2.6.35.
>
> So you didn't hit the problem that resetting a saif didn't work, right?
>
According to the i.MX28 Ref. Manual CLKGATE of the SAIF block does NOT
automatically assert upon asserting SFTRST:
|35.3.1 SAIF Control Register (HW_SAIF_CTRL)
[...]
|HW_SAIF_CTRL field descriptions
| Field Description
| 31 | Setting this bit to 1 forces a reset to the entire block. SFTRST has no effect on CLKGATE. Also, the
|SFTRST | SFTRST bit may be written when CLKGATE=1. This bit must be cleared to 0 for normal operation.
So the standard stmp_reset_block() function won't work for the
SAIF block.
BTW: I'm currently investigating the same problem...
Lothar Waßmann
More information about the linux-arm-kernel
mailing list