Commit d67ceb33 authored by Oliver Schinagl's avatar Oliver Schinagl Committed by Mauro Carvalho Chehab
Browse files

[media] Support for Asus MyCinema U3100Mini Plus



This is initial support for the Asus MyCinema U3100Mini Plus. The driver
in its current form gets detected and loads properly.
Scanning using dvbscan works without problems, Locking onto a channel
using tzap also works fine. Only playback using tzap -r + mplayer was
tested and was fully functional.
It uses the af9035 USB Bridge chip, with an af9033 demodulator. The tuner
used is the FCI FC2580.

Signed-off-by: default avatarOliver Schinagl <oliver@schinagl.nl>
Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 3d8a60d5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -329,6 +329,7 @@
#define USB_PID_ASUS_U3000				0x171f
#define USB_PID_ASUS_U3000H				0x1736
#define USB_PID_ASUS_U3100				0x173f
#define USB_PID_ASUS_U3100MINI_PLUS			0x1779
#define USB_PID_YUAN_EC372S				0x1edc
#define USB_PID_YUAN_STK7700PH				0x1f08
#define USB_PID_YUAN_PD378S				0x2edc
+4 −0
Original line number Diff line number Diff line
@@ -314,6 +314,10 @@ static int af9033_init(struct dvb_frontend *fe)
		len = ARRAY_SIZE(tuner_init_tda18218);
		init = tuner_init_tda18218;
		break;
	case AF9033_TUNER_FC2580:
		len = ARRAY_SIZE(tuner_init_fc2580);
		init = tuner_init_fc2580;
		break;
	default:
		dev_dbg(&state->i2c->dev, "%s: unsupported tuner ID=%d\n",
				__func__, state->cfg.tuner);
+1 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ struct af9033_config {
#define AF9033_TUNER_FC0011      0x28 /* Fitipower FC0011 */
#define AF9033_TUNER_MXL5007T    0xa0 /* MaxLinear MxL5007T */
#define AF9033_TUNER_TDA18218    0xa1 /* NXP TDA 18218HN */
#define AF9033_TUNER_FC2580      0x32 /* FCI FC2580 */
	u8 tuner;

	/*
+37 −0
Original line number Diff line number Diff line
@@ -466,5 +466,42 @@ static const struct reg_val tuner_init_tda18218[] = {
	{0x80f1e6, 0x00},
};

/* FCI FC2580 tuner init */
static const struct reg_val tuner_init_fc2580[] = {
	{ 0x800046, 0x32 },
	{ 0x800057, 0x01 },
	{ 0x800058, 0x00 },
	{ 0x80005f, 0x00 },
	{ 0x800060, 0x00 },
	{ 0x800071, 0x05 },
	{ 0x800072, 0x02 },
	{ 0x800074, 0x01 },
	{ 0x800079, 0x01 },
	{ 0x800093, 0x00 },
	{ 0x800094, 0x00 },
	{ 0x800095, 0x00 },
	{ 0x800096, 0x05 },
	{ 0x8000b3, 0x01 },
	{ 0x8000c3, 0x01 },
	{ 0x8000c4, 0x00 },
	{ 0x80f007, 0x00 },
	{ 0x80f00c, 0x19 },
	{ 0x80f00d, 0x1A },
	{ 0x80f00e, 0x00 },
	{ 0x80f00f, 0x02 },
	{ 0x80f010, 0x00 },
	{ 0x80f011, 0x02 },
	{ 0x80f012, 0x00 },
	{ 0x80f013, 0x02 },
	{ 0x80f014, 0x00 },
	{ 0x80f015, 0x02 },
	{ 0x80f01f, 0x96 },
	{ 0x80f020, 0x00 },
	{ 0x80f029, 0x96 },
	{ 0x80f02a, 0x00 },
	{ 0x80f077, 0x01 },
	{ 0x80f1e6, 0x01 },
};

#endif /* AF9033_PRIV_H */
+2 −1
Original line number Diff line number Diff line
@@ -498,8 +498,9 @@ struct dvb_frontend *fc2580_attach(struct dvb_frontend *fe,

	dev_dbg(&priv->i2c->dev, "%s: chip_id=%02x\n", __func__, chip_id);

	if (chip_id != 0x56)
	if ((chip_id != 0x56) && (chip_id != 0x5a)) {
		goto err;
	}

	dev_info(&priv->i2c->dev,
			"%s: FCI FC2580 successfully identified\n",
Loading