From: Maxime Ripard <maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> To: Jean-Francois Moine <moinejf-GANU6spQydw@public.gmane.org> Cc: Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>, Dave Airlie <airlied-cv59FeDIM0c@public.gmane.org>, Liam Girdwood <lgirdwood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, Linux-ALSA <alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org>, devicetree <devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>, dri-devel <dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org>, linux-arm-kernel <linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>, linux-sunxi <linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> Subject: Re: [PATCH v5 4/7] ASoC: sunxi: Add sun8i I2S driver Date: Mon, 14 Nov 2016 22:22:36 +0100 [thread overview] Message-ID: <20161114212236.e6gnoqksjzimcsbm@lukather> (raw) In-Reply-To: <20161108115129.f315ca5feefd22614859bbe3-GANU6spQydw@public.gmane.org> [-- Attachment #1: Type: text/plain, Size: 3472 bytes --] On Tue, Nov 08, 2016 at 11:51:29AM +0100, Jean-Francois Moine wrote: > On Mon, 7 Nov 2016 21:05:05 +0100 > Maxime Ripard <maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> wrote: > > > Hi, > > > > On Sun, Nov 06, 2016 at 07:02:48PM +0100, Jean-Francois Moine wrote: > > > On Sun, 23 Oct 2016 09:33:16 +0800 > > > Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org> wrote: > > > > > > > On Fri, Oct 21, 2016 at 4:36 PM, Jean-Francois Moine <moinejf-GANU6spQydw@public.gmane.org> wrote: > > > > > This patch adds I2S support to sun8i SoCs as the A83T and H3. > > > > > > > > > > Signed-off-by: Jean-Francois Moine <moinejf-GANU6spQydw@public.gmane.org> > > > > > --- > > > > > Note: This driver is closed to the sun4i-i2s except that: > > > > > - it handles the H3 > > > > > > > > If it's close to sun4i-i2s, you should probably rework that one to support > > > > the newer SoCs. > > > > > > I started to add the H3 into the sun4i-i2s, but I am blocked with > > > regmap. > > > Many H3 registers are common with the A10, but some of them have more > > > or less fields, the fields may be at different offsets. And, finally, > > > some registers are completely different. > > > This would not raise any problem, except with regmap which is really > > > painful. > > > > That's weird, because regmap's regmap_field should make that much > > easier. > > #define field_relaxed(addr, mask, val) \ > writel_relaxed((readl_relaxed(addr) & mask) | val, addr) I'm not sure what you mean here. > > > As I may understood, regmap is used to simplify suspend/resume, but, is > > > it useful to save the I2S register on suspend? > > > Practically, I am streaming some tune on my device. I suspend it for > > > any reason. The next morning, I resume it. Are you sure I want to > > > continue to hear the end of the tune? > > > > > > I better think that streaming should be simply stopped on suspend. > > > > You're mistaken. The code in there is for *runtime* suspend, ie when > > the device is no longer used, so that case shouldn't even happen at > > all. > > > > (And real suspend isn't supported anyway) > > Is it time to remove this useless code? Which useless code? > > > Then, there is no need to save the playing registers, and, here I am, > > > there is no need to use regmap. > > > > > > May I go this way? > > > > No, please don't. regmap is also providing very useful features, such > > as access to all the registers through debugfs, or tracing. What > > exactly feels painful to you? > > When the I/O registers are in memory (that's the case), you may access > them (read and write) thru /dev/mem. For all the registers if you want to dump all of them. It needs scripting, it needs root access, and it needs some tool (either devmem or a custom one) to dump the values. And this is if you have the right kernel configuration options (devmem enabled, with the protection against mapped devices disabled). It just works with debugfs. > Also, is a register access trace really needed in this driver? Yes. > The pain is to define the regmap_config (which registers can be > read/write/volatile and which can be the values the u-boot let us in > the registers at startup time), and the lot of code which is run instead > of simple load/store machine instructions. This is only needed if you want to use caching, and caching is optional. Maxime -- Maxime Ripard, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
WARNING: multiple messages have this Message-ID (diff)
From: maxime.ripard@free-electrons.com (Maxime Ripard) To: linux-arm-kernel@lists.infradead.org Subject: [linux-sunxi] [PATCH v5 4/7] ASoC: sunxi: Add sun8i I2S driver Date: Mon, 14 Nov 2016 22:22:36 +0100 [thread overview] Message-ID: <20161114212236.e6gnoqksjzimcsbm@lukather> (raw) In-Reply-To: <20161108115129.f315ca5feefd22614859bbe3@free.fr> On Tue, Nov 08, 2016 at 11:51:29AM +0100, Jean-Francois Moine wrote: > On Mon, 7 Nov 2016 21:05:05 +0100 > Maxime Ripard <maxime.ripard@free-electrons.com> wrote: > > > Hi, > > > > On Sun, Nov 06, 2016 at 07:02:48PM +0100, Jean-Francois Moine wrote: > > > On Sun, 23 Oct 2016 09:33:16 +0800 > > > Chen-Yu Tsai <wens@csie.org> wrote: > > > > > > > On Fri, Oct 21, 2016 at 4:36 PM, Jean-Francois Moine <moinejf@free.fr> wrote: > > > > > This patch adds I2S support to sun8i SoCs as the A83T and H3. > > > > > > > > > > Signed-off-by: Jean-Francois Moine <moinejf@free.fr> > > > > > --- > > > > > Note: This driver is closed to the sun4i-i2s except that: > > > > > - it handles the H3 > > > > > > > > If it's close to sun4i-i2s, you should probably rework that one to support > > > > the newer SoCs. > > > > > > I started to add the H3 into the sun4i-i2s, but I am blocked with > > > regmap. > > > Many H3 registers are common with the A10, but some of them have more > > > or less fields, the fields may be at different offsets. And, finally, > > > some registers are completely different. > > > This would not raise any problem, except with regmap which is really > > > painful. > > > > That's weird, because regmap's regmap_field should make that much > > easier. > > #define field_relaxed(addr, mask, val) \ > writel_relaxed((readl_relaxed(addr) & mask) | val, addr) I'm not sure what you mean here. > > > As I may understood, regmap is used to simplify suspend/resume, but, is > > > it useful to save the I2S register on suspend? > > > Practically, I am streaming some tune on my device. I suspend it for > > > any reason. The next morning, I resume it. Are you sure I want to > > > continue to hear the end of the tune? > > > > > > I better think that streaming should be simply stopped on suspend. > > > > You're mistaken. The code in there is for *runtime* suspend, ie when > > the device is no longer used, so that case shouldn't even happen at > > all. > > > > (And real suspend isn't supported anyway) > > Is it time to remove this useless code? Which useless code? > > > Then, there is no need to save the playing registers, and, here I am, > > > there is no need to use regmap. > > > > > > May I go this way? > > > > No, please don't. regmap is also providing very useful features, such > > as access to all the registers through debugfs, or tracing. What > > exactly feels painful to you? > > When the I/O registers are in memory (that's the case), you may access > them (read and write) thru /dev/mem. For all the registers if you want to dump all of them. It needs scripting, it needs root access, and it needs some tool (either devmem or a custom one) to dump the values. And this is if you have the right kernel configuration options (devmem enabled, with the protection against mapped devices disabled). It just works with debugfs. > Also, is a register access trace really needed in this driver? Yes. > The pain is to define the regmap_config (which registers can be > read/write/volatile and which can be the values the u-boot let us in > the registers at startup time), and the lot of code which is run instead > of simple load/store machine instructions. This is only needed if you want to use caching, and caching is optional. Maxime -- Maxime Ripard, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 801 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20161114/5cda6589/attachment.sig>
next prev parent reply other threads:[~2016-11-14 21:22 UTC|newest] Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-10-22 13:28 [PATCH v5 0/7] ARM: ASoC: drm: sun8i: Add DE2 HDMI audio and video Jean-Francois Moine 2016-10-22 13:28 ` Jean-Francois Moine [not found] ` <cover.1477142934.git.moinejf-GANU6spQydw@public.gmane.org> 2016-10-21 7:26 ` [PATCH v5 1/7] drm: sunxi: Add a basic DRM driver for Allwinner DE2 Jean-Francois Moine 2016-10-21 7:26 ` Jean-Francois Moine [not found] ` <8afc5e020c5767face34fe3a9ab300ce9e67ba00.1477142934.git.moinejf-GANU6spQydw@public.gmane.org> 2016-10-24 14:04 ` Maxime Ripard 2016-10-24 14:04 ` Maxime Ripard 2016-10-25 14:14 ` Jean-Francois Moine 2016-10-25 14:14 ` Jean-Francois Moine [not found] ` <20161025161441.6b248efe9229bd80e3f7a33c-GANU6spQydw@public.gmane.org> 2016-10-25 23:52 ` [linux-sunxi] " André Przywara 2016-10-25 23:52 ` André Przywara 2016-10-27 22:03 ` Maxime Ripard 2016-10-27 22:03 ` Maxime Ripard 2016-10-28 17:34 ` Jean-Francois Moine 2016-10-28 17:34 ` Jean-Francois Moine [not found] ` <20161028193420.0f7dc67ea1042ff72b09b701-GANU6spQydw@public.gmane.org> 2016-11-07 22:37 ` Maxime Ripard 2016-11-07 22:37 ` Maxime Ripard 2016-11-08 14:37 ` Jean-Francois Moine 2016-11-08 14:37 ` Jean-Francois Moine [not found] ` <20161108153752.a17440e784f2e3993c79ee69-GANU6spQydw@public.gmane.org> 2016-11-16 21:33 ` Maxime Ripard 2016-11-16 21:33 ` Maxime Ripard 2016-11-17 14:57 ` Jean-Francois Moine 2016-11-17 14:57 ` Jean-Francois Moine 2016-10-30 20:41 ` Rob Herring 2016-10-30 20:41 ` Rob Herring 2016-10-25 6:44 ` Daniel Vetter 2016-10-25 6:44 ` Daniel Vetter [not found] ` <20161025064422.4jua6qmpr7zu3ijt-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org> 2016-10-25 6:46 ` Daniel Vetter 2016-10-25 6:46 ` Daniel Vetter 2016-10-25 14:16 ` Jean-Francois Moine 2016-10-25 14:16 ` Jean-Francois Moine 2016-10-30 20:41 ` Rob Herring 2016-10-30 20:41 ` Rob Herring 2016-10-21 7:44 ` [PATCH v5 2/7] ASoC: sunxi: Add a simple HDMI CODEC Jean-Francois Moine 2016-10-21 7:44 ` Jean-Francois Moine [not found] ` <5cb540f20f64d28bd7dee82a0e14ee5209631979.1477142934.git.moinejf-GANU6spQydw@public.gmane.org> 2016-10-27 16:54 ` Chen-Yu Tsai 2016-10-27 16:54 ` [linux-sunxi] " Chen-Yu Tsai [not found] ` <CAGb2v67cE8v3=XtTzDBst2D2U6wM8pffQYK9nEok+j4xnPT39A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2016-10-27 17:16 ` Jean-Francois Moine 2016-10-27 17:16 ` [linux-sunxi] " Jean-Francois Moine [not found] ` <20161027191634.f2fa6478cd07d84a60274339-GANU6spQydw@public.gmane.org> 2016-10-27 18:36 ` Mark Brown 2016-10-27 18:36 ` Mark Brown 2016-10-21 8:08 ` [PATCH v5 3/7] drm: sunxi: add DE2 HDMI support Jean-Francois Moine 2016-10-21 8:08 ` Jean-Francois Moine [not found] ` <36bd5454897c8ab77749e0294e4a4ecc2450dd12.1477142934.git.moinejf-GANU6spQydw@public.gmane.org> 2016-10-24 13:17 ` Maxime Ripard 2016-10-24 13:17 ` Maxime Ripard 2016-10-30 20:41 ` Rob Herring 2016-10-30 20:41 ` Rob Herring 2016-10-21 8:36 ` [PATCH v5 4/7] ASoC: sunxi: Add sun8i I2S driver Jean-Francois Moine 2016-10-21 8:36 ` Jean-Francois Moine [not found] ` <bee315efb909c1ee8b5fe7d3aeb9a33d713cb562.1477142934.git.moinejf-GANU6spQydw@public.gmane.org> 2016-10-23 1:33 ` [linux-sunxi] " Chen-Yu Tsai 2016-10-23 1:33 ` Chen-Yu Tsai [not found] ` <CAGb2v67gDd650TJk_-oHOehnzdH2qor=36HXdPt339Ji=ToAMg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2016-10-23 7:45 ` Jean-Francois Moine 2016-10-23 7:45 ` [linux-sunxi] " Jean-Francois Moine [not found] ` <20161023094503.fbb22dd0701e3f2785828609-GANU6spQydw@public.gmane.org> 2016-10-24 12:34 ` Maxime Ripard 2016-10-24 12:34 ` [linux-sunxi] " Maxime Ripard 2016-10-27 15:13 ` [alsa-devel] " Jean-Francois Moine 2016-10-27 15:13 ` Jean-Francois Moine [not found] ` <20161027171325.d68baa5ff51da4921ff8b94d-GANU6spQydw@public.gmane.org> 2016-10-27 20:01 ` [alsa-devel] " Maxime Ripard 2016-10-27 20:01 ` [alsa-devel] [linux-sunxi] " Maxime Ripard 2016-11-06 18:02 ` Jean-Francois Moine 2016-11-06 18:02 ` [linux-sunxi] " Jean-Francois Moine 2016-11-07 20:05 ` Maxime Ripard 2016-11-07 20:05 ` Maxime Ripard 2016-11-08 10:51 ` Jean-Francois Moine 2016-11-08 10:51 ` [linux-sunxi] " Jean-Francois Moine [not found] ` <20161108115129.f315ca5feefd22614859bbe3-GANU6spQydw@public.gmane.org> 2016-11-14 21:22 ` Maxime Ripard [this message] 2016-11-14 21:22 ` Maxime Ripard 2016-10-21 10:01 ` [PATCH v5 5/7] ARM: dts: sun8i-h3: add HDMI audio and video nodes Jean-Francois Moine 2016-10-21 10:01 ` Jean-Francois Moine 2016-10-22 10:29 ` [PATCH v5 6/7] ARM: dts: sun8i-h3: Add HDMI audio and video to the Banana Pi M2+ Jean-Francois Moine 2016-10-22 10:29 ` Jean-Francois Moine 2016-10-22 11:06 ` [PATCH v5 7/7] ARM: dts: sun8i-h3: Add HDMI audio and video to the Orange PI 2 Jean-Francois Moine 2016-10-22 11:06 ` Jean-Francois Moine 2016-10-23 1:38 ` [linux-sunxi] [PATCH v5 0/7] ARM: ASoC: drm: sun8i: Add DE2 HDMI audio and video Chen-Yu Tsai 2016-10-23 1:38 ` Chen-Yu Tsai [not found] ` <CAGb2v64fgJShfyEHnjm6ryg00WhHkmnPj+FdjHcXBa6HQbyTuA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2016-10-23 7:35 ` Jean-Francois Moine 2016-10-23 7:35 ` Jean-Francois Moine
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20161114212236.e6gnoqksjzimcsbm@lukather \ --to=maxime.ripard-wi1+55scjutkeb57/3fjtnbpr1lh4cv8@public.gmane.org \ --cc=airlied-cv59FeDIM0c@public.gmane.org \ --cc=alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org \ --cc=broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \ --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \ --cc=lgirdwood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \ --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \ --cc=linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \ --cc=moinejf-GANU6spQydw@public.gmane.org \ --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \ --cc=wens-jdAy2FN1RRM@public.gmane.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.