On Sun, 4 Aug 2019 at 14:36, Jaafar Ali <[email protected]> wrote: > Dear Krzysztof, > The sound of Odroid-XU4 after suspend/resume cycle has an issue. As a > workaround, the I2SMOD register value should be set to zero after resume, the > i2s_resume function would be: > > static int i2s_resume(struct snd_soc_dai *dai) > { > struct samsung_i2s_priv *priv = dev_get_drvdata(dai->dev); > printk(KERN_EMERG "i2s resume of dai !\n"); > priv->suspend_i2smod = 0;//workaround-1 , to force using internal codec clock > source (CDCLKCON bit = 0) > //see another workaround inside hw_param > > return pm_runtime_force_resume(dai->dev); > > } > > Also, inside hw_params function, the rclk_srcrate must be halved to solve > unknown problem of clock shift, so before return from hw_params we must > insert: > if(mod == 0){ > priv->rclk_srcrate = priv->rclk_srcrate / 2; //workaround-2, clock is being > halved due to unknwon bug > printk(KERN_EMERG "i2s hw_param rclk_srcrate after %lu !\n", > priv->rclk_srcrate); > } > return 0; > > With these two workaround sound issue was solved, but I hope we can get > concrete fix.
Hi Jaafar, Thanks for the report. Preferred way to send bug reports is to use the public channels by sending to Linux kernel mailing lists: [email protected] and [email protected], with the Cc of other interested people. The best is to use the scripts/get_maintainer.pl tool (with -f for example) to get the list of addresses to Cc. Best regards, Krzysztof

