summaryrefslogtreecommitdiff
path: root/drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c')
-rw-r--r--drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c b/drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c
index be43780..cdba790 100644
--- a/drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c
+++ b/drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c
@@ -105,15 +105,20 @@ static int vpmadt032_load_firmware(struct voicebus *vb)
struct private_context *ctx;
const struct voicebus_operations *old;
void *old_drvdata;
+ int id;
might_sleep();
ctx = kzalloc(sizeof(struct private_context), GFP_KERNEL);
if (!ctx)
return -ENOMEM;
init_private_context(ctx);
ctx->vb = vb;
- ret = __vpmadt032_start_load(
- 0, vb->pdev->vendor << 16 | vb->pdev->device,
- &ctx->pvt);
+
+ if (0x8007 == vb->pdev->device || 0x8008 == vb->pdev->device)
+ id = vb->pdev->vendor << 16 | 0x2400;
+ else
+ id = vb->pdev->vendor << 16 | vb->pdev->device;
+
+ ret = __vpmadt032_start_load(0, id, &ctx->pvt);
if (ret)
goto error_exit;
old_drvdata = pci_get_drvdata(vb->pdev);