Показать сообщение отдельно
Старый 26.05.2014, 13:13   #766
YuryK
Новый Пользователь
 
Регистрация: 23.04.2014
Возраст: 45
Регион: Беларусь
Сообщений: 20
YuryK has a spectacular aura aboutYuryK has a spectacular aura aboutYuryK has a spectacular aura about
По умолчанию

Жирным выделены мои изменения.

v4l2-dev.c:

int __video_register_device(struct video_device *vdev, int type, int nr,
int warn_if_nr_in_use, struct module *owner)
{
int i = 0;
int ret;
int minor_offset = 0;
int minor_cnt = VIDEO_NUM_DEVICES;
bool vid = false;
const char *name_base;


-----------------------------------------------

/* Part 1: check device type */
switch (type) {
case VFL_TYPE_GRABBER:
name_base = "video";
vid = true;
break;
case VFL_TYPE_VBI:
name_base = "vbi";
break;
case VFL_TYPE_RADIO:
name_base = "radio";
break;
case VFL_TYPE_SUBDEV:
name_base = "v4l-subdev";
break;

---------------------------------------------------------

/* Part 4: register the device with sysfs */
vdev->dev.class = &video_class;
vdev->dev.devt = MKDEV(VIDEO_MAJOR, vdev->minor);
if (vdev->parent)
vdev->dev.parent = vdev->parent;
dev_set_name(&vdev->dev, "%s%d", name_base, (vdev->num > 3 && vid) ? 3 : vdev->num);
ret = device_register(&vdev->dev);


v4l2-device.c:

int v4l2_device_set_name(struct v4l2_device *v4l2_dev, const char *basename,
atomic_t *instance)
{
int num = atomic_inc_return(instance) - 1;
int len = strlen(basename);

if (basename[len - 1] >= '0' && basename[len - 1] <= '9')
snprintf(v4l2_dev->name, sizeof(v4l2_dev->name),
"%s-%d", basename, num);
else
snprintf(v4l2_dev->name, sizeof(v4l2_dev->name),
"%s%d", basename, (num > 3 && len == 5 && basename[0] == 'v') ? 3 : num);
return num;


Загрузил архив сюда, на форуме лимит 1.91 мб - не влезает.
Если что-то не будет работать как надо, пишите - разберемся
__________________
Nexus 7 2013 Wi-Fi + easycap
YuryK вне форума   Ответить с цитированием