Hi Marcus, I have been taking a look at the pi433 driver these last days, and started working on the remaining TODOs. I just stumbled across the following one (drivers/staging/pi433/rf69.c): 245 // TODO: Dependency to bitrate 246 if (deviation < 600 || deviation > 500000) { 247 dev_dbg(&spi->dev, "set_deviation: illegal input param"); 248 return -EINVAL; 249 } According to the datasheet[0], the deviation should always be smaller than 300kHz, and the following equation should be respected: (1) FDA + BRF/2 =< 500 kHz Why did you choose 500kHz as max for FDA, instead of 300kHz ? It looks like a bug to me. Concerning the TODO, I can see two solutions currently: 1. Introduce a new rf69_get_bit_rate function which reads REG_BITRATE_MSB and REG_BITRATE_LSB and returns reconstructed BRF. We could use this function in rf69_set_deviation to retrieve the BRF. + clean + intuitive - heavy / slow 2. Store BRF somewhere in rf69.c, initialize it with the default value (4.8 kb/s) and update it when rf69_set_bit_rate is called. + easy - dirty, doesn't fit well with the design of rf69.c (do not store anything, simply expose API) I'd really prefer going for the first one, but I wanted to have your opinion on this. Thanks for your work ! Best regards, Hugo [0] http://www.hoperf.com/upload/rf/RFM69CW-V1.1.pdf [CC-ing Valentin Vidic, he was quite active on the pi433 driver these last months] -- Hugo Lefeuvre (hle) | www.owl.eu.com 4096/ 9C4F C8BF A4B0 8FC5 48EB 56B8 1962 765B B9A8 BACA
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel