diff options
Diffstat (limited to 'target/linux/generic-2.4/patches/200-i4l.patch')
-rw-r--r-- | target/linux/generic-2.4/patches/200-i4l.patch | 89 |
1 files changed, 44 insertions, 45 deletions
diff --git a/target/linux/generic-2.4/patches/200-i4l.patch b/target/linux/generic-2.4/patches/200-i4l.patch index c7352551f7..8f7caa8069 100644 --- a/target/linux/generic-2.4/patches/200-i4l.patch +++ b/target/linux/generic-2.4/patches/200-i4l.patch @@ -14460,7 +14460,7 @@ #ifdef CONFIG_NETDEVICES case IIOCNETAIF: /* Add a network-interface */ -@@ -1654,22 +1808,12 @@ isdn_open(struct inode *ino, struct file +@@ -1657,22 +1811,12 @@ isdn_open(struct inode *ino, struct file int chidx; int retval = -ENODEV; @@ -14487,7 +14487,7 @@ } if (!dev->channels) goto out; -@@ -1692,6 +1836,9 @@ isdn_open(struct inode *ino, struct file +@@ -1695,6 +1839,9 @@ isdn_open(struct inode *ino, struct file if (drvidx < 0) goto out; isdn_lock_drivers(); @@ -14497,7 +14497,7 @@ retval = 0; goto out; } -@@ -1704,6 +1851,10 @@ isdn_open(struct inode *ino, struct file +@@ -1707,6 +1854,10 @@ isdn_open(struct inode *ino, struct file } #endif out: @@ -14508,7 +14508,7 @@ return retval; } -@@ -1712,25 +1863,11 @@ isdn_close(struct inode *ino, struct fil +@@ -1715,25 +1866,11 @@ isdn_close(struct inode *ino, struct fil { uint minor = MINOR(ino->i_rdev); @@ -14537,7 +14537,7 @@ } isdn_unlock_drivers(); if (minor <= ISDN_MINOR_BMAX) -@@ -1738,6 +1875,12 @@ isdn_close(struct inode *ino, struct fil +@@ -1741,6 +1878,12 @@ isdn_close(struct inode *ino, struct fil if (minor <= ISDN_MINOR_CTRLMAX) { if (dev->profd == current) dev->profd = NULL; @@ -14550,7 +14550,7 @@ goto out; } #ifdef CONFIG_ISDN_PPP -@@ -1746,13 +1889,19 @@ isdn_close(struct inode *ino, struct fil +@@ -1749,13 +1892,19 @@ isdn_close(struct inode *ino, struct fil #endif out: @@ -14570,7 +14570,7 @@ llseek: no_llseek, read: isdn_read, write: isdn_write, -@@ -1805,6 +1954,15 @@ isdn_get_free_channel(int usage, int l2_ +@@ -1808,6 +1957,15 @@ isdn_get_free_channel(int usage, int l2_ if (USG_NONE(dev->usage[i]) && (dev->drvmap[i] != -1)) { int d = dev->drvmap[i]; @@ -14586,7 +14586,7 @@ if ((dev->usage[i] & ISDN_USAGE_EXCLUSIVE) && ((pre_dev != d) || (pre_chan != dev->chanmap[i]))) continue; -@@ -1823,7 +1981,11 @@ isdn_get_free_channel(int usage, int l2_ +@@ -1826,7 +1984,11 @@ isdn_get_free_channel(int usage, int l2_ restore_flags(flags); return i; } else { @@ -14598,7 +14598,7 @@ dev->usage[i] &= ISDN_USAGE_EXCLUSIVE; dev->usage[i] |= usage; isdn_info_update(); -@@ -2010,7 +2172,7 @@ isdn_add_channels(driver *d, int drvidx, +@@ -2013,7 +2175,7 @@ isdn_add_channels(driver *d, int drvidx, if ((adding) && (d->rcverr)) kfree(d->rcverr); @@ -14607,7 +14607,7 @@ printk(KERN_WARNING "register_isdn: Could not alloc rcverr\n"); return -1; } -@@ -2018,7 +2180,7 @@ isdn_add_channels(driver *d, int drvidx, +@@ -2021,7 +2183,7 @@ isdn_add_channels(driver *d, int drvidx, if ((adding) && (d->rcvcount)) kfree(d->rcvcount); @@ -14616,7 +14616,7 @@ printk(KERN_WARNING "register_isdn: Could not alloc rcvcount\n"); if (!adding) kfree(d->rcverr); return -1; -@@ -2030,7 +2192,8 @@ isdn_add_channels(driver *d, int drvidx, +@@ -2033,7 +2195,8 @@ isdn_add_channels(driver *d, int drvidx, skb_queue_purge(&d->rpqueue[j]); kfree(d->rpqueue); } @@ -14626,7 +14626,7 @@ printk(KERN_WARNING "register_isdn: Could not alloc rpqueue\n"); if (!adding) { kfree(d->rcvcount); -@@ -2044,7 +2207,8 @@ isdn_add_channels(driver *d, int drvidx, +@@ -2047,7 +2210,8 @@ isdn_add_channels(driver *d, int drvidx, if ((adding) && (d->rcv_waitq)) kfree(d->rcv_waitq); @@ -14636,7 +14636,7 @@ if (!d->rcv_waitq) { printk(KERN_WARNING "register_isdn: Could not alloc rcv_waitq\n"); if (!adding) { -@@ -2068,7 +2232,9 @@ isdn_add_channels(driver *d, int drvidx, +@@ -2071,7 +2235,9 @@ isdn_add_channels(driver *d, int drvidx, if (dev->chanmap[k] < 0) { dev->chanmap[k] = j; dev->drvmap[k] = drvidx; @@ -14646,7 +14646,7 @@ break; } restore_flags(flags); -@@ -2132,6 +2298,7 @@ int DIVERT_REG_NAME(isdn_divert_if *i_di +@@ -2135,6 +2301,7 @@ int DIVERT_REG_NAME(isdn_divert_if *i_di i_div->ll_cmd = isdn_command; /* set command function */ i_div->drv_to_name = map_drvname; i_div->name_to_drv = map_namedrv; @@ -14654,7 +14654,7 @@ MOD_INC_USE_COUNT; divert_if = i_div; /* remember interface */ return(DIVERT_NO_ERR); -@@ -2169,7 +2336,7 @@ register_isdn(isdn_if * i) +@@ -2172,7 +2339,7 @@ register_isdn(isdn_if * i) printk(KERN_WARNING "register_isdn: No write routine given.\n"); return 0; } @@ -14663,7 +14663,7 @@ printk(KERN_WARNING "register_isdn: Could not alloc driver-struct\n"); return 0; } -@@ -2229,6 +2396,7 @@ isdn_getrev(const char *revision) +@@ -2232,6 +2399,7 @@ isdn_getrev(const char *revision) return rev; } @@ -14671,7 +14671,7 @@ #ifdef CONFIG_DEVFS_FS static devfs_handle_t devfs_handle; -@@ -2318,6 +2486,7 @@ static void isdn_cleanup_devfs(void) +@@ -2321,6 +2489,7 @@ static void isdn_cleanup_devfs(void) } #endif /* CONFIG_DEVFS_FS */ @@ -14679,7 +14679,7 @@ /* * Allocate and initialize all data, register modem-devices -@@ -2335,7 +2504,6 @@ static int __init isdn_init(void) +@@ -2338,7 +2507,6 @@ static int __init isdn_init(void) init_timer(&dev->timer); dev->timer.function = isdn_timer_funct; init_MUTEX(&dev->sem); @@ -14687,7 +14687,7 @@ for (i = 0; i < ISDN_MAX_CHANNELS; i++) { dev->drvmap[i] = -1; dev->chanmap[i] = -1; -@@ -2349,7 +2517,9 @@ static int __init isdn_init(void) +@@ -2352,7 +2520,9 @@ static int __init isdn_init(void) vfree(dev); return -EIO; } @@ -14697,7 +14697,7 @@ if ((i = isdn_tty_modem_init()) < 0) { printk(KERN_WARNING "isdn: Could not register tty devices\n"); if (i == -3) -@@ -2357,7 +2527,9 @@ static int __init isdn_init(void) +@@ -2360,7 +2530,9 @@ static int __init isdn_init(void) if (i <= -2) tty_unregister_driver(&dev->mdm.tty_modem); vfree(dev); @@ -14707,7 +14707,7 @@ devfs_unregister_chrdev(ISDN_MAJOR, "isdn"); return -EIO; } -@@ -2368,7 +2540,9 @@ static int __init isdn_init(void) +@@ -2371,7 +2543,9 @@ static int __init isdn_init(void) tty_unregister_driver(&dev->mdm.cua_modem); for (i = 0; i < ISDN_MAX_CHANNELS; i++) kfree(dev->mdm.info[i].xmit_buf - 4); @@ -14717,7 +14717,7 @@ devfs_unregister_chrdev(ISDN_MAJOR, "isdn"); vfree(dev); return -EIO; -@@ -2394,6 +2568,9 @@ static int __init isdn_init(void) +@@ -2397,6 +2571,9 @@ static int __init isdn_init(void) printk("\n"); #endif isdn_info_update(); @@ -14727,7 +14727,7 @@ return 0; } -@@ -2402,7 +2579,7 @@ static int __init isdn_init(void) +@@ -2405,7 +2582,7 @@ static int __init isdn_init(void) */ static void __exit isdn_exit(void) { @@ -14736,7 +14736,7 @@ int i; #ifdef CONFIG_ISDN_PPP -@@ -2436,13 +2613,18 @@ static void __exit isdn_exit(void) +@@ -2439,13 +2616,18 @@ static void __exit isdn_exit(void) printk(KERN_WARNING "isdn: controldevice busy, remove cancelled\n"); restore_flags(flags); } else { @@ -17070,20 +17070,19 @@ netif_rx(skb); return; } -@@ -2160,8 +2915,10 @@ isdn_net_find_icall(int di, int ch, int +@@ -2160,7 +2915,10 @@ isdn_net_find_icall(int di, int ch, int isdn_net_phone *n; ulong flags; - char nr[32]; + char nr[ISDN_MSNLEN]; - char *my_eaz; -- +#ifdef CONFIG_ISDN_WITH_ABC + if(dev->net_verbose > 2) + printk(KERN_DEBUG "n_fi: di=%d ch=%d idx=%d usg=0x%04X\n", di, ch, idx,dev->usage[idx]); +#endif + /* Search name in netdev-chain */ save_flags(flags); - cli(); -@@ -2180,17 +2937,15 @@ isdn_net_find_icall(int di, int ch, int +@@ -2182,17 +2940,15 @@ isdn_net_find_icall(int di, int ch, int eaz = setup->eazmsn; if (dev->net_verbose > 1) printk(KERN_INFO "isdn_net: call from %s,%d,%d -> %s\n", nr, si1, si2, eaz); @@ -17110,7 +17109,7 @@ ematch = wret = swapped = 0; #ifdef ISDN_DEBUG_NET_ICALL printk(KERN_DEBUG "n_fi: di=%d ch=%d idx=%d usg=%d\n", di, ch, idx, -@@ -2210,25 +2965,8 @@ p = dev->netdev; +@@ -2212,25 +2968,8 @@ p = dev->netdev; break; } swapped = 0; @@ -17138,7 +17137,7 @@ /* Remember if more numbers eventually can match */ if (matchret > wret) wret = matchret; -@@ -2236,17 +2974,122 @@ p = dev->netdev; +@@ -2238,17 +2977,122 @@ p = dev->netdev; printk(KERN_DEBUG "n_fi: if='%s', l.msn=%s, l.flags=%d, l.dstate=%d\n", lp->name, lp->msn, lp->flags, lp->dialstate); #endif @@ -17261,7 +17260,7 @@ if (dev->usage[idx] & ISDN_USAGE_EXCLUSIVE) { if ((lp->pre_channel != ch) || (lp->pre_device != di)) { -@@ -2375,6 +3218,12 @@ p = dev->netdev; +@@ -2377,6 +3221,12 @@ p = dev->netdev; continue; } } @@ -17274,7 +17273,7 @@ if (lp->flags & ISDN_NET_CALLBACK) { int chi; /* -@@ -2427,6 +3276,47 @@ p = dev->netdev; +@@ -2429,6 +3279,47 @@ p = dev->netdev; restore_flags(flags); return 0; } else { @@ -17322,7 +17321,7 @@ printk(KERN_DEBUG "%s: call from %s -> %s accepted\n", lp->name, nr, eaz); /* if this interface is dialing, it does it probably on a different -@@ -2516,7 +3406,11 @@ isdn_net_force_dial_lp(isdn_net_local * +@@ -2518,7 +3409,11 @@ isdn_net_force_dial_lp(isdn_net_local * lp->l3_proto, lp->pre_device, lp->pre_channel, @@ -17334,7 +17333,7 @@ ) < 0) { printk(KERN_WARNING "isdn_net_force_dial: No channel for %s\n", lp->name); restore_flags(flags); -@@ -2599,7 +3493,11 @@ isdn_net_new(char *name, struct net_devi +@@ -2601,7 +3496,11 @@ isdn_net_new(char *name, struct net_devi strcpy(netdev->local->name, " "); else strcpy(netdev->local->name, name); @@ -17346,7 +17345,7 @@ netdev->dev.priv = netdev->local; netdev->dev.init = isdn_net_init; netdev->local->p_encap = ISDN_NET_ENCAP_RAWIP; -@@ -2617,11 +3515,13 @@ isdn_net_new(char *name, struct net_devi +@@ -2619,11 +3518,13 @@ isdn_net_new(char *name, struct net_devi ((isdn_net_local *) q->priv)->slave = &(netdev->dev); } else { /* Device shall be a master */ @@ -17360,7 +17359,7 @@ if (register_netdev(&netdev->dev) != 0) { printk(KERN_WARNING "isdn_net: Could not register net-device\n"); kfree(netdev->local); -@@ -2658,6 +3558,9 @@ isdn_net_new(char *name, struct net_devi +@@ -2660,6 +3561,9 @@ isdn_net_new(char *name, struct net_devi netdev->local->hupflags = ISDN_INHUP; /* Do hangup even on incoming calls */ netdev->local->onhtime = 10; /* Default hangup-time for saving costs of those who forget configuring this */ @@ -17370,7 +17369,7 @@ netdev->local->dialmax = 1; netdev->local->flags = ISDN_NET_CBHUP | ISDN_NET_DM_MANUAL; /* Hangup before Callback, manual dial */ netdev->local->cbdelay = 25; /* Wait 5 secs before Callback */ -@@ -2831,7 +3734,6 @@ isdn_net_setcfg(isdn_net_ioctl_cfg * cfg +@@ -2833,7 +3737,6 @@ isdn_net_setcfg(isdn_net_ioctl_cfg * cfg /* If binding is exclusive, try to grab the channel */ save_flags(flags); @@ -17378,7 +17377,7 @@ if ((i = isdn_get_free_channel(ISDN_USAGE_NET, lp->l2_proto, lp->l3_proto, drvidx, chidx, lp->msn)) < 0) { -@@ -2859,6 +3761,9 @@ isdn_net_setcfg(isdn_net_ioctl_cfg * cfg +@@ -2862,6 +3765,9 @@ isdn_net_setcfg(isdn_net_ioctl_cfg * cfg lp->pre_device = drvidx; lp->pre_channel = chidx; lp->onhtime = cfg->onhtime; @@ -17388,7 +17387,7 @@ lp->charge = cfg->charge; lp->l2_proto = cfg->l2_proto; lp->l3_proto = cfg->l3_proto; -@@ -2932,6 +3837,9 @@ isdn_net_setcfg(isdn_net_ioctl_cfg * cfg +@@ -2935,6 +3841,9 @@ isdn_net_setcfg(isdn_net_ioctl_cfg * cfg } } lp->p_encap = cfg->p_encap; @@ -17398,8 +17397,8 @@ return 0; } return -ENODEV; -@@ -3007,6 +3915,9 @@ isdn_net_addphone(isdn_net_ioctl_phone * - strcpy(n->num, phone->phone); +@@ -3011,6 +3920,9 @@ isdn_net_addphone(isdn_net_ioctl_phone * + n->num[sizeof(n->num) - 1] = 0; n->next = p->local->phone[phone->outgoing & 1]; p->local->phone[phone->outgoing & 1] = n; +#ifdef CONFIG_ISDN_WITH_ABC @@ -17408,7 +17407,7 @@ return 0; } return -ENODEV; -@@ -3100,6 +4011,9 @@ isdn_net_delphone(isdn_net_ioctl_phone * +@@ -3104,6 +4016,9 @@ isdn_net_delphone(isdn_net_ioctl_phone * else p->local->phone[inout] = n->next; kfree(n); @@ -17418,7 +17417,7 @@ restore_flags(flags); return 0; } -@@ -3135,6 +4049,9 @@ isdn_net_rmallphone(isdn_net_dev * p) +@@ -3139,6 +4054,9 @@ isdn_net_rmallphone(isdn_net_dev * p) p->local->phone[i] = NULL; } p->local->dial = NULL; @@ -17428,7 +17427,7 @@ restore_flags(flags); return 0; } -@@ -3218,6 +4135,10 @@ isdn_net_realrm(isdn_net_dev * p, isdn_n +@@ -3222,6 +4140,10 @@ isdn_net_realrm(isdn_net_dev * p, isdn_n /* If no more net-devices remain, disable auto-hangup timer */ if (dev->netdev == NULL) isdn_timer_ctrl(ISDN_TIMER_NETHANGUP, 0); |