浏览代码

V4L/DVB (7558): videobuf: Improve command output for debug purposes

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab 17 年之前
父节点
当前提交
5e28e00964
共有 3 个文件被更改,包括 38 次插入26 次删除
  1. 3 0
      drivers/media/video/ivtv/ivtv-ioctl.c
  2. 3 1
      drivers/media/video/pwc/pwc-v4l.c
  3. 32 25
      drivers/media/video/videodev.c

+ 3 - 0
drivers/media/video/ivtv/ivtv-ioctl.c

@@ -1632,6 +1632,7 @@ static int ivtv_v4l2_do_ioctl(struct inode *inode, struct file *filp,
 		if (ivtv_debug & IVTV_DBGFLG_IOCTL) {
 		if (ivtv_debug & IVTV_DBGFLG_IOCTL) {
 			printk(KERN_INFO "ivtv%d ioctl: ", itv->num);
 			printk(KERN_INFO "ivtv%d ioctl: ", itv->num);
 			v4l_printk_ioctl(cmd);
 			v4l_printk_ioctl(cmd);
+			printk("\n");
 		}
 		}
 		return ivtv_debug_ioctls(filp, cmd, arg);
 		return ivtv_debug_ioctls(filp, cmd, arg);
 
 
@@ -1675,6 +1676,7 @@ static int ivtv_v4l2_do_ioctl(struct inode *inode, struct file *filp,
 		if (ivtv_debug & IVTV_DBGFLG_IOCTL) {
 		if (ivtv_debug & IVTV_DBGFLG_IOCTL) {
 			printk(KERN_INFO "ivtv%d ioctl: ", itv->num);
 			printk(KERN_INFO "ivtv%d ioctl: ", itv->num);
 			v4l_printk_ioctl(cmd);
 			v4l_printk_ioctl(cmd);
+			printk("\n");
 		}
 		}
 		return ivtv_v4l2_ioctls(itv, filp, cmd, arg);
 		return ivtv_v4l2_ioctls(itv, filp, cmd, arg);
 
 
@@ -1688,6 +1690,7 @@ static int ivtv_v4l2_do_ioctl(struct inode *inode, struct file *filp,
 		if (ivtv_debug & IVTV_DBGFLG_IOCTL) {
 		if (ivtv_debug & IVTV_DBGFLG_IOCTL) {
 			printk(KERN_INFO "ivtv%d ioctl: ", itv->num);
 			printk(KERN_INFO "ivtv%d ioctl: ", itv->num);
 			v4l_printk_ioctl(cmd);
 			v4l_printk_ioctl(cmd);
+			printk("\n");
 		}
 		}
 		return ivtv_control_ioctls(itv, cmd, arg);
 		return ivtv_control_ioctls(itv, cmd, arg);
 
 

+ 3 - 1
drivers/media/video/pwc/pwc-v4l.c

@@ -351,8 +351,10 @@ int pwc_video_do_ioctl(struct inode *inode, struct file *file,
 		return -EFAULT;
 		return -EFAULT;
 
 
 #ifdef CONFIG_USB_PWC_DEBUG
 #ifdef CONFIG_USB_PWC_DEBUG
-	if (PWC_DEBUG_LEVEL_IOCTL & pwc_trace)
+	if (PWC_DEBUG_LEVEL_IOCTL & pwc_trace) {
 		v4l_printk_ioctl(cmd);
 		v4l_printk_ioctl(cmd);
+		printk("\n");
+	}
 #endif
 #endif
 
 
 
 

+ 32 - 25
drivers/media/video/videodev.c

@@ -18,9 +18,9 @@
 
 
 #define dbgarg(cmd, fmt, arg...) \
 #define dbgarg(cmd, fmt, arg...) \
 		if (vfd->debug & V4L2_DEBUG_IOCTL_ARG) {		\
 		if (vfd->debug & V4L2_DEBUG_IOCTL_ARG) {		\
-			printk (KERN_DEBUG "%s: ",  vfd->name);		\
+			printk(KERN_DEBUG "%s: ",  vfd->name);		\
 			v4l_printk_ioctl(cmd);				\
 			v4l_printk_ioctl(cmd);				\
-			printk (KERN_DEBUG "%s: " fmt, vfd->name, ## arg); \
+			printk(" " fmt,  ## arg);			\
 		}
 		}
 
 
 #define dbgarg2(fmt, arg...) \
 #define dbgarg2(fmt, arg...) \
@@ -378,38 +378,45 @@ static const char *v4l2_int_ioctls[] = {
    external ioctl messages as well as internal V4L ioctl */
    external ioctl messages as well as internal V4L ioctl */
 void v4l_printk_ioctl(unsigned int cmd)
 void v4l_printk_ioctl(unsigned int cmd)
 {
 {
-	char *dir;
+	char *dir, *type;
 
 
-	switch (_IOC_DIR(cmd)) {
-	case _IOC_NONE:              dir = "--"; break;
-	case _IOC_READ:              dir = "r-"; break;
-	case _IOC_WRITE:             dir = "-w"; break;
-	case _IOC_READ | _IOC_WRITE: dir = "rw"; break;
-	default:                     dir = "*ERR*"; break;
-	}
 	switch (_IOC_TYPE(cmd)) {
 	switch (_IOC_TYPE(cmd)) {
 	case 'd':
 	case 'd':
-		printk("v4l2_int ioctl %s, dir=%s (0x%08x)\n",
-		       (_IOC_NR(cmd) < V4L2_INT_IOCTLS) ?
-		       v4l2_int_ioctls[_IOC_NR(cmd)] : "UNKNOWN", dir, cmd);
-		break;
+		if (_IOC_NR(cmd) >= V4L2_INT_IOCTLS) {
+			type = "v4l2_int";
+			break;
+		}
+		printk("%s", v4l2_int_ioctls[_IOC_NR(cmd)]);
+		return;
 #ifdef CONFIG_VIDEO_V4L1_COMPAT
 #ifdef CONFIG_VIDEO_V4L1_COMPAT
 	case 'v':
 	case 'v':
-		printk("v4l1 ioctl %s, dir=%s (0x%08x)\n",
-		       (_IOC_NR(cmd) < V4L1_IOCTLS) ?
-		       v4l1_ioctls[_IOC_NR(cmd)] : "UNKNOWN", dir, cmd);
-		break;
+		if (_IOC_NR(cmd) >= V4L1_IOCTLS) {
+			type = "v4l1";
+			break;
+		}
+		printk("%s", v4l1_ioctls[_IOC_NR(cmd)]);
+		return;
 #endif
 #endif
 	case 'V':
 	case 'V':
-		printk("v4l2 ioctl %s, dir=%s (0x%08x)\n",
-		       (_IOC_NR(cmd) < V4L2_IOCTLS) ?
-		       v4l2_ioctls[_IOC_NR(cmd)] : "UNKNOWN", dir, cmd);
-		break;
-
+		if (_IOC_NR(cmd) >= V4L2_IOCTLS) {
+			type = "v4l2";
+			break;
+		}
+		printk("%s", v4l2_ioctls[_IOC_NR(cmd)]);
+		return;
 	default:
 	default:
-		printk("unknown ioctl '%c', dir=%s, #%d (0x%08x)\n",
-		       _IOC_TYPE(cmd), dir, _IOC_NR(cmd), cmd);
+		type = "unknown";
+	}
+
+	switch (_IOC_DIR(cmd)) {
+	case _IOC_NONE:              dir = "--"; break;
+	case _IOC_READ:              dir = "r-"; break;
+	case _IOC_WRITE:             dir = "-w"; break;
+	case _IOC_READ | _IOC_WRITE: dir = "rw"; break;
+	default:                     dir = "*ERR*"; break;
 	}
 	}
+	printk("%s ioctl '%c', dir=%s, #%d (0x%08x)",
+		type, _IOC_TYPE(cmd), dir, _IOC_NR(cmd), cmd);
 }
 }
 EXPORT_SYMBOL(v4l_printk_ioctl);
 EXPORT_SYMBOL(v4l_printk_ioctl);