Merge tag 'media/v4.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab: - new Mediatek drivers: mtk-mdp and mtk-vcodec - some additions at the media documentation - the CEC core and drivers were promoted from staging to mainstream - some cleanups at the DVB core - the LIRC serial driver got promoted from staging to mainstream - added a driver for Renesas R-Car FDP1 driver - add DVBv5 statistics support to mn88473 driver - several fixes related to printk continuation lines - add support for HSV encoding formats - lots of other cleanups, fixups and driver improvements. * tag 'media/v4.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (496 commits) [media] v4l: tvp5150: Add missing break in set control handler [media] v4l: tvp5150: Don't inline the tvp5150_selmux() function [media] v4l: tvp5150: Compile tvp5150_link_setup out if !CONFIG_MEDIA_CONTROLLER [media] em28xx: don't store usb_device at struct em28xx [media] em28xx: use usb_interface for dev_foo() calls [media] em28xx: don't change the device's name [media] mn88472: fix chip id check on probe [media] mn88473: fix chip id check on probe [media] lirc: fix error paths in lirc_cdev_add() [media] s5p-mfc: Add support for MFC v8 available in Exynos 5433 SoCs [media] s5p-mfc: Rework clock handling [media] s5p-mfc: Don't keep clock prepared all the time [media] s5p-mfc: Kill all IS_ERR_OR_NULL in clocks management code [media] s5p-mfc: Remove dead conditional code [media] s5p-mfc: Ensure that clock is disabled before turning power off [media] s5p-mfc: Remove special clock rate management [media] s5p-mfc: Use printk_ratelimited for reporting ioctl errors [media] s5p-mfc: Set DMA_ATTR_ALLOC_SINGLE_PAGES [media] vivid: Set color_enc on HSV formats [media] v4l2-tpg: Init hv_enc field with a valid value ...
这个提交包含在:
@@ -2095,6 +2095,8 @@ static const struct usb_device_id af9035_id_table[] = {
|
||||
&af9035_props, "TerraTec Cinergy T Stick (rev. 2)", NULL) },
|
||||
{ DVB_USB_DEVICE(USB_VID_AVERMEDIA, 0x0337,
|
||||
&af9035_props, "AVerMedia HD Volar (A867)", NULL) },
|
||||
{ DVB_USB_DEVICE(USB_VID_GTEK, USB_PID_EVOLVEO_XTRATV_STICK,
|
||||
&af9035_props, "EVOLVEO XtraTV stick", NULL) },
|
||||
|
||||
/* IT9135 devices */
|
||||
{ DVB_USB_DEVICE(USB_VID_ITETECH, USB_PID_ITETECH_IT9135,
|
||||
|
@@ -851,6 +851,10 @@ static const struct usb_device_id dvbsky_id_table[] = {
|
||||
USB_PID_TECHNOTREND_CONNECT_CT2_4650_CI_2,
|
||||
&dvbsky_t680c_props, "TechnoTrend TT-connect CT2-4650 CI v1.1",
|
||||
RC_MAP_TT_1500) },
|
||||
{ DVB_USB_DEVICE(USB_VID_TECHNOTREND,
|
||||
USB_PID_TECHNOTREND_CONNECT_S2_4650_CI,
|
||||
&dvbsky_s960c_props, "TechnoTrend TT-connect S2-4650 CI",
|
||||
RC_MAP_TT_1500) },
|
||||
{ DVB_USB_DEVICE(USB_VID_TERRATEC,
|
||||
USB_PID_TERRATEC_H7_3,
|
||||
&dvbsky_t680c_props, "Terratec H7 Rev.4",
|
||||
|
@@ -156,21 +156,19 @@ struct lme2510_state {
|
||||
static int lme2510_bulk_write(struct usb_device *dev,
|
||||
u8 *snd, int len, u8 pipe)
|
||||
{
|
||||
int ret, actual_l;
|
||||
int actual_l;
|
||||
|
||||
ret = usb_bulk_msg(dev, usb_sndbulkpipe(dev, pipe),
|
||||
snd, len , &actual_l, 100);
|
||||
return ret;
|
||||
return usb_bulk_msg(dev, usb_sndbulkpipe(dev, pipe),
|
||||
snd, len, &actual_l, 100);
|
||||
}
|
||||
|
||||
static int lme2510_bulk_read(struct usb_device *dev,
|
||||
u8 *rev, int len, u8 pipe)
|
||||
{
|
||||
int ret, actual_l;
|
||||
int actual_l;
|
||||
|
||||
ret = usb_bulk_msg(dev, usb_rcvbulkpipe(dev, pipe),
|
||||
rev, len , &actual_l, 200);
|
||||
return ret;
|
||||
return usb_bulk_msg(dev, usb_rcvbulkpipe(dev, pipe),
|
||||
rev, len, &actual_l, 200);
|
||||
}
|
||||
|
||||
static int lme2510_usb_talk(struct dvb_usb_device *d,
|
||||
|
@@ -549,7 +549,7 @@ static void mxl111sf_demod_release(struct dvb_frontend *fe)
|
||||
fe->demodulator_priv = NULL;
|
||||
}
|
||||
|
||||
static struct dvb_frontend_ops mxl111sf_demod_ops = {
|
||||
static const struct dvb_frontend_ops mxl111sf_demod_ops = {
|
||||
.delsys = { SYS_DVBT },
|
||||
.info = {
|
||||
.name = "MaxLinear MxL111SF DVB-T demodulator",
|
||||
|
@@ -666,8 +666,8 @@ static int mxl111sf_i2c_hw_xfer_msg(struct mxl111sf_state *state,
|
||||
|
||||
if (rd_status[i] == 0x04) {
|
||||
if (i < 7) {
|
||||
mxl_i2c("i2c fifo empty!"
|
||||
" @ %d", i);
|
||||
mxl_i2c("i2c fifo empty! @ %d",
|
||||
i);
|
||||
msg->buf[(index*8)+i] =
|
||||
i2c_r_data[(i*3)+1];
|
||||
/* read again */
|
||||
@@ -692,8 +692,7 @@ static int mxl111sf_i2c_hw_xfer_msg(struct mxl111sf_state *state,
|
||||
}
|
||||
goto stop_copy;
|
||||
} else {
|
||||
mxl_i2c("readagain "
|
||||
"ERROR!");
|
||||
mxl_i2c("readagain ERROR!");
|
||||
}
|
||||
} else {
|
||||
msg->buf[(index*8)+i] =
|
||||
@@ -827,9 +826,8 @@ int mxl111sf_i2c_xfer(struct i2c_adapter *adap,
|
||||
mxl111sf_i2c_hw_xfer_msg(state, &msg[i]) :
|
||||
mxl111sf_i2c_sw_xfer_msg(state, &msg[i]);
|
||||
if (mxl_fail(ret)) {
|
||||
mxl_debug_adv("failed with error %d on i2c "
|
||||
"transaction %d of %d, %sing %d bytes "
|
||||
"to/from 0x%02x", ret, i+1, num,
|
||||
mxl_debug_adv("failed with error %d on i2c transaction %d of %d, %sing %d bytes to/from 0x%02x",
|
||||
ret, i+1, num,
|
||||
(msg[i].flags & I2C_M_RD) ?
|
||||
"read" : "writ",
|
||||
msg[i].len, msg[i].addr);
|
||||
|
@@ -455,13 +455,12 @@ static int mxl111sf_tuner_get_if_frequency(struct dvb_frontend *fe,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mxl111sf_tuner_release(struct dvb_frontend *fe)
|
||||
static void mxl111sf_tuner_release(struct dvb_frontend *fe)
|
||||
{
|
||||
struct mxl111sf_tuner_state *state = fe->tuner_priv;
|
||||
mxl_dbg("()");
|
||||
kfree(state);
|
||||
fe->tuner_priv = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
@@ -29,8 +29,7 @@
|
||||
|
||||
int dvb_usb_mxl111sf_debug;
|
||||
module_param_named(debug, dvb_usb_mxl111sf_debug, int, 0644);
|
||||
MODULE_PARM_DESC(debug, "set debugging level "
|
||||
"(1=info, 2=xfer, 4=i2c, 8=reg, 16=adv (or-able)).");
|
||||
MODULE_PARM_DESC(debug, "set debugging level (1=info, 2=xfer, 4=i2c, 8=reg, 16=adv (or-able)).");
|
||||
|
||||
static int dvb_usb_mxl111sf_isoc;
|
||||
module_param_named(isoc, dvb_usb_mxl111sf_isoc, int, 0644);
|
||||
@@ -137,8 +136,8 @@ int mxl111sf_write_reg_mask(struct mxl111sf_state *state,
|
||||
#if 1
|
||||
/* dont know why this usually errors out on the first try */
|
||||
if (mxl_fail(ret))
|
||||
pr_err("error writing addr: 0x%02x, mask: 0x%02x, "
|
||||
"data: 0x%02x, retrying...", addr, mask, data);
|
||||
pr_err("error writing addr: 0x%02x, mask: 0x%02x, data: 0x%02x, retrying...",
|
||||
addr, mask, data);
|
||||
|
||||
ret = mxl111sf_read_reg(state, addr, &val);
|
||||
#endif
|
||||
@@ -946,8 +945,7 @@ static int mxl111sf_init(struct dvb_usb_device *d)
|
||||
case 138001:
|
||||
break;
|
||||
default:
|
||||
printk(KERN_WARNING "%s: warning: "
|
||||
"unknown hauppauge model #%d\n",
|
||||
printk(KERN_WARNING "%s: warning: unknown hauppauge model #%d\n",
|
||||
__func__, state->tv.model);
|
||||
}
|
||||
#endif
|
||||
|
在新工单中引用
屏蔽一个用户