Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge series "Patches to update for rockchip spdif" from Sugar Zhang <sugar.zhang@rock-chips.com>:

These patches fixup or update for rockchip spdif.

Sugar Zhang (4):
ASoC: rockchip: spdif: Mark SPDIF_SMPDR as volatile
ASoC: rockchip: spdif: Fix some coding style
ASoC: rockchip: spdif: Add support for rk3568 spdif
ASoC: dt-bindings: rockchip: Add compatible for rk3568 spdif

.../devicetree/bindings/sound/rockchip-spdif.yaml | 1 +
sound/soc/rockchip/rockchip_spdif.c | 38 ++++++++++++----------
2 files changed, 22 insertions(+), 17 deletions(-)

--
2.7.4

+22 -17
+1
Documentation/devicetree/bindings/sound/rockchip-spdif.yaml
··· 23 23 - const: rockchip,rk3366-spdif 24 24 - const: rockchip,rk3368-spdif 25 25 - const: rockchip,rk3399-spdif 26 + - const: rockchip,rk3568-spdif 26 27 - items: 27 28 - enum: 28 29 - rockchip,rk3188-spdif
+21 -17
sound/soc/rockchip/rockchip_spdif.c
··· 58 58 .data = (void *)RK_SPDIF_RK3366 }, 59 59 { .compatible = "rockchip,rk3399-spdif", 60 60 .data = (void *)RK_SPDIF_RK3366 }, 61 + { .compatible = "rockchip,rk3568-spdif", 62 + .data = (void *)RK_SPDIF_RK3366 }, 61 63 {}, 62 64 }; 63 65 MODULE_DEVICE_TABLE(of, rk_spdif_match); ··· 105 103 } 106 104 107 105 static int rk_spdif_hw_params(struct snd_pcm_substream *substream, 108 - struct snd_pcm_hw_params *params, 109 - struct snd_soc_dai *dai) 106 + struct snd_pcm_hw_params *params, 107 + struct snd_soc_dai *dai) 110 108 { 111 109 struct rk_spdif_dev *spdif = snd_soc_dai_get_drvdata(dai); 112 110 unsigned int val = SPDIF_CFGR_HALFWORD_ENABLE; ··· 139 137 } 140 138 141 139 ret = regmap_update_bits(spdif->regmap, SPDIF_CFGR, 142 - SPDIF_CFGR_CLK_DIV_MASK | SPDIF_CFGR_HALFWORD_ENABLE | 143 - SDPIF_CFGR_VDW_MASK, 144 - val); 140 + SPDIF_CFGR_CLK_DIV_MASK | 141 + SPDIF_CFGR_HALFWORD_ENABLE | 142 + SDPIF_CFGR_VDW_MASK, val); 145 143 146 144 return ret; 147 145 } 148 146 149 147 static int rk_spdif_trigger(struct snd_pcm_substream *substream, 150 - int cmd, struct snd_soc_dai *dai) 148 + int cmd, struct snd_soc_dai *dai) 151 149 { 152 150 struct rk_spdif_dev *spdif = snd_soc_dai_get_drvdata(dai); 153 151 int ret; ··· 157 155 case SNDRV_PCM_TRIGGER_RESUME: 158 156 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: 159 157 ret = regmap_update_bits(spdif->regmap, SPDIF_DMACR, 160 - SPDIF_DMACR_TDE_ENABLE | 161 - SPDIF_DMACR_TDL_MASK, 162 - SPDIF_DMACR_TDE_ENABLE | 163 - SPDIF_DMACR_TDL(16)); 158 + SPDIF_DMACR_TDE_ENABLE | 159 + SPDIF_DMACR_TDL_MASK, 160 + SPDIF_DMACR_TDE_ENABLE | 161 + SPDIF_DMACR_TDL(16)); 164 162 165 163 if (ret != 0) 166 164 return ret; 167 165 168 166 ret = regmap_update_bits(spdif->regmap, SPDIF_XFER, 169 - SPDIF_XFER_TXS_START, 170 - SPDIF_XFER_TXS_START); 167 + SPDIF_XFER_TXS_START, 168 + SPDIF_XFER_TXS_START); 171 169 break; 172 170 case SNDRV_PCM_TRIGGER_SUSPEND: 173 171 case SNDRV_PCM_TRIGGER_STOP: 174 172 case SNDRV_PCM_TRIGGER_PAUSE_PUSH: 175 173 ret = regmap_update_bits(spdif->regmap, SPDIF_DMACR, 176 - SPDIF_DMACR_TDE_ENABLE, 177 - SPDIF_DMACR_TDE_DISABLE); 174 + SPDIF_DMACR_TDE_ENABLE, 175 + SPDIF_DMACR_TDE_DISABLE); 178 176 179 177 if (ret != 0) 180 178 return ret; 181 179 182 180 ret = regmap_update_bits(spdif->regmap, SPDIF_XFER, 183 - SPDIF_XFER_TXS_START, 184 - SPDIF_XFER_TXS_STOP); 181 + SPDIF_XFER_TXS_START, 182 + SPDIF_XFER_TXS_STOP); 185 183 break; 186 184 default: 187 185 ret = -EINVAL; ··· 249 247 case SPDIF_INTCR: 250 248 case SPDIF_INTSR: 251 249 case SPDIF_XFER: 250 + case SPDIF_SMPDR: 252 251 return true; 253 252 default: 254 253 return false; ··· 261 258 switch (reg) { 262 259 case SPDIF_INTSR: 263 260 case SPDIF_SDBLR: 261 + case SPDIF_SMPDR: 264 262 return true; 265 263 default: 266 264 return false; ··· 295 291 grf = syscon_regmap_lookup_by_phandle(np, "rockchip,grf"); 296 292 if (IS_ERR(grf)) { 297 293 dev_err(&pdev->dev, 298 - "rockchip_spdif missing 'rockchip,grf' \n"); 294 + "rockchip_spdif missing 'rockchip,grf'\n"); 299 295 return PTR_ERR(grf); 300 296 } 301 297