Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media

Pull media fixes from Mauro Carvalho Chehab:
"For:
- some regression fixes at the Remote Controller core and imon driver
- a build fix for certain randconfigs with ir-hix5hd2
- don't feed power to satellite system at ds3000 driver init

It also contains some fixes for drivers added for Kernel 3.18:
- some fixes at the new ISDB-S driver, and the corresponding bits to
fix some descriptors for this Japanese TV standard at the DVB core
- two warning cleanups for sp2 driver if PM is disabled
- change the default mode for the new vivid driver"

* git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
[media] sp2: sp2_init() can be static
[media] dvb:tc90522: fix always-false expression
[media] dvb-core: set default properties of ISDB-S
[media] dvb:tc90522: fix stats report
[media] vivid: default to single planar device instances
[media] imon: fix other RC type protocol support
[media] ir-hix5hd2 fix build warning
[media] ds3000: fix LNB supply voltage on Tevii S480 on initialization
[media] rc5-decoder: BZ#85721: Fix RC5-SZ decoding
[media] rc-core: fix protocol_change regression in ir_raw_event_register

+37 -31
+5 -7
Documentation/video4linux/vivid.txt
··· 221 221 key, not quality. 222 222 223 223 multiplanar: select whether each device instance supports multi-planar formats, 224 - and thus the V4L2 multi-planar API. By default the first device instance 225 - is single-planar, the second multi-planar, and it keeps alternating. 224 + and thus the V4L2 multi-planar API. By default device instances are 225 + single-planar. 226 226 227 227 This module option can override that for each instance. Values are: 228 228 229 - 0: use alternating single and multi-planar devices. 230 229 1: this is a single-planar instance. 231 230 2: this is a multi-planar instance. 232 231 ··· 974 975 0 otherwise. 975 976 976 977 The driver has to be configured to support the multiplanar formats. By default 977 - the first driver instance is single-planar, the second is multi-planar, and it 978 - keeps alternating. This can be changed by setting the multiplanar module option, 979 - see section 1 for more details on that option. 978 + the driver instances are single-planar. This can be changed by setting the 979 + multiplanar module option, see section 1 for more details on that option. 980 980 981 981 If the driver instance is using the multiplanar formats/API, then the first 982 982 single planar format (YUYV) and the multiplanar NV16M and NV61M formats the ··· 1019 1021 to see the blended framebuffer overlay that's being written to by the second 1020 1022 instance. This setup would require the following commands: 1021 1023 1022 - $ sudo modprobe vivid n_devs=2 node_types=0x10101,0x1 multiplanar=1,1 1024 + $ sudo modprobe vivid n_devs=2 node_types=0x10101,0x1 1023 1025 $ v4l2-ctl -d1 --find-fb 1024 1026 /dev/fb1 is the framebuffer associated with base address 0x12800000 1025 1027 $ sudo v4l2-ctl -d2 --set-fbuf fb=1
+6
drivers/media/dvb-core/dvb_frontend.c
··· 962 962 case SYS_ATSC: 963 963 c->modulation = VSB_8; 964 964 break; 965 + case SYS_ISDBS: 966 + c->symbol_rate = 28860000; 967 + c->rolloff = ROLLOFF_35; 968 + c->bandwidth_hz = c->symbol_rate / 100 * 135; 969 + break; 965 970 default: 966 971 c->modulation = QAM_AUTO; 967 972 break; ··· 2077 2072 break; 2078 2073 case SYS_DVBS: 2079 2074 case SYS_TURBO: 2075 + case SYS_ISDBS: 2080 2076 rolloff = 135; 2081 2077 break; 2082 2078 case SYS_DVBS2:
+7
drivers/media/dvb-frontends/ds3000.c
··· 864 864 memcpy(&state->frontend.ops, &ds3000_ops, 865 865 sizeof(struct dvb_frontend_ops)); 866 866 state->frontend.demodulator_priv = state; 867 + 868 + /* 869 + * Some devices like T480 starts with voltage on. Be sure 870 + * to turn voltage off during init, as this can otherwise 871 + * interfere with Unicable SCR systems. 872 + */ 873 + ds3000_set_voltage(&state->frontend, SEC_VOLTAGE_OFF); 867 874 return &state->frontend; 868 875 869 876 error3:
+2 -2
drivers/media/dvb-frontends/sp2.c
··· 266 266 return s->status; 267 267 } 268 268 269 - int sp2_init(struct sp2 *s) 269 + static int sp2_init(struct sp2 *s) 270 270 { 271 271 int ret = 0; 272 272 u8 buf; ··· 348 348 return ret; 349 349 } 350 350 351 - int sp2_exit(struct i2c_client *client) 351 + static int sp2_exit(struct i2c_client *client) 352 352 { 353 353 struct sp2 *s; 354 354
+8 -10
drivers/media/dvb-frontends/tc90522.c
··· 216 216 c->delivery_system = SYS_ISDBS; 217 217 218 218 layers = 0; 219 - ret = reg_read(state, 0xe8, val, 3); 219 + ret = reg_read(state, 0xe6, val, 5); 220 220 if (ret == 0) { 221 - int slots; 222 221 u8 v; 223 222 223 + c->stream_id = val[0] << 8 | val[1]; 224 + 224 225 /* high/single layer */ 225 - v = (val[0] & 0x70) >> 4; 226 + v = (val[2] & 0x70) >> 4; 226 227 c->modulation = (v == 7) ? PSK_8 : QPSK; 227 228 c->fec_inner = fec_conv_sat[v]; 228 229 c->layer[0].fec = c->fec_inner; 229 230 c->layer[0].modulation = c->modulation; 230 - c->layer[0].segment_count = val[1] & 0x3f; /* slots */ 231 + c->layer[0].segment_count = val[3] & 0x3f; /* slots */ 231 232 232 233 /* low layer */ 233 - v = (val[0] & 0x07); 234 + v = (val[2] & 0x07); 234 235 c->layer[1].fec = fec_conv_sat[v]; 235 236 if (v == 0) /* no low layer */ 236 237 c->layer[1].segment_count = 0; 237 238 else 238 - c->layer[1].segment_count = val[2] & 0x3f; /* slots */ 239 + c->layer[1].segment_count = val[4] & 0x3f; /* slots */ 239 240 /* actually, BPSK if v==1, but not defined in fe_modulation_t */ 240 241 c->layer[1].modulation = QPSK; 241 242 layers = (v > 0) ? 2 : 1; 242 - 243 - slots = c->layer[0].segment_count + c->layer[1].segment_count; 244 - c->symbol_rate = 28860000 * slots / 48; 245 243 } 246 244 247 245 /* statistics */ ··· 361 363 u8 v; 362 364 363 365 c->isdbt_partial_reception = val[0] & 0x01; 364 - c->isdbt_sb_mode = (val[0] & 0xc0) == 0x01; 366 + c->isdbt_sb_mode = (val[0] & 0xc0) == 0x40; 365 367 366 368 /* layer A */ 367 369 v = (val[2] & 0x78) >> 3;
+3 -8
drivers/media/platform/vivid/vivid-core.c
··· 100 100 "\t\t bit 0=crop, 1=compose, 2=scale,\n" 101 101 "\t\t -1=user-controlled (default)"); 102 102 103 - static unsigned multiplanar[VIVID_MAX_DEVS]; 103 + static unsigned multiplanar[VIVID_MAX_DEVS] = { [0 ... (VIVID_MAX_DEVS - 1)] = 1 }; 104 104 module_param_array(multiplanar, uint, NULL, 0444); 105 - MODULE_PARM_DESC(multiplanar, " 0 (default) is alternating single and multiplanar devices,\n" 106 - "\t\t 1 is single planar devices,\n" 107 - "\t\t 2 is multiplanar devices"); 105 + MODULE_PARM_DESC(multiplanar, " 1 (default) creates a single planar device, 2 creates a multiplanar device."); 108 106 109 107 /* Default: video + vbi-cap (raw and sliced) + radio rx + radio tx + sdr + vbi-out + vid-out */ 110 108 static unsigned node_types[VIVID_MAX_DEVS] = { [0 ... (VIVID_MAX_DEVS - 1)] = 0x1d3d }; ··· 667 669 /* start detecting feature set */ 668 670 669 671 /* do we use single- or multi-planar? */ 670 - if (multiplanar[inst] == 0) 671 - dev->multiplanar = inst & 1; 672 - else 673 - dev->multiplanar = multiplanar[inst] > 1; 672 + dev->multiplanar = multiplanar[inst] > 1; 674 673 v4l2_info(&dev->v4l2_dev, "using %splanar format API\n", 675 674 dev->multiplanar ? "multi" : "single "); 676 675
+2 -1
drivers/media/rc/imon.c
··· 1678 1678 if (press_type == 0) 1679 1679 rc_keyup(ictx->rdev); 1680 1680 else { 1681 - if (ictx->rc_type == RC_BIT_RC6_MCE) 1681 + if (ictx->rc_type == RC_BIT_RC6_MCE || 1682 + ictx->rc_type == RC_BIT_OTHER) 1682 1683 rc_keydown(ictx->rdev, 1683 1684 ictx->rc_type == RC_BIT_RC6_MCE ? RC_TYPE_RC6_MCE : RC_TYPE_OTHER, 1684 1685 ictx->rc_scancode, ictx->rc_toggle);
+1 -1
drivers/media/rc/ir-hix5hd2.c
··· 297 297 return 0; 298 298 } 299 299 300 - #ifdef CONFIG_PM 300 + #ifdef CONFIG_PM_SLEEP 301 301 static int hix5hd2_ir_suspend(struct device *dev) 302 302 { 303 303 struct hix5hd2_ir_priv *priv = dev_get_drvdata(dev);
+1 -1
drivers/media/rc/ir-rc5-decoder.c
··· 53 53 u32 scancode; 54 54 enum rc_type protocol; 55 55 56 - if (!(dev->enabled_protocols & (RC_BIT_RC5 | RC_BIT_RC5X))) 56 + if (!(dev->enabled_protocols & (RC_BIT_RC5 | RC_BIT_RC5X | RC_BIT_RC5_SZ))) 57 57 return 0; 58 58 59 59 if (!is_timing_event(ev)) {
-1
drivers/media/rc/rc-ir-raw.c
··· 262 262 return -ENOMEM; 263 263 264 264 dev->raw->dev = dev; 265 - dev->enabled_protocols = ~0; 266 265 dev->change_protocol = change_protocol; 267 266 rc = kfifo_alloc(&dev->raw->kfifo, 268 267 sizeof(struct ir_raw_event) * MAX_IR_EVENT_SIZE,
+2
drivers/media/rc/rc-main.c
··· 1421 1421 1422 1422 if (dev->change_protocol) { 1423 1423 u64 rc_type = (1 << rc_map->rc_type); 1424 + if (dev->driver_type == RC_DRIVER_IR_RAW) 1425 + rc_type |= RC_BIT_LIRC; 1424 1426 rc = dev->change_protocol(dev, &rc_type); 1425 1427 if (rc < 0) 1426 1428 goto out_raw;