Re: Keene

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 04/15/2013 09:55 AM, Hans Verkuil wrote:
On Fri April 12 2013 02:11:41 Antti Palosaari wrote:
Hello Hans,
That device is working very, thank you for it. Anyhow, I noticed two things.

1) it does not start transmitting just after I plug it - I have to
retune it!
Output says it is tuned to 95.160000 MHz by default, but it is not.
After I issue retune, just to same channel it starts working.
$ v4l2-ctl -d /dev/radio0 --set-freq=95.16

Can you try this patch:


It does not resolve the problem. It is quite strange behavior. After I install modules, and modules are unload, plug stick in first time, it usually (not every-time) starts TX. But when I replug it without unloading modules, it will never start TX. Tx is started always when I set freq using v4l2-ctl.

Possible timing issue?


Is there some flag API flag to tell start / stop device? For my mind correct behavior is to stop TX and sleep when device is plugged/module load. Something like set freq 0 when device is not active to tell user it is not sending/receiving and must be tuned in order to operate.


regards
Antti






diff --git a/drivers/media/radio/radio-keene.c b/drivers/media/radio/radio-keene.c
index 4c9ae76..99da3d4 100644
--- a/drivers/media/radio/radio-keene.c
+++ b/drivers/media/radio/radio-keene.c
@@ -93,7 +93,7 @@ static int keene_cmd_main(struct keene_device *radio, unsigned freq, bool play)
  	/* If bit 4 is set, then tune to the frequency.
  	   If bit 3 is set, then unmute; if bit 2 is set, then mute.
  	   If bit 1 is set, then enter idle mode; if bit 0 is set,
-	   then enter transit mode.
+	   then enter transmit mode.
  	 */
  	radio->buffer[5] = (radio->muted ? 4 : 8) | (play ? 1 : 2) |
  							(freq ? 0x10 : 0);
@@ -350,7 +350,6 @@ static int usb_keene_probe(struct usb_interface *intf,
  	radio->pa = 118;
  	radio->tx = 0x32;
  	radio->stereo = true;
-	radio->curfreq = 95.16 * FREQ_MUL;
  	if (hdl->error) {
  		retval = hdl->error;

@@ -383,6 +382,8 @@ static int usb_keene_probe(struct usb_interface *intf,
  	video_set_drvdata(&radio->vdev, radio);
  	set_bit(V4L2_FL_USE_FH_PRIO, &radio->vdev.flags);

+	keene_cmd_main(radio, 95.16 * FREQ_MUL, false);
+
  	retval = video_register_device(&radio->vdev, VFL_TYPE_RADIO, -1);
  	if (retval < 0) {
  		dev_err(&intf->dev, "could not register video device\n");


2) What is that log printing?
ALSA sound/usb/mixer.c:932 13:0: cannot get min/max values for control 2
(id 13)


usb 5-2: new full-speed USB device number 3 using ohci_hcd
usb 5-2: New USB device found, idVendor=046d, idProduct=0a0e
usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 5-2: Product: B-LINK USB Audio
usb 5-2: Manufacturer: HOLTEK
ALSA sound/usb/mixer.c:932 13:0: cannot get min/max values for control 2
(id 13)
radio-keene 5-2:1.2: V4L2 device registered as radio0

No idea, and I don't get that message either.

Regards,

	Hans



$ v4l2-ctl -d /dev/radio0 --all -L
Driver Info (not using libv4l2):
	Driver name   : radio-keene
	Card type     : Keene FM Transmitter
	Bus info      : usb-0000:00:13.0-2
	Driver version: 3.9.0
	Capabilities  : 0x800C0000
		Modulator
		Radio
Frequency: 1522560 (95.160000 MHz)
Modulator:
	Name                 : FM
	Capabilities         : 62.5 Hz stereo
	Frequency range      : 76.0 MHz - 108.0 MHz
	Subchannel modulation: stereo
Priority: 2

User Controls

                             mute (bool)   : default=0 value=0

FM Radio Modulator Controls

           audio_compression_gain (int)    : min=-15 max=18 step=3
default=0 value=0 flags=slider
                     pre_emphasis (menu)   : min=0 max=2 default=1 value=1
				1: 50 Microseconds
				2: 75 Microseconds
                 tune_power_level (int)    : min=84 max=118 step=1
default=118 value=118 flags=slider


regards
Antti




--
http://palosaari.fi/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux