diff options
author | rockot@chromium.org <rockot@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-13 19:15:44 +0000 |
---|---|---|
committer | rockot@chromium.org <rockot@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-13 19:15:44 +0000 |
commit | 20bf311efdef6b6e266f3b431c5ee4e3c6dd6814 (patch) | |
tree | 610b348645156193ff061cc05d7bdbaeaf151e42 | |
parent | a0128b2817d0f89759f054ca7ddeb5e18d38c499 (diff) | |
download | chromium_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.cc | 10 |
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) { |