* [PATCH 11/20] ASoC: SAMSUNG: I2S: Add bit definitions @ 2010-03-10 8:11 Jassi Brar 0 siblings, 0 replies; 9+ messages in thread From: Jassi Brar @ 2010-03-10 8:11 UTC (permalink / raw) To: alsa-devel; +Cc: broonie, Jassi Brar, ben-linux Define more bit definitions in the order of mainline support for the SoC. Signed-off-by: Jassi Brar <jassi.brar@samsung.com> --- sound/soc/s3c24xx/regs-i2s-v2.h | 41 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 41 insertions(+), 0 deletions(-) diff --git a/sound/soc/s3c24xx/regs-i2s-v2.h b/sound/soc/s3c24xx/regs-i2s-v2.h index 8e1a585..dea199e 100644 --- a/sound/soc/s3c24xx/regs-i2s-v2.h +++ b/sound/soc/s3c24xx/regs-i2s-v2.h @@ -20,6 +20,24 @@ #define S3C2412_IISTXD (0x10) #define S3C2412_IISRXD (0x14) +#define S5PC1XX_IISFICS 0x18 +#define S5PC1XX_IISTXDS 0x1C + +#define S5PC1XX_IISCON_SW_RST (1 << 31) +#define S5PC1XX_IISCON_FRXOFSTATUS (1 << 26) +#define S5PC1XX_IISCON_FRXORINTEN (1 << 25) +#define S5PC1XX_IISCON_FTXSURSTAT (1 << 24) +#define S5PC1XX_IISCON_FTXSURINTEN (1 << 23) +#define S5PC1XX_IISCON_TXSDMAPAUSE (1 << 20) +#define S5PC1XX_IISCON_TXSDMACTIVE (1 << 18) + +#define S3C64XX_IISCON_FTXURSTATUS (1 << 17) +#define S3C64XX_IISCON_FTXURINTEN (1 << 16) +#define S3C64XX_IISCON_TXFIFO2_EMPTY (1 << 15) +#define S3C64XX_IISCON_TXFIFO1_EMPTY (1 << 14) +#define S3C64XX_IISCON_TXFIFO2_FULL (1 << 13) +#define S3C64XX_IISCON_TXFIFO1_FULL (1 << 12) + #define S3C2412_IISCON_LRINDEX (1 << 11) #define S3C2412_IISCON_TXFIFO_EMPTY (1 << 10) #define S3C2412_IISCON_RXFIFO_EMPTY (1 << 9) @@ -33,6 +51,23 @@ #define S3C2412_IISCON_RXDMA_ACTIVE (1 << 1) #define S3C2412_IISCON_IIS_ACTIVE (1 << 0) +#define S5PC1XX_IISMOD_OPCLK_CDCLK_OUT (0 << 30) +#define S5PC1XX_IISMOD_OPCLK_CDCLK_IN (1 << 30) +#define S5PC1XX_IISMOD_OPCLK_BCLK_OUT (2 << 30) +#define S5PC1XX_IISMOD_OPCLK_PCLK (3 << 30) +#define S5PC1XX_IISMOD_OPCLK_MASK (3 << 30) +#define S5PC1XX_IISMOD_TXS_IDMA (1 << 28) /* Sec_TXFIFO use I-DMA */ +#define S5PC1XX_IISMOD_BLCS_MASK 0x3 +#define S5PC1XX_IISMOD_BLCS_SHIFT 26 +#define S5PC1XX_IISMOD_BLCP_MASK 0x3 +#define S5PC1XX_IISMOD_BLCP_SHIFT 24 + +#define S3C64XX_IISMOD_C2DD_HHALF (1 << 21) /* Discard Higher-half */ +#define S3C64XX_IISMOD_C2DD_LHALF (1 << 20) /* Discard Lower-half */ +#define S3C64XX_IISMOD_C1DD_HHALF (1 << 19) +#define S3C64XX_IISMOD_C1DD_LHALF (1 << 18) +#define S3C64XX_IISMOD_DC2_EN (1 << 17) +#define S3C64XX_IISMOD_DC1_EN (1 << 16) #define S3C64XX_IISMOD_BLC_16BIT (0 << 13) #define S3C64XX_IISMOD_BLC_8BIT (1 << 13) #define S3C64XX_IISMOD_BLC_24BIT (2 << 13) @@ -71,9 +106,15 @@ #define S3C2412_IISPSR_PSREN (1 << 15) +#define S3C64XX_IISFIC_TX2COUNT(x) (((x) >> 24) & 0xf) +#define S3C64XX_IISFIC_TX1COUNT(x) (((x) >> 16) & 0xf) + #define S3C2412_IISFIC_TXFLUSH (1 << 15) #define S3C2412_IISFIC_RXFLUSH (1 << 7) #define S3C2412_IISFIC_TXCOUNT(x) (((x) >> 8) & 0xf) #define S3C2412_IISFIC_RXCOUNT(x) (((x) >> 0) & 0xf) +#define S5PC1XX_IISFICS_TXFLUSH (1 << 15) +#define S5PC1XX_IISFICS_TXCOUNT(x) (((x) >> 8) & 0x7f) + #endif /* __REGS_IISV2_H */ -- 1.6.2.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 01/20] ASoC: S3C: I2Sv2: Add missing semicolon @ 2010-03-10 7:48 Jassi Brar 2010-03-10 7:48 ` [PATCH 02/20] ASoC: S3C: I2Sv2: Reject immidiate register value Jassi Brar 0 siblings, 1 reply; 9+ messages in thread From: Jassi Brar @ 2010-03-10 7:48 UTC (permalink / raw) To: alsa-devel; +Cc: broonie, Jassi Brar, ben-linux Add missing semicolon after s3c2412_i2s_delay Signed-off-by: Jassi Brar <jassi.brar@samsung.com> --- sound/soc/s3c24xx/s3c-i2s-v2.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/sound/soc/s3c24xx/s3c-i2s-v2.c b/sound/soc/s3c24xx/s3c-i2s-v2.c index aa84f4c..8f08508 100644 --- a/sound/soc/s3c24xx/s3c-i2s-v2.c +++ b/sound/soc/s3c24xx/s3c-i2s-v2.c @@ -753,7 +753,7 @@ int s3c_i2sv2_register_dai(struct snd_soc_dai *dai) /* Allow overriding by (for example) IISv4 */ if (!ops->delay) - ops->delay = s3c2412_i2s_delay, + ops->delay = s3c2412_i2s_delay; dai->suspend = s3c2412_i2s_suspend; dai->resume = s3c2412_i2s_resume; -- 1.6.2.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 02/20] ASoC: S3C: I2Sv2: Reject immidiate register value 2010-03-10 7:48 [PATCH 01/20] ASoC: S3C: I2Sv2: Add missing semicolon Jassi Brar @ 2010-03-10 7:48 ` Jassi Brar 2010-03-10 7:48 ` [PATCH 03/20] ASoC: S3C64XX: I2S: Make BCLK independent of sample size Jassi Brar 0 siblings, 1 reply; 9+ messages in thread From: Jassi Brar @ 2010-03-10 7:48 UTC (permalink / raw) To: alsa-devel; +Cc: broonie, Jassi Brar, ben-linux Towards generalizing CPU driver interface, do not accept direct field values for the BCLK and RCLK. The machine driver should simply request the FS-multiple and not provide the value to be set in divide field of IISMOD. Signed-off-by: Jassi Brar <jassi.brar@samsung.com> --- sound/soc/s3c24xx/s3c-i2s-v2.c | 68 +++++++++++++++++---------------------- 1 files changed, 30 insertions(+), 38 deletions(-) diff --git a/sound/soc/s3c24xx/s3c-i2s-v2.c b/sound/soc/s3c24xx/s3c-i2s-v2.c index 8f08508..fd5c842 100644 --- a/sound/soc/s3c24xx/s3c-i2s-v2.c +++ b/sound/soc/s3c24xx/s3c-i2s-v2.c @@ -469,29 +469,25 @@ static int s3c2412_i2s_set_clkdiv(struct snd_soc_dai *cpu_dai, switch (div_id) { case S3C_I2SV2_DIV_BCLK: - if (div > 3) { - /* convert value to bit field */ - - switch (div) { - case 16: - div = S3C2412_IISMOD_BCLK_16FS; - break; + switch (div) { + case 16: + div = S3C2412_IISMOD_BCLK_16FS; + break; - case 32: - div = S3C2412_IISMOD_BCLK_32FS; - break; + case 32: + div = S3C2412_IISMOD_BCLK_32FS; + break; - case 24: - div = S3C2412_IISMOD_BCLK_24FS; - break; + case 24: + div = S3C2412_IISMOD_BCLK_24FS; + break; - case 48: - div = S3C2412_IISMOD_BCLK_48FS; - break; + case 48: + div = S3C2412_IISMOD_BCLK_48FS; + break; - default: - return -EINVAL; - } + default: + return -EINVAL; } reg = readl(i2s->regs + S3C2412_IISMOD); @@ -502,29 +498,25 @@ static int s3c2412_i2s_set_clkdiv(struct snd_soc_dai *cpu_dai, break; case S3C_I2SV2_DIV_RCLK: - if (div > 3) { - /* convert value to bit field */ - - switch (div) { - case 256: - div = S3C2412_IISMOD_RCLK_256FS; - break; + switch (div) { + case 256: + div = S3C2412_IISMOD_RCLK_256FS; + break; - case 384: - div = S3C2412_IISMOD_RCLK_384FS; - break; + case 384: + div = S3C2412_IISMOD_RCLK_384FS; + break; - case 512: - div = S3C2412_IISMOD_RCLK_512FS; - break; + case 512: + div = S3C2412_IISMOD_RCLK_512FS; + break; - case 768: - div = S3C2412_IISMOD_RCLK_768FS; - break; + case 768: + div = S3C2412_IISMOD_RCLK_768FS; + break; - default: - return -EINVAL; - } + default: + return -EINVAL; } reg = readl(i2s->regs + S3C2412_IISMOD); -- 1.6.2.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 03/20] ASoC: S3C64XX: I2S: Make BCLK independent of sample size 2010-03-10 7:48 ` [PATCH 02/20] ASoC: S3C: I2Sv2: Reject immidiate register value Jassi Brar @ 2010-03-10 7:48 ` Jassi Brar 2010-03-10 7:48 ` [PATCH 04/20] ASoC: S3C: I2Sv2: Remove S3C_IIS_V2_SUPPORTED define Jassi Brar 0 siblings, 1 reply; 9+ messages in thread From: Jassi Brar @ 2010-03-10 7:48 UTC (permalink / raw) To: alsa-devel; +Cc: broonie, Jassi Brar, ben-linux For some CPU-CODEC and source clock combination we might need to set BCLK to N*Sample_size*LRCLK, where N may be even 3 or 4, not just 2. We can simply remove the dependency of BCLK on sample size as there is already a callback(S3C_I2SV2_DIV_BCLK) available to set required BCLK. Signed-off-by: Jassi Brar <jassi.brar@samsung.com> --- sound/soc/s3c24xx/s3c-i2s-v2.c | 9 +++------ 1 files changed, 3 insertions(+), 6 deletions(-) diff --git a/sound/soc/s3c24xx/s3c-i2s-v2.c b/sound/soc/s3c24xx/s3c-i2s-v2.c index fd5c842..b01f50e 100644 --- a/sound/soc/s3c24xx/s3c-i2s-v2.c +++ b/sound/soc/s3c24xx/s3c-i2s-v2.c @@ -364,19 +364,16 @@ static int s3c2412_i2s_hw_params(struct snd_pcm_substream *substream, #endif #ifdef CONFIG_PLAT_S3C64XX - iismod &= ~(S3C64XX_IISMOD_BLC_MASK | S3C2412_IISMOD_BCLK_MASK); + iismod &= ~S3C64XX_IISMOD_BLC_MASK; /* Sample size */ switch (params_format(params)) { case SNDRV_PCM_FORMAT_S8: - /* 8 bit sample, 16fs BCLK */ - iismod |= (S3C64XX_IISMOD_BLC_8BIT | S3C2412_IISMOD_BCLK_16FS); + iismod |= S3C64XX_IISMOD_BLC_8BIT; break; case SNDRV_PCM_FORMAT_S16_LE: - /* 16 bit sample, 32fs BCLK */ break; case SNDRV_PCM_FORMAT_S24_LE: - /* 24 bit sample, 48fs BCLK */ - iismod |= (S3C64XX_IISMOD_BLC_24BIT | S3C2412_IISMOD_BCLK_48FS); + iismod |= S3C64XX_IISMOD_BLC_24BIT; break; } #endif -- 1.6.2.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 04/20] ASoC: S3C: I2Sv2: Remove S3C_IIS_V2_SUPPORTED define 2010-03-10 7:48 ` [PATCH 03/20] ASoC: S3C64XX: I2S: Make BCLK independent of sample size Jassi Brar @ 2010-03-10 7:48 ` Jassi Brar 2010-03-10 7:48 ` [PATCH 05/20] ASoC: S3C: I2Sv2: Unify clock source IDs Jassi Brar 0 siblings, 1 reply; 9+ messages in thread From: Jassi Brar @ 2010-03-10 7:48 UTC (permalink / raw) To: alsa-devel; +Cc: broonie, Jassi Brar, ben-linux The code in s3c-i2s-v2.c is compiled via Makefile and not implicitly by include'ing. Also, the driver developer anyways has to refer to the manual to see if the code can be reused for the SoC under consideration. That makes the S3C_IIS_V2_SUPPORTED retrospective rather than a check. Signed-off-by: Jassi Brar <jassi.brar@samsung.com> --- sound/soc/s3c24xx/s3c-i2s-v2.c | 14 -------------- 1 files changed, 0 insertions(+), 14 deletions(-) diff --git a/sound/soc/s3c24xx/s3c-i2s-v2.c b/sound/soc/s3c24xx/s3c-i2s-v2.c index b01f50e..2812b41 100644 --- a/sound/soc/s3c24xx/s3c-i2s-v2.c +++ b/sound/soc/s3c24xx/s3c-i2s-v2.c @@ -37,20 +37,6 @@ #include "s3c-i2s-v2.h" #include "s3c-dma.h" -#undef S3C_IIS_V2_SUPPORTED - -#if defined(CONFIG_CPU_S3C2412) || defined(CONFIG_CPU_S3C2413) -#define S3C_IIS_V2_SUPPORTED -#endif - -#ifdef CONFIG_PLAT_S3C64XX -#define S3C_IIS_V2_SUPPORTED -#endif - -#ifndef S3C_IIS_V2_SUPPORTED -#error Unsupported CPU model -#endif - #define S3C2412_I2S_DEBUG_CON 0 static inline struct s3c_i2sv2_info *to_info(struct snd_soc_dai *cpu_dai) -- 1.6.2.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 05/20] ASoC: S3C: I2Sv2: Unify clock source IDs 2010-03-10 7:48 ` [PATCH 04/20] ASoC: S3C: I2Sv2: Remove S3C_IIS_V2_SUPPORTED define Jassi Brar @ 2010-03-10 7:48 ` Jassi Brar 2010-03-10 7:48 ` [PATCH 06/20] ASoC: s3c-i2s-v2 remove unnecessary headers Jassi Brar 0 siblings, 1 reply; 9+ messages in thread From: Jassi Brar @ 2010-03-10 7:48 UTC (permalink / raw) To: alsa-devel; +Cc: broonie, Jassi Brar, ben-linux Rather than having the multiple definitions of the same clocks, define them in one common place and refer by SoC specific names. Signed-off-by: Jassi Brar <jassi.brar@samsung.com> --- sound/soc/s3c24xx/s3c-i2s-v2.h | 4 ++++ sound/soc/s3c24xx/s3c2412-i2s.h | 4 ++-- sound/soc/s3c24xx/s3c64xx-i2s.h | 6 +++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/sound/soc/s3c24xx/s3c-i2s-v2.h b/sound/soc/s3c24xx/s3c-i2s-v2.h index ecf8eaa..b094d3c 100644 --- a/sound/soc/s3c24xx/s3c-i2s-v2.h +++ b/sound/soc/s3c24xx/s3c-i2s-v2.h @@ -25,6 +25,10 @@ #define S3C_I2SV2_DIV_RCLK (2) #define S3C_I2SV2_DIV_PRESCALER (3) +#define S3C_I2SV2_CLKSRC_PCLK 0 +#define S3C_I2SV2_CLKSRC_AUDIOBUS 1 +#define S3C_I2SV2_CLKSRC_CDCLK 2 + /** * struct s3c_i2sv2_info - S3C I2S-V2 information * @dev: The parent device passed to use from the probe. diff --git a/sound/soc/s3c24xx/s3c2412-i2s.h b/sound/soc/s3c24xx/s3c2412-i2s.h index 92848e5..60cac00 100644 --- a/sound/soc/s3c24xx/s3c2412-i2s.h +++ b/sound/soc/s3c24xx/s3c2412-i2s.h @@ -21,8 +21,8 @@ #define S3C2412_DIV_RCLK S3C_I2SV2_DIV_RCLK #define S3C2412_DIV_PRESCALER S3C_I2SV2_DIV_PRESCALER -#define S3C2412_CLKSRC_PCLK (0) -#define S3C2412_CLKSRC_I2SCLK (1) +#define S3C2412_CLKSRC_PCLK S3C_I2SV2_CLKSRC_PCLK +#define S3C2412_CLKSRC_I2SCLK S3C_I2SV2_CLKSRC_AUDIOBUS extern struct clk *s3c2412_get_iisclk(void); diff --git a/sound/soc/s3c24xx/s3c64xx-i2s.h b/sound/soc/s3c24xx/s3c64xx-i2s.h index abe7253..e350d28 100644 --- a/sound/soc/s3c24xx/s3c64xx-i2s.h +++ b/sound/soc/s3c24xx/s3c64xx-i2s.h @@ -23,9 +23,9 @@ struct clk; #define S3C64XX_DIV_RCLK S3C_I2SV2_DIV_RCLK #define S3C64XX_DIV_PRESCALER S3C_I2SV2_DIV_PRESCALER -#define S3C64XX_CLKSRC_PCLK (0) -#define S3C64XX_CLKSRC_MUX (1) -#define S3C64XX_CLKSRC_CDCLK (2) +#define S3C64XX_CLKSRC_PCLK S3C_I2SV2_CLKSRC_PCLK +#define S3C64XX_CLKSRC_MUX S3C_I2SV2_CLKSRC_AUDIOBUS +#define S3C64XX_CLKSRC_CDCLK S3C_I2SV2_CLKSRC_CDCLK extern struct snd_soc_dai s3c64xx_i2s_dai[]; -- 1.6.2.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 06/20] ASoC: s3c-i2s-v2 remove unnecessary headers 2010-03-10 7:48 ` [PATCH 05/20] ASoC: S3C: I2Sv2: Unify clock source IDs Jassi Brar @ 2010-03-10 7:48 ` Jassi Brar 2010-03-10 7:48 ` [PATCH 07/20] ASoC: s3c64xx-i2s remove unncessary headers Jassi Brar 0 siblings, 1 reply; 9+ messages in thread From: Jassi Brar @ 2010-03-10 7:48 UTC (permalink / raw) To: alsa-devel; +Cc: broonie, Jassi Brar, ben-linux s3c-i2s-v2 remove unnecessary headers Signed-off-by: Jassi Brar <jassi.brar@samsung.com> --- sound/soc/s3c24xx/s3c-i2s-v2.c | 6 ------ 1 files changed, 0 insertions(+), 6 deletions(-) diff --git a/sound/soc/s3c24xx/s3c-i2s-v2.c b/sound/soc/s3c24xx/s3c-i2s-v2.c index 2812b41..170b3c1 100644 --- a/sound/soc/s3c24xx/s3c-i2s-v2.c +++ b/sound/soc/s3c24xx/s3c-i2s-v2.c @@ -16,18 +16,12 @@ * option) any later version. */ -#include <linux/init.h> -#include <linux/module.h> -#include <linux/device.h> #include <linux/delay.h> #include <linux/clk.h> -#include <linux/kernel.h> #include <linux/io.h> -#include <sound/core.h> #include <sound/pcm.h> #include <sound/pcm_params.h> -#include <sound/initval.h> #include <sound/soc.h> #include <plat/regs-s3c2412-iis.h> -- 1.6.2.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 07/20] ASoC: s3c64xx-i2s remove unncessary headers 2010-03-10 7:48 ` [PATCH 06/20] ASoC: s3c-i2s-v2 remove unnecessary headers Jassi Brar @ 2010-03-10 7:48 ` Jassi Brar 2010-03-10 7:48 ` [PATCH 08/20] ASoC: S3C64XX: I2S: Move RATE and FMT defines to header Jassi Brar 0 siblings, 1 reply; 9+ messages in thread From: Jassi Brar @ 2010-03-10 7:48 UTC (permalink / raw) To: alsa-devel; +Cc: broonie, Jassi Brar, ben-linux s3c64xx-i2s remove unncessary headers Signed-off-by: Jassi Brar <jassi.brar@samsung.com> --- sound/soc/s3c24xx/s3c64xx-i2s.c | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-) diff --git a/sound/soc/s3c24xx/s3c64xx-i2s.c b/sound/soc/s3c24xx/s3c64xx-i2s.c index 93ed3aa..39563ed 100644 --- a/sound/soc/s3c24xx/s3c64xx-i2s.c +++ b/sound/soc/s3c24xx/s3c64xx-i2s.c @@ -12,9 +12,6 @@ * published by the Free Software Foundation. */ -#include <linux/init.h> -#include <linux/module.h> -#include <linux/device.h> #include <linux/clk.h> #include <linux/gpio.h> #include <linux/io.h> -- 1.6.2.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 08/20] ASoC: S3C64XX: I2S: Move RATE and FMT defines to header 2010-03-10 7:48 ` [PATCH 07/20] ASoC: s3c64xx-i2s remove unncessary headers Jassi Brar @ 2010-03-10 7:48 ` Jassi Brar 2010-03-10 7:48 ` [PATCH 09/20] ASoC: S3C: I2Sv2: Segregate hw_params callback Jassi Brar 0 siblings, 1 reply; 9+ messages in thread From: Jassi Brar @ 2010-03-10 7:48 UTC (permalink / raw) To: alsa-devel; +Cc: broonie, Jassi Brar, ben-linux In order for the RATE and FMT defines to be reuseable in future by the i2sv4 driver, move the MACROs out to the header file. Signed-off-by: Jassi Brar <jassi.brar@samsung.com> --- sound/soc/s3c24xx/s3c64xx-i2s.c | 9 --------- sound/soc/s3c24xx/s3c64xx-i2s.h | 9 +++++++++ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/sound/soc/s3c24xx/s3c64xx-i2s.c b/sound/soc/s3c24xx/s3c64xx-i2s.c index 39563ed..6552894 100644 --- a/sound/soc/s3c24xx/s3c64xx-i2s.c +++ b/sound/soc/s3c24xx/s3c64xx-i2s.c @@ -127,15 +127,6 @@ static int s3c64xx_i2s_probe(struct platform_device *pdev, } -#define S3C64XX_I2S_RATES \ - (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | SNDRV_PCM_RATE_16000 | \ - SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | \ - SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000) - -#define S3C64XX_I2S_FMTS \ - (SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_S16_LE |\ - SNDRV_PCM_FMTBIT_S24_LE) - static struct snd_soc_dai_ops s3c64xx_i2s_dai_ops = { .set_sysclk = s3c64xx_i2s_set_sysclk, }; diff --git a/sound/soc/s3c24xx/s3c64xx-i2s.h b/sound/soc/s3c24xx/s3c64xx-i2s.h index e350d28..53d2a0a 100644 --- a/sound/soc/s3c24xx/s3c64xx-i2s.h +++ b/sound/soc/s3c24xx/s3c64xx-i2s.h @@ -27,6 +27,15 @@ struct clk; #define S3C64XX_CLKSRC_MUX S3C_I2SV2_CLKSRC_AUDIOBUS #define S3C64XX_CLKSRC_CDCLK S3C_I2SV2_CLKSRC_CDCLK +#define S3C64XX_I2S_RATES \ + (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | SNDRV_PCM_RATE_16000 | \ + SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | \ + SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000) + +#define S3C64XX_I2S_FMTS \ + (SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_S16_LE |\ + SNDRV_PCM_FMTBIT_S24_LE) + extern struct snd_soc_dai s3c64xx_i2s_dai[]; extern struct clk *s3c64xx_i2s_get_clock(struct snd_soc_dai *dai); -- 1.6.2.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 09/20] ASoC: S3C: I2Sv2: Segregate hw_params callback 2010-03-10 7:48 ` [PATCH 08/20] ASoC: S3C64XX: I2S: Move RATE and FMT defines to header Jassi Brar @ 2010-03-10 7:48 ` Jassi Brar 2010-03-10 7:48 ` [PATCH 10/20] ASoC: S3C: I2Sv2: Move register definitions closer to driver Jassi Brar 0 siblings, 1 reply; 9+ messages in thread From: Jassi Brar @ 2010-03-10 7:48 UTC (permalink / raw) To: alsa-devel; +Cc: broonie, Jassi Brar, ben-linux Towards having build for multiple SoCs segregate hw_params callback for s3c2412 and s3c64xx. Since, all new SoCs have s3c64xx like register map, we keep that as default implementation if no SoC specific callback is already defined. Signed-off-by: Jassi Brar <jassi.brar@samsung.com> --- sound/soc/s3c24xx/s3c-i2s-v2.c | 18 +++--------------- sound/soc/s3c24xx/s3c2412-i2s.c | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 15 deletions(-) diff --git a/sound/soc/s3c24xx/s3c-i2s-v2.c b/sound/soc/s3c24xx/s3c-i2s-v2.c index 170b3c1..0d655ab 100644 --- a/sound/soc/s3c24xx/s3c-i2s-v2.c +++ b/sound/soc/s3c24xx/s3c-i2s-v2.c @@ -312,7 +312,7 @@ static int s3c2412_i2s_set_fmt(struct snd_soc_dai *cpu_dai, return 0; } -static int s3c2412_i2s_hw_params(struct snd_pcm_substream *substream, +static int s3c_i2sv2_hw_params(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params, struct snd_soc_dai *socdai) { @@ -332,18 +332,6 @@ static int s3c2412_i2s_hw_params(struct snd_pcm_substream *substream, iismod = readl(i2s->regs + S3C2412_IISMOD); pr_debug("%s: r: IISMOD: %x\n", __func__, iismod); -#if defined(CONFIG_CPU_S3C2412) || defined(CONFIG_CPU_S3C2413) - switch (params_format(params)) { - case SNDRV_PCM_FORMAT_S8: - iismod |= S3C2412_IISMOD_8BIT; - break; - case SNDRV_PCM_FORMAT_S16_LE: - iismod &= ~S3C2412_IISMOD_8BIT; - break; - } -#endif - -#ifdef CONFIG_PLAT_S3C64XX iismod &= ~S3C64XX_IISMOD_BLC_MASK; /* Sample size */ switch (params_format(params)) { @@ -356,7 +344,6 @@ static int s3c2412_i2s_hw_params(struct snd_pcm_substream *substream, iismod |= S3C64XX_IISMOD_BLC_24BIT; break; } -#endif writel(iismod, i2s->regs + S3C2412_IISMOD); pr_debug("%s: w: IISMOD: %x\n", __func__, iismod); @@ -716,7 +703,8 @@ int s3c_i2sv2_register_dai(struct snd_soc_dai *dai) struct snd_soc_dai_ops *ops = dai->ops; ops->trigger = s3c2412_i2s_trigger; - ops->hw_params = s3c2412_i2s_hw_params; + if (!ops->hw_params) + ops->hw_params = s3c_i2sv2_hw_params; ops->set_fmt = s3c2412_i2s_set_fmt; ops->set_clkdiv = s3c2412_i2s_set_clkdiv; diff --git a/sound/soc/s3c24xx/s3c2412-i2s.c b/sound/soc/s3c24xx/s3c2412-i2s.c index 359e593..a5b21f6 100644 --- a/sound/soc/s3c24xx/s3c2412-i2s.c +++ b/sound/soc/s3c24xx/s3c2412-i2s.c @@ -103,6 +103,10 @@ struct clk *s3c2412_get_iisclk(void) } EXPORT_SYMBOL_GPL(s3c2412_get_iisclk); +static inline struct s3c_i2sv2_info *to_info(struct snd_soc_dai *cpu_dai) +{ + return cpu_dai->private_data; +} static int s3c2412_i2s_probe(struct platform_device *pdev, struct snd_soc_dai *dai) @@ -142,6 +146,38 @@ static int s3c2412_i2s_probe(struct platform_device *pdev, return 0; } +static int s3c2412_i2s_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params, + struct snd_soc_dai *cpu_dai) +{ + struct s3c_i2sv2_info *i2s = to_info(cpu_dai); + u32 iismod; + + pr_debug("Entered %s\n", __func__); + + if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) + cpu_dai->dma_data = i2s->dma_playback; + else + cpu_dai->dma_data = i2s->dma_capture; + + iismod = readl(i2s->regs + S3C2412_IISMOD); + pr_debug("%s: r: IISMOD: %x\n", __func__, iismod); + + switch (params_format(params)) { + case SNDRV_PCM_FORMAT_S8: + iismod |= S3C2412_IISMOD_8BIT; + break; + case SNDRV_PCM_FORMAT_S16_LE: + iismod &= ~S3C2412_IISMOD_8BIT; + break; + } + + writel(iismod, i2s->regs + S3C2412_IISMOD); + pr_debug("%s: w: IISMOD: %x\n", __func__, iismod); + + return 0; +} + #define S3C2412_I2S_RATES \ (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | SNDRV_PCM_RATE_16000 | \ SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | \ @@ -149,6 +185,7 @@ static int s3c2412_i2s_probe(struct platform_device *pdev, static struct snd_soc_dai_ops s3c2412_i2s_dai_ops = { .set_sysclk = s3c2412_i2s_set_sysclk, + .hw_params = s3c2412_i2s_hw_params, }; struct snd_soc_dai s3c2412_i2s_dai = { -- 1.6.2.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 10/20] ASoC: S3C: I2Sv2: Move register definitions closer to driver 2010-03-10 7:48 ` [PATCH 09/20] ASoC: S3C: I2Sv2: Segregate hw_params callback Jassi Brar @ 2010-03-10 7:48 ` Jassi Brar 2010-03-10 7:49 ` [PATCH 11/20] ASoC: SAMSUNG: I2S: Add bit definitions Jassi Brar 0 siblings, 1 reply; 9+ messages in thread From: Jassi Brar @ 2010-03-10 7:48 UTC (permalink / raw) To: alsa-devel; +Cc: broonie, Jassi Brar, ben-linux The header for I2Sv2 (linux/arch/arm/plat-s3c/include/plat/regs-s3c2412-iis.h) contains only controller specific definitions and nothing SoC specific. So, it could be moved to sound/soc/s3c24xx/ That will also help avoid delays in accepting patches that touch ASOC and ARCH parts. For now, we simply copy to regs-i2s-v2.h without any material changes, and render the regs-s3c2412-iis.h useless in the kernel. A separate patch will be submitted to S3C ARCH tree to remove the regs-s3c2412-iis.h Signed-off-by: Jassi Brar <jassi.brar@samsung.com> --- sound/soc/s3c24xx/regs-i2s-v2.h | 79 +++++++++++++++++++++++++++++++++++++++ sound/soc/s3c24xx/s3c-i2s-v2.c | 3 +- sound/soc/s3c24xx/s3c2412-i2s.c | 3 +- sound/soc/s3c24xx/s3c64xx-i2s.c | 2 +- 4 files changed, 82 insertions(+), 5 deletions(-) create mode 100644 sound/soc/s3c24xx/regs-i2s-v2.h diff --git a/sound/soc/s3c24xx/regs-i2s-v2.h b/sound/soc/s3c24xx/regs-i2s-v2.h new file mode 100644 index 0000000..8e1a585 --- /dev/null +++ b/sound/soc/s3c24xx/regs-i2s-v2.h @@ -0,0 +1,79 @@ +/* linux/sound/soc/s3c24xx/regs-i2s-v2.h + * + * Copyright 2007 Simtec Electronics <linux@simtec.co.uk> + * http://armlinux.simtec.co.uk/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * Register definitions for controllers that share the I2Sv2 part +*/ + +#ifndef __REGS_IISV2_H +#define __REGS_IISV2_H + +#define S3C2412_IISCON (0x00) +#define S3C2412_IISMOD (0x04) +#define S3C2412_IISFIC (0x08) +#define S3C2412_IISPSR (0x0C) +#define S3C2412_IISTXD (0x10) +#define S3C2412_IISRXD (0x14) + +#define S3C2412_IISCON_LRINDEX (1 << 11) +#define S3C2412_IISCON_TXFIFO_EMPTY (1 << 10) +#define S3C2412_IISCON_RXFIFO_EMPTY (1 << 9) +#define S3C2412_IISCON_TXFIFO_FULL (1 << 8) +#define S3C2412_IISCON_RXFIFO_FULL (1 << 7) +#define S3C2412_IISCON_TXDMA_PAUSE (1 << 6) +#define S3C2412_IISCON_RXDMA_PAUSE (1 << 5) +#define S3C2412_IISCON_TXCH_PAUSE (1 << 4) +#define S3C2412_IISCON_RXCH_PAUSE (1 << 3) +#define S3C2412_IISCON_TXDMA_ACTIVE (1 << 2) +#define S3C2412_IISCON_RXDMA_ACTIVE (1 << 1) +#define S3C2412_IISCON_IIS_ACTIVE (1 << 0) + +#define S3C64XX_IISMOD_BLC_16BIT (0 << 13) +#define S3C64XX_IISMOD_BLC_8BIT (1 << 13) +#define S3C64XX_IISMOD_BLC_24BIT (2 << 13) +#define S3C64XX_IISMOD_BLC_MASK (3 << 13) + +#define S3C64XX_IISMOD_IMS_PCLK (0 << 10) +#define S3C64XX_IISMOD_IMS_SYSMUX (1 << 10) + +#define S3C2412_IISMOD_MASTER_INTERNAL (0 << 10) +#define S3C2412_IISMOD_MASTER_EXTERNAL (1 << 10) +#define S3C2412_IISMOD_SLAVE (2 << 10) +#define S3C2412_IISMOD_MASTER_MASK (3 << 10) +#define S3C2412_IISMOD_MODE_TXONLY (0 << 8) +#define S3C2412_IISMOD_MODE_RXONLY (1 << 8) +#define S3C2412_IISMOD_MODE_TXRX (2 << 8) +#define S3C2412_IISMOD_MODE_MASK (3 << 8) +#define S3C2412_IISMOD_LR_LLOW (0 << 7) +#define S3C2412_IISMOD_LR_RLOW (1 << 7) +#define S3C2412_IISMOD_SDF_IIS (0 << 5) +#define S3C2412_IISMOD_SDF_MSB (1 << 5) +#define S3C2412_IISMOD_SDF_LSB (2 << 5) +#define S3C2412_IISMOD_SDF_MASK (3 << 5) +#define S3C2412_IISMOD_RCLK_256FS (0 << 3) +#define S3C2412_IISMOD_RCLK_512FS (1 << 3) +#define S3C2412_IISMOD_RCLK_384FS (2 << 3) +#define S3C2412_IISMOD_RCLK_768FS (3 << 3) +#define S3C2412_IISMOD_RCLK_MASK (3 << 3) +#define S3C2412_IISMOD_BCLK_32FS (0 << 1) +#define S3C2412_IISMOD_BCLK_48FS (1 << 1) +#define S3C2412_IISMOD_BCLK_16FS (2 << 1) +#define S3C2412_IISMOD_BCLK_24FS (3 << 1) +#define S3C2412_IISMOD_BCLK_MASK (3 << 1) +#define S3C2412_IISMOD_8BIT (1 << 0) + +#define S3C64XX_IISMOD_CDCLKCON (1 << 12) + +#define S3C2412_IISPSR_PSREN (1 << 15) + +#define S3C2412_IISFIC_TXFLUSH (1 << 15) +#define S3C2412_IISFIC_RXFLUSH (1 << 7) +#define S3C2412_IISFIC_TXCOUNT(x) (((x) >> 8) & 0xf) +#define S3C2412_IISFIC_RXCOUNT(x) (((x) >> 0) & 0xf) + +#endif /* __REGS_IISV2_H */ diff --git a/sound/soc/s3c24xx/s3c-i2s-v2.c b/sound/soc/s3c24xx/s3c-i2s-v2.c index 0d655ab..b690078 100644 --- a/sound/soc/s3c24xx/s3c-i2s-v2.c +++ b/sound/soc/s3c24xx/s3c-i2s-v2.c @@ -24,10 +24,9 @@ #include <sound/pcm_params.h> #include <sound/soc.h> -#include <plat/regs-s3c2412-iis.h> - #include <mach/dma.h> +#include "regs-i2s-v2.h" #include "s3c-i2s-v2.h" #include "s3c-dma.h" diff --git a/sound/soc/s3c24xx/s3c2412-i2s.c b/sound/soc/s3c24xx/s3c2412-i2s.c index a5b21f6..42fb663 100644 --- a/sound/soc/s3c24xx/s3c2412-i2s.c +++ b/sound/soc/s3c24xx/s3c2412-i2s.c @@ -32,12 +32,11 @@ #include <sound/soc.h> #include <mach/hardware.h> -#include <plat/regs-s3c2412-iis.h> - #include <mach/regs-gpio.h> #include <mach/dma.h> #include "s3c-dma.h" +#include "regs-i2s-v2.h" #include "s3c2412-i2s.h" #define S3C2412_I2S_DEBUG 0 diff --git a/sound/soc/s3c24xx/s3c64xx-i2s.c b/sound/soc/s3c24xx/s3c64xx-i2s.c index 6552894..9bcc99d 100644 --- a/sound/soc/s3c24xx/s3c64xx-i2s.c +++ b/sound/soc/s3c24xx/s3c64xx-i2s.c @@ -18,7 +18,6 @@ #include <sound/soc.h> -#include <plat/regs-s3c2412-iis.h> #include <plat/gpio-bank-d.h> #include <plat/gpio-bank-e.h> #include <plat/gpio-cfg.h> @@ -27,6 +26,7 @@ #include <mach/dma.h> #include "s3c-dma.h" +#include "regs-i2s-v2.h" #include "s3c64xx-i2s.h" /* The value should be set to maximum of the total number -- 1.6.2.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 11/20] ASoC: SAMSUNG: I2S: Add bit definitions 2010-03-10 7:48 ` [PATCH 10/20] ASoC: S3C: I2Sv2: Move register definitions closer to driver Jassi Brar @ 2010-03-10 7:49 ` Jassi Brar 2010-03-10 11:00 ` Mark Brown 0 siblings, 1 reply; 9+ messages in thread From: Jassi Brar @ 2010-03-10 7:49 UTC (permalink / raw) To: alsa-devel; +Cc: broonie, Jassi Brar, ben-linux Define more bit definitions in the order of mainline support for the SoC. Signed-off-by: Jassi Brar <jassi.brar@samsung.com> --- sound/soc/s3c24xx/regs-i2s-v2.h | 41 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 41 insertions(+), 0 deletions(-) diff --git a/sound/soc/s3c24xx/regs-i2s-v2.h b/sound/soc/s3c24xx/regs-i2s-v2.h index 8e1a585..dea199e 100644 --- a/sound/soc/s3c24xx/regs-i2s-v2.h +++ b/sound/soc/s3c24xx/regs-i2s-v2.h @@ -20,6 +20,24 @@ #define S3C2412_IISTXD (0x10) #define S3C2412_IISRXD (0x14) +#define S5PC1XX_IISFICS 0x18 +#define S5PC1XX_IISTXDS 0x1C + +#define S5PC1XX_IISCON_SW_RST (1 << 31) +#define S5PC1XX_IISCON_FRXOFSTATUS (1 << 26) +#define S5PC1XX_IISCON_FRXORINTEN (1 << 25) +#define S5PC1XX_IISCON_FTXSURSTAT (1 << 24) +#define S5PC1XX_IISCON_FTXSURINTEN (1 << 23) +#define S5PC1XX_IISCON_TXSDMAPAUSE (1 << 20) +#define S5PC1XX_IISCON_TXSDMACTIVE (1 << 18) + +#define S3C64XX_IISCON_FTXURSTATUS (1 << 17) +#define S3C64XX_IISCON_FTXURINTEN (1 << 16) +#define S3C64XX_IISCON_TXFIFO2_EMPTY (1 << 15) +#define S3C64XX_IISCON_TXFIFO1_EMPTY (1 << 14) +#define S3C64XX_IISCON_TXFIFO2_FULL (1 << 13) +#define S3C64XX_IISCON_TXFIFO1_FULL (1 << 12) + #define S3C2412_IISCON_LRINDEX (1 << 11) #define S3C2412_IISCON_TXFIFO_EMPTY (1 << 10) #define S3C2412_IISCON_RXFIFO_EMPTY (1 << 9) @@ -33,6 +51,23 @@ #define S3C2412_IISCON_RXDMA_ACTIVE (1 << 1) #define S3C2412_IISCON_IIS_ACTIVE (1 << 0) +#define S5PC1XX_IISMOD_OPCLK_CDCLK_OUT (0 << 30) +#define S5PC1XX_IISMOD_OPCLK_CDCLK_IN (1 << 30) +#define S5PC1XX_IISMOD_OPCLK_BCLK_OUT (2 << 30) +#define S5PC1XX_IISMOD_OPCLK_PCLK (3 << 30) +#define S5PC1XX_IISMOD_OPCLK_MASK (3 << 30) +#define S5PC1XX_IISMOD_TXS_IDMA (1 << 28) /* Sec_TXFIFO use I-DMA */ +#define S5PC1XX_IISMOD_BLCS_MASK 0x3 +#define S5PC1XX_IISMOD_BLCS_SHIFT 26 +#define S5PC1XX_IISMOD_BLCP_MASK 0x3 +#define S5PC1XX_IISMOD_BLCP_SHIFT 24 + +#define S3C64XX_IISMOD_C2DD_HHALF (1 << 21) /* Discard Higher-half */ +#define S3C64XX_IISMOD_C2DD_LHALF (1 << 20) /* Discard Lower-half */ +#define S3C64XX_IISMOD_C1DD_HHALF (1 << 19) +#define S3C64XX_IISMOD_C1DD_LHALF (1 << 18) +#define S3C64XX_IISMOD_DC2_EN (1 << 17) +#define S3C64XX_IISMOD_DC1_EN (1 << 16) #define S3C64XX_IISMOD_BLC_16BIT (0 << 13) #define S3C64XX_IISMOD_BLC_8BIT (1 << 13) #define S3C64XX_IISMOD_BLC_24BIT (2 << 13) @@ -71,9 +106,15 @@ #define S3C2412_IISPSR_PSREN (1 << 15) +#define S3C64XX_IISFIC_TX2COUNT(x) (((x) >> 24) & 0xf) +#define S3C64XX_IISFIC_TX1COUNT(x) (((x) >> 16) & 0xf) + #define S3C2412_IISFIC_TXFLUSH (1 << 15) #define S3C2412_IISFIC_RXFLUSH (1 << 7) #define S3C2412_IISFIC_TXCOUNT(x) (((x) >> 8) & 0xf) #define S3C2412_IISFIC_RXCOUNT(x) (((x) >> 0) & 0xf) +#define S5PC1XX_IISFICS_TXFLUSH (1 << 15) +#define S5PC1XX_IISFICS_TXCOUNT(x) (((x) >> 8) & 0x7f) + #endif /* __REGS_IISV2_H */ -- 1.6.2.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 11/20] ASoC: SAMSUNG: I2S: Add bit definitions 2010-03-10 7:49 ` [PATCH 11/20] ASoC: SAMSUNG: I2S: Add bit definitions Jassi Brar @ 2010-03-10 11:00 ` Mark Brown 2010-03-10 12:24 ` jassi brar 0 siblings, 1 reply; 9+ messages in thread From: Mark Brown @ 2010-03-10 11:00 UTC (permalink / raw) To: Jassi Brar; +Cc: alsa-devel, ben-linux On Wed, Mar 10, 2010 at 04:49:00PM +0900, Jassi Brar wrote: > Define more bit definitions in the order of mainline support for the > SoC. For changes like this it'd be better if the changelog said something like "Add register bit definitions for S5PC1xx" - this is all mainline code so it's much clearer to say that this is adding support for a new SoC. One other thing I'd suggest is that when constructing a patch series it'd be better to put the more invasive or controversial changes (like moving the headers) last. This makes it easer to apply bits of the series if there is any controversy. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 11/20] ASoC: SAMSUNG: I2S: Add bit definitions 2010-03-10 11:00 ` Mark Brown @ 2010-03-10 12:24 ` jassi brar 2010-03-10 12:38 ` Mark Brown 0 siblings, 1 reply; 9+ messages in thread From: jassi brar @ 2010-03-10 12:24 UTC (permalink / raw) To: Mark Brown; +Cc: alsa-devel, ben-linux, Jassi Brar On Wed, Mar 10, 2010 at 8:00 PM, Mark Brown <broonie@opensource.wolfsonmicro.com> wrote: > On Wed, Mar 10, 2010 at 04:49:00PM +0900, Jassi Brar wrote: >> Define more bit definitions in the order of mainline support for the >> SoC. > For changes like this it'd be better if the changelog said something > like "Add register bit definitions for S5PC1xx" - this is all mainline > code so it's much clearer to say that this is adding support for a new > SoC. I thought of adding definitions in 'chronological order of support' in kernel rather than SoC wise. Ok, will divide in two patches. > One other thing I'd suggest is that when constructing a patch series > it'd be better to put the more invasive or controversial changes (like > moving the headers) last. This makes it easer to apply bits of the > series if there is any controversy. I thought I already made that sure. In my opinion, the only controversial patch was 'header-copying' and I couldn't move that any further down the series or other changes without that. _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 11/20] ASoC: SAMSUNG: I2S: Add bit definitions 2010-03-10 12:24 ` jassi brar @ 2010-03-10 12:38 ` Mark Brown 2010-03-10 12:49 ` jassi brar 0 siblings, 1 reply; 9+ messages in thread From: Mark Brown @ 2010-03-10 12:38 UTC (permalink / raw) To: jassi brar; +Cc: alsa-devel, ben-linux, Jassi Brar On Wed, Mar 10, 2010 at 09:24:45PM +0900, jassi brar wrote: > On Wed, Mar 10, 2010 at 8:00 PM, Mark Brown > > One other thing I'd suggest is that when constructing a patch series > > it'd be better to put the more invasive or controversial changes (like > > moving the headers) last. This makes it easer to apply bits of the > > series if there is any controversy. > I thought I already made that sure. > In my opinion, the only controversial patch was 'header-copying' and I couldn't > move that any further down the series or other changes without that. I agree that this is the only really controversial change, but it seemed like pretty much all the changes that added stuff to the headers or used them could've been done pre-move so that they didn't depend on it. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 11/20] ASoC: SAMSUNG: I2S: Add bit definitions 2010-03-10 12:38 ` Mark Brown @ 2010-03-10 12:49 ` jassi brar 2010-03-10 12:56 ` Mark Brown 0 siblings, 1 reply; 9+ messages in thread From: jassi brar @ 2010-03-10 12:49 UTC (permalink / raw) To: Mark Brown; +Cc: alsa-devel, ben-linux, Jassi Brar On Wed, Mar 10, 2010 at 9:38 PM, Mark Brown <broonie@opensource.wolfsonmicro.com> wrote: > On Wed, Mar 10, 2010 at 09:24:45PM +0900, jassi brar wrote: >> On Wed, Mar 10, 2010 at 8:00 PM, Mark Brown > >> > One other thing I'd suggest is that when constructing a patch series >> > it'd be better to put the more invasive or controversial changes (like >> > moving the headers) last. This makes it easer to apply bits of the >> > series if there is any controversy. > >> I thought I already made that sure. >> In my opinion, the only controversial patch was 'header-copying' and I couldn't >> move that any further down the series or other changes without that. > > I agree that this is the only really controversial change, but it seemed > like pretty much all the changes that added stuff to the headers or used > them could've been done pre-move so that they didn't depend on it. Not sure which patch you point, but it was decision of logical build-up and successful compilation after each patch that made the patch series as it is now. _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 11/20] ASoC: SAMSUNG: I2S: Add bit definitions 2010-03-10 12:49 ` jassi brar @ 2010-03-10 12:56 ` Mark Brown 2010-03-10 13:03 ` jassi brar 0 siblings, 1 reply; 9+ messages in thread From: Mark Brown @ 2010-03-10 12:56 UTC (permalink / raw) To: jassi brar; +Cc: alsa-devel, ben-linux, Jassi Brar On Wed, Mar 10, 2010 at 09:49:03PM +0900, jassi brar wrote: > On Wed, Mar 10, 2010 at 9:38 PM, Mark Brown > > I agree that this is the only really controversial change, but it seemed > > like pretty much all the changes that added stuff to the headers or used > > them could've been done pre-move so that they didn't depend on it. > Not sure which patch you point, but it was decision of logical > build-up and successful > compilation after each patch that made the patch series as it is now. Pretty much all of them - for example, patch 11 adds a bunch of new bitfield definitions to the header. This change didn't really need the header to have been moved before it was made, it could have been done pre-move. Keeping things building is important and some of the changes that affected both S3C24xx and S3C64xx might've needed the move for that but not all of them. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 11/20] ASoC: SAMSUNG: I2S: Add bit definitions 2010-03-10 12:56 ` Mark Brown @ 2010-03-10 13:03 ` jassi brar 2010-03-10 14:11 ` Mark Brown 0 siblings, 1 reply; 9+ messages in thread From: jassi brar @ 2010-03-10 13:03 UTC (permalink / raw) To: Mark Brown; +Cc: alsa-devel, ben-linux, Jassi Brar On Wed, Mar 10, 2010 at 9:56 PM, Mark Brown <broonie@opensource.wolfsonmicro.com> wrote: > On Wed, Mar 10, 2010 at 09:49:03PM +0900, jassi brar wrote: >> On Wed, Mar 10, 2010 at 9:38 PM, Mark Brown > >> > I agree that this is the only really controversial change, but it seemed >> > like pretty much all the changes that added stuff to the headers or used >> > them could've been done pre-move so that they didn't depend on it. > >> Not sure which patch you point, but it was decision of logical >> build-up and successful >> compilation after each patch that made the patch series as it is now. > > Pretty much all of them - for example, patch 11 adds a bunch of new > bitfield definitions to the header. This change didn't really need the > header to have been moved before it was made, it could have been done > pre-move. Dear that wud have defeated the very purpose of header moving -- don't wanna depend on changes surfacing via ARCH tree after too long. _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 11/20] ASoC: SAMSUNG: I2S: Add bit definitions 2010-03-10 13:03 ` jassi brar @ 2010-03-10 14:11 ` Mark Brown 0 siblings, 0 replies; 9+ messages in thread From: Mark Brown @ 2010-03-10 14:11 UTC (permalink / raw) To: jassi brar; +Cc: alsa-devel, ben-linux, Jassi Brar On Wed, Mar 10, 2010 at 10:03:28PM +0900, jassi brar wrote: > On Wed, Mar 10, 2010 at 9:56 PM, Mark Brown > > Pretty much all of them - for example, patch 11 adds a bunch of new > > bitfield definitions to the header. This change didn't really need the > > header to have been moved before it was made, it could have been done > > pre-move. > Dear that wud have defeated the very purpose of header moving -- don't wanna > depend on changes surfacing via ARCH tree after too long. Right, but the header move is itself an arch change so you're blocked on one anyway until it goes in :/ ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2010-03-10 14:12 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-03-10 8:11 [PATCH 11/20] ASoC: SAMSUNG: I2S: Add bit definitions Jassi Brar -- strict thread matches above, loose matches on Subject: below -- 2010-03-10 7:48 [PATCH 01/20] ASoC: S3C: I2Sv2: Add missing semicolon Jassi Brar 2010-03-10 7:48 ` [PATCH 02/20] ASoC: S3C: I2Sv2: Reject immidiate register value Jassi Brar 2010-03-10 7:48 ` [PATCH 03/20] ASoC: S3C64XX: I2S: Make BCLK independent of sample size Jassi Brar 2010-03-10 7:48 ` [PATCH 04/20] ASoC: S3C: I2Sv2: Remove S3C_IIS_V2_SUPPORTED define Jassi Brar 2010-03-10 7:48 ` [PATCH 05/20] ASoC: S3C: I2Sv2: Unify clock source IDs Jassi Brar 2010-03-10 7:48 ` [PATCH 06/20] ASoC: s3c-i2s-v2 remove unnecessary headers Jassi Brar 2010-03-10 7:48 ` [PATCH 07/20] ASoC: s3c64xx-i2s remove unncessary headers Jassi Brar 2010-03-10 7:48 ` [PATCH 08/20] ASoC: S3C64XX: I2S: Move RATE and FMT defines to header Jassi Brar 2010-03-10 7:48 ` [PATCH 09/20] ASoC: S3C: I2Sv2: Segregate hw_params callback Jassi Brar 2010-03-10 7:48 ` [PATCH 10/20] ASoC: S3C: I2Sv2: Move register definitions closer to driver Jassi Brar 2010-03-10 7:49 ` [PATCH 11/20] ASoC: SAMSUNG: I2S: Add bit definitions Jassi Brar 2010-03-10 11:00 ` Mark Brown 2010-03-10 12:24 ` jassi brar 2010-03-10 12:38 ` Mark Brown 2010-03-10 12:49 ` jassi brar 2010-03-10 12:56 ` Mark Brown 2010-03-10 13:03 ` jassi brar 2010-03-10 14:11 ` Mark Brown
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).