Message ID | 1417809427-5126-1-git-send-email-broonie@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Commit | 2349533fd30a7d201d773ebfc9a2b33634f6ebac |
Headers | show |
Hi Mark, On 12/6/14, Mark Brown <broonie@kernel.org> wrote: > The changes in commit a5a56871f804e (ASoC: samsung: add support for exynos7 > I2S controller) introduce a new variant_regs structure in the driver data > which is now mandatory for accessing registers. Unfortunately this is only > hooked up for DT platforms so non-DT platforms like my primary development > platform for audio are broken by this change and crash on boot. > > Since the only non-DT user of these device is s3c64xx fix this by making > the standard samsung-i2s device be of type I2Sv3 and add a new I2Sv4 name > to the platform data section, currently using the I2Sv5 information which > should be about right. > > Signed-off-by: Mark Brown <broonie@kernel.org> > --- > sound/soc/samsung/i2s.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c > index e1ace5270a8b..25919e090983 100644 > --- a/sound/soc/samsung/i2s.c > +++ b/sound/soc/samsung/i2s.c > @@ -1418,10 +1418,13 @@ static const struct samsung_i2s_dai_data > samsung_dai_type_sec = { > static struct platform_device_id samsung_i2s_driver_ids[] = { > { > .name = "samsung-i2s", > - .driver_data = (kernel_ulong_t)&samsung_dai_type_pri, > + .driver_data = (kernel_ulong_t)&i2sv3_dai_type, > }, { > .name = "samsung-i2s-sec", > .driver_data = (kernel_ulong_t)&samsung_dai_type_sec, > + }, { > + .name = "samsung-i2sv4", > + .driver_data = (kernel_ulong_t)&i2sv5_dai_type_i2s1, I think here you need to use i2sv5_dai_type because i2sv5_dai_type_i2s1 is introduced for exynos7 on which the i2s1 is of type v5 but with slightly modified bit offsets. Thanks Padma > }, > {}, > }; > -- > 2.1.3 > > _______________________________________________ > Alsa-devel mailing list > Alsa-devel@alsa-project.org > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel >
On Mon, Dec 08, 2014 at 10:21:52AM +0530, Padma Venkat wrote: > On 12/6/14, Mark Brown <broonie@kernel.org> wrote: > > + }, { > > + .name = "samsung-i2sv4", > > + .driver_data = (kernel_ulong_t)&i2sv5_dai_type_i2s1, > I think here you need to use i2sv5_dai_type because > i2sv5_dai_type_i2s1 is introduced for exynos7 on which the i2s1 is of > type v5 but with slightly modified bit offsets. OK, though I presume that's wrong too (otherwise it should be v4).
Hi Mark, On 12/8/14, Mark Brown <broonie@kernel.org> wrote: > On Mon, Dec 08, 2014 at 10:21:52AM +0530, Padma Venkat wrote: >> On 12/6/14, Mark Brown <broonie@kernel.org> wrote: > >> > + }, { >> > + .name = "samsung-i2sv4", >> > + .driver_data = (kernel_ulong_t)&i2sv5_dai_type_i2s1, > >> I think here you need to use i2sv5_dai_type because >> i2sv5_dai_type_i2s1 is introduced for exynos7 on which the i2s1 is of >> type v5 but with slightly modified bit offsets. > > OK, though I presume that's wrong too (otherwise it should be v4). > Yes. It does not have secondary dai, internal DMA, reset control. It has only 5.1ch support. Register offsets are similar to i2sv3_regs. So I think one V4 dai type with name "samsung,s3c64xx-i2s" is required. Thanks Padma
On Tue, Dec 09, 2014 at 09:33:00AM +0530, Padma Venkat wrote: > On 12/8/14, Mark Brown <broonie@kernel.org> wrote: > > OK, though I presume that's wrong too (otherwise it should be v4). > Yes. It does not have secondary dai, internal DMA, reset control. It > has only 5.1ch support. Register offsets are similar to i2sv3_regs. So > I think one V4 dai type with name "samsung,s3c64xx-i2s" is required. OK, then can you or someone else with access to the documentation please provide that?
On 12/10/14, Mark Brown <broonie@kernel.org> wrote: > On Tue, Dec 09, 2014 at 09:33:00AM +0530, Padma Venkat wrote: >> On 12/8/14, Mark Brown <broonie@kernel.org> wrote: > >> > OK, though I presume that's wrong too (otherwise it should be v4). > >> Yes. It does not have secondary dai, internal DMA, reset control. It >> has only 5.1ch support. Register offsets are similar to i2sv3_regs. So >> I think one V4 dai type with name "samsung,s3c64xx-i2s" is required. > > OK, then can you or someone else with access to the documentation please > provide that? OK. I will post a patch next week. > Thanks Padma
On Fri, Dec 12, 2014 at 08:53:50AM +0530, Padma Venkat wrote: > On 12/10/14, Mark Brown <broonie@kernel.org> wrote: > >> Yes. It does not have secondary dai, internal DMA, reset control. It > >> has only 5.1ch support. Register offsets are similar to i2sv3_regs. So > >> I think one V4 dai type with name "samsung,s3c64xx-i2s" is required. > > OK, then can you or someone else with access to the documentation please > > provide that? > OK. I will post a patch next week. Great, thanks.
diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c index e1ace5270a8b..25919e090983 100644 --- a/sound/soc/samsung/i2s.c +++ b/sound/soc/samsung/i2s.c @@ -1418,10 +1418,13 @@ static const struct samsung_i2s_dai_data samsung_dai_type_sec = { static struct platform_device_id samsung_i2s_driver_ids[] = { { .name = "samsung-i2s", - .driver_data = (kernel_ulong_t)&samsung_dai_type_pri, + .driver_data = (kernel_ulong_t)&i2sv3_dai_type, }, { .name = "samsung-i2s-sec", .driver_data = (kernel_ulong_t)&samsung_dai_type_sec, + }, { + .name = "samsung-i2sv4", + .driver_data = (kernel_ulong_t)&i2sv5_dai_type_i2s1, }, {}, };
The changes in commit a5a56871f804e (ASoC: samsung: add support for exynos7 I2S controller) introduce a new variant_regs structure in the driver data which is now mandatory for accessing registers. Unfortunately this is only hooked up for DT platforms so non-DT platforms like my primary development platform for audio are broken by this change and crash on boot. Since the only non-DT user of these device is s3c64xx fix this by making the standard samsung-i2s device be of type I2Sv3 and add a new I2Sv4 name to the platform data section, currently using the I2Sv5 information which should be about right. Signed-off-by: Mark Brown <broonie@kernel.org> --- sound/soc/samsung/i2s.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)