summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAntti Palosaari <crope@iki.fi>2012-09-22 18:46:24 +0200
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-09-27 20:18:24 +0200
commitf6068764573d2f29529c8835126dabe3f2096c1f (patch)
tree8c3ae9a5706f96ddf7e3b218eaef3a4cdf19a57f /drivers
parent[media] e4000: fix crash when attach fails (diff)
downloadlinux-f6068764573d2f29529c8835126dabe3f2096c1f.tar.xz
linux-f6068764573d2f29529c8835126dabe3f2096c1f.zip
[media] anysee: do not remove CI when it is not attached
Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/usb/dvb-usb-v2/anysee.c8
-rw-r--r--drivers/media/usb/dvb-usb-v2/anysee.h1
2 files changed, 5 insertions, 4 deletions
diff --git a/drivers/media/usb/dvb-usb-v2/anysee.c b/drivers/media/usb/dvb-usb-v2/anysee.c
index 6705d81f0cb2..ec540140c810 100644
--- a/drivers/media/usb/dvb-usb-v2/anysee.c
+++ b/drivers/media/usb/dvb-usb-v2/anysee.c
@@ -1217,6 +1217,8 @@ static int anysee_ci_init(struct dvb_usb_device *d)
if (ret)
return ret;
+ state->ci_attached = true;
+
return 0;
}
@@ -1225,7 +1227,7 @@ static void anysee_ci_release(struct dvb_usb_device *d)
struct anysee_state *state = d_to_priv(d);
/* detach CI */
- if (state->has_ci)
+ if (state->ci_attached)
dvb_ca_en50221_release(&state->ci);
return;
@@ -1257,10 +1259,8 @@ static int anysee_init(struct dvb_usb_device *d)
/* attach CI */
if (state->has_ci) {
ret = anysee_ci_init(d);
- if (ret) {
- state->has_ci = false;
+ if (ret)
return ret;
- }
}
return 0;
diff --git a/drivers/media/usb/dvb-usb-v2/anysee.h b/drivers/media/usb/dvb-usb-v2/anysee.h
index 4ab467679a43..c1a4273f14ff 100644
--- a/drivers/media/usb/dvb-usb-v2/anysee.h
+++ b/drivers/media/usb/dvb-usb-v2/anysee.h
@@ -56,6 +56,7 @@ struct anysee_state {
u8 seq;
u8 fe_id:1; /* frondend ID */
u8 has_ci:1;
+ u8 ci_attached:1;
struct dvb_ca_en50221 ci;
unsigned long ci_cam_ready; /* jiffies */
};