summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrockot@chromium.org <rockot@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-13 19:15:44 +0000
committerrockot@chromium.org <rockot@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-13 19:15:44 +0000
commit20bf311efdef6b6e266f3b431c5ee4e3c6dd6814 (patch)
tree610b348645156193ff061cc05d7bdbaeaf151e42
parenta0128b2817d0f89759f054ca7ddeb5e18d38c499 (diff)
downloadchromium_src-20bf311efdef6b6e266f3b431c5ee4e3c6dd6814.zip
chromium_src-20bf311efdef6b6e266f3b431c5ee4e3c6dd6814.tar.gz
chromium_src-20bf311efdef6b6e266f3b431c5ee4e3c6dd6814.tar.bz2
Merge 250349 "Reboot serial bitrate setting on OS X"
> Reboot serial bitrate setting on OS X > > IOSSIOSPEED support is bad and provides no suitable means > to query a device's speed once it's been set. Given that > most (all?) drivers which support custom bitrates seem to > happily accept literal rate values in the termios struct, > IOSSIOSPEED usage is being removed. > > Additionally the getInfo impl will no longer refuse to > interpret tcgetattr's returned bitrate when it doesn't > correspond to a defined constant. Instead, non-zero, > non-standard bitrate values are interpretted literally. > > This seems to be the "most correct" behavior for managing > these settings. > > BUG=337482 > > Review URL: https://codereview.chromium.org/143383009 TBR=rockot@chromium.org Review URL: https://codereview.chromium.org/163553009 git-svn-id: svn://svn.chromium.org/chrome/branches/1750/src@251098 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/extensions/api/serial/serial_connection_posix.cc10
1 files changed, 5 insertions, 5 deletions
diff --git a/chrome/browser/extensions/api/serial/serial_connection_posix.cc b/chrome/browser/extensions/api/serial/serial_connection_posix.cc
index 18a2119..cb6ef7c 100644
--- a/chrome/browser/extensions/api/serial/serial_connection_posix.cc
+++ b/chrome/browser/extensions/api/serial/serial_connection_posix.cc
@@ -11,10 +11,6 @@
#include <linux/serial.h>
#endif
-#if defined(OS_MACOSX)
-#include <IOKit/serial/ioss.h>
-#endif
-
namespace extensions {
namespace {
@@ -107,7 +103,9 @@ bool SetCustomBitrate(base::PlatformFile file,
return ioctl(file, TIOCSSERIAL, &serial) >= 0;
#elif defined(OS_MACOSX)
speed_t speed = static_cast<speed_t>(bitrate);
- return ioctl(file, IOSSIOSPEED, &speed) != -1;
+ cfsetispeed(config, speed);
+ cfsetospeed(config, speed);
+ return true;
#else
return false;
#endif
@@ -254,6 +252,8 @@ bool SerialConnection::GetPortInfo(api::serial::ConnectionInfo* info) const {
int bitrate = 0;
if (SpeedConstantToBitrate(ispeed, &bitrate)) {
info->bitrate.reset(new int(bitrate));
+ } else if (ispeed > 0) {
+ info->bitrate.reset(new int(static_cast<int>(ispeed)));
}
}
if ((config.c_cflag & CSIZE) == CS7) {