Solo4K Support.
[vuplus_openvuplus_3.0] / meta-bsp / recipes-kernel / linux / linux-vuplus-3.14.28 / linux_dvb_adapter.patch
1 diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c
2 index 983db75..a5ad43d 100644
3 --- a/drivers/media/dvb-core/dvbdev.c
4 +++ b/drivers/media/dvb-core/dvbdev.c
5 @@ -296,9 +296,9 @@ static int dvbdev_check_free_adapter_num(int num)
6         return 1;
7  }
8  
9 -static int dvbdev_get_free_adapter_num (void)
10 +static int dvbdev_get_free_adapter_num (int start_num)
11  {
12 -       int num = 0;
13 +       int num = start_num;
14  
15         while (num < DVB_MAX_ADAPTERS) {
16                 if (dvbdev_check_free_adapter_num(num))
17 @@ -315,17 +315,17 @@ int dvb_register_adapter(struct dvb_adapter *adap, const char *name,
18                          short *adapter_nums)
19  {
20         int i, num;
21 -
22 +       char *vu_name = strstr(name, "_vuplus_");
23         mutex_lock(&dvbdev_register_lock);
24  
25         for (i = 0; i < DVB_MAX_ADAPTERS; ++i) {
26                 num = adapter_nums[i];
27 -               if (num >= 0  &&  num < DVB_MAX_ADAPTERS) {
28 +               if (num >= vu_name? 0:1  &&  num < DVB_MAX_ADAPTERS) {
29                 /* use the one the driver asked for */
30                         if (dvbdev_check_free_adapter_num(num))
31                                 break;
32                 } else {
33 -                       num = dvbdev_get_free_adapter_num();
34 +                       num = dvbdev_get_free_adapter_num(vu_name? 0:1);
35                         break;
36                 }
37                 num = -1;