Commit adaf4df7 authored by Daniel Scheller's avatar Daniel Scheller Committed by Mauro Carvalho Chehab

media: ddbridge: Kconfig option to control the MSI modparam default

It is known that MSI interrupts - while working quite well so far - can
still cause issues on some hardware platforms (causing I2C timeouts due
to unhandled interrupts). The msi variable/option is set to 1 by default.
So, add a Kconfig option prefixed with "EXPERIMENTAL" that will control
the default value of that modparam, defaulting to off for a better
user experience and (guaranteed) stable operation "per default".

Cc: Ralph Metzler <rjkm@metzlerbros.de>
Signed-off-by: default avatarDaniel Scheller <d.scheller@gmx.net>
Tested-by: default avatarRichard Scobie <r.scobie@clear.net.nz>
Tested-by: default avatarJasmin Jessich <jasmin@anw.at>
Tested-by: default avatarDietmar Spingler <d_spingler@freenet.de>
Tested-by: default avatarManfred Knick <Manfred.Knick@t-online.de>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent fc3fb43e
...@@ -26,3 +26,18 @@ config DVB_DDBRIDGE ...@@ -26,3 +26,18 @@ config DVB_DDBRIDGE
- CineS2 V7/V7A and DuoFlex S2 V4 (ST STV0910-based) - CineS2 V7/V7A and DuoFlex S2 V4 (ST STV0910-based)
Say Y if you own such a card and want to use it. Say Y if you own such a card and want to use it.
config DVB_DDBRIDGE_MSIENABLE
bool "Enable Message Signaled Interrupts (MSI) per default (EXPERIMENTAL)"
depends on DVB_DDBRIDGE
depends on PCI_MSI
default n
---help---
Use PCI MSI (Message Signaled Interrupts) per default. Enabling this
might lead to I2C errors originating from the bridge in conjunction
with certain SATA controllers, requiring a reload of the ddbridge
module. MSI can still be disabled by passing msi=0 as option, as
this will just change the msi option default value.
If you're unsure, concerned about stability and don't want to pass
module options in case of troubles, say N.
...@@ -47,10 +47,17 @@ MODULE_PARM_DESC(adapter_alloc, ...@@ -47,10 +47,17 @@ MODULE_PARM_DESC(adapter_alloc,
"0-one adapter per io, 1-one per tab with io, 2-one per tab, 3-one for all"); "0-one adapter per io, 1-one per tab with io, 2-one per tab, 3-one for all");
#ifdef CONFIG_PCI_MSI #ifdef CONFIG_PCI_MSI
#ifdef CONFIG_DVB_DDBRIDGE_MSIENABLE
int msi = 1; int msi = 1;
#else
int msi;
#endif
module_param(msi, int, 0444); module_param(msi, int, 0444);
MODULE_PARM_DESC(msi, #ifdef CONFIG_DVB_DDBRIDGE_MSIENABLE
" Control MSI interrupts: 0-disable, 1-enable (default)"); MODULE_PARM_DESC(msi, "Control MSI interrupts: 0-disable, 1-enable (default)");
#else
MODULE_PARM_DESC(msi, "Control MSI interrupts: 0-disable (default), 1-enable");
#endif
#endif #endif
int ci_bitrate = 70000; int ci_bitrate = 70000;
......
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