Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c1f03b48 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull media fixes from Mauro Carvalho Chehab:
 "some media bug fixes:
   - a Kconfig dependency issue
   - some fixes for af9033/it913x demod to be more reliable and address
     a performance regression
   - cx18: fix an oops on devices with tda8290 tuner
   - two new USB IDs for af9035
   - a couple fixes on smapp driver"

* tag 'media-v3.17-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
  [media] af9035: new IDs: add support for PCTV 78e and PCTV 79e
  [media] af9033: feed clock to RF tuner
  [media] it913x: init tuner on attach
  [media] af9033: update IT9135 tuner inittabs
  [media] Kconfig: do not select SPI bus on sub-driver auto-select
  [media] cx18: fix kernel oops with tda8290 tuner
  [media] smiapp: Set sub-device owner
  [media] smiapp: Fix power count handling
parents 3c2ea702 a04646c0
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -182,7 +182,6 @@ config MEDIA_SUBDRV_AUTOSELECT
	depends on HAS_IOMEM
	select I2C
	select I2C_MUX
	select SPI
	default y
	help
	  By default, a media driver auto-selects all possible ancillary
+2 −0
Original line number Diff line number Diff line
@@ -280,6 +280,8 @@
#define USB_PID_PCTV_400E				0x020f
#define USB_PID_PCTV_450E				0x0222
#define USB_PID_PCTV_452E				0x021f
#define USB_PID_PCTV_78E				0x025a
#define USB_PID_PCTV_79E				0x0262
#define USB_PID_REALTEK_RTL2831U			0x2831
#define USB_PID_REALTEK_RTL2832U			0x2832
#define USB_PID_TECHNOTREND_CONNECT_S2_3600		0x3007
+13 −0
Original line number Diff line number Diff line
@@ -314,6 +314,19 @@ static int af9033_init(struct dvb_frontend *fe)
			goto err;
	}

	/* feed clock to RF tuner */
	switch (state->cfg.tuner) {
	case AF9033_TUNER_IT9135_38:
	case AF9033_TUNER_IT9135_51:
	case AF9033_TUNER_IT9135_52:
	case AF9033_TUNER_IT9135_60:
	case AF9033_TUNER_IT9135_61:
	case AF9033_TUNER_IT9135_62:
		ret = af9033_wr_reg(state, 0x80fba8, 0x00);
		if (ret < 0)
			goto err;
	}

	/* settings for TS interface */
	if (state->cfg.ts_mode == AF9033_TS_MODE_USB) {
		ret = af9033_wr_reg_mask(state, 0x80f9a5, 0x00, 0x01);
+9 −11
Original line number Diff line number Diff line
@@ -1418,7 +1418,7 @@ static const struct reg_val tuner_init_it9135_60[] = {
	{ 0x800068, 0x0a },
	{ 0x80006a, 0x03 },
	{ 0x800070, 0x0a },
	{ 0x800071, 0x05 },
	{ 0x800071, 0x0a },
	{ 0x800072, 0x02 },
	{ 0x800075, 0x8c },
	{ 0x800076, 0x8c },
@@ -1484,7 +1484,6 @@ static const struct reg_val tuner_init_it9135_60[] = {
	{ 0x800104, 0x02 },
	{ 0x800105, 0xbe },
	{ 0x800106, 0x00 },
	{ 0x800109, 0x02 },
	{ 0x800115, 0x0a },
	{ 0x800116, 0x03 },
	{ 0x80011a, 0xbe },
@@ -1510,7 +1509,6 @@ static const struct reg_val tuner_init_it9135_60[] = {
	{ 0x80014b, 0x8c },
	{ 0x80014d, 0xac },
	{ 0x80014e, 0xc6 },
	{ 0x80014f, 0x03 },
	{ 0x800151, 0x1e },
	{ 0x800153, 0xbc },
	{ 0x800178, 0x09 },
@@ -1522,9 +1520,10 @@ static const struct reg_val tuner_init_it9135_60[] = {
	{ 0x80018d, 0x5f },
	{ 0x80018f, 0xa0 },
	{ 0x800190, 0x5a },
	{ 0x80ed02, 0xff },
	{ 0x80ee42, 0xff },
	{ 0x80ee82, 0xff },
	{ 0x800191, 0x00 },
	{ 0x80ed02, 0x40 },
	{ 0x80ee42, 0x40 },
	{ 0x80ee82, 0x40 },
	{ 0x80f000, 0x0f },
	{ 0x80f01f, 0x8c },
	{ 0x80f020, 0x00 },
@@ -1699,7 +1698,6 @@ static const struct reg_val tuner_init_it9135_61[] = {
	{ 0x800104, 0x02 },
	{ 0x800105, 0xc8 },
	{ 0x800106, 0x00 },
	{ 0x800109, 0x02 },
	{ 0x800115, 0x0a },
	{ 0x800116, 0x03 },
	{ 0x80011a, 0xc6 },
@@ -1725,7 +1723,6 @@ static const struct reg_val tuner_init_it9135_61[] = {
	{ 0x80014b, 0x8c },
	{ 0x80014d, 0xa8 },
	{ 0x80014e, 0xc6 },
	{ 0x80014f, 0x03 },
	{ 0x800151, 0x28 },
	{ 0x800153, 0xcc },
	{ 0x800178, 0x09 },
@@ -1737,9 +1734,10 @@ static const struct reg_val tuner_init_it9135_61[] = {
	{ 0x80018d, 0x5f },
	{ 0x80018f, 0xfb },
	{ 0x800190, 0x5c },
	{ 0x80ed02, 0xff },
	{ 0x80ee42, 0xff },
	{ 0x80ee82, 0xff },
	{ 0x800191, 0x00 },
	{ 0x80ed02, 0x40 },
	{ 0x80ee42, 0x40 },
	{ 0x80ee82, 0x40 },
	{ 0x80f000, 0x0f },
	{ 0x80f01f, 0x8c },
	{ 0x80f020, 0x00 },
+3 −10
Original line number Diff line number Diff line
@@ -1282,19 +1282,12 @@ static int smiapp_set_power(struct v4l2_subdev *subdev, int on)

	mutex_lock(&sensor->power_mutex);

	/*
	 * If the power count is modified from 0 to != 0 or from != 0
	 * to 0, update the power state.
	 */
	if (!sensor->power_count == !on)
		goto out;

	if (on) {
	if (on && !sensor->power_count) {
		/* Power on and perform initialisation. */
		ret = smiapp_power_on(sensor);
		if (ret < 0)
			goto out;
	} else {
	} else if (!on && sensor->power_count == 1) {
		smiapp_power_off(sensor);
	}

@@ -2572,7 +2565,7 @@ static int smiapp_registered(struct v4l2_subdev *subdev)

		this->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
		this->sd.internal_ops = &smiapp_internal_ops;
		this->sd.owner = NULL;
		this->sd.owner = THIS_MODULE;
		v4l2_set_subdevdata(&this->sd, client);

		rval = media_entity_init(&this->sd.entity,
Loading