diff --git a/kernel/wct4xxp/vpm450m.c b/kernel/wct4xxp/vpm450m.c index 674dd49..fc3ff5a 100644 --- a/kernel/wct4xxp/vpm450m.c +++ b/kernel/wct4xxp/vpm450m.c @@ -17,6 +17,8 @@ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) #include +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 33)) +#include #else #include #endif diff --git a/kernel/wctc4xxp/base.c b/kernel/wctc4xxp/base.c index 4845c6b..80e7812 100644 --- a/kernel/wctc4xxp/base.c +++ b/kernel/wctc4xxp/base.c @@ -32,13 +32,13 @@ #include #include #include +#include #include #include #include #include #include #include -#include #include #include #include diff --git a/kernel/wctdm24xxp/GpakApi.c b/kernel/wctdm24xxp/GpakApi.c index 9997b07..ac87455 100644 --- a/kernel/wctdm24xxp/GpakApi.c +++ b/kernel/wctdm24xxp/GpakApi.c @@ -34,7 +34,7 @@ */ #include -#include +#include #include "zaptel.h" diff --git a/kernel/wctdm24xxp/GpakCust.c b/kernel/wctdm24xxp/GpakCust.c index 23f2096..5a17272 100644 --- a/kernel/wctdm24xxp/GpakCust.c +++ b/kernel/wctdm24xxp/GpakCust.c @@ -37,7 +37,7 @@ #include #include -#include +#include #include "zaptel.h" #include "wctdm24xxp.h" diff --git a/kernel/wctdm24xxp/base.c b/kernel/wctdm24xxp/base.c index 2a0f550..47a8567 100644 --- a/kernel/wctdm24xxp/base.c +++ b/kernel/wctdm24xxp/base.c @@ -44,7 +44,7 @@ Tx Gain - W/Pre-Emphasis: -23.99 to 0.00 db #include #include #include -#include +#include #ifdef LINUX26 #include diff --git a/kernel/wcte12xp/base.c b/kernel/wcte12xp/base.c index b08d4ac..4629517 100644 --- a/kernel/wcte12xp/base.c +++ b/kernel/wcte12xp/base.c @@ -1061,7 +1061,7 @@ static int t1xxp_echocan_with_params(struct zt_chan *chan, struct zt_echocanpara struct adt_lec_params params; struct t1 *wc = chan->pvt; struct vpm150m *vpm150m = wc->vpm150m; - unsigned int flags; + unsigned long flags; struct vpm150m_workentry *work; unsigned int ret; diff --git a/kernel/wcte12xp/vpmadt032.c b/kernel/wcte12xp/vpmadt032.c index 141b000..1904c92 100644 --- a/kernel/wcte12xp/vpmadt032.c +++ b/kernel/wcte12xp/vpmadt032.c @@ -29,7 +29,7 @@ */ #include -#include +#include #include #include #include diff --git a/kernel/xpp/card_fxo.c b/kernel/xpp/card_fxo.c index cb68c02..68280bd 100644 --- a/kernel/xpp/card_fxo.c +++ b/kernel/xpp/card_fxo.c @@ -406,7 +406,6 @@ static int fxo_proc_create(xbus_t *xbus, xpd_t *xpd) XPD_ERR(xpd, "Failed to create proc file '%s'\n", PROC_FXO_INFO_FNAME); goto err; } - priv->fxo_info->owner = THIS_MODULE; #ifdef WITH_METERING XPD_DBG(PROC, xpd, "Creating Metering tone file\n"); priv->meteringfile = create_proc_read_entry(PROC_METERING_FNAME, 0444, xpd->proc_xpd_dir, @@ -415,7 +414,6 @@ static int fxo_proc_create(xbus_t *xbus, xpd_t *xpd) XPD_ERR(xpd, "Failed to create proc file '%s'\n", PROC_METERING_FNAME); goto err; } - priv->meteringfile->owner = THIS_MODULE; #endif #endif return 0; diff --git a/kernel/xpp/card_fxs.c b/kernel/xpp/card_fxs.c index 33e938e..e9b2dce 100644 --- a/kernel/xpp/card_fxs.c +++ b/kernel/xpp/card_fxs.c @@ -340,7 +340,6 @@ static int fxs_proc_create(xbus_t *xbus, xpd_t *xpd) XPD_ERR(xpd, "Failed to create proc file '%s'\n", PROC_FXS_INFO_FNAME); goto err; } - priv->fxs_info->owner = THIS_MODULE; #ifdef WITH_METERING XPD_DBG(PROC, xpd, "Creating Metering tone file\n"); priv->meteringfile = create_proc_entry(PROC_METERING_FNAME, 0200, xpd->proc_xpd_dir); @@ -348,7 +347,6 @@ static int fxs_proc_create(xbus_t *xbus, xpd_t *xpd) XPD_ERR(xpd, "Failed to create proc file '%s'\n", PROC_METERING_FNAME); goto err; } - priv->meteringfile->owner = THIS_MODULE; priv->meteringfile->write_proc = proc_xpd_metering_write; priv->meteringfile->read_proc = NULL; priv->meteringfile->data = xpd; diff --git a/kernel/xpp/card_global.c b/kernel/xpp/card_global.c index c98444d..b582132 100644 --- a/kernel/xpp/card_global.c +++ b/kernel/xpp/card_global.c @@ -380,7 +380,6 @@ int chip_proc_create(xbus_t *xbus, xpd_t *xpd) XPD_ERR(xpd, "Failed to create proc file '%s'\n", CHIP_REGISTERS); goto err; } - xpd->proc_xpd_chipregs->owner = THIS_MODULE; xpd->proc_xpd_chipregs->write_proc = proc_xpd_register_write; xpd->proc_xpd_chipregs->read_proc = proc_xpd_register_read; xpd->proc_xpd_chipregs->data = xpd; diff --git a/kernel/xpp/card_pri.c b/kernel/xpp/card_pri.c index def01da..a2acabe 100644 --- a/kernel/xpp/card_pri.c +++ b/kernel/xpp/card_pri.c @@ -366,7 +366,6 @@ static int pri_proc_create(xbus_t *xbus, xpd_t *xpd) XPD_ERR(xpd, "Failed to create proc '%s'\n", PROC_PRI_INFO_FNAME); goto err; } - priv->pri_info->owner = THIS_MODULE; priv->pri_info->write_proc = proc_pri_info_write; priv->pri_info->read_proc = proc_pri_info_read; priv->pri_info->data = xpd; diff --git a/kernel/xpp/xbus-core.c b/kernel/xpp/xbus-core.c index e1265fb..e2fb4da 100644 --- a/kernel/xpp/xbus-core.c +++ b/kernel/xpp/xbus-core.c @@ -985,7 +985,6 @@ static struct xbus_workqueue *worker_new(int xbus_num) XBUS_ERR(xbus, "Failed to create proc file '%s'\n", PROC_XBUS_WAITFOR_XPDS); goto err; } - worker->proc_xbus_waitfor_xpds->owner = THIS_MODULE; } #endif return worker; @@ -1194,7 +1193,6 @@ xbus_t *xbus_new(struct xbus_ops *ops, ushort max_send_size, void *priv) err = -EIO; goto nobus; } - xbus->proc_xbus_summary->owner = THIS_MODULE; #ifdef PROTOCOL_DEBUG xbus->proc_xbus_command = create_proc_entry(PROC_XBUS_COMMAND, 0200, xbus->proc_xbus_dir); if (!xbus->proc_xbus_command) { @@ -1204,7 +1202,6 @@ xbus_t *xbus_new(struct xbus_ops *ops, ushort max_send_size, void *priv) } xbus->proc_xbus_command->write_proc = proc_xbus_command_write; xbus->proc_xbus_command->data = xbus; - xbus->proc_xbus_command->owner = THIS_MODULE; #endif #endif #ifdef XPP_DEBUGFS @@ -1649,7 +1646,6 @@ int __init xbus_core_init(void) ret = -EFAULT; goto err; } - proc_xbuses->owner = THIS_MODULE; #endif #ifdef XPP_DEBUGFS DBG(GENERAL, "Creating debugfs xpp root\n"); diff --git a/kernel/xpp/xbus-sysfs.c b/kernel/xpp/xbus-sysfs.c index 1d039c9..84bc6b8 100644 --- a/kernel/xpp/xbus-sysfs.c +++ b/kernel/xpp/xbus-sysfs.c @@ -72,7 +72,7 @@ extern int debug; /*--------- Sysfs Bus handling ----*/ static int xpp_bus_match(struct device *dev, struct device_driver *driver) { - DBG(GENERAL, "dev->bus_id = %s, driver->name = %s\n", dev->bus_id, driver->name); + DBG(GENERAL, "dev->bus_id = %s, driver->name = %s\n", dev_name(dev), driver->name); return 1; } @@ -119,7 +119,7 @@ static int xpp_bus_uevent(struct device *dev, char **envp, int num_envp, char *b if(!dev) return -ENODEV; xbus = dev_to_xbus(dev); - DBG(GENERAL, "bus_id=%s xbus=%s\n", dev->bus_id, xbus->busname); + DBG(GENERAL, "bus_id=%s xbus=%s\n", dev_name(dev), xbus->busname); XBUS_VAR_BLOCK; envp[i] = NULL; return 0; @@ -140,7 +140,7 @@ static int xpp_bus_uevent(struct device *dev, struct kobj_uevent_env *kenv) if(!dev) return -ENODEV; xbus = dev_to_xbus(dev); - DBG(GENERAL, "bus_id=%s xbus=%s\n", dev->bus_id, xbus->busname); + DBG(GENERAL, "bus_id=%s xbus=%s\n", dev_name(dev), xbus->busname); XBUS_VAR_BLOCK; return 0; } @@ -173,7 +173,6 @@ static struct bus_type xpp_bus_type = { }; static struct device xpp_bus = { - .bus_id = "xppbus", .release = xpp_bus_release }; @@ -189,6 +188,8 @@ int register_xpp_bus(void) { int ret; + dev_set_name(&xpp_bus, "xppbus"); + if((ret = bus_register(&xpp_bus_type)) < 0) { ERR("%s: bus_register failed. Error number %d", __FUNCTION__, ret); goto failed_bus; @@ -355,9 +356,9 @@ void xbus_sysfs_remove(xbus_t *xbus) XBUS_DBG(GENERAL, xbus, "\n"); astribank = &xbus->astribank; BUG_ON(!astribank); - if(!astribank->driver_data) + if(!dev_get_drvdata(astribank)) return; - BUG_ON(astribank->driver_data != xbus); + BUG_ON(dev_get_drvdata(astribank) != xbus); #ifdef SAMPLE_TICKS device_remove_file(&xbus->astribank, &dev_attr_samples); #endif @@ -381,8 +382,8 @@ int xbus_sysfs_create(xbus_t *xbus) device_initialize(astribank); astribank->bus = &xpp_bus_type; astribank->parent = &xpp_bus; - snprintf(astribank->bus_id, BUS_ID_SIZE, "xbus-%02d", xbus->num); - astribank->driver_data = NULL; /* override below */ + dev_set_name(astribank, "xbus-%02d", xbus->num); + dev_set_drvdata(astribank, NULL); /* override below */ astribank->release = xpp_dev_release; ret = device_register(astribank); if(ret) { @@ -421,7 +422,7 @@ int xbus_sysfs_create(xbus_t *xbus) goto out; } #endif - astribank->driver_data = xbus; /* Everything is good */ + dev_set_drvdata(astribank, xbus); /* Everything is good */ out: return ret; } diff --git a/kernel/xpp/xpd.h b/kernel/xpp/xpd.h index e556ef0..6c5123e 100644 --- a/kernel/xpp/xpd.h +++ b/kernel/xpp/xpd.h @@ -30,7 +30,7 @@ #include #include #include -#include +#include #include #ifdef XPP_DEBUGFS #ifndef CONFIG_DEBUG_FS diff --git a/kernel/xpp/xpp_usb.c b/kernel/xpp/xpp_usb.c index 2988817..03b2555 100644 --- a/kernel/xpp/xpp_usb.c +++ b/kernel/xpp/xpp_usb.c @@ -756,7 +756,6 @@ static int xusb_probe(struct usb_interface *interface, const struct usb_device_i retval = -EIO; goto probe_failed; } - procsummary->owner = THIS_MODULE; #endif bus_count++; xusb->xbus_num = xbus->num; diff --git a/kernel/xpp/xpp_zap.c b/kernel/xpp/xpp_zap.c index f57f59b..27ca898 100644 --- a/kernel/xpp/xpp_zap.c +++ b/kernel/xpp/xpp_zap.c @@ -160,13 +160,11 @@ static int xpd_proc_create(xbus_t *xbus, xpd_t *xpd) XPD_ERR(xpd, "Failed to create proc file '%s'\n", PROC_XPD_SUMMARY); goto err; } - xpd->proc_xpd_summary->owner = THIS_MODULE; xpd->proc_xpd_ztregister = create_proc_entry(PROC_XPD_ZTREGISTER, 0644, xpd->proc_xpd_dir); if (!xpd->proc_xpd_ztregister) { XPD_ERR(xpd, "Failed to create proc file '%s'\n", PROC_XPD_ZTREGISTER); goto err; } - xpd->proc_xpd_ztregister->owner = THIS_MODULE; xpd->proc_xpd_ztregister->data = xpd; xpd->proc_xpd_ztregister->read_proc = proc_xpd_ztregister_read; xpd->proc_xpd_ztregister->write_proc = proc_xpd_ztregister_write; @@ -175,7 +173,6 @@ static int xpd_proc_create(xbus_t *xbus, xpd_t *xpd) XPD_ERR(xpd, "Failed to create proc file '%s'\n", PROC_XPD_BLINK); goto err; } - xpd->proc_xpd_blink->owner = THIS_MODULE; xpd->proc_xpd_blink->data = xpd; xpd->proc_xpd_blink->read_proc = proc_xpd_blink_read; xpd->proc_xpd_blink->write_proc = proc_xpd_blink_write; diff --git a/kernel/zaptel-base.c b/kernel/zaptel-base.c index 2c6a22e..ce3fa04 100644 --- a/kernel/zaptel-base.c +++ b/kernel/zaptel-base.c @@ -163,12 +163,21 @@ static devfs_handle_t timer; /* udev necessary data structures. Yeah! */ #ifdef CONFIG_ZAP_UDEV -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28) #define CLASS_DEV_CREATE(class, devt, device, name) \ - class_device_create(class, NULL, devt, device, name) + device_create(class, NULL, devt, NULL, name) +#define CLASS_DEV_DESTROY(class, devt) \ + device_destroy(class, devt) +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15) +#define CLASS_DEV_CREATE(class, devt, device, name) \ + class_device_create(class, NULL, devt, device, name) +#define CLASS_DEV_DESTROY(class, devt) \ + class_device_destroy(class, devt) #else #define CLASS_DEV_CREATE(class, devt, device, name) \ class_device_create(class, devt, device, name) +#define CLASS_DEV_DESTROY(class, devt) \ + class_device_destroy(class, devt) #endif #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,13) @@ -5282,7 +5291,7 @@ int zt_unregister(struct zt_span *span) #ifdef CONFIG_ZAP_UDEV for (x = 0; x < span->channels; x++) { if (span->chans[x].channo < 250) - class_device_destroy(zap_class, MKDEV(ZT_MAJOR, span->chans[x].channo)); + CLASS_DEV_DESTROY(zap_class, MKDEV(ZT_MAJOR, span->chans[x].channo)); } #endif /* CONFIG_ZAP_UDEV */ @@ -7703,7 +7712,7 @@ int zt_register_chardev(struct zt_chardev *dev) int zt_unregister_chardev(struct zt_chardev *dev) { #ifdef CONFIG_ZAP_UDEV - class_device_destroy(zap_class, MKDEV(ZT_MAJOR, dev->minor)); + CLASS_DEV_DESTROY(zap_class, MKDEV(ZT_MAJOR, dev->minor)); #endif /* CONFIG_ZAP_UDEV */ #ifdef CONFIG_DEVFS_FS @@ -7782,10 +7791,10 @@ static void __exit zt_cleanup(void) { devfs_unregister_chrdev(ZT_MAJOR, "zaptel"); #else #ifdef CONFIG_ZAP_UDEV - class_device_destroy(zap_class, MKDEV(ZT_MAJOR, 253)); /* timer */ - class_device_destroy(zap_class, MKDEV(ZT_MAJOR, 254)); /* channel */ - class_device_destroy(zap_class, MKDEV(ZT_MAJOR, 255)); /* pseudo */ - class_device_destroy(zap_class, MKDEV(ZT_MAJOR, 0)); /* ctl */ + CLASS_DEV_DESTROY(zap_class, MKDEV(ZT_MAJOR, 253)); /* timer */ + CLASS_DEV_DESTROY(zap_class, MKDEV(ZT_MAJOR, 254)); /* channel */ + CLASS_DEV_DESTROY(zap_class, MKDEV(ZT_MAJOR, 255)); /* pseudo */ + CLASS_DEV_DESTROY(zap_class, MKDEV(ZT_MAJOR, 0)); /* ctl */ class_destroy(zap_class); #endif /* CONFIG_ZAP_UDEV */ unregister_chrdev(ZT_MAJOR, "zaptel"); diff --git a/kernel/zaptel.h b/kernel/zaptel.h index 81f7946..34ac616 100644 --- a/kernel/zaptel.h +++ b/kernel/zaptel.h @@ -1270,16 +1270,16 @@ struct zt_hdlc { /* Echo cancellation */ struct echo_can_state; -#if 0 +#if 1 /* echo can API consists of these functions */ -void echo_can_init(void); -void echo_chan_shutdown(void); -void echo_can_identify(char *buf, size_t len); -int echo_can_create(struct zt_echocanparams *ecp, struct zt_echocanparam *p, struct echo_can_state **ec); -void echo_can_free(struct echo_can_state *ec); -short echo_can_update(struct echo_can_state *ec, short iref, short isig); -void echo_can_array_update(struct echo_can_state *ec, short *iref, short *isig); -int echo_can_traintap(struct echo_can_state *ec, int pos, short val); +extern void echo_can_init(void); +extern void echo_can_shutdown(void); +extern void echo_can_identify(char *buf, size_t len); +extern int echo_can_create(struct zt_echocanparams *ecp, struct zt_echocanparam *p, struct echo_can_state **ec); +extern void echo_can_free(struct echo_can_state *ec); +extern short echo_can_update(struct echo_can_state *ec, short iref, short isig); +extern void echo_can_array_update(struct echo_can_state *ec, short *iref, short *isig); +extern int echo_can_traintap(struct echo_can_state *ec, int pos, short val); #endif /* Conference queue stucture */ diff --git a/kernel/zconfig.h b/kernel/zconfig.h index fbeebcc..9d76de4 100644 --- a/kernel/zconfig.h +++ b/kernel/zconfig.h @@ -9,6 +9,8 @@ #include #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) #include +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 33)) +#include #else #include #endif diff --git a/kernel/ztdummy.c b/kernel/ztdummy.c index 18f1e9f..79646f9 100644 --- a/kernel/ztdummy.c +++ b/kernel/ztdummy.c @@ -39,6 +39,7 @@ */ #include +#include #ifndef VERSION_CODE # define VERSION_CODE(vers,rel,seq) ( ((vers)<<16) | ((rel)<<8) | (seq) ) @@ -91,6 +92,18 @@ #endif #include "ztdummy.h" +#if defined(USE_HIGHRESTIMER) && ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) ) +/* compatibility with new hrtimer interface */ +static inline ktime_t hrtimer_get_expires(const struct hrtimer *timer) +{ + return timer->expires; +} + +static inline void hrtimer_set_expires(struct hrtimer *timer, ktime_t time) +{ + timer->expires = time; +} +#endif static struct ztdummy *ztd; @@ -200,7 +213,7 @@ static enum hrtimer_restart ztdummy_hr_int(struct hrtimer *htmr) * expired. * We should worry if overrun is 2 or more; then we really missed * a tick */ - overrun = hrtimer_forward(&zaptimer, htmr->expires, + overrun = hrtimer_forward(&zaptimer, hrtimer_get_expires(htmr), ktime_set(0, ZAPTEL_TIME_NS)); if(overrun > 1) { if(printk_ratelimit()) @@ -223,7 +236,7 @@ static enum hrtimer_restart ztdummy_hr_int(struct hrtimer *htmr) /* use kernel system tick timer if PC architecture RTC is not available */ static void ztdummy_timer(unsigned long param) { - timer.expires = jiffies + 1; + hrtimer_set_expires(timer, jiffies + 1); add_timer(&timer); ztd->counter += ZAPTEL_TIME; diff --git a/kernel/wctdm24xxp/wctdm24xxp.h b/kernel/wctdm24xxp/wctdm24xxp.h index 30e4fb9..cf575ac 100644 --- a/kernel/wctdm24xxp/wctdm24xxp.h +++ b/kernel/wctdm24xxp/wctdm24xxp.h @@ -29,7 +29,7 @@ #include "../zaptel.h" #include "../voicebus.h" -#include +#include #define NUM_FXO_REGS 60