Note that when I transceivers to cell, the rf bands displayed are always 0:
dect-transceiver-bind --transceiver trx0 --cell cell0
Bound: DECT Transceiver trx0@cell0:
RF-band: 00000
Events: busy: 0 late: 0
On Aug 7, 2012, at 10:57 PM, Frédéric LECAILLE wrote:
Hello,
I am trying to use a dosh&amand PCI card… this one:
01:03.0 Communication controller: Quicklogic Corporation COM-ON-AIR Dosch&Amand DECT
(rev 32)
Subsystem: Device 1786:0001
Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+
FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 20
Region 0: Memory at ddefe000 (32-bit, non-prefetchable) [size=8K]
Kernel driver in use: com_on_air_pci
with the dect kernel stack…
I have managed to compile the kernel 3.2.0 with this config:
CONFIG_DECT=m
CONFIG_DECT_DEBUG=y
CONFIG_DECT_CSF=m
CONFIG_DECT_RAW=m
CONFIG_DECT_CCF=m
CONFIG_DECT_LU1_SAP=m
CONFIG_DECTDEVICES=y
CONFIG_DECT_VTRX=m
CONFIG_DECT_COA_PCI=m
CONFIG_DECT_COA=m
CONFIG_DECT_COA_U2785=y
CONFIG_DECT_COA_FIRMWARE=y
CONFIG_DECT_COA_P64=y
The driver seems to work but the issue is that I am trying to use it in USA for an
American client, and I did not managed to make this card use the 1.9Mhz band (rf band 3 I
guess).
When I run this command:
dect-transceiver-list --name trx2 I see that slot0 is scanning:
DECT Transceiver trx2@cell0:
Type: sc1442x
Features: slow-hopping,p64
RF-band: 00003
Events: busy: 0 late: 0
slot 0: <scanning> packet: P00 carrier: 5 (1888.704 MHz)
RX: bytes 0 packets 0 a-crc-errors 1629 x-crc-errors 0 z-crc-errors 0
but it nevers uses RF band 3 channel.
For you information I have patch the driver this way to set the default debt rf band to
3:
[root@localhost linux-2.6]# git diff
diff --git a/drivers/dect/coa/sc1442x.c b/drivers/dect/coa/sc1442x.c
index 73b9869..89b0a55 100644
--- a/drivers/dect/coa/sc1442x.c
+++ b/drivers/dect/coa/sc1442x.c
@@ -698,6 +698,7 @@ static u64 sc1442x_set_band(const struct dect_transceiver *t
{
struct coa_device *dev = dect_transceiver_priv(trx);
+printk("setting band %d\n", band->band);
return dev->radio_ops->map_band(dev, band);
}
diff --git a/net/dect/transceiver.c b/net/dect/transceiver.c
index 706899d..25278af 100644
--- a/net/dect/transceiver.c
+++ b/net/dect/transceiver.c
@@ -19,6 +19,8 @@
#include <net/dect/mac_csf.h>
#include <net/dect/transceiver.h>
+static int rf_band = 3;
+module_param(rf_band, int, 0);
static LIST_HEAD(dect_transceiver_list);
static int dect_transceiver_notify(struct dect_transceiver *trx,
unsigned long event);
@@ -651,7 +653,7 @@ int dect_register_transceiver(struct dect_transceiver *trx)
if (err < 0)
goto out;
- err = dect_transceiver_set_band(trx, DECT_DEFAULT_BAND);
+ err = dect_transceiver_set_band(trx, rf_band);
if (err < 0)
goto out;
Thank you in advance for any help.
Fred