"Essential's engineers are developing a proprietary connector that
serves double duty for charging the battery and expanding the phone's
functionality over time, one person familiar with the planning said. The
magnetic connector would allow Essential or even third parties to create
hardware accessories that add features to the smartphone. For instance,
Rubin’s engineers are working on a sphere-shaped camera add-on that
shoots high-resolution 360 degree photographs, the person said."
https://www.bloomberg.com/news/articles/2017-01-13/andy-rubin-nears-his-com…
--
Karim Yaghmour
CEO - Opersys inc. / www.opersys.comhttp://twitter.com/karimyaghmour
Alexandre reported a bug in the loopback rmmod path subsequent to a failure
in gb_pm_runtime_get_sync - something that can happen when you are
developing device-side firmware easily. Doing some cursory rmmod testing on
gb_loopback then showed a second (and long standing) error pertaining to
removal of gb_dev.root.
This series fixes both issues.
Bryan O'Donoghue (2):
staging: greybus: loopback: fix gb_pm_runtime_get_sync error handling
staging: greybus: loopback: fix oops on rmmod gb_loopback
drivers/staging/greybus/loopback.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
--
2.7.4
From: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
The Greybus driver subsystem has a mailing list, so list it in the
MAINTAINERS file so that people know to send patches there as well.
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
diff --git a/MAINTAINERS b/MAINTAINERS
index cfff2c9e3d94..f6cb07684cea 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -5504,6 +5504,7 @@ M: Alex Elder <elder(a)kernel.org>
M: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
S: Maintained
F: drivers/staging/greybus/
+L: greybus-dev(a)lists.linaro.org
GREYBUS AUDIO PROTOCOLS DRIVERS
M: Vaibhav Agarwal <vaibhav.sr(a)gmail.com>
Add sanity checks for cport_quiesce and cport_clear before invoking the
callbacks as these function pointers are not required during the host
device registration. This follows the logic implemented elsewhere for
various other function pointers.
Signed-off-by: Jason Hrycay <jhrycay(a)gmail.com>
---
drivers/staging/greybus/connection.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/staging/greybus/connection.c b/drivers/staging/greybus/connection.c
index 833f83b..aa040b1 100644
--- a/drivers/staging/greybus/connection.c
+++ b/drivers/staging/greybus/connection.c
@@ -358,6 +358,9 @@ static int gb_connection_hd_cport_quiesce(struct gb_connection *connection)
size_t peer_space;
int ret;
+ if (!hd->driver->cport_quiesce)
+ return 0;
+
peer_space = sizeof(struct gb_operation_msg_hdr) +
sizeof(struct gb_cport_shutdown_request);
@@ -381,6 +384,9 @@ static int gb_connection_hd_cport_clear(struct gb_connection *connection)
struct gb_host_device *hd = connection->hd;
int ret;
+ if (!hd->driver->cport_clear)
+ return 0;
+
ret = hd->driver->cport_clear(hd, connection->hd_cport_id);
if (ret) {
dev_err(&hd->dev, "%s: failed to clear host cport: %d\n",
--
2.10.0