Commit 21c53f73 authored by Andreas Puhm's avatar Andreas Puhm Committed by Greg Kroah-Hartman

fpga: altera-cvp: Fix registration for CvP incapable devices

[ Upstream commit 68f60538 ]

The probe function needs to verify the CvP enable bit in order to
properly determine if FPGA Manager functionality can be safely
enabled.

Fixes: 34d1dc17 ("fpga manager: Add Altera CvP driver")
Signed-off-by: default avatarAndreas Puhm <puhm@oregano.at>
Signed-off-by: default avatarAnatolij Gustschin <agust@denx.de>
Reviewed-by: default avatarMoritz Fischer <mdf@kernel.org>
Acked-by: default avatarAlan Tull <atull@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent cea8d9e4
...@@ -404,6 +404,7 @@ static int altera_cvp_probe(struct pci_dev *pdev, ...@@ -404,6 +404,7 @@ static int altera_cvp_probe(struct pci_dev *pdev,
{ {
struct altera_cvp_conf *conf; struct altera_cvp_conf *conf;
u16 cmd, val; u16 cmd, val;
u32 regval;
int ret; int ret;
/* /*
...@@ -417,6 +418,14 @@ static int altera_cvp_probe(struct pci_dev *pdev, ...@@ -417,6 +418,14 @@ static int altera_cvp_probe(struct pci_dev *pdev,
return -ENODEV; return -ENODEV;
} }
pci_read_config_dword(pdev, VSE_CVP_STATUS, &regval);
if (!(regval & VSE_CVP_STATUS_CVP_EN)) {
dev_err(&pdev->dev,
"CVP is disabled for this device: CVP_STATUS Reg 0x%x\n",
regval);
return -ENODEV;
}
conf = devm_kzalloc(&pdev->dev, sizeof(*conf), GFP_KERNEL); conf = devm_kzalloc(&pdev->dev, sizeof(*conf), GFP_KERNEL);
if (!conf) if (!conf)
return -ENOMEM; return -ENOMEM;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment