Hi Wu, On Mon, Mar 25, 2019 at 11:07:39AM +0800, Wu Hao wrote: > STP (SignalTap) is one of the private features under the port for > debugging. This patch adds private feature driver support for it > to allow userspace applications to mmap related mmio region and > provide STP service. > > Signed-off-by: Xu Yilun <yilun.xu@xxxxxxxxx> > Signed-off-by: Wu Hao <hao.wu@xxxxxxxxx> Acked-by: Moritz Fischer <mdf@xxxxxxxxxx> > --- > drivers/fpga/dfl-afu-main.c | 34 ++++++++++++++++++++++++++++++++++ > 1 file changed, 34 insertions(+) > > diff --git a/drivers/fpga/dfl-afu-main.c b/drivers/fpga/dfl-afu-main.c > index 754729e..14970a4 100644 > --- a/drivers/fpga/dfl-afu-main.c > +++ b/drivers/fpga/dfl-afu-main.c > @@ -518,6 +518,36 @@ static const struct dfl_feature_ops port_afu_ops = { > .uinit = port_afu_uinit, > }; > > +static int port_stp_init(struct platform_device *pdev, > + struct dfl_feature *feature) > +{ > + struct resource *res = &pdev->resource[feature->resource_index]; > + > + dev_dbg(&pdev->dev, "PORT STP Init.\n"); > + > + return afu_mmio_region_add(dev_get_platdata(&pdev->dev), > + DFL_PORT_REGION_INDEX_STP, > + resource_size(res), res->start, > + DFL_PORT_REGION_MMAP | DFL_PORT_REGION_READ | > + DFL_PORT_REGION_WRITE); > +} > + > +static void port_stp_uinit(struct platform_device *pdev, > + struct dfl_feature *feature) > +{ > + dev_dbg(&pdev->dev, "PORT STP UInit.\n"); > +} > + > +static const struct dfl_feature_id port_stp_id_table[] = { > + {.id = PORT_FEATURE_ID_STP,}, > + {0,} > +}; > + > +static const struct dfl_feature_ops port_stp_ops = { > + .init = port_stp_init, > + .uinit = port_stp_uinit, > +}; > + > static struct dfl_feature_driver port_feature_drvs[] = { > { > .id_table = port_hdr_id_table, > @@ -532,6 +562,10 @@ static struct dfl_feature_driver port_feature_drvs[] = { > .ops = &port_err_ops, > }, > { > + .id_table = port_stp_id_table, > + .ops = &port_stp_ops, > + }, > + { > .ops = NULL, > } > }; > -- > 2.7.4 > Thanks, Moritz