@@ -2,7 +2,7 @@ diff --git a/drivers/media/pci/ddbridge/ddbridge-main.c b/drivers/media/pci/ddbr
index 9ab4736..50c3b4f 100644
--- a/drivers/media/pci/ddbridge/ddbridge-main.c
+++ b/drivers/media/pci/ddbridge/ddbridge-main.c
-@@ -129,13 +129,18 @@ static void ddb_irq_msi(struct ddb *dev, int nr)
+@@ -129,14 +129,18 @@ static void ddb_irq_msi(struct ddb *dev, int nr)
int stat;
if (msi && pci_msi_enabled()) {
@@ -10,17 +10,18 @@ index 9ab4736..50c3b4f 100644
- if (stat >= 1) {
- dev->msi = stat;
- dev_info(dev->dev, "using %d MSI interrupt(s)\n",
-- dev->msi);
-- } else
+- dev->msi);
+- } else {
+- dev_info(dev->dev, "MSI not available.\n");
+ stat = pci_enable_msi_block(dev->pdev, nr);
+ if (stat == 0) {
+ dev->msi = nr;
+ } else if (stat == 1) {
+ stat = pci_enable_msi(dev->pdev);
+ dev->msi = 1;
-+ }
+ }
+ if (stat < 0)
- dev_info(dev->dev, "MSI not available.\n");
++ dev_info(dev->dev, "MSI not available.\n");
+ else
+ dev_info(dev->dev, "using %d MSI interrupts\n",
+ dev->msi);