mirror of https://gitee.com/openkylin/linux.git
fpga: dfl: fme-mgr: add compat_id support
This patch adds compat_id support to fme manager driver, it reads the ID from the hardware register. And it could be used for compatibility check before partial reconfiguration. Signed-off-by: Wu Hao <hao.wu@intel.com> Acked-by: Alan Tull <atull@kernel.org> Acked-by: Moritz Fischer <mdf@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
af275ec616
commit
5ebae801d9
|
@ -272,9 +272,17 @@ static const struct fpga_manager_ops fme_mgr_ops = {
|
|||
.status = fme_mgr_status,
|
||||
};
|
||||
|
||||
static void fme_mgr_get_compat_id(void __iomem *fme_pr,
|
||||
struct fpga_compat_id *id)
|
||||
{
|
||||
id->id_l = readq(fme_pr + FME_PR_INTFC_ID_L);
|
||||
id->id_h = readq(fme_pr + FME_PR_INTFC_ID_H);
|
||||
}
|
||||
|
||||
static int fme_mgr_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct dfl_fme_mgr_pdata *pdata = dev_get_platdata(&pdev->dev);
|
||||
struct fpga_compat_id *compat_id;
|
||||
struct device *dev = &pdev->dev;
|
||||
struct fme_mgr_priv *priv;
|
||||
struct fpga_manager *mgr;
|
||||
|
@ -295,11 +303,18 @@ static int fme_mgr_probe(struct platform_device *pdev)
|
|||
return PTR_ERR(priv->ioaddr);
|
||||
}
|
||||
|
||||
compat_id = devm_kzalloc(dev, sizeof(*compat_id), GFP_KERNEL);
|
||||
if (!compat_id)
|
||||
return -ENOMEM;
|
||||
|
||||
fme_mgr_get_compat_id(priv->ioaddr, compat_id);
|
||||
|
||||
mgr = fpga_mgr_create(dev, "DFL FME FPGA Manager",
|
||||
&fme_mgr_ops, priv);
|
||||
if (!mgr)
|
||||
return -ENOMEM;
|
||||
|
||||
mgr->compat_id = compat_id;
|
||||
platform_set_drvdata(pdev, mgr);
|
||||
|
||||
ret = fpga_mgr_register(mgr);
|
||||
|
|
Loading…
Reference in New Issue