diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-05-15 07:39:25 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-05-15 07:39:25 -0400 |
commit | 69ecdbac144147a80747914d9b6ea3472e2d93e7 (patch) | |
tree | e1bb68c3568f370cd6a7d2ae29a051bee244ce0f /drivers/media/dvb | |
parent | b7dc4cd17506284a47eeb9160207e43c7d5486fe (diff) | |
parent | b6255ee3d82798eb1eee9fb1cca713317b5afae8 (diff) |
Merge remote-tracking branch 'linus/master' into staging/for_v3.5
* linus/master: (805 commits)
tty: Fix LED error return
openvswitch: checking wrong variable in queue_userspace_packet()
bonding: Fix LACPDU rx_dropped commit.
Linux 3.4-rc7
ARM: EXYNOS: fix ctrlbit for exynos5_clk_pdma1
ARM: EXYNOS: use s5p-timer for UniversalC210 board
ARM / mach-shmobile: Invalidate caches when booting secondary cores
ARM / mach-shmobile: sh73a0 SMP TWD boot regression fix
ARM / mach-shmobile: r8a7779 SMP TWD boot regression fix
ARM: mach-shmobile: convert ag5evm to use the generic MMC GPIO hotplug helper
ARM: mach-shmobile: convert mackerel to use the generic MMC GPIO hotplug helper
MAINTAINERS: Add myself as the cpufreq maintainer
dm mpath: check if scsi_dh module already loaded before trying to load
dm thin: correct module description
dm thin: fix unprotected use of prepared_discards list
dm thin: reinstate missing mempool_free in cell_release_singleton
gpio/exynos: Fix compiler warnings when non-exynos machines are selected
gpio: pch9: Use proper flow type handlers
powerpc/irq: Fix another case of lazy IRQ state getting out of sync
ks8851: Update link status during link change interrupt
...
Conflicts:
drivers/media/common/tuners/xc5000.c
drivers/media/common/tuners/xc5000.h
drivers/usb/gadget/uvc_queue.c
Diffstat (limited to 'drivers/media/dvb')
-rw-r--r-- | drivers/media/dvb/dvb-core/dvb_frontend.c | 29 | ||||
-rw-r--r-- | drivers/media/dvb/frontends/drxk_hard.c | 6 |
2 files changed, 32 insertions, 3 deletions
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c index 39696c6a4ed7..cb888d835a89 100644 --- a/drivers/media/dvb/dvb-core/dvb_frontend.c +++ b/drivers/media/dvb/dvb-core/dvb_frontend.c | |||
@@ -1446,6 +1446,28 @@ static int set_delivery_system(struct dvb_frontend *fe, u32 desired_system) | |||
1446 | __func__); | 1446 | __func__); |
1447 | return -EINVAL; | 1447 | return -EINVAL; |
1448 | } | 1448 | } |
1449 | /* | ||
1450 | * Get a delivery system that is compatible with DVBv3 | ||
1451 | * NOTE: in order for this to work with softwares like Kaffeine that | ||
1452 | * uses a DVBv5 call for DVB-S2 and a DVBv3 call to go back to | ||
1453 | * DVB-S, drivers that support both should put the SYS_DVBS entry | ||
1454 | * before the SYS_DVBS2, otherwise it won't switch back to DVB-S. | ||
1455 | * The real fix is that userspace applications should not use DVBv3 | ||
1456 | * and not trust on calling FE_SET_FRONTEND to switch the delivery | ||
1457 | * system. | ||
1458 | */ | ||
1459 | ncaps = 0; | ||
1460 | while (fe->ops.delsys[ncaps] && ncaps < MAX_DELSYS) { | ||
1461 | if (fe->ops.delsys[ncaps] == desired_system) { | ||
1462 | delsys = desired_system; | ||
1463 | break; | ||
1464 | } | ||
1465 | ncaps++; | ||
1466 | } | ||
1467 | if (delsys == SYS_UNDEFINED) { | ||
1468 | dprintk("%s() Couldn't find a delivery system that matches %d\n", | ||
1469 | __func__, desired_system); | ||
1470 | } | ||
1449 | } else { | 1471 | } else { |
1450 | /* | 1472 | /* |
1451 | * This is a DVBv5 call. So, it likely knows the supported | 1473 | * This is a DVBv5 call. So, it likely knows the supported |
@@ -1494,9 +1516,10 @@ static int set_delivery_system(struct dvb_frontend *fe, u32 desired_system) | |||
1494 | __func__); | 1516 | __func__); |
1495 | return -EINVAL; | 1517 | return -EINVAL; |
1496 | } | 1518 | } |
1497 | c->delivery_system = delsys; | ||
1498 | } | 1519 | } |
1499 | 1520 | ||
1521 | c->delivery_system = delsys; | ||
1522 | |||
1500 | /* | 1523 | /* |
1501 | * The DVBv3 or DVBv5 call is requesting a different system. So, | 1524 | * The DVBv3 or DVBv5 call is requesting a different system. So, |
1502 | * emulation is needed. | 1525 | * emulation is needed. |
@@ -1898,6 +1921,10 @@ static int dtv_set_frontend(struct dvb_frontend *fe) | |||
1898 | } else { | 1921 | } else { |
1899 | /* default values */ | 1922 | /* default values */ |
1900 | switch (c->delivery_system) { | 1923 | switch (c->delivery_system) { |
1924 | case SYS_DVBS: | ||
1925 | case SYS_DVBS2: | ||
1926 | case SYS_ISDBS: | ||
1927 | case SYS_TURBO: | ||
1901 | case SYS_DVBC_ANNEX_A: | 1928 | case SYS_DVBC_ANNEX_A: |
1902 | case SYS_DVBC_ANNEX_C: | 1929 | case SYS_DVBC_ANNEX_C: |
1903 | fepriv->min_delay = HZ / 20; | 1930 | fepriv->min_delay = HZ / 20; |
diff --git a/drivers/media/dvb/frontends/drxk_hard.c b/drivers/media/dvb/frontends/drxk_hard.c index 88bd1c888ca8..8d99ac1598ae 100644 --- a/drivers/media/dvb/frontends/drxk_hard.c +++ b/drivers/media/dvb/frontends/drxk_hard.c | |||
@@ -1526,8 +1526,10 @@ static int scu_command(struct drxk_state *state, | |||
1526 | dprintk(1, "\n"); | 1526 | dprintk(1, "\n"); |
1527 | 1527 | ||
1528 | if ((cmd == 0) || ((parameterLen > 0) && (parameter == NULL)) || | 1528 | if ((cmd == 0) || ((parameterLen > 0) && (parameter == NULL)) || |
1529 | ((resultLen > 0) && (result == NULL))) | 1529 | ((resultLen > 0) && (result == NULL))) { |
1530 | goto error; | 1530 | printk(KERN_ERR "drxk: Error %d on %s\n", status, __func__); |
1531 | return status; | ||
1532 | } | ||
1531 | 1533 | ||
1532 | mutex_lock(&state->mutex); | 1534 | mutex_lock(&state->mutex); |
1533 | 1535 | ||