From 0b042c1fc356eff8a2eba27ddea200f17b3f0196 Mon Sep 17 00:00:00 2001 From: Ralph Metzler Date: Thu, 17 Jan 2019 19:08:07 +0100 Subject: [PATCH 1/5] add new SDR card id --- ddbridge/ddbridge-hw.c | 1 + ddbridge/ddbridge-main.c | 1 + 2 files changed, 2 insertions(+) diff --git a/ddbridge/ddbridge-hw.c b/ddbridge/ddbridge-hw.c index 64a0dbe..6e5f843 100644 --- a/ddbridge/ddbridge-hw.c +++ b/ddbridge/ddbridge-hw.c @@ -789,6 +789,7 @@ static const struct ddb_device_id ddb_device_ids[] = { DDB_DEVID(0x0210, 0x0003, ddb_mod_fsm_8), DDB_DEVID(0x0220, 0x0001, ddb_sdr_atv), DDB_DEVID(0x0221, 0x0001, ddb_sdr_iq), + DDB_DEVID(0x0222, 0x0001, ddb_sdr_iq), /* testing on OctopusNet Pro */ DDB_DEVID(0x0320, 0xffff, ddb_octopro_hdin), diff --git a/ddbridge/ddbridge-main.c b/ddbridge/ddbridge-main.c index f5c2a57..50d3325 100644 --- a/ddbridge/ddbridge-main.c +++ b/ddbridge/ddbridge-main.c @@ -425,6 +425,7 @@ static const struct pci_device_id ddb_id_table[] __devinitconst = { DDB_DEVICE_ANY(0x0210), DDB_DEVICE_ANY(0x0220), DDB_DEVICE_ANY(0x0221), + DDB_DEVICE_ANY(0x0222), DDB_DEVICE_ANY(0x0320), DDB_DEVICE_ANY(0x0321), DDB_DEVICE_ANY(0x0322), From 1672bdfcb862457840f3cf08add3a9393699c8d2 Mon Sep 17 00:00:00 2001 From: Ralph Metzler Date: Thu, 17 Jan 2019 19:10:10 +0100 Subject: [PATCH 2/5] add missing struct element --- ddbridge/ddbridge-mci.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ddbridge/ddbridge-mci.h b/ddbridge/ddbridge-mci.h index 0dcd5d1..8e56cb7 100644 --- a/ddbridge/ddbridge-mci.h +++ b/ddbridge/ddbridge-mci.h @@ -444,7 +444,7 @@ struct mci_result { s16 signal_to_noise; // SNR in dB x 100, Note: negativ values are valid in DVB-S2 s16 rsvd2; u32 packet_errors; // Counter for packet errors. (set to 0 on Start command) - + u32 ber_numerator; // Bit error rate: PreRS Segment A u32 ber_denominator; u32 ber_rsvd1; // Place holder for modulation bit error rate u32 ber_rsvd2; From e554de313806f62e17238f66c04bceec4ee27a43 Mon Sep 17 00:00:00 2001 From: Ralph Metzler Date: Thu, 17 Jan 2019 19:11:45 +0100 Subject: [PATCH 3/5] add bandwidth parameter --- lib/ddzap.c | 15 +++++++++++++-- lib/src/libdddvb.h | 4 ++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/ddzap.c b/lib/ddzap.c index 346f835..58b85f3 100644 --- a/lib/ddzap.c +++ b/lib/ddzap.c @@ -23,7 +23,7 @@ int main(int argc, char **argv) struct dddvb *dd; struct dddvb_fe *fe; struct dddvb_params p; - uint32_t frequency = 0, symbol_rate = 0, pol = DDDVB_UNDEF; + uint32_t bandwidth = 8000000, frequency = 0, symbol_rate = 0, pol = DDDVB_UNDEF; uint32_t id = DDDVB_UNDEF, pls = DDDVB_UNDEF, num = DDDVB_UNDEF; enum fe_code_rate fec = FEC_AUTO; enum fe_delivery_system delsys = ~0; @@ -36,6 +36,7 @@ int main(int argc, char **argv) static struct option long_options[] = { {"config", required_argument, 0, 'c'}, {"frequency", required_argument, 0, 'f'}, + {"bandwidth", required_argument, 0, 'b'}, {"symbolrate", required_argument, 0, 's'}, {"delsys", required_argument, 0, 'd'}, {"id", required_argument, 0, 'i'}, @@ -46,7 +47,7 @@ int main(int argc, char **argv) {0, 0, 0, 0} }; c = getopt_long(argc, argv, - "c:i:f:s:d:p:hg:r:n:", + "c:i:f:s:d:p:hg:r:n:b:", long_options, &option_index); if (c==-1) break; @@ -58,6 +59,9 @@ int main(int argc, char **argv) case 'f': frequency = strtoul(optarg, NULL, 0); break; + case 'b': + bandwidth = strtoul(optarg, NULL, 0); + break; case 's': symbol_rate = strtoul(optarg, NULL, 0); break; @@ -84,6 +88,12 @@ int main(int argc, char **argv) delsys = SYS_DVBT; if (!strcmp(optarg, "T2")) delsys = SYS_DVBT2; + if (!strcmp(optarg, "J83B")) + delsys = SYS_DVBC_ANNEX_B; + if (!strcmp(optarg, "ISDBC")) + delsys = SYS_ISDBC; + if (!strcmp(optarg, "ISDBT")) + delsys = SYS_ISDBT; break; case 'p': if (!strcmp(optarg, "h")) @@ -131,6 +141,7 @@ int main(int argc, char **argv) } dddvb_param_init(&p); dddvb_set_frequency(&p, frequency); + dddvb_set_bandwidth(&p, bandwidth); dddvb_set_symbol_rate(&p, symbol_rate); dddvb_set_polarization(&p, pol); dddvb_set_delsys(&p, delsys); diff --git a/lib/src/libdddvb.h b/lib/src/libdddvb.h index 9203734..dd9e4c4 100644 --- a/lib/src/libdddvb.h +++ b/lib/src/libdddvb.h @@ -65,6 +65,10 @@ static inline void dddvb_set_frequency(struct dddvb_params *p, uint32_t freq) { p->param[PARAM_FREQ] = freq; }; +static inline void dddvb_set_bandwidth(struct dddvb_params *p, uint32_t bandw) { + p->param[PARAM_BW_HZ] = bandw; +}; + static inline void dddvb_set_symbol_rate(struct dddvb_params *p, uint32_t srate) { p->param[PARAM_SR] = srate; }; From e73ae1a4c64f8cfda9fadcabfeb3325e1f87df9b Mon Sep 17 00:00:00 2001 From: Ralph Metzler Date: Fri, 18 Jan 2019 13:09:17 +0100 Subject: [PATCH 4/5] set base frequency initialize mod pointers --- ddbridge/ddbridge-modulator.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ddbridge/ddbridge-modulator.c b/ddbridge/ddbridge-modulator.c index 8d94395..4106cf8 100644 --- a/ddbridge/ddbridge-modulator.c +++ b/ddbridge/ddbridge-modulator.c @@ -1445,7 +1445,8 @@ static void mod3_set_cfcw(struct ddb_mod *mod, u32 f) tmp = ((s64) (freq - dcf)) << 32; tmp = div64_s64(tmp, srdac); cfcw = (u32) tmp; - dev_info(dev->dev, "f=%u cfcw = %08x nr = %u\n", f, cfcw, mod->port->nr); + dev_info(dev->dev, "f=%u cfcw = %08x dcf = %08x, nr = %u\n", + f, cfcw, dcf, mod->port->nr); ddbwritel(dev, cfcw, SDR_CHANNEL_CFCW(mod->port->nr)); } @@ -1870,9 +1871,11 @@ static int mod_init_sdr_iq(struct ddb *dev) ddbwritel(dev, 0x01, 0x240); //mod3_set_base_frequency(dev, 602000000); + dev->mod_base.frequency = 570000000; for (i = 0; i < streams; i++) { struct ddb_mod *mod = &dev->mod[i]; + mod->port = &dev->port[i]; ddbwritel(dev, 0x00, SDR_CHANNEL_CONTROL(i)); } From 6e39d83c7b6b2e39e0eef9d8b8ccf8c502ba8ce0 Mon Sep 17 00:00:00 2001 From: Ralph Metzler Date: Fri, 18 Jan 2019 13:10:13 +0100 Subject: [PATCH 5/5] new version --- ddbridge/ddbridge.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ddbridge/ddbridge.h b/ddbridge/ddbridge.h index a5e8dc9..2a2fc81 100644 --- a/ddbridge/ddbridge.h +++ b/ddbridge/ddbridge.h @@ -524,7 +524,7 @@ struct DDMOD_FLASH { int ddbridge_flashread(struct ddb *dev, u32 link, u8 *buf, u32 addr, u32 len); -#define DDBRIDGE_VERSION "0.9.36" +#define DDBRIDGE_VERSION "0.9.37" /* linked function prototypes */