提交 76b8ebdc 编写于 作者: L Linus Torvalds

Merge tag 'media/v4.4-3' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media

Pull media fixes from Mauro Carvalho Chehab.

* tag 'media/v4.4-3' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
  [media] airspy: increase USB control message buffer size
  [media] hackrf: move RF gain ctrl enable behind module parameter
  [media] hackrf: fix possible null ptr on debug printing
  [media] Revert "[media] ivtv: avoid going past input/audio array"
...@@ -805,11 +805,11 @@ static void ivtv_init_struct2(struct ivtv *itv) ...@@ -805,11 +805,11 @@ static void ivtv_init_struct2(struct ivtv *itv)
{ {
int i; int i;
for (i = 0; i < IVTV_CARD_MAX_VIDEO_INPUTS - 1; i++) for (i = 0; i < IVTV_CARD_MAX_VIDEO_INPUTS; i++)
if (itv->card->video_inputs[i].video_type == 0) if (itv->card->video_inputs[i].video_type == 0)
break; break;
itv->nof_inputs = i; itv->nof_inputs = i;
for (i = 0; i < IVTV_CARD_MAX_AUDIO_INPUTS - 1; i++) for (i = 0; i < IVTV_CARD_MAX_AUDIO_INPUTS; i++)
if (itv->card->audio_inputs[i].audio_type == 0) if (itv->card->audio_inputs[i].audio_type == 0)
break; break;
itv->nof_audio_inputs = i; itv->nof_audio_inputs = i;
......
...@@ -134,7 +134,7 @@ struct airspy { ...@@ -134,7 +134,7 @@ struct airspy {
int urbs_submitted; int urbs_submitted;
/* USB control message buffer */ /* USB control message buffer */
#define BUF_SIZE 24 #define BUF_SIZE 128
u8 buf[BUF_SIZE]; u8 buf[BUF_SIZE];
/* Current configuration */ /* Current configuration */
......
...@@ -24,6 +24,15 @@ ...@@ -24,6 +24,15 @@
#include <media/videobuf2-v4l2.h> #include <media/videobuf2-v4l2.h>
#include <media/videobuf2-vmalloc.h> #include <media/videobuf2-vmalloc.h>
/*
* Used Avago MGA-81563 RF amplifier could be destroyed pretty easily with too
* strong signal or transmitting to bad antenna.
* Set RF gain control to 'grabbed' state by default for sure.
*/
static bool hackrf_enable_rf_gain_ctrl;
module_param_named(enable_rf_gain_ctrl, hackrf_enable_rf_gain_ctrl, bool, 0644);
MODULE_PARM_DESC(enable_rf_gain_ctrl, "enable RX/TX RF amplifier control (warn: could damage amplifier)");
/* HackRF USB API commands (from HackRF Library) */ /* HackRF USB API commands (from HackRF Library) */
enum { enum {
CMD_SET_TRANSCEIVER_MODE = 0x01, CMD_SET_TRANSCEIVER_MODE = 0x01,
...@@ -1451,6 +1460,7 @@ static int hackrf_probe(struct usb_interface *intf, ...@@ -1451,6 +1460,7 @@ static int hackrf_probe(struct usb_interface *intf,
dev_err(dev->dev, "Could not initialize controls\n"); dev_err(dev->dev, "Could not initialize controls\n");
goto err_v4l2_ctrl_handler_free_rx; goto err_v4l2_ctrl_handler_free_rx;
} }
v4l2_ctrl_grab(dev->rx_rf_gain, !hackrf_enable_rf_gain_ctrl);
v4l2_ctrl_handler_setup(&dev->rx_ctrl_handler); v4l2_ctrl_handler_setup(&dev->rx_ctrl_handler);
/* Register controls for transmitter */ /* Register controls for transmitter */
...@@ -1471,6 +1481,7 @@ static int hackrf_probe(struct usb_interface *intf, ...@@ -1471,6 +1481,7 @@ static int hackrf_probe(struct usb_interface *intf,
dev_err(dev->dev, "Could not initialize controls\n"); dev_err(dev->dev, "Could not initialize controls\n");
goto err_v4l2_ctrl_handler_free_tx; goto err_v4l2_ctrl_handler_free_tx;
} }
v4l2_ctrl_grab(dev->tx_rf_gain, !hackrf_enable_rf_gain_ctrl);
v4l2_ctrl_handler_setup(&dev->tx_ctrl_handler); v4l2_ctrl_handler_setup(&dev->tx_ctrl_handler);
/* Register the v4l2_device structure */ /* Register the v4l2_device structure */
...@@ -1530,7 +1541,7 @@ static int hackrf_probe(struct usb_interface *intf, ...@@ -1530,7 +1541,7 @@ static int hackrf_probe(struct usb_interface *intf,
err_kfree: err_kfree:
kfree(dev); kfree(dev);
err: err:
dev_dbg(dev->dev, "failed=%d\n", ret); dev_dbg(&intf->dev, "failed=%d\n", ret);
return ret; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册