Commit 9e56380a authored by Joe Perches's avatar Joe Perches Committed by Mauro Carvalho Chehab
Browse files

media: uvcvideo: Rename debug functions



trace isn't a good name as it's not a trace mechanism, it is a
typical debug mechanism.

Rename uvc_trace/uvc_trace_cont macros to uvc_dbg/uvc_dbg_cont.
Rename uvc_trace_param to uvc_dbg_param
Rename UVC_TRACE_<FOO> defines to UVC_DBG_<FOO>
Use ## concatenation in uvc_dbg macros to avoid overly long and
repetitive UVC_DBG uses

Signed-off-by: default avatarJoe Perches <joe@perches.com>
Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent ed4c5fa4
Loading
Loading
Loading
Loading
+39 −42
Original line number Diff line number Diff line
@@ -906,8 +906,8 @@ static struct uvc_control *uvc_find_control(struct uvc_video_chain *chain,
	}

	if (ctrl == NULL && !next)
		uvc_trace(chain->dev, UVC_TRACE_CONTROL,
			  "Control 0x%08x not found.\n", v4l2_id);
		uvc_dbg(chain->dev, CONTROL, "Control 0x%08x not found\n",
			v4l2_id);

	return ctrl;
}
@@ -1800,8 +1800,8 @@ static int uvc_ctrl_fill_xu_info(struct uvc_device *dev,
	ret = uvc_query_ctrl(dev, UVC_GET_LEN, ctrl->entity->id, dev->intfnum,
			     info->selector, data, 2);
	if (ret < 0) {
		uvc_trace(dev, UVC_TRACE_CONTROL,
			  "GET_LEN failed on control %pUl/%u (%d).\n",
		uvc_dbg(dev, CONTROL,
			"GET_LEN failed on control %pUl/%u (%d)\n",
			info->entity, info->selector, ret);
		goto done;
	}
@@ -1813,16 +1813,16 @@ static int uvc_ctrl_fill_xu_info(struct uvc_device *dev,

	ret = uvc_ctrl_get_flags(dev, ctrl, info);
	if (ret < 0) {
		uvc_trace(dev, UVC_TRACE_CONTROL,
			  "Failed to get flags for control %pUl/%u (%d).\n",
		uvc_dbg(dev, CONTROL,
			"Failed to get flags for control %pUl/%u (%d)\n",
			info->entity, info->selector, ret);
		goto done;
	}

	uvc_ctrl_fixup_xu_info(dev, ctrl, info);

	uvc_trace(dev, UVC_TRACE_CONTROL,
		  "XU control %pUl/%u queried: len %u, flags { get %u set %u auto %u }.\n",
	uvc_dbg(dev, CONTROL,
		"XU control %pUl/%u queried: len %u, flags { get %u set %u auto %u }\n",
		info->entity, info->selector, info->size,
		(info->flags & UVC_CTRL_FLAG_GET_CUR) ? 1 : 0,
		(info->flags & UVC_CTRL_FLAG_SET_CUR) ? 1 : 0,
@@ -1851,7 +1851,7 @@ static int uvc_ctrl_init_xu_ctrl(struct uvc_device *dev,

	ret = uvc_ctrl_add_info(dev, ctrl, &info);
	if (ret < 0)
		uvc_trace(dev, UVC_TRACE_CONTROL,
		uvc_dbg(dev, CONTROL,
			"Failed to initialize control %pUl/%u on device %s entity %u\n",
			info.entity, info.selector, dev->udev->devpath,
			ctrl->entity->id);
@@ -1882,8 +1882,8 @@ int uvc_xu_ctrl_query(struct uvc_video_chain *chain,
	}

	if (!found) {
		uvc_trace(chain->dev, UVC_TRACE_CONTROL,
			  "Extension unit %u not found.\n", xqry->unit);
		uvc_dbg(chain->dev, CONTROL, "Extension unit %u not found\n",
			xqry->unit);
		return -ENOENT;
	}

@@ -1898,9 +1898,8 @@ int uvc_xu_ctrl_query(struct uvc_video_chain *chain,
	}

	if (!found) {
		uvc_trace(chain->dev, UVC_TRACE_CONTROL,
			  "Control %pUl/%u not found.\n", entity->guid,
			  xqry->selector);
		uvc_dbg(chain->dev, CONTROL, "Control %pUl/%u not found\n",
			entity->guid, xqry->selector);
		return -ENOENT;
	}

@@ -2048,8 +2047,7 @@ static int uvc_ctrl_add_info(struct uvc_device *dev, struct uvc_control *ctrl,

	ctrl->initialized = 1;

	uvc_trace(dev, UVC_TRACE_CONTROL,
		  "Added control %pUl/%u to device %s entity %u\n",
	uvc_dbg(dev, CONTROL, "Added control %pUl/%u to device %s entity %u\n",
		ctrl->info.entity, ctrl->info.selector, dev->udev->devpath,
		ctrl->entity->id);

@@ -2088,8 +2086,7 @@ static int __uvc_ctrl_add_mapping(struct uvc_device *dev,
		map->set = uvc_set_le_value;

	list_add_tail(&map->list, &ctrl->info.mappings);
	uvc_trace(dev, UVC_TRACE_CONTROL,
		  "Adding mapping '%s' to control %pUl/%u.\n",
	uvc_dbg(dev, CONTROL, "Adding mapping '%s' to control %pUl/%u\n",
		map->name, ctrl->info.entity, ctrl->info.selector);

	return 0;
@@ -2106,8 +2103,8 @@ int uvc_ctrl_add_mapping(struct uvc_video_chain *chain,
	int ret;

	if (mapping->id & ~V4L2_CTRL_ID_MASK) {
		uvc_trace(dev, UVC_TRACE_CONTROL,
			  "Can't add mapping '%s', control id 0x%08x is invalid.\n",
		uvc_dbg(dev, CONTROL,
			"Can't add mapping '%s', control id 0x%08x is invalid\n",
			mapping->name, mapping->id);
		return -EINVAL;
	}
@@ -2153,8 +2150,8 @@ int uvc_ctrl_add_mapping(struct uvc_video_chain *chain,

	list_for_each_entry(map, &ctrl->info.mappings, list) {
		if (mapping->id == map->id) {
			uvc_trace(dev, UVC_TRACE_CONTROL,
				  "Can't add mapping '%s', control id 0x%08x already exists.\n",
			uvc_dbg(dev, CONTROL,
				"Can't add mapping '%s', control id 0x%08x already exists\n",
				mapping->name, mapping->id);
			ret = -EEXIST;
			goto done;
@@ -2164,8 +2161,8 @@ int uvc_ctrl_add_mapping(struct uvc_video_chain *chain,
	/* Prevent excess memory consumption */
	if (atomic_inc_return(&dev->nmappings) > UVC_MAX_CONTROL_MAPPINGS) {
		atomic_dec(&dev->nmappings);
		uvc_trace(dev, UVC_TRACE_CONTROL,
			  "Can't add mapping '%s', maximum mappings count (%u) exceeded.\n",
		uvc_dbg(dev, CONTROL,
			"Can't add mapping '%s', maximum mappings count (%u) exceeded\n",
			mapping->name, UVC_MAX_CONTROL_MAPPINGS);
		ret = -ENOMEM;
		goto done;
@@ -2235,8 +2232,8 @@ static void uvc_ctrl_prune_entity(struct uvc_device *dev,
		    !uvc_test_bit(controls, blacklist[i].index))
			continue;

		uvc_trace(dev, UVC_TRACE_CONTROL,
			  "%u/%u control is black listed, removing it.\n",
		uvc_dbg(dev, CONTROL,
			"%u/%u control is black listed, removing it\n",
			entity->id, blacklist[i].index);

		uvc_clear_bit(controls, blacklist[i].index);
+169 −174
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ unsigned int uvc_clock_param = CLOCK_MONOTONIC;
unsigned int uvc_hw_timestamps_param;
unsigned int uvc_no_drop_param;
static unsigned int uvc_quirks_param = -1;
unsigned int uvc_trace_param;
unsigned int uvc_dbg_param;
unsigned int uvc_timeout_param = UVC_CTRL_STREAMING_TIMEOUT;

/* ------------------------------------------------------------------------
@@ -520,7 +520,7 @@ static int uvc_parse_format(struct uvc_device *dev,
	case UVC_VS_FORMAT_FRAME_BASED:
		n = buffer[2] == UVC_VS_FORMAT_UNCOMPRESSED ? 27 : 28;
		if (buflen < n) {
			uvc_trace(dev, UVC_TRACE_DESCR,
			uvc_dbg(dev, DESCR,
				"device %d videostreaming interface %d FORMAT error\n",
				dev->udev->devnum,
				alts->desc.bInterfaceNumber);
@@ -584,7 +584,7 @@ static int uvc_parse_format(struct uvc_device *dev,

	case UVC_VS_FORMAT_MJPEG:
		if (buflen < 11) {
			uvc_trace(dev, UVC_TRACE_DESCR,
			uvc_dbg(dev, DESCR,
				"device %d videostreaming interface %d FORMAT error\n",
				dev->udev->devnum,
				alts->desc.bInterfaceNumber);
@@ -600,7 +600,7 @@ static int uvc_parse_format(struct uvc_device *dev,

	case UVC_VS_FORMAT_DV:
		if (buflen < 9) {
			uvc_trace(dev, UVC_TRACE_DESCR,
			uvc_dbg(dev, DESCR,
				"device %d videostreaming interface %d FORMAT error\n",
				dev->udev->devnum,
				alts->desc.bInterfaceNumber);
@@ -618,7 +618,7 @@ static int uvc_parse_format(struct uvc_device *dev,
			strscpy(format->name, "HD-DV", sizeof(format->name));
			break;
		default:
			uvc_trace(dev, UVC_TRACE_DESCR,
			uvc_dbg(dev, DESCR,
				"device %d videostreaming interface %d: unknown DV format %u\n",
				dev->udev->devnum,
				alts->desc.bInterfaceNumber, buffer[8]);
@@ -647,14 +647,14 @@ static int uvc_parse_format(struct uvc_device *dev,
	case UVC_VS_FORMAT_STREAM_BASED:
		/* Not supported yet. */
	default:
		uvc_trace(dev, UVC_TRACE_DESCR,
		uvc_dbg(dev, DESCR,
			"device %d videostreaming interface %d unsupported format %u\n",
			dev->udev->devnum, alts->desc.bInterfaceNumber,
			buffer[2]);
		return -EINVAL;
	}

	uvc_trace(dev, UVC_TRACE_DESCR, "Found format %s.\n", format->name);
	uvc_dbg(dev, DESCR, "Found format %s\n", format->name);

	buflen -= buffer[0];
	buffer += buffer[0];
@@ -673,7 +673,7 @@ static int uvc_parse_format(struct uvc_device *dev,
		n = n ? n : 3;

		if (buflen < 26 + 4*n) {
			uvc_trace(dev, UVC_TRACE_DESCR,
			uvc_dbg(dev, DESCR,
				"device %d videostreaming interface %d FRAME error\n",
				dev->udev->devnum,
				alts->desc.bInterfaceNumber);
@@ -738,7 +738,7 @@ static int uvc_parse_format(struct uvc_device *dev,
				frame->dwDefaultFrameInterval;
		}

		uvc_trace(dev, UVC_TRACE_DESCR, "- %ux%u (%u.%u fps)\n",
		uvc_dbg(dev, DESCR, "- %ux%u (%u.%u fps)\n",
			frame->wWidth, frame->wHeight,
			10000000 / frame->dwDefaultFrameInterval,
			(100000000 / frame->dwDefaultFrameInterval) % 10);
@@ -757,7 +757,7 @@ static int uvc_parse_format(struct uvc_device *dev,
	if (buflen > 2 && buffer[1] == USB_DT_CS_INTERFACE &&
	    buffer[2] == UVC_VS_COLORFORMAT) {
		if (buflen < 6) {
			uvc_trace(dev, UVC_TRACE_DESCR,
			uvc_dbg(dev, DESCR,
				"device %d videostreaming interface %d COLORFORMAT error\n",
				dev->udev->devnum,
				alts->desc.bInterfaceNumber);
@@ -792,7 +792,7 @@ static int uvc_parse_streaming(struct uvc_device *dev,

	if (intf->cur_altsetting->desc.bInterfaceSubClass
		!= UVC_SC_VIDEOSTREAMING) {
		uvc_trace(dev, UVC_TRACE_DESCR,
		uvc_dbg(dev, DESCR,
			"device %d interface %d isn't a video streaming interface\n",
			dev->udev->devnum,
			intf->altsetting[0].desc.bInterfaceNumber);
@@ -800,7 +800,7 @@ static int uvc_parse_streaming(struct uvc_device *dev,
	}

	if (usb_driver_claim_interface(&uvc_driver.driver, intf, dev)) {
		uvc_trace(dev, UVC_TRACE_DESCR,
		uvc_dbg(dev, DESCR,
			"device %d interface %d is already claimed\n",
			dev->udev->devnum,
			intf->altsetting[0].desc.bInterfaceNumber);
@@ -825,8 +825,8 @@ static int uvc_parse_streaming(struct uvc_device *dev,

			if (ep->extralen > 2 &&
			    ep->extra[1] == USB_DT_CS_INTERFACE) {
				uvc_trace(dev, UVC_TRACE_DESCR,
					  "trying extra data from endpoint %u.\n",
				uvc_dbg(dev, DESCR,
					"trying extra data from endpoint %u\n",
					i);
				buffer = alts->endpoint[i].extra;
				buflen = alts->endpoint[i].extralen;
@@ -842,8 +842,8 @@ static int uvc_parse_streaming(struct uvc_device *dev,
	}

	if (buflen <= 2) {
		uvc_trace(dev, UVC_TRACE_DESCR,
			  "no class-specific streaming interface descriptors found.\n");
		uvc_dbg(dev, DESCR,
			"no class-specific streaming interface descriptors found\n");
		goto error;
	}

@@ -860,8 +860,8 @@ static int uvc_parse_streaming(struct uvc_device *dev,
		break;

	default:
		uvc_trace(dev, UVC_TRACE_DESCR,
			  "device %d videostreaming interface %d HEADER descriptor not found.\n",
		uvc_dbg(dev, DESCR,
			"device %d videostreaming interface %d HEADER descriptor not found\n",
			dev->udev->devnum, alts->desc.bInterfaceNumber);
		goto error;
	}
@@ -870,8 +870,8 @@ static int uvc_parse_streaming(struct uvc_device *dev,
	n = buflen >= size ? buffer[size-1] : 0;

	if (buflen < size + p*n) {
		uvc_trace(dev, UVC_TRACE_DESCR,
			  "device %d videostreaming interface %d HEADER descriptor is invalid.\n",
		uvc_dbg(dev, DESCR,
			"device %d videostreaming interface %d HEADER descriptor is invalid\n",
			dev->udev->devnum, alts->desc.bInterfaceNumber);
		goto error;
	}
@@ -922,8 +922,8 @@ static int uvc_parse_streaming(struct uvc_device *dev,

		case UVC_VS_FORMAT_MPEG2TS:
		case UVC_VS_FORMAT_STREAM_BASED:
			uvc_trace(dev, UVC_TRACE_DESCR,
				  "device %d videostreaming interface %d FORMAT %u is not supported.\n",
			uvc_dbg(dev, DESCR,
				"device %d videostreaming interface %d FORMAT %u is not supported\n",
				dev->udev->devnum,
				alts->desc.bInterfaceNumber, _buffer[2]);
			break;
@@ -947,8 +947,8 @@ static int uvc_parse_streaming(struct uvc_device *dev,
	}

	if (nformats == 0) {
		uvc_trace(dev, UVC_TRACE_DESCR,
			  "device %d videostreaming interface %d has no supported formats defined.\n",
		uvc_dbg(dev, DESCR,
			"device %d videostreaming interface %d has no supported formats defined\n",
			dev->udev->devnum, alts->desc.bInterfaceNumber);
		goto error;
	}
@@ -996,10 +996,9 @@ static int uvc_parse_streaming(struct uvc_device *dev,
	}

	if (buflen)
		uvc_trace(dev, UVC_TRACE_DESCR,
			  "device %d videostreaming interface %d has %u bytes of trailing descriptor garbage.\n",
			  dev->udev->devnum, alts->desc.bInterfaceNumber,
			  buflen);
		uvc_dbg(dev, DESCR,
			"device %d videostreaming interface %d has %u bytes of trailing descriptor garbage\n",
			dev->udev->devnum, alts->desc.bInterfaceNumber, buflen);

	/* Parse the alternate settings to find the maximum bandwidth. */
	for (i = 0; i < intf->num_altsetting; ++i) {
@@ -1132,7 +1131,7 @@ static int uvc_parse_vendor_control(struct uvc_device *dev,
		n = buflen >= 25 + p ? buffer[22+p] : 0;

		if (buflen < 25 + p + 2*n) {
			uvc_trace(dev, UVC_TRACE_DESCR,
			uvc_dbg(dev, DESCR,
				"device %d videocontrol interface %d EXTENSION_UNIT error\n",
				udev->devnum, alts->desc.bInterfaceNumber);
			break;
@@ -1181,7 +1180,7 @@ static int uvc_parse_standard_control(struct uvc_device *dev,
		n = buflen >= 12 ? buffer[11] : 0;

		if (buflen < 12 + n) {
			uvc_trace(dev, UVC_TRACE_DESCR,
			uvc_dbg(dev, DESCR,
				"device %d videocontrol interface %d HEADER error\n",
				udev->devnum, alts->desc.bInterfaceNumber);
			return -EINVAL;
@@ -1194,7 +1193,7 @@ static int uvc_parse_standard_control(struct uvc_device *dev,
		for (i = 0; i < n; ++i) {
			intf = usb_ifnum_to_if(udev, buffer[12+i]);
			if (intf == NULL) {
				uvc_trace(dev, UVC_TRACE_DESCR,
				uvc_dbg(dev, DESCR,
					"device %d interface %d doesn't exists\n",
					udev->devnum, i);
				continue;
@@ -1206,7 +1205,7 @@ static int uvc_parse_standard_control(struct uvc_device *dev,

	case UVC_VC_INPUT_TERMINAL:
		if (buflen < 8) {
			uvc_trace(dev, UVC_TRACE_DESCR,
			uvc_dbg(dev, DESCR,
				"device %d videocontrol interface %d INPUT_TERMINAL error\n",
				udev->devnum, alts->desc.bInterfaceNumber);
			return -EINVAL;
@@ -1225,7 +1224,7 @@ static int uvc_parse_standard_control(struct uvc_device *dev,
		 */
		type = get_unaligned_le16(&buffer[4]);
		if ((type & 0x7f00) == 0 || (type & 0x8000) != 0) {
			uvc_trace(dev, UVC_TRACE_DESCR,
			uvc_dbg(dev, DESCR,
				"device %d videocontrol interface %d INPUT_TERMINAL %d has invalid type 0x%04x, skipping\n",
				udev->devnum, alts->desc.bInterfaceNumber,
				buffer[3], type);
@@ -1247,7 +1246,7 @@ static int uvc_parse_standard_control(struct uvc_device *dev,
		}

		if (buflen < len + n + p) {
			uvc_trace(dev, UVC_TRACE_DESCR,
			uvc_dbg(dev, DESCR,
				"device %d videocontrol interface %d INPUT_TERMINAL error\n",
				udev->devnum, alts->desc.bInterfaceNumber);
			return -EINVAL;
@@ -1294,7 +1293,7 @@ static int uvc_parse_standard_control(struct uvc_device *dev,

	case UVC_VC_OUTPUT_TERMINAL:
		if (buflen < 9) {
			uvc_trace(dev, UVC_TRACE_DESCR,
			uvc_dbg(dev, DESCR,
				"device %d videocontrol interface %d OUTPUT_TERMINAL error\n",
				udev->devnum, alts->desc.bInterfaceNumber);
			return -EINVAL;
@@ -1305,7 +1304,7 @@ static int uvc_parse_standard_control(struct uvc_device *dev,
		 */
		type = get_unaligned_le16(&buffer[4]);
		if ((type & 0xff00) == 0) {
			uvc_trace(dev, UVC_TRACE_DESCR,
			uvc_dbg(dev, DESCR,
				"device %d videocontrol interface %d OUTPUT_TERMINAL %d has invalid type 0x%04x, skipping\n",
				udev->devnum, alts->desc.bInterfaceNumber,
				buffer[3], type);
@@ -1332,7 +1331,7 @@ static int uvc_parse_standard_control(struct uvc_device *dev,
		p = buflen >= 5 ? buffer[4] : 0;

		if (buflen < 5 || buflen < 6 + p) {
			uvc_trace(dev, UVC_TRACE_DESCR,
			uvc_dbg(dev, DESCR,
				"device %d videocontrol interface %d SELECTOR_UNIT error\n",
				udev->devnum, alts->desc.bInterfaceNumber);
			return -EINVAL;
@@ -1358,7 +1357,7 @@ static int uvc_parse_standard_control(struct uvc_device *dev,
		p = dev->uvc_version >= 0x0110 ? 10 : 9;

		if (buflen < p + n) {
			uvc_trace(dev, UVC_TRACE_DESCR,
			uvc_dbg(dev, DESCR,
				"device %d videocontrol interface %d PROCESSING_UNIT error\n",
				udev->devnum, alts->desc.bInterfaceNumber);
			return -EINVAL;
@@ -1391,7 +1390,7 @@ static int uvc_parse_standard_control(struct uvc_device *dev,
		n = buflen >= 24 + p ? buffer[22+p] : 0;

		if (buflen < 24 + p + n) {
			uvc_trace(dev, UVC_TRACE_DESCR,
			uvc_dbg(dev, DESCR,
				"device %d videocontrol interface %d EXTENSION_UNIT error\n",
				udev->devnum, alts->desc.bInterfaceNumber);
			return -EINVAL;
@@ -1418,7 +1417,7 @@ static int uvc_parse_standard_control(struct uvc_device *dev,
		break;

	default:
		uvc_trace(dev, UVC_TRACE_DESCR,
		uvc_dbg(dev, DESCR,
			"Found an unknown CS_INTERFACE descriptor (%u)\n",
			buffer[2]);
		break;
@@ -1465,8 +1464,8 @@ static int uvc_parse_control(struct uvc_device *dev)
		if (usb_endpoint_is_int_in(desc) &&
		    le16_to_cpu(desc->wMaxPacketSize) >= 8 &&
		    desc->bInterval != 0) {
			uvc_trace(dev, UVC_TRACE_DESCR,
				  "Found a Status endpoint (addr %02x).\n",
			uvc_dbg(dev, DESCR,
				"Found a Status endpoint (addr %02x)\n",
				desc->bEndpointAddress);
			dev->int_ep = ep;
		}
@@ -1612,11 +1611,11 @@ static int uvc_scan_chain_entity(struct uvc_video_chain *chain,
{
	switch (UVC_ENTITY_TYPE(entity)) {
	case UVC_VC_EXTENSION_UNIT:
		uvc_trace_cont(UVC_TRACE_PROBE, " <- XU %d", entity->id);
		uvc_dbg_cont(PROBE, " <- XU %d", entity->id);

		if (entity->bNrInPins != 1) {
			uvc_trace(chain->dev, UVC_TRACE_DESCR,
				  "Extension unit %d has more than 1 input pin.\n",
			uvc_dbg(chain->dev, DESCR,
				"Extension unit %d has more than 1 input pin\n",
				entity->id);
			return -1;
		}
@@ -1624,11 +1623,11 @@ static int uvc_scan_chain_entity(struct uvc_video_chain *chain,
		break;

	case UVC_VC_PROCESSING_UNIT:
		uvc_trace_cont(UVC_TRACE_PROBE, " <- PU %d", entity->id);
		uvc_dbg_cont(PROBE, " <- PU %d", entity->id);

		if (chain->processing != NULL) {
			uvc_trace(chain->dev, UVC_TRACE_DESCR,
				  "Found multiple Processing Units in chain.\n");
			uvc_dbg(chain->dev, DESCR,
				"Found multiple Processing Units in chain\n");
			return -1;
		}

@@ -1636,15 +1635,15 @@ static int uvc_scan_chain_entity(struct uvc_video_chain *chain,
		break;

	case UVC_VC_SELECTOR_UNIT:
		uvc_trace_cont(UVC_TRACE_PROBE, " <- SU %d", entity->id);
		uvc_dbg_cont(PROBE, " <- SU %d", entity->id);

		/* Single-input selector units are ignored. */
		if (entity->bNrInPins == 1)
			break;

		if (chain->selector != NULL) {
			uvc_trace(chain->dev, UVC_TRACE_DESCR,
				  "Found multiple Selector Units in chain.\n");
			uvc_dbg(chain->dev, DESCR,
				"Found multiple Selector Units in chain\n");
			return -1;
		}

@@ -1654,28 +1653,28 @@ static int uvc_scan_chain_entity(struct uvc_video_chain *chain,
	case UVC_ITT_VENDOR_SPECIFIC:
	case UVC_ITT_CAMERA:
	case UVC_ITT_MEDIA_TRANSPORT_INPUT:
		uvc_trace_cont(UVC_TRACE_PROBE, " <- IT %d\n", entity->id);
		uvc_dbg_cont(PROBE, " <- IT %d\n", entity->id);

		break;

	case UVC_OTT_VENDOR_SPECIFIC:
	case UVC_OTT_DISPLAY:
	case UVC_OTT_MEDIA_TRANSPORT_OUTPUT:
		uvc_trace_cont(UVC_TRACE_PROBE, " OT %d", entity->id);
		uvc_dbg_cont(PROBE, " OT %d", entity->id);

		break;

	case UVC_TT_STREAMING:
		if (UVC_ENTITY_IS_ITERM(entity))
			uvc_trace_cont(UVC_TRACE_PROBE, " <- IT %d\n", entity->id);
			uvc_dbg_cont(PROBE, " <- IT %d\n", entity->id);
		else
			uvc_trace_cont(UVC_TRACE_PROBE, " OT %d", entity->id);
			uvc_dbg_cont(PROBE, " OT %d", entity->id);

		break;

	default:
		uvc_trace(chain->dev, UVC_TRACE_DESCR,
			  "Unsupported entity type 0x%04x found in chain.\n",
		uvc_dbg(chain->dev, DESCR,
			"Unsupported entity type 0x%04x found in chain\n",
			UVC_ENTITY_TYPE(entity));
		return -1;
	}
@@ -1702,8 +1701,8 @@ static int uvc_scan_chain_forward(struct uvc_video_chain *chain,
		if (forward == prev)
			continue;
		if (forward->chain.next || forward->chain.prev) {
			uvc_trace(chain->dev, UVC_TRACE_DESCR,
				  "Found reference to entity %d already in chain.\n",
			uvc_dbg(chain->dev, DESCR,
				"Found reference to entity %d already in chain\n",
				forward->id);
			return -EINVAL;
		}
@@ -1711,17 +1710,17 @@ static int uvc_scan_chain_forward(struct uvc_video_chain *chain,
		switch (UVC_ENTITY_TYPE(forward)) {
		case UVC_VC_EXTENSION_UNIT:
			if (forward->bNrInPins != 1) {
				uvc_trace(chain->dev, UVC_TRACE_DESCR,
					  "Extension unit %d has more than 1 input pin.\n",
				uvc_dbg(chain->dev, DESCR,
					"Extension unit %d has more than 1 input pin\n",
					entity->id);
				return -EINVAL;
			}

			list_add_tail(&forward->chain, &chain->entities);
			if (!found)
				uvc_trace_cont(UVC_TRACE_PROBE, " (->");
				uvc_dbg_cont(PROBE, " (->");

			uvc_trace_cont(UVC_TRACE_PROBE, " XU %d", forward->id);
			uvc_dbg_cont(PROBE, " XU %d", forward->id);
			found = 1;
			break;

@@ -1730,23 +1729,23 @@ static int uvc_scan_chain_forward(struct uvc_video_chain *chain,
		case UVC_OTT_MEDIA_TRANSPORT_OUTPUT:
		case UVC_TT_STREAMING:
			if (UVC_ENTITY_IS_ITERM(forward)) {
				uvc_trace(chain->dev, UVC_TRACE_DESCR,
					  "Unsupported input terminal %u.\n",
				uvc_dbg(chain->dev, DESCR,
					"Unsupported input terminal %u\n",
					forward->id);
				return -EINVAL;
			}

			list_add_tail(&forward->chain, &chain->entities);
			if (!found)
				uvc_trace_cont(UVC_TRACE_PROBE, " (->");
				uvc_dbg_cont(PROBE, " (->");

			uvc_trace_cont(UVC_TRACE_PROBE, " OT %d", forward->id);
			uvc_dbg_cont(PROBE, " OT %d", forward->id);
			found = 1;
			break;
		}
	}
	if (found)
		uvc_trace_cont(UVC_TRACE_PROBE, ")");
		uvc_dbg_cont(PROBE, ")");

	return 0;
}
@@ -1771,33 +1770,33 @@ static int uvc_scan_chain_backward(struct uvc_video_chain *chain,
			break;
		}

		uvc_trace_cont(UVC_TRACE_PROBE, " <- IT");
		uvc_dbg_cont(PROBE, " <- IT");

		chain->selector = entity;
		for (i = 0; i < entity->bNrInPins; ++i) {
			id = entity->baSourceID[i];
			term = uvc_entity_by_id(chain->dev, id);
			if (term == NULL || !UVC_ENTITY_IS_ITERM(term)) {
				uvc_trace(chain->dev, UVC_TRACE_DESCR,
				uvc_dbg(chain->dev, DESCR,
					"Selector unit %d input %d isn't connected to an input terminal\n",
					entity->id, i);
				return -1;
			}

			if (term->chain.next || term->chain.prev) {
				uvc_trace(chain->dev, UVC_TRACE_DESCR,
					  "Found reference to entity %d already in chain.\n",
				uvc_dbg(chain->dev, DESCR,
					"Found reference to entity %d already in chain\n",
					term->id);
				return -EINVAL;
			}

			uvc_trace_cont(UVC_TRACE_PROBE, " %d", term->id);
			uvc_dbg_cont(PROBE, " %d", term->id);

			list_add_tail(&term->chain, &chain->entities);
			uvc_scan_chain_forward(chain, term, entity);
		}

		uvc_trace_cont(UVC_TRACE_PROBE, "\n");
		uvc_dbg_cont(PROBE, "\n");

		id = 0;
		break;
@@ -1820,8 +1819,8 @@ static int uvc_scan_chain_backward(struct uvc_video_chain *chain,

	entity = uvc_entity_by_id(chain->dev, id);
	if (entity == NULL) {
		uvc_trace(chain->dev, UVC_TRACE_DESCR,
			  "Found reference to unknown entity %d.\n", id);
		uvc_dbg(chain->dev, DESCR,
			"Found reference to unknown entity %d\n", id);
		return -EINVAL;
	}

@@ -1834,7 +1833,7 @@ static int uvc_scan_chain(struct uvc_video_chain *chain,
{
	struct uvc_entity *entity, *prev;

	uvc_trace(chain->dev, UVC_TRACE_PROBE, "Scanning UVC chain:");
	uvc_dbg(chain->dev, PROBE, "Scanning UVC chain:");

	entity = term;
	prev = NULL;
@@ -1842,8 +1841,8 @@ static int uvc_scan_chain(struct uvc_video_chain *chain,
	while (entity != NULL) {
		/* Entity must not be part of an existing chain */
		if (entity->chain.next || entity->chain.prev) {
			uvc_trace(chain->dev, UVC_TRACE_DESCR,
				  "Found reference to entity %d already in chain.\n",
			uvc_dbg(chain->dev, DESCR,
				"Found reference to entity %d already in chain\n",
				entity->id);
			return -EINVAL;
		}
@@ -1998,8 +1997,7 @@ static int uvc_scan_fallback(struct uvc_device *dev)

	list_add_tail(&chain->list, &dev->chains);

	uvc_trace(dev, UVC_TRACE_PROBE,
		  "Found a video chain by fallback heuristic (%s).\n",
	uvc_dbg(dev, PROBE, "Found a video chain by fallback heuristic (%s)\n",
		uvc_print_chain(chain));

	return 0;
@@ -2042,8 +2040,7 @@ static int uvc_scan_device(struct uvc_device *dev)
			continue;
		}

		uvc_trace(dev, UVC_TRACE_PROBE,
			  "Found a valid video chain (%s).\n",
		uvc_dbg(dev, PROBE, "Found a valid video chain (%s)\n",
			uvc_print_chain(chain));

		list_add_tail(&chain->list, &dev->chains);
@@ -2344,12 +2341,11 @@ static int uvc_probe(struct usb_interface *intf,
		    ? dev->info->quirks : uvc_quirks_param;

	if (id->idVendor && id->idProduct)
		uvc_trace(dev, UVC_TRACE_PROBE,
			  "Probing known UVC device %s (%04x:%04x)\n",
		uvc_dbg(dev, PROBE, "Probing known UVC device %s (%04x:%04x)\n",
			udev->devpath, id->idVendor, id->idProduct);
	else
		uvc_trace(dev, UVC_TRACE_PROBE,
			  "Probing generic UVC device %s\n", udev->devpath);
		uvc_dbg(dev, PROBE, "Probing generic UVC device %s\n",
			udev->devpath);

	if (udev->product != NULL)
		strscpy(dev->name, udev->product, sizeof(dev->name));
@@ -2393,14 +2389,13 @@ static int uvc_probe(struct usb_interface *intf,

	/* Parse the Video Class control descriptor. */
	if (uvc_parse_control(dev) < 0) {
		uvc_trace(dev, UVC_TRACE_PROBE,
			  "Unable to parse UVC descriptors.\n");
		uvc_dbg(dev, PROBE, "Unable to parse UVC descriptors\n");
		goto error;
	}

	/* Parse the associated GPIOs. */
	if (uvc_gpio_parse(dev) < 0) {
		uvc_trace(dev, UVC_TRACE_PROBE, "Unable to parse UVC GPIOs\n");
		uvc_dbg(dev, PROBE, "Unable to parse UVC GPIOs\n");
		goto error;
	}

@@ -2462,7 +2457,7 @@ static int uvc_probe(struct usb_interface *intf,
		goto error;
	}

	uvc_trace(dev, UVC_TRACE_PROBE, "UVC device initialized.\n");
	uvc_dbg(dev, PROBE, "UVC device initialized\n");
	usb_enable_autosuspend(udev);
	return 0;

@@ -2494,7 +2489,7 @@ static int uvc_suspend(struct usb_interface *intf, pm_message_t message)
	struct uvc_device *dev = usb_get_intfdata(intf);
	struct uvc_streaming *stream;

	uvc_trace(dev, UVC_TRACE_SUSPEND, "Suspending interface %u\n",
	uvc_dbg(dev, SUSPEND, "Suspending interface %u\n",
		intf->cur_altsetting->desc.bInterfaceNumber);

	/* Controls are cached on the fly so they don't need to be saved. */
@@ -2512,8 +2507,8 @@ static int uvc_suspend(struct usb_interface *intf, pm_message_t message)
			return uvc_video_suspend(stream);
	}

	uvc_trace(dev, UVC_TRACE_SUSPEND,
		  "Suspend: video streaming USB interface mismatch.\n");
	uvc_dbg(dev, SUSPEND,
		"Suspend: video streaming USB interface mismatch\n");
	return -EINVAL;
}

@@ -2523,7 +2518,7 @@ static int __uvc_resume(struct usb_interface *intf, int reset)
	struct uvc_streaming *stream;
	int ret = 0;

	uvc_trace(dev, UVC_TRACE_SUSPEND, "Resuming interface %u\n",
	uvc_dbg(dev, SUSPEND, "Resuming interface %u\n",
		intf->cur_altsetting->desc.bInterfaceNumber);

	if (intf->cur_altsetting->desc.bInterfaceSubClass ==
@@ -2552,8 +2547,8 @@ static int __uvc_resume(struct usb_interface *intf, int reset)
		}
	}

	uvc_trace(dev, UVC_TRACE_SUSPEND,
		  "Resume: video streaming USB interface mismatch.\n");
	uvc_dbg(dev, SUSPEND,
		"Resume: video streaming USB interface mismatch\n");
	return -EINVAL;
}

@@ -2603,7 +2598,7 @@ module_param_named(nodrop, uvc_no_drop_param, uint, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(nodrop, "Don't drop incomplete frames");
module_param_named(quirks, uvc_quirks_param, uint, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(quirks, "Forced device quirks");
module_param_named(trace, uvc_trace_param, uint, S_IRUGO|S_IWUSR);
module_param_named(trace, uvc_dbg_param, uint, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(trace, "Trace level bitmask");
module_param_named(timeout, uvc_timeout_param, uint, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(timeout, "Streaming control requests timeout");
+8 −9
Original line number Diff line number Diff line
@@ -50,16 +50,15 @@ static int isight_decode(struct uvc_video_queue *queue, struct uvc_buffer *buf,

	if ((len >= 14 && memcmp(&data[2], hdr, 12) == 0) ||
	    (len >= 15 && memcmp(&data[3], hdr, 12) == 0)) {
		uvc_trace(stream->dev, UVC_TRACE_FRAME,
			  "iSight header found\n");
		uvc_dbg(stream->dev, FRAME, "iSight header found\n");
		is_header = 1;
	}

	/* Synchronize to the input stream by waiting for a header packet. */
	if (buf->state != UVC_BUF_STATE_ACTIVE) {
		if (!is_header) {
			uvc_trace(stream->dev, UVC_TRACE_FRAME,
				  "Dropping packet (out of sync).\n");
			uvc_dbg(stream->dev, FRAME,
				"Dropping packet (out of sync)\n");
			return 0;
		}

@@ -87,8 +86,8 @@ static int isight_decode(struct uvc_video_queue *queue, struct uvc_buffer *buf,
		buf->bytesused += nbytes;

		if (len > maxlen || buf->bytesused == buf->length) {
			uvc_trace(stream->dev, UVC_TRACE_FRAME,
				  "Frame complete (overflow).\n");
			uvc_dbg(stream->dev, FRAME,
				"Frame complete (overflow)\n");
			buf->state = UVC_BUF_STATE_DONE;
		}
	}
@@ -105,8 +104,8 @@ void uvc_video_decode_isight(struct uvc_urb *uvc_urb, struct uvc_buffer *buf,

	for (i = 0; i < urb->number_of_packets; ++i) {
		if (urb->iso_frame_desc[i].status < 0) {
			uvc_trace(stream->dev, UVC_TRACE_FRAME,
				  "USB isochronous frame lost (%d).\n",
			uvc_dbg(stream->dev, FRAME,
				"USB isochronous frame lost (%d)\n",
				urb->iso_frame_desc[i].status);
		}

+2 −2
Original line number Diff line number Diff line
@@ -103,8 +103,8 @@ static int uvc_buffer_prepare(struct vb2_buffer *vb)

	if (vb->type == V4L2_BUF_TYPE_VIDEO_OUTPUT &&
	    vb2_get_plane_payload(vb, 0) > vb2_plane_size(vb, 0)) {
		uvc_trace(uvc_queue_to_stream(queue)->dev, UVC_TRACE_CAPTURE,
			  "[E] Bytes used out of bounds.\n");
		uvc_dbg(uvc_queue_to_stream(queue)->dev, CAPTURE,
			"[E] Bytes used out of bounds\n");
		return -EINVAL;
	}

+13 −16
Original line number Diff line number Diff line
@@ -93,21 +93,20 @@ static void uvc_event_streaming(struct uvc_device *dev,
				struct uvc_streaming_status *status, int len)
{
	if (len < 3) {
		uvc_trace(dev, UVC_TRACE_STATUS,
			  "Invalid streaming status event received.\n");
		uvc_dbg(dev, STATUS,
			"Invalid streaming status event received\n");
		return;
	}

	if (status->bEvent == 0) {
		if (len < 4)
			return;
		uvc_trace(dev, UVC_TRACE_STATUS, "Button (intf %u) %s len %d\n",
		uvc_dbg(dev, STATUS, "Button (intf %u) %s len %d\n",
			status->bOriginator,
			status->bValue[0] ? "pressed" : "released", len);
		uvc_input_report_key(dev, KEY_CAMERA, status->bValue[0]);
	} else {
		uvc_trace(dev, UVC_TRACE_STATUS,
			  "Stream %u error event %02x len %d.\n",
		uvc_dbg(dev, STATUS, "Stream %u error event %02x len %d\n",
			status->bOriginator, status->bEvent, len);
	}
}
@@ -163,12 +162,11 @@ static bool uvc_event_control(struct urb *urb,

	if (len < 6 || status->bEvent != 0 ||
	    status->bAttribute >= ARRAY_SIZE(attrs)) {
		uvc_trace(dev, UVC_TRACE_STATUS,
			  "Invalid control status event received.\n");
		uvc_dbg(dev, STATUS, "Invalid control status event received\n");
		return false;
	}

	uvc_trace(dev, UVC_TRACE_STATUS, "Control %u/%u %s change len %d.\n",
	uvc_dbg(dev, STATUS, "Control %u/%u %s change len %d\n",
		status->bOriginator, status->bSelector,
		attrs[status->bAttribute], len);

@@ -237,8 +235,7 @@ static void uvc_status_complete(struct urb *urb)
		}

		default:
			uvc_trace(dev, UVC_TRACE_STATUS,
				  "Unknown status event type %u.\n",
			uvc_dbg(dev, STATUS, "Unknown status event type %u\n",
				dev->status[0]);
			break;
		}
Loading