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
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
On Tue, 7 Aug 2012, Frédéric LECAILLE wrote:
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:
Your patch looks fine. The problem is most likely that in all bands carriers 0-9 use the same frequency, so I'm guessting that US-DECT uses different carrier numbers. I wasn't able to find anything related to that in the base specification. If you can find a document defining the exact operation of US-DECT, I can modify the stack in order to properly support it.
On Wed, 8 Aug 2012, Patrick McHardy wrote:
On Tue, 7 Aug 2012, Fr�d�ric LECAILLE wrote:
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:
Your patch looks fine. The problem is most likely that in all bands carriers 0-9 use the same frequency, so I'm guessting that US-DECT uses different carrier numbers. I wasn't able to find anything related to that in the base specification. If you can find a document defining the exact operation of US-DECT, I can modify the stack in order to properly support it.
Found it, its TS 102 497. I've implemented what I think is necessary to work with US-DECT in the 1920-1930 MHz band. The other bands are not supported by the Com-on-Air transceivers. Please back out your band-setting changes and try the attached patch.
I've enabled debugging output in the patch. Please send me the resulting log, whether it works or not, I can't test this myself. Thanks.