[alsa-devel] [PATCH 00/25] ASoC: Overhaul Samsung drivers
From: Jassi Brar jassi.brar@samsung.com
Hi,
Here come patches overhauling the Samsung ASoC support.
The AC97, PCM, SPDIF and ASoC-DMA related code has merely undergone cosmetic changes - symbol, device & driver renaming and file moving.
A new I2S controller driver has been added to manage Samsung SoCs since S3C64XX. Older driver has been changed only as is necessary. Regarding I2S, I have left the s3c24xx series untouched because the controllers are too different to run by a common driver. S3C2412's I2S does have some similarities, but not important enough to warrant impact on new driver design. The new I2S driver has been designed around the notion of features/quirks. The newer SoCs have revised version of I2S_0(usually) than previous ones. So, I2S block is 'specified' in the platform code and the driver works on that configuration. For now, Secondary I2S DAI works only with System-DMAC. I2S-Internal DMA and SRAM will be enabled later.
Testing:- Simple testing of 5.1 channel and hardware mixing seems to work (though there seems to be some issue with symmetric_rates in soc-core.c which would be tried to fix later as saperate issue). I would appreciate any test-results for GONI and SMARTQ.
I suggest the patches 13,14,16 & 17 go via Kgene's Tree, and the rest via ASoC tree due to tight dependencies.
1). ASoC: WM8580: Remove useless assignment 2). ASoC: Samsung: Remove redundant AQUILA driver 3). ASoC: Samsung: Rename DMA device 4). ARM: Samsung: Define common audio-dma device 5). ASoC: Samsung: Rename ASoC DMA driver 6). ASoC: Samsung: Rename AC97 platform device 7). ASoC: Samsung: Rename AC97 driver 8). ASoC: Samsung: Rename PCM driver 9). ASoC: Samsung: Generalize DMA driver namespace 10). ASoC: Samsung: Rename s3c64xx I2S device 11). ASoC: Samsung: Add common I2S driver 12). ARM: S3C64XX: I2S: Upgrade platform device 13). ARM: S5P6440: I2S: Upgrade platform device 14). ARM: S5P6442: I2S: Upgrade platform device 15). ARM: S5PC100: I2S: Upgrade platform device 16). ARM: S5PV210: I2S: Upgrade platform device 17). ARM: S5PV310: Add audio platform devices 18). ASoC: SMARTQ: Move to use new I2S driver 19). ASoC: GONI: Move to use new I2S driver 20). ASoC: SMDK64XX: Move to use new I2S driver 21). ASoC: S3C64XX: Remove obsoleted I2S drivers 22). ASoC: SMDK64XX: Rename for other platforms 23). ASoC: SMDK_WM8580: Enable for SMDKC100 24). ASoC: Samsung: Generalize Kconfig symbols 25). ASoC: Samsung: Rename from s3c24xx to samsung
Thanks, Jassi
Jassi Brar wrote:
From: Jassi Brar jassi.brar@samsung.com
Hi,
Hi :-)
Here come patches overhauling the Samsung ASoC support.
The AC97, PCM, SPDIF and ASoC-DMA related code has merely undergone cosmetic changes - symbol, device & driver renaming and file moving.
A new I2S controller driver has been added to manage Samsung SoCs since S3C64XX. Older driver has been changed only as is necessary. Regarding I2S, I have left the s3c24xx series untouched because the controllers are too different to run by a common driver. S3C2412's I2S does have some similarities, but not important enough to warrant impact on new driver design. The new I2S driver has been designed around the notion of features/quirks. The newer SoCs have revised version of I2S_0(usually) than previous ones. So, I2S block is 'specified' in the platform code and the driver works on that configuration. For now, Secondary I2S DAI works only with System-DMAC. I2S-Internal DMA and SRAM will be enabled later.
Testing:- Simple testing of 5.1 channel and hardware mixing seems to work (though there seems to be some issue with symmetric_rates in soc-core.c which would be tried to fix later as saperate issue). I would appreciate any test-results for GONI and SMARTQ.
I suggest the patches 13,14,16 & 17 go via Kgene's Tree, and the rest via ASoC tree due to tight dependencies.
Hmm...in my opinion, it would be better to me if could send arch/arm/ stuff to upstream via my tree even though there are dependencies. Mark, how do you think?
And...Cc'ing Linux ARM kernel ML is better... (Cc'ed Linux ARM kernel)
1). ASoC: WM8580: Remove useless assignment 2). ASoC: Samsung: Remove redundant AQUILA driver 3). ASoC: Samsung: Rename DMA device 4). ARM: Samsung: Define common audio-dma device 5). ASoC: Samsung: Rename ASoC DMA driver 6). ASoC: Samsung: Rename AC97 platform device 7). ASoC: Samsung: Rename AC97 driver 8). ASoC: Samsung: Rename PCM driver 9). ASoC: Samsung: Generalize DMA driver namespace 10). ASoC: Samsung: Rename s3c64xx I2S device 11). ASoC: Samsung: Add common I2S driver 12). ARM: S3C64XX: I2S: Upgrade platform device 13). ARM: S5P6440: I2S: Upgrade platform device 14). ARM: S5P6442: I2S: Upgrade platform device 15). ARM: S5PC100: I2S: Upgrade platform device 16). ARM: S5PV210: I2S: Upgrade platform device 17). ARM: S5PV310: Add audio platform devices 18). ASoC: SMARTQ: Move to use new I2S driver 19). ASoC: GONI: Move to use new I2S driver 20). ASoC: SMDK64XX: Move to use new I2S driver 21). ASoC: S3C64XX: Remove obsoleted I2S drivers 22). ASoC: SMDK64XX: Rename for other platforms 23). ASoC: SMDK_WM8580: Enable for SMDKC100 24). ASoC: Samsung: Generalize Kconfig symbols 25). ASoC: Samsung: Rename from s3c24xx to samsung
Thanks.
Best regards, Kgene. -- Kukjin Kim kgene.kim@samsung.com, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.
On Tue, 19 Oct 2010 16:30:09 +0900 Kukjin Kim kgene.kim@samsung.com wrote:
Jassi Brar wrote:
From: Jassi Brar jassi.brar@samsung.com
Hi,
Hi :-)
Here come patches overhauling the Samsung ASoC support.
The AC97, PCM, SPDIF and ASoC-DMA related code has merely undergone cosmetic changes - symbol, device & driver renaming and file moving.
A new I2S controller driver has been added to manage Samsung SoCs since S3C64XX. Older driver has been changed only as is necessary. Regarding I2S, I have left the s3c24xx series untouched because the controllers are too different to run by a common driver. S3C2412's I2S does have some similarities, but not important enough to warrant impact on new driver design. The new I2S driver has been designed around the notion of features/quirks. The newer SoCs have revised version of I2S_0(usually) than previous ones. So, I2S block is 'specified' in the platform code and the driver works on that configuration. For now, Secondary I2S DAI works only with System-DMAC. I2S-Internal DMA and SRAM will be enabled later.
Testing:- Simple testing of 5.1 channel and hardware mixing seems to work (though there seems to be some issue with symmetric_rates in soc-core.c which would be tried to fix later as saperate issue). I would appreciate any test-results for GONI and SMARTQ.
I suggest the patches 13,14,16 & 17 go via Kgene's Tree, and the rest via ASoC tree due to tight dependencies.
Hmm...in my opinion, it would be better to me if could send arch/arm/ stuff to upstream via my tree even though there are dependencies. Mark, how do you think?
As for me, that's not a good idea. We'll get massive breakage during 2.6.37 merge window then. Here's example: my sound-related changes to machine files are merged through Ben's tree, but these changes aren't in asoc tree, so Jassi is no aware of them, but now these changes are outdated a bit due to device renaming. And this introduce compile breakage.
And if I understood correctly, merging these arch/arm changes through your tree will result in temporary compile breakage for both trees - your and asoc.
Keep changes consistent :)
Regards Vasily
On Tue, Oct 19, 2010 at 11:00:15AM +0300, Vasily khoruzhick wrote:
Kukjin Kim kgene.kim@samsung.com wrote:
I suggest the patches 13,14,16 & 17 go via Kgene's Tree, and the rest via ASoC tree due to tight dependencies.
Hmm...in my opinion, it would be better to me if could send arch/arm/ stuff to upstream via my tree even though there are dependencies. Mark, how do you think?
As for me, that's not a good idea. We'll get massive breakage during 2.6.37 merge window then. Here's example: my sound-related changes to machine files are merged through Ben's tree, but these changes aren't in asoc tree, so Jassi is no aware of them, but now these changes are outdated a bit due to device renaming. And this introduce compile breakage.
Since my primary development platforms are Samsung reference boards I'm especially unenthusiastic about anything which creates cross-tree issues. My stock answer to things like this is that if we can't split things up so that dependencies are avoided then we should create a branch which can be pulled into both trees.
On Tue, Oct 19, 2010 at 04:03:25PM +0900, Jassi Brar wrote:
Simple testing of 5.1 channel and hardware mixing seems to work (though there seems to be some issue with symmetric_rates in soc-core.c which would be tried to fix later as saperate issue).
symmetric_rates can only cope with straight through DAIs. It'd need a substantial overhaul to be able to be told about multiple DAIs all needing to share the same link. We need to do something about this anyway for multi-drop DAI links, provide some way of saying that multiple DAI links share clocks and need to have their configurations kept in lockstep.
On Tue, Oct 19, 2010 at 04:03:25PM +0900, Jassi Brar wrote:
Here come patches overhauling the Samsung ASoC support.
So, this all looks sensible enough to me - I've nothing extra apart from what I mailed out before. I guess we'll need a revision 2 of the series but I think that's likely to be something that can be merged if Liam and Kukjin don't have any big issues.
Mark Brown wrote:
On Tue, Oct 19, 2010 at 04:03:25PM +0900, Jassi Brar wrote:
Here come patches overhauling the Samsung ASoC support.
So, this all looks sensible enough to me - I've nothing extra apart from what I mailed out before. I guess we'll need a revision 2 of the series but I think that's likely to be something that can be merged if Liam and Kukjin don't have any big issues.
Jassi's patches look ok to me :-) but yes...need to update them...
I know, Jassi is updating them, then will be submitted.
Thanks.
Best regards, Kgene. -- Kukjin Kim kgene.kim@samsung.com, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.
participants (4)
-
Jassi Brar
-
Kukjin Kim
-
Mark Brown
-
Vasily khoruzhick