[media] gspca: Remove old control code now that all drivers are converted

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Hans de Goede
2013-02-16 14:42:59 -03:00
committed by Mauro Carvalho Chehab
szülő 2effe6de38
commit 70c8ecf54b
2 fájl változott, egészen pontosan 0 új sor hozzáadva és 184 régi sor törölve

Fájl megtekintése

@@ -984,7 +984,6 @@ out:
static void gspca_set_default_mode(struct gspca_dev *gspca_dev)
{
struct gspca_ctrl *ctrl;
int i;
i = gspca_dev->cam.nmodes - 1; /* take the highest mode */
@@ -993,17 +992,8 @@ static void gspca_set_default_mode(struct gspca_dev *gspca_dev)
gspca_dev->height = gspca_dev->cam.cam_mode[i].height;
gspca_dev->pixfmt = gspca_dev->cam.cam_mode[i].pixelformat;
/* set the current control values to their default values
* which may have changed in sd_init() */
/* does nothing if ctrl_handler == NULL */
v4l2_ctrl_handler_setup(gspca_dev->vdev.ctrl_handler);
ctrl = gspca_dev->cam.ctrls;
if (ctrl != NULL) {
for (i = 0;
i < gspca_dev->sd_desc->nctrls;
i++, ctrl++)
ctrl->val = ctrl->def;
}
}
static int wxh_to_mode(struct gspca_dev *gspca_dev,
@@ -1357,134 +1347,6 @@ static int vidioc_querycap(struct file *file, void *priv,
return 0;
}
static int get_ctrl(struct gspca_dev *gspca_dev,
int id)
{
const struct ctrl *ctrls;
int i;
for (i = 0, ctrls = gspca_dev->sd_desc->ctrls;
i < gspca_dev->sd_desc->nctrls;
i++, ctrls++) {
if (gspca_dev->ctrl_dis & (1 << i))
continue;
if (id == ctrls->qctrl.id)
return i;
}
return -1;
}
static int vidioc_queryctrl(struct file *file, void *priv,
struct v4l2_queryctrl *q_ctrl)
{
struct gspca_dev *gspca_dev = video_drvdata(file);
const struct ctrl *ctrls;
struct gspca_ctrl *gspca_ctrl;
int i, idx;
u32 id;
id = q_ctrl->id;
if (id & V4L2_CTRL_FLAG_NEXT_CTRL) {
id &= V4L2_CTRL_ID_MASK;
id++;
idx = -1;
for (i = 0; i < gspca_dev->sd_desc->nctrls; i++) {
if (gspca_dev->ctrl_dis & (1 << i))
continue;
if (gspca_dev->sd_desc->ctrls[i].qctrl.id < id)
continue;
if (idx >= 0
&& gspca_dev->sd_desc->ctrls[i].qctrl.id
> gspca_dev->sd_desc->ctrls[idx].qctrl.id)
continue;
idx = i;
}
} else {
idx = get_ctrl(gspca_dev, id);
}
if (idx < 0)
return -EINVAL;
ctrls = &gspca_dev->sd_desc->ctrls[idx];
memcpy(q_ctrl, &ctrls->qctrl, sizeof *q_ctrl);
if (gspca_dev->cam.ctrls != NULL) {
gspca_ctrl = &gspca_dev->cam.ctrls[idx];
q_ctrl->default_value = gspca_ctrl->def;
q_ctrl->minimum = gspca_ctrl->min;
q_ctrl->maximum = gspca_ctrl->max;
}
if (gspca_dev->ctrl_inac & (1 << idx))
q_ctrl->flags |= V4L2_CTRL_FLAG_INACTIVE;
return 0;
}
static int vidioc_s_ctrl(struct file *file, void *priv,
struct v4l2_control *ctrl)
{
struct gspca_dev *gspca_dev = video_drvdata(file);
const struct ctrl *ctrls;
struct gspca_ctrl *gspca_ctrl;
int idx;
idx = get_ctrl(gspca_dev, ctrl->id);
if (idx < 0)
return -EINVAL;
if (gspca_dev->ctrl_inac & (1 << idx))
return -EINVAL;
ctrls = &gspca_dev->sd_desc->ctrls[idx];
if (gspca_dev->cam.ctrls != NULL) {
gspca_ctrl = &gspca_dev->cam.ctrls[idx];
if (ctrl->value < gspca_ctrl->min
|| ctrl->value > gspca_ctrl->max)
return -ERANGE;
} else {
gspca_ctrl = NULL;
if (ctrl->value < ctrls->qctrl.minimum
|| ctrl->value > ctrls->qctrl.maximum)
return -ERANGE;
}
PDEBUG(D_CONF, "set ctrl [%08x] = %d", ctrl->id, ctrl->value);
gspca_dev->usb_err = 0;
if (ctrls->set != NULL)
return ctrls->set(gspca_dev, ctrl->value);
if (gspca_ctrl != NULL) {
gspca_ctrl->val = ctrl->value;
if (ctrls->set_control != NULL
&& gspca_dev->streaming)
ctrls->set_control(gspca_dev);
}
return gspca_dev->usb_err;
}
static int vidioc_g_ctrl(struct file *file, void *priv,
struct v4l2_control *ctrl)
{
struct gspca_dev *gspca_dev = video_drvdata(file);
const struct ctrl *ctrls;
int idx;
idx = get_ctrl(gspca_dev, ctrl->id);
if (idx < 0)
return -EINVAL;
ctrls = &gspca_dev->sd_desc->ctrls[idx];
gspca_dev->usb_err = 0;
if (ctrls->get != NULL)
return ctrls->get(gspca_dev, &ctrl->value);
if (gspca_dev->cam.ctrls != NULL)
ctrl->value = gspca_dev->cam.ctrls[idx].val;
return 0;
}
static int vidioc_querymenu(struct file *file, void *priv,
struct v4l2_querymenu *qmenu)
{
struct gspca_dev *gspca_dev = video_drvdata(file);
if (!gspca_dev->sd_desc->querymenu)
return -ENOTTY;
return gspca_dev->sd_desc->querymenu(gspca_dev, qmenu);
}
static int vidioc_enum_input(struct file *file, void *priv,
struct v4l2_input *input)
{
@@ -2125,10 +1987,6 @@ static const struct v4l2_ioctl_ops dev_ioctl_ops = {
.vidioc_g_fmt_vid_cap = vidioc_g_fmt_vid_cap,
.vidioc_s_fmt_vid_cap = vidioc_s_fmt_vid_cap,
.vidioc_streamon = vidioc_streamon,
.vidioc_queryctrl = vidioc_queryctrl,
.vidioc_g_ctrl = vidioc_g_ctrl,
.vidioc_s_ctrl = vidioc_s_ctrl,
.vidioc_querymenu = vidioc_querymenu,
.vidioc_enum_input = vidioc_enum_input,
.vidioc_g_input = vidioc_g_input,
.vidioc_s_input = vidioc_s_input,
@@ -2157,22 +2015,6 @@ static const struct video_device gspca_template = {
.release = video_device_release_empty, /* We use v4l2_dev.release */
};
/* initialize the controls */
static void ctrls_init(struct gspca_dev *gspca_dev)
{
struct gspca_ctrl *ctrl;
int i;
for (i = 0, ctrl = gspca_dev->cam.ctrls;
i < gspca_dev->sd_desc->nctrls;
i++, ctrl++) {
ctrl->def = gspca_dev->sd_desc->ctrls[i].qctrl.default_value;
ctrl->val = ctrl->def;
ctrl->min = gspca_dev->sd_desc->ctrls[i].qctrl.minimum;
ctrl->max = gspca_dev->sd_desc->ctrls[i].qctrl.maximum;
}
}
/*
* probe and create a new gspca device
*
@@ -2249,8 +2091,6 @@ int gspca_dev_probe2(struct usb_interface *intf,
ret = sd_desc->config(gspca_dev, id);
if (ret < 0)
goto out;
if (gspca_dev->cam.ctrls != NULL)
ctrls_init(gspca_dev);
ret = sd_desc->init(gspca_dev);
if (ret < 0)
goto out;