aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2011-03-10 14:08:51 -0800
committerJosh Blum <josh@joshknows.com>2011-03-10 14:08:51 -0800
commit552caa6980c3fce4baee9d6b899e07482e8ce556 (patch)
tree39bdcb967df43e4ae5b20deca44fd730e9cbafd2
parent11e9d7e8fcb649d978a4a5cad8e2b0aa77e4a508 (diff)
parent7d140b0237b3fa4e07b364e912887f68c02839cb (diff)
downloaduhd-552caa6980c3fce4baee9d6b899e07482e8ce556.tar.gz
uhd-552caa6980c3fce4baee9d6b899e07482e8ce556.tar.bz2
uhd-552caa6980c3fce4baee9d6b899e07482e8ce556.zip
Merge branch 'master' into next
Conflicts: host/lib/usrp/usrp2/mboard_impl.cpp
-rw-r--r--host/docs/coding.rst29
-rw-r--r--host/docs/general.rst28
-rw-r--r--host/lib/usrp/dboard/db_tvrx.cpp2
3 files changed, 29 insertions, 30 deletions
diff --git a/host/docs/coding.rst b/host/docs/coding.rst
index ecca4e8b8..d5304c1c5 100644
--- a/host/docs/coding.rst
+++ b/host/docs/coding.rst
@@ -28,32 +28,3 @@ High-Level: The multi usrp
The Multi-USRP class provides a FAT interface to a single USRP with
one or more channels, or multiple USRPs in a homogeneous setup.
See the documentation in *usrp/multi_usrp.hpp* for reference.
-
-------------------------------------------------------------------------
-Integrating custom hardware
-------------------------------------------------------------------------
-Creators of custom hardware can create drivers that use the UHD API.
-These drivers can be built as dynamically loadable modules that the UHD will load at runtime.
-
-For a module to be loaded at runtime, it must be:
-
-* found in the UHD_MODULE_PATH environment variable,
-* installed into the <prefix>/share/uhd/modules directory,
-* or installed into /usr/share/uhd/modules directory (unix only).
-
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Custom motherboard
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Create a new device driver when the driver in lib/usrp/
-cannot support your custom FPGA or hardware modifications.
-Make a copy of the relevant driver code in lib/usrp/, make mods, and rename the class.
-The new device code should register itself into the discovery and factory system.
-
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Custom daughterboard
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Use code from an existing daughterboard in lib/usrp/dboard/* as an example.
-Your daughterboard code should subclass an rx dboard, rx dboard, or xcvr dboard;
-and it should respond to calls to get and set properties.
-The new daughterboard code should register itself into the dboard manager
-with a unique rx and/or tx 16 bit identification number.
diff --git a/host/docs/general.rst b/host/docs/general.rst
index 50ef24d6c..2894fbf88 100644
--- a/host/docs/general.rst
+++ b/host/docs/general.rst
@@ -9,6 +9,25 @@ Misc notes
------------------------------------------------------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Thread safety notes
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+For the most part, UHD is thread-safe.
+Please observe the following limitations:
+
+**Fast-path thread requirements:**
+It is safe to call send() and recv() simultaneously. However,
+it is not safe to call recv() simultaneously from different thread contexts.
+The same rule applies for recv(), send(), and recv_async_msg().
+One thread context per fast-path device method at a time.
+
+**Slow-path thread requirements:**
+It is safe to change multiple settings simultaneously. However,
+this could leave the settings for a device in an uncertain state.
+The is because changing one setting could have an impact on how a call affects other settings.
+Example: setting the channel mapping affects how the antennas are set.
+It is recommended to use at most one thread context for manipulating device settings.
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Thread priority scheduling
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -26,3 +45,12 @@ Add the following line to */etc/security/limits.conf*:
Replace <my_group> with a group to which your user belongs.
Settings will not take effect until the user has logged in and out.
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Support for dynamically loadable modules
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+For a module to be loaded at runtime, it must be:
+
+* found in the UHD_MODULE_PATH environment variable,
+* installed into the <prefix>/share/uhd/modules directory,
+* or installed into /usr/share/uhd/modules directory (unix only).
diff --git a/host/lib/usrp/dboard/db_tvrx.cpp b/host/lib/usrp/dboard/db_tvrx.cpp
index dc38ef45e..d264c9ca4 100644
--- a/host/lib/usrp/dboard/db_tvrx.cpp
+++ b/host/lib/usrp/dboard/db_tvrx.cpp
@@ -453,7 +453,7 @@ void tvrx::rx_get(const wax::obj &key_, wax::obj &val){
return;
case SUBDEV_PROP_CONNECTION:
- val = SUBDEV_CONN_COMPLEX_IQ;
+ val = SUBDEV_CONN_REAL_I;
return;
case SUBDEV_PROP_ENABLED: