Re: your mail

Will Deacon
2014-02-25T15:01:38Z

On Tue, Feb 25, 2014 at 11:20:11AM +0000, srikanth TS wrote:
>
> On Feb 25, 2014 2:28 AM, "Will Deacon" <will.deacon@arm.com<mailto:will.deacon@arm.com>> wrote:
> >
> > On Mon, Feb 24, 2014 at 03:12:21PM +0000, srikanth TS wrote:
> > > Hi Will Deacon,
> >
> > Hello,
> >
> > > Currently SMMU driver expecting all stream ID used by respective master
> > > should be defined in the DT.
> > >
> > > We want to know how to handle in the case of virtual functions dynamically
> > > created and destroyed.
> > >
> > > Is PCI driver responsible for creating stream ID respective BDand
> > > requesting SMMU to add to the mapping table[stream Id to context mapping
> > > table]?
> > >
> > > Or is there any right way of doing it?
> >
> > Correct, the driver currently doesn't support dynamic mappings (mainly
> > because I didn't want to try and invent something that I couldn't test).
> >
> > There are a couple of ways to solve this:
> >
> > (1) Add a way for a PCI RC to dynamically allocate StreamIDs on an SMMU
> > within a fixed range. That would probably need some code in the bus
> > layer, so that a bus notifier can kick and call back to the relevant
> > SMMU.
>
> I think first way of solving seems to be better, because we don't know how many
>
> VF are used and i feel its not good idea to keep whole list of streamID [which is
>
> equal to max num vf] in DT. Again in this method we need to generate the stream ID
>
> dynamically whenever VF is added in pci iov driver side. And then pass that
>
> stream ID to SMMU.
>
> Is it ok this way? Or you prefer 2nd way which is simpler.

I'm happy either way, but I'd need to see some patches before I can merge
anything ;)

Will