This reverts commit 1724003737.
For some reason the "obviously broken" code is working, but the fixed
version is not. Let's go back to step 1 and analyze this in more
detail, but meanwhile make the code work again.
Some header files are auto-generated and are thus in the build
directory, not in the source directory. A cleaner way to handle this is
most likely to install libosmocore to some directory, but I don't want
to change the entire build process now.
Somebody (me?) wrote exclamation marks instead of pipe symbols.
Found by a modern gcc:
rf/trf6151.c: In function 'trf6151_set_arfcn':
rf/trf6151.c:439:8: warning: comparison is always true due to limited
range of data type [-Wtype-limits]
arfcn != ~ARFCN_UPLINK;
^
rf/trf6151.c:439:2: warning: statement with no effect [-Wunused-value]
arfcn != ~ARFCN_UPLINK;
^
It seems modern version of newlib define those themselves, so we should
avoid re-defining them. Removes tons of compiler warnings when
compiling against libnewlib 2.4.0
With GCC 4.9.3 the timing was broken and initializing
the SPCA552 on the Pirelli DP-L10 did not work.
Add a small delay which fixes that.
Signed-off-by: Steve Markgraf <steve@steve-m.de>
"multiframe", the frame layout (used to compute neighbor
cell monitoring pattern) was uninitialized in TCH/H case.
This, in combination with gcc optimizing the
"switch(multiframe)"-statement into a LUT without bounds-
checking (since using an uninitialized value is undefined
behavior) caused neigh_task to be filled with an out-of-
bounds value, eventually crashing the TDMA scheduler.
Written-by: Felix Domke <tmbinc@elitedvb.net>
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Starting with version 4.8, gcc places functions
with __attribute__ ((constructor)) in .init_array
instead of .ctors by default.
This broke firmware images built with gcc >= 4.8.
Signed-off-by: Steve Markgraf <steve@steve-m.de>
Since we now initialize the display for all apps, it
otherwise just shows the last content of the display
ram, which is weird.
Signed-off-by: Steve Markgraf <steve@steve-m.de>
So far the loader-app used to do the init on its
own, which brought a lot of problems for board-
specific initialization.
Signed-off-by: Steve Markgraf <steve@steve-m.de>
Operation in GSM850 band requires IQ swap because of the offset PLL
used in the TRF causing spectrum reversal.
Thanks to Dieter Spaar for noticing the issue and the original patch
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
As Dieter points out, this drastically improves the resiliance to high
receive levels on the C155. We cannot blindly assume a received signal
level of -85 dBm if the BTS is 2m away and we actually receive -40 dBm.
This patch extends the L1CTL_FBSB_REQ data structure in layer 1 with the
respective field, as well as the l1ctl_tx_fbsb_req() API function called
from the various layer23 apps.
"mobile" and "bcch_scan" already did a PM request and thus know the
expected signal power. "ccch_scan" and "cbch_sniff" apparently don't
do, so the -85 dBm constant is now hardcoded into the host-side source
code there, and should probably be fixed in a follow-up patch.
This commit adds a combined driver for the Sunplus SPCA-552E
Multimedia Controller and the Samsung S6B33B1X LCD controller.
I have to thank Stephan Meier, who helped me to reverse-engineer
this beast during 28c3.
Signed-off-by: Steve Markgraf <steve@steve-m.de>
When synced, press the green button to request channel from cell.
The result, timing advance, distance and response delay is printed
on the display. It only works, if TX is enabled and SI 3 has been
received.
By pressing the green button, the sync mode is entered. The screen
show some informations about the cell. The beep indicates, if the
received BCCH was valid or not.
By pressing the Down button, the list of channels of the serving cell
and neighbour cells can be viewed and scrolled through.
By pressing the Up button, the levels (downlink or uplink) of the serving
cell can be viewed. Also it is possible to select one of the serving
cell's frequencies by pressing the Left/Right button.