Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Re: alps_tdlb7 broken in current dvb-kernel
Hi,
On Friday 24 September 2004 16:53, Juri Haberland wrote:
> Hi,
>
> I'm resending this, because I didn't get any answer from a developer.
>
> In current dvb-kernel the alps_tdlb7 doesn't work anymore. It loads
> without a problem, but tuning fails:
>
> # /usr/src/DVB/apps/szap/tzap -a0 -r K44
> using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
> tuning to 658000000 Hz
> video pid 0x0181, audio pid 0x0182
> status 00 | signal 0000 | snr b7fd | ber 00000000 | unc 00000000 |
> status 16 | signal 0000 | snr b7fd | ber 00000000 | unc 00000000 |
> FE_HAS_LOCK
> status 00 | signal 0000 | snr b7fd | ber 00000000 | unc 00000000 |
> status 16 | signal 0000 | snr b7fd | ber 00000000 | unc 00000000 |
> FE_HAS_LOCK
> status 00 | signal 0000 | snr b7fd | ber 00000000 | unc 00000000 |
>
> It seems that the transition to kernel-i2c is responsible for this
> problem - I even found a corresponding entry from Michael Hunold in the
>
> cvs commit log:
> > - convert to kernel i2c
> > - firmware upload works, but access to the sp5659 tuner module fails
> > (so no tuning) (maybe my card is broken... 8-(
>
> Can any of the developers look into this?
>
> Thanks,
> Juri
The patch below should make it work. Maybe someone can commit it also to cvs.
Greetings
Juergen
--------------------------------------------------------------------------------------
--- alps_tdlb7.c_org 2004-09-26 14:00:55.000000000 +0200
+++ alps_tdlb7.c 2004-09-26 14:25:06.000000000 +0200
@@ -24,7 +24,7 @@
* "<kerneldir>/Documentation/dvb/get_dvb_firmware alps_tdlb7" to
* download/extract it, and then copy it to /usr/lib/hotplug/firmware.
*/
-#define SP887X_DEFAULT_FIRMWARE "dvb-fe-tdlb7-2.16.fw"
+#define SP8870_DEFAULT_FIRMWARE "dvb-fe-tdlb7.fw"
#include <linux/init.h>
#include <linux/module.h>
@@ -51,7 +51,7 @@
/* firmware size for sp8870 */
#define SP8870_FIRMWARE_SIZE 16382
-/* starting point for firmware in file 'Sc_main.mc' */
+/* starting point for firmware in file */
#define SP8870_FIRMWARE_OFFSET 0x0A
static struct dvb_frontend_info tdlb7_info = {
@@ -186,8 +186,6 @@
}
fw_pos += tx_len;
}
-
- dprintk ("%s: done!\n", __FUNCTION__);
return 0;
};
@@ -581,18 +579,14 @@
case FE_INIT:
sp8870_wake_up(i2c);
- if (fe->data == NULL) { // first time initialisation...
- fe->data = (void*) ~0;
- sp8870_init (i2c);
- }
break;
case FE_GET_TUNE_SETTINGS:
{
struct dvb_frontend_tune_settings* fesettings = (struct
dvb_frontend_tune_settings*) arg;
- fesettings->min_delay_ms = 150;
- fesettings->step_size = 166667;
- fesettings->max_drift = 166667*2;
+ fesettings->min_delay_ms = 350;
+ fesettings->step_size = 0; //166667;
+ fesettings->max_drift = 0; //166667*2;
return 0;
}
@@ -648,23 +642,27 @@
/* request the firmware, this will block until someone uploads it */
printk("tdlb7: waiting for firmware upload...\n");
- ret = request_firmware(&fw, SP887X_DEFAULT_FIRMWARE, &client->dev);
+ ret = request_firmware(&fw, SP8870_DEFAULT_FIRMWARE, &client->dev);
if (ret) {
printk("tdlb7: no firmware upload (timeout or file not found?)\n");
goto out;
}
+ printk ("tdlb7: firmware upload...\n");
ret = sp8870_firmware_upload(adapter, fw);
if (ret) {
printk("tdlb7: writing firmware to device failed\n");
release_firmware(fw);
goto out;
}
+ printk("tdlb7: firmware upload done\n");
+ sp8870_init (adapter);
+
ret = dvb_register_frontend(tdlb7_ioctl, state->dvb, state,
&tdlb7_info, THIS_MODULE);
if (ret) {
- printk("tdlb7: registering frontend to dvb-core failed.\n");
+ printk("tdlb7: registering frontend to dvb-core failed\n");
release_firmware(fw);
goto out;
}
Home |
Main Index |
Thread Index