diff options
Diffstat (limited to 'drivers/media/common')
-rw-r--r-- | drivers/media/common/b2c2/flexcop-hw-filter.c | 2 | ||||
-rw-r--r-- | drivers/media/common/b2c2/flexcop.h | 6 | ||||
-rw-r--r-- | drivers/media/common/saa7146/saa7146_core.c | 2 | ||||
-rw-r--r-- | drivers/media/common/saa7146/saa7146_video.c | 3 | ||||
-rw-r--r-- | drivers/media/common/siano/smscoreapi.c | 42 | ||||
-rw-r--r-- | drivers/media/common/siano/smscoreapi.h | 5 | ||||
-rw-r--r-- | drivers/media/common/siano/smsdvb-main.c | 58 | ||||
-rw-r--r-- | drivers/media/common/videobuf2/frame_vector.c | 1 | ||||
-rw-r--r-- | drivers/media/common/videobuf2/videobuf2-dma-sg.c | 2 |
9 files changed, 75 insertions, 46 deletions
diff --git a/drivers/media/common/b2c2/flexcop-hw-filter.c b/drivers/media/common/b2c2/flexcop-hw-filter.c index 335f30a54ba8..c5a3345c99e9 100644 --- a/drivers/media/common/b2c2/flexcop-hw-filter.c +++ b/drivers/media/common/b2c2/flexcop-hw-filter.c @@ -69,7 +69,7 @@ vpid.vregname.field = onoff ? pid : 0x1fff; \ vpid.vregname.trans_field = transval; \ v208.ctrl_208.enablefield = onoff; \ fc->write_ibi_reg(fc, vregname, vpid); \ -fc->write_ibi_reg(fc, ctrl_208, v208); +fc->write_ibi_reg(fc, ctrl_208, v208) static void flexcop_pid_Stream1_PID_ctrl(struct flexcop_device *fc, u16 pid, int onoff) diff --git a/drivers/media/common/b2c2/flexcop.h b/drivers/media/common/b2c2/flexcop.h index 486fe2380b92..05e595f896dc 100644 --- a/drivers/media/common/b2c2/flexcop.h +++ b/drivers/media/common/b2c2/flexcop.h @@ -14,10 +14,10 @@ extern int b2c2_flexcop_debug; /* debug */ #ifdef CONFIG_DVB_B2C2_FLEXCOP_DEBUG -#define dprintk(level,args...) \ - do { if ((b2c2_flexcop_debug & level)) printk(args); } while (0) +#define dprintk(level, args...) \ + do { if ((b2c2_flexcop_debug & (level))) printk(args); } while (0) #else -#define dprintk(level,args...) +#define dprintk(level, args...) no_printk(args) #endif #define deb_info(args...) dprintk(0x01, args) diff --git a/drivers/media/common/saa7146/saa7146_core.c b/drivers/media/common/saa7146/saa7146_core.c index f2d13b71416c..e50fa0ff7c5d 100644 --- a/drivers/media/common/saa7146/saa7146_core.c +++ b/drivers/media/common/saa7146/saa7146_core.c @@ -253,7 +253,7 @@ int saa7146_pgtable_build_single(struct pci_dev *pci, struct saa7146_pgtable *pt i, sg_dma_address(list), sg_dma_len(list), list->offset); */ - for (p = 0; p * 4096 < list->length; p++, ptr++) { + for (p = 0; p * 4096 < sg_dma_len(list); p++, ptr++) { *ptr = cpu_to_le32(sg_dma_address(list) + p * 4096); nr_pages++; } diff --git a/drivers/media/common/saa7146/saa7146_video.c b/drivers/media/common/saa7146/saa7146_video.c index 7b8795eca589..66215d9106a4 100644 --- a/drivers/media/common/saa7146/saa7146_video.c +++ b/drivers/media/common/saa7146/saa7146_video.c @@ -247,9 +247,8 @@ static int saa7146_pgtable_build(struct saa7146_dev *dev, struct saa7146_buf *bu /* walk all pages, copy all page addresses to ptr1 */ for (i = 0; i < length; i++, list++) { - for (p = 0; p * 4096 < list->length; p++, ptr1++) { + for (p = 0; p * 4096 < sg_dma_len(list); p++, ptr1++) *ptr1 = cpu_to_le32(sg_dma_address(list) - list->offset); - } } /* ptr1 = pt1->cpu; diff --git a/drivers/media/common/siano/smscoreapi.c b/drivers/media/common/siano/smscoreapi.c index c1511094fdc7..410cc3ac6f94 100644 --- a/drivers/media/common/siano/smscoreapi.c +++ b/drivers/media/common/siano/smscoreapi.c @@ -429,13 +429,13 @@ static struct smscore_registry_entry_t *smscore_find_registry(char *devpath) struct smscore_registry_entry_t *entry; struct list_head *next; - kmutex_lock(&g_smscore_registrylock); + mutex_lock(&g_smscore_registrylock); for (next = g_smscore_registry.next; next != &g_smscore_registry; next = next->next) { entry = (struct smscore_registry_entry_t *) next; if (!strncmp(entry->devpath, devpath, sizeof(entry->devpath))) { - kmutex_unlock(&g_smscore_registrylock); + mutex_unlock(&g_smscore_registrylock); return entry; } } @@ -446,7 +446,7 @@ static struct smscore_registry_entry_t *smscore_find_registry(char *devpath) list_add(&entry->entry, &g_smscore_registry); } else pr_err("failed to create smscore_registry.\n"); - kmutex_unlock(&g_smscore_registrylock); + mutex_unlock(&g_smscore_registrylock); return entry; } @@ -527,7 +527,7 @@ int smscore_register_hotplug(hotplug_t hotplug) struct list_head *next, *first; int rc = 0; - kmutex_lock(&g_smscore_deviceslock); + mutex_lock(&g_smscore_deviceslock); notifyee = kmalloc(sizeof(*notifyee), GFP_KERNEL); if (notifyee) { /* now notify callback about existing devices */ @@ -548,7 +548,7 @@ int smscore_register_hotplug(hotplug_t hotplug) } else rc = -ENOMEM; - kmutex_unlock(&g_smscore_deviceslock); + mutex_unlock(&g_smscore_deviceslock); return rc; } @@ -564,7 +564,7 @@ void smscore_unregister_hotplug(hotplug_t hotplug) { struct list_head *next, *first; - kmutex_lock(&g_smscore_deviceslock); + mutex_lock(&g_smscore_deviceslock); first = &g_smscore_notifyees; @@ -579,7 +579,7 @@ void smscore_unregister_hotplug(hotplug_t hotplug) } } - kmutex_unlock(&g_smscore_deviceslock); + mutex_unlock(&g_smscore_deviceslock); } EXPORT_SYMBOL_GPL(smscore_unregister_hotplug); @@ -732,9 +732,9 @@ int smscore_register_device(struct smsdevice_params_t *params, smscore_registry_settype(dev->devpath, params->device_type); /* add device to devices list */ - kmutex_lock(&g_smscore_deviceslock); + mutex_lock(&g_smscore_deviceslock); list_add(&dev->entry, &g_smscore_devices); - kmutex_unlock(&g_smscore_deviceslock); + mutex_unlock(&g_smscore_deviceslock); *coredev = dev; @@ -890,14 +890,14 @@ int smscore_start_device(struct smscore_device_t *coredev) return rc; } - kmutex_lock(&g_smscore_deviceslock); + mutex_lock(&g_smscore_deviceslock); rc = smscore_notify_callbacks(coredev, coredev->device, 1); smscore_init_ir(coredev); pr_debug("device %p started, rc %d\n", coredev, rc); - kmutex_unlock(&g_smscore_deviceslock); + mutex_unlock(&g_smscore_deviceslock); return rc; } @@ -1197,7 +1197,7 @@ void smscore_unregister_device(struct smscore_device_t *coredev) int num_buffers = 0; int retry = 0; - kmutex_lock(&g_smscore_deviceslock); + mutex_lock(&g_smscore_deviceslock); /* Release input device (IR) resources */ sms_ir_exit(coredev); @@ -1224,9 +1224,9 @@ void smscore_unregister_device(struct smscore_device_t *coredev) pr_debug("waiting for %d buffer(s)\n", coredev->num_buffers - num_buffers); - kmutex_unlock(&g_smscore_deviceslock); + mutex_unlock(&g_smscore_deviceslock); msleep(100); - kmutex_lock(&g_smscore_deviceslock); + mutex_lock(&g_smscore_deviceslock); } pr_debug("freed %d buffers\n", num_buffers); @@ -1245,7 +1245,7 @@ void smscore_unregister_device(struct smscore_device_t *coredev) list_del(&coredev->entry); kfree(coredev); - kmutex_unlock(&g_smscore_deviceslock); + mutex_unlock(&g_smscore_deviceslock); pr_debug("device %p destroyed\n", coredev); } @@ -2123,17 +2123,17 @@ static int __init smscore_module_init(void) { INIT_LIST_HEAD(&g_smscore_notifyees); INIT_LIST_HEAD(&g_smscore_devices); - kmutex_init(&g_smscore_deviceslock); + mutex_init(&g_smscore_deviceslock); INIT_LIST_HEAD(&g_smscore_registry); - kmutex_init(&g_smscore_registrylock); + mutex_init(&g_smscore_registrylock); return 0; } static void __exit smscore_module_exit(void) { - kmutex_lock(&g_smscore_deviceslock); + mutex_lock(&g_smscore_deviceslock); while (!list_empty(&g_smscore_notifyees)) { struct smscore_device_notifyee_t *notifyee = (struct smscore_device_notifyee_t *) @@ -2142,9 +2142,9 @@ static void __exit smscore_module_exit(void) list_del(¬ifyee->entry); kfree(notifyee); } - kmutex_unlock(&g_smscore_deviceslock); + mutex_unlock(&g_smscore_deviceslock); - kmutex_lock(&g_smscore_registrylock); + mutex_lock(&g_smscore_registrylock); while (!list_empty(&g_smscore_registry)) { struct smscore_registry_entry_t *entry = (struct smscore_registry_entry_t *) @@ -2153,7 +2153,7 @@ static void __exit smscore_module_exit(void) list_del(&entry->entry); kfree(entry); } - kmutex_unlock(&g_smscore_registrylock); + mutex_unlock(&g_smscore_registrylock); pr_debug("\n"); } diff --git a/drivers/media/common/siano/smscoreapi.h b/drivers/media/common/siano/smscoreapi.h index b3b793b5caf3..4a6b9f4c44ac 100644 --- a/drivers/media/common/siano/smscoreapi.h +++ b/drivers/media/common/siano/smscoreapi.h @@ -28,11 +28,6 @@ Copyright (C) 2006-2008, Uri Shkolnik, Anatoly Greenblat #include "smsir.h" -#define kmutex_init(_p_) mutex_init(_p_) -#define kmutex_lock(_p_) mutex_lock(_p_) -#define kmutex_trylock(_p_) mutex_trylock(_p_) -#define kmutex_unlock(_p_) mutex_unlock(_p_) - /* * Define the firmware names used by the driver. * Those should match what's used at smscoreapi.c and sms-cards.c diff --git a/drivers/media/common/siano/smsdvb-main.c b/drivers/media/common/siano/smsdvb-main.c index ae17407e477a..cd5bafe9a3ac 100644 --- a/drivers/media/common/siano/smsdvb-main.c +++ b/drivers/media/common/siano/smsdvb-main.c @@ -167,6 +167,34 @@ static inline int sms_to_mode(u32 mode) return TRANSMISSION_MODE_AUTO; } +static inline int sms_to_isdbt_mode(u32 mode) +{ + switch (mode) { + case 1: + return TRANSMISSION_MODE_2K; + case 2: + return TRANSMISSION_MODE_4K; + case 3: + return TRANSMISSION_MODE_8K; + } + return TRANSMISSION_MODE_AUTO; +} + +static inline int sms_to_isdbt_guard_interval(u32 interval) +{ + switch (interval) { + case 4: + return GUARD_INTERVAL_1_4; + case 8: + return GUARD_INTERVAL_1_8; + case 16: + return GUARD_INTERVAL_1_16; + case 32: + return GUARD_INTERVAL_1_32; + } + return GUARD_INTERVAL_AUTO; +} + static inline int sms_to_status(u32 is_demod_locked, u32 is_rf_locked) { if (is_demod_locked) @@ -345,8 +373,8 @@ static void smsdvb_update_isdbt_stats(struct smsdvb_client_t *client, /* Update ISDB-T transmission parameters */ c->frequency = p->frequency; c->bandwidth_hz = sms_to_bw(p->bandwidth); - c->transmission_mode = sms_to_mode(p->transmission_mode); - c->guard_interval = sms_to_guard_interval(p->guard_interval); + c->transmission_mode = sms_to_isdbt_mode(p->transmission_mode); + c->guard_interval = sms_to_isdbt_guard_interval(p->guard_interval); c->isdbt_partial_reception = p->partial_reception ? 1 : 0; n_layers = p->num_of_layers; if (n_layers < 1) @@ -391,6 +419,10 @@ static void smsdvb_update_isdbt_stats(struct smsdvb_client_t *client, continue; } c->layer[i].modulation = sms_to_modulation(lr->constellation); + c->layer[i].fec = sms_to_code_rate(lr->code_rate); + + /* Time interleaving */ + c->layer[i].interleaving = (u8)lr->ti_ldepth_i; /* TS PER */ c->block_error.stat[i + 1].scale = FE_SCALE_COUNTER; @@ -429,8 +461,8 @@ static void smsdvb_update_isdbt_stats_ex(struct smsdvb_client_t *client, c->frequency = p->frequency; client->fe_status = sms_to_status(p->is_demod_locked, 0); c->bandwidth_hz = sms_to_bw(p->bandwidth); - c->transmission_mode = sms_to_mode(p->transmission_mode); - c->guard_interval = sms_to_guard_interval(p->guard_interval); + c->transmission_mode = sms_to_isdbt_mode(p->transmission_mode); + c->guard_interval = sms_to_isdbt_guard_interval(p->guard_interval); c->isdbt_partial_reception = p->partial_reception ? 1 : 0; n_layers = p->num_of_layers; if (n_layers < 1) @@ -479,6 +511,10 @@ static void smsdvb_update_isdbt_stats_ex(struct smsdvb_client_t *client, continue; } c->layer[i].modulation = sms_to_modulation(lr->constellation); + c->layer[i].fec = sms_to_code_rate(lr->code_rate); + + /* Time interleaving */ + c->layer[i].interleaving = (u8)lr->ti_ldepth_i; /* TS PER */ c->block_error.stat[i + 1].scale = FE_SCALE_COUNTER; @@ -630,11 +666,11 @@ static void smsdvb_unregister_client(struct smsdvb_client_t *client) static void smsdvb_onremove(void *context) { - kmutex_lock(&g_smsdvb_clientslock); + mutex_lock(&g_smsdvb_clientslock); smsdvb_unregister_client((struct smsdvb_client_t *) context); - kmutex_unlock(&g_smsdvb_clientslock); + mutex_unlock(&g_smsdvb_clientslock); } static int smsdvb_start_feed(struct dvb_demux_feed *feed) @@ -1151,11 +1187,11 @@ static int smsdvb_hotplug(struct smscore_device_t *coredev, init_completion(&client->tune_done); init_completion(&client->stats_done); - kmutex_lock(&g_smsdvb_clientslock); + mutex_lock(&g_smsdvb_clientslock); list_add(&client->entry, &g_smsdvb_clients); - kmutex_unlock(&g_smsdvb_clientslock); + mutex_unlock(&g_smsdvb_clientslock); client->event_fe_state = -1; client->event_unc_state = -1; @@ -1201,7 +1237,7 @@ static int __init smsdvb_module_init(void) int rc; INIT_LIST_HEAD(&g_smsdvb_clients); - kmutex_init(&g_smsdvb_clientslock); + mutex_init(&g_smsdvb_clientslock); smsdvb_debugfs_register(); @@ -1216,14 +1252,14 @@ static void __exit smsdvb_module_exit(void) { smscore_unregister_hotplug(smsdvb_hotplug); - kmutex_lock(&g_smsdvb_clientslock); + mutex_lock(&g_smsdvb_clientslock); while (!list_empty(&g_smsdvb_clients)) smsdvb_unregister_client((struct smsdvb_client_t *)g_smsdvb_clients.next); smsdvb_debugfs_unregister(); - kmutex_unlock(&g_smsdvb_clientslock); + mutex_unlock(&g_smsdvb_clientslock); } module_init(smsdvb_module_init); diff --git a/drivers/media/common/videobuf2/frame_vector.c b/drivers/media/common/videobuf2/frame_vector.c index a0e65481a201..381158320a90 100644 --- a/drivers/media/common/videobuf2/frame_vector.c +++ b/drivers/media/common/videobuf2/frame_vector.c @@ -14,7 +14,6 @@ * get_vaddr_frames() - map virtual addresses to pfns * @start: starting user address * @nr_frames: number of pages / pfns from start to map - * @gup_flags: flags modifying lookup behaviour * @vec: structure which receives pages / pfns of the addresses mapped. * It should have space for at least nr_frames entries. * diff --git a/drivers/media/common/videobuf2/videobuf2-dma-sg.c b/drivers/media/common/videobuf2/videobuf2-dma-sg.c index 030e48218687..c5b06a509566 100644 --- a/drivers/media/common/videobuf2/videobuf2-dma-sg.c +++ b/drivers/media/common/videobuf2/videobuf2-dma-sg.c @@ -105,7 +105,7 @@ static void *vb2_dma_sg_alloc(struct device *dev, unsigned long dma_attrs, int ret; int num_pages; - if (WARN_ON(!dev)) + if (WARN_ON(!dev) || WARN_ON(!size)) return ERR_PTR(-EINVAL); buf = kzalloc(sizeof *buf, GFP_KERNEL); |