[media] cxusb: Add read_mac_address for TT CT2-4400 and CT2-4650

Read MAC address from the EEPROM.

This version two corrects a flaw in the result code returning that
did exist in the first version.

Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
This commit is contained in:
Olli Salonen 2014-08-21 09:05:01 -03:00 committed by Mauro Carvalho Chehab
parent 6832d11edd
commit a45c2994d5

View File

@ -673,6 +673,39 @@ static struct rc_map_table rc_map_d680_dmb_table[] = {
{ 0x0025, KEY_POWER },
};
static int cxusb_tt_ct2_4400_read_mac_address(struct dvb_usb_device *d, u8 mac[6])
{
u8 wbuf[2];
u8 rbuf[6];
int ret;
struct i2c_msg msg[] = {
{
.addr = 0x51,
.flags = 0,
.buf = wbuf,
.len = 2,
}, {
.addr = 0x51,
.flags = I2C_M_RD,
.buf = rbuf,
.len = 6,
}
};
wbuf[0] = 0x1e;
wbuf[1] = 0x00;
ret = cxusb_i2c_xfer(&d->i2c_adap, msg, 2);
if (ret == 2) {
memcpy(mac, rbuf, 6);
return 0;
} else {
if (ret < 0)
return ret;
return -EIO;
}
}
static int cxusb_tt_ct2_4650_ci_ctrl(void *priv, u8 read, int addr,
u8 data, int *mem)
{
@ -2316,6 +2349,8 @@ static struct dvb_usb_device_properties cxusb_tt_ct2_4400_properties = {
.size_of_priv = sizeof(struct cxusb_state),
.num_adapters = 1,
.read_mac_address = cxusb_tt_ct2_4400_read_mac_address,
.adapter = {
{
.num_frontends = 1,