diff options
-rw-r--r-- | drivers/media/dvb/ngene/ngene-core.c | 7 | ||||
-rw-r--r-- | drivers/media/dvb/ngene/ngene.h | 1 |
2 files changed, 6 insertions, 2 deletions
diff --git a/drivers/media/dvb/ngene/ngene-core.c b/drivers/media/dvb/ngene/ngene-core.c index c8c997059c40..34eaedf65eea 100644 --- a/drivers/media/dvb/ngene/ngene-core.c +++ b/drivers/media/dvb/ngene/ngene-core.c | |||
@@ -1750,7 +1750,7 @@ static int init_channel(struct ngene_channel *chan) | |||
1750 | if (io & (NGENE_IO_TSIN | NGENE_IO_TSOUT)) { | 1750 | if (io & (NGENE_IO_TSIN | NGENE_IO_TSOUT)) { |
1751 | if (nr >= STREAM_AUDIOIN1) | 1751 | if (nr >= STREAM_AUDIOIN1) |
1752 | chan->DataFormatFlags = DF_SWAP32; | 1752 | chan->DataFormatFlags = DF_SWAP32; |
1753 | if (nr == 0 || !one_adapter) { | 1753 | if (nr == 0 || !one_adapter || dev->first_adapter == NULL) { |
1754 | adapter = &dev->adapter[nr]; | 1754 | adapter = &dev->adapter[nr]; |
1755 | ret = dvb_register_adapter(adapter, "nGene", | 1755 | ret = dvb_register_adapter(adapter, "nGene", |
1756 | THIS_MODULE, | 1756 | THIS_MODULE, |
@@ -1758,8 +1758,10 @@ static int init_channel(struct ngene_channel *chan) | |||
1758 | adapter_nr); | 1758 | adapter_nr); |
1759 | if (ret < 0) | 1759 | if (ret < 0) |
1760 | return ret; | 1760 | return ret; |
1761 | if (dev->first_adapter == NULL) | ||
1762 | dev->first_adapter = adapter; | ||
1761 | } else { | 1763 | } else { |
1762 | adapter = &dev->adapter[0]; | 1764 | adapter = dev->first_adapter; |
1763 | } | 1765 | } |
1764 | 1766 | ||
1765 | ret = my_dvb_dmx_ts_card_init(dvbdemux, "SW demux", | 1767 | ret = my_dvb_dmx_ts_card_init(dvbdemux, "SW demux", |
@@ -1796,6 +1798,7 @@ static int init_channels(struct ngene *dev) | |||
1796 | int i, j; | 1798 | int i, j; |
1797 | 1799 | ||
1798 | for (i = 0; i < MAX_STREAM; i++) { | 1800 | for (i = 0; i < MAX_STREAM; i++) { |
1801 | dev->channel[i].number = i; | ||
1799 | if (init_channel(&dev->channel[i]) < 0) { | 1802 | if (init_channel(&dev->channel[i]) < 0) { |
1800 | for (j = i - 1; j >= 0; j--) | 1803 | for (j = i - 1; j >= 0; j--) |
1801 | release_channel(&dev->channel[j]); | 1804 | release_channel(&dev->channel[j]); |
diff --git a/drivers/media/dvb/ngene/ngene.h b/drivers/media/dvb/ngene/ngene.h index a7eb29846310..ca3af5c6238f 100644 --- a/drivers/media/dvb/ngene/ngene.h +++ b/drivers/media/dvb/ngene/ngene.h | |||
@@ -752,6 +752,7 @@ struct ngene { | |||
752 | spinlock_t cmd_lock; | 752 | spinlock_t cmd_lock; |
753 | 753 | ||
754 | struct dvb_adapter adapter[MAX_STREAM]; | 754 | struct dvb_adapter adapter[MAX_STREAM]; |
755 | struct dvb_adapter *first_adapter; /* "one_adapter" modprobe opt */ | ||
755 | struct ngene_channel channel[MAX_STREAM]; | 756 | struct ngene_channel channel[MAX_STREAM]; |
756 | 757 | ||
757 | struct ngene_info *card_info; | 758 | struct ngene_info *card_info; |