[PATCHv4 2/6] dmaengine: mv_xor: add suspend/resume support
Vinod Koul
vinod.koul at intel.com
Wed Aug 19 09:53:49 PDT 2015
On Wed, Jul 29, 2015 at 11:34:05AM +0200, Thomas Petazzoni wrote:
> Vinod,
>
> On Wed, 22 Jul 2015 10:40:11 +0530, Vinod Koul wrote:
>
> > > +static int mv_xor_suspend(struct platform_device *pdev, pm_message_t state)
> > > +{
> > > + struct mv_xor_device *xordev = platform_get_drvdata(pdev);
> > > + int i;
> > > +
> > > + for (i = 0; i < MV_XOR_MAX_CHANNELS; i++) {
> > > + struct mv_xor_chan *mv_chan = xordev->channels[i];
> > > +
> > > + if (!mv_chan)
> > > + continue;
> > > +
> > > + mv_chan->saved_config_reg =
> > > + readl_relaxed(XOR_CONFIG(mv_chan));
> > > + mv_chan->saved_int_mask_reg =
> > > + readl_relaxed(XOR_INTR_MASK(mv_chan));
> > this sound fine, but I am missing the suspension of the channel. If a
> > transfer was active while suspend was invoked then how would this work?
>
> There are indeed no provisions to handle this problem. Does the
> dmaengine framework provide any helpers to ease with this? I have
> quickly looked at other dmaengine drivers, and I haven't seen any of
> them taking care of this problem. Do you have a pointer to a driver
> handling this problem?
Sorry for delay...
Should this be solved at framework level? We should rather suspend the
channels, save the cfg and then restore that on resume.
--
~Vinod
More information about the linux-arm-kernel
mailing list