OSDN Git Service

android/pan: Move logic from HAL layer to daemon
authorJakub Tyszkowski <jakub.tyszkowski@tieto.com>
Thu, 5 Dec 2013 10:37:16 +0000 (11:37 +0100)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Sun, 8 Dec 2013 15:47:42 +0000 (17:47 +0200)
HAL should contain as little logic as possible, but we should be doing
these checks on daemon side anyway.

android/hal-pan.c
android/pan.c

index 6aaf8af..ec52672 100644 (file)
@@ -74,9 +74,6 @@ static bt_status_t pan_enable(int local_role)
        if (!interface_ready())
                return BT_STATUS_NOT_READY;
 
-       if (!(local_role == BTPAN_ROLE_PANU || local_role == BTPAN_ROLE_PANNAP))
-               return BT_STATUS_UNSUPPORTED;
-
        cmd.local_role = local_role;
 
        return hal_ipc_cmd(HAL_SERVICE_ID_PAN, HAL_OP_PAN_ENABLE,
index 26c28a2..d2be50a 100644 (file)
@@ -282,9 +282,21 @@ failed:
 
 static void bt_pan_enable(const void *buf, uint16_t len)
 {
-       DBG("Not Implemented");
+       const struct hal_cmd_pan_enable *cmd = buf;
+       uint8_t status;
+
+       switch (cmd->local_role) {
+       case HAL_PAN_ROLE_PANU:
+       case HAL_PAN_ROLE_NAP:
+               DBG("Not Implemented");
+               status  = HAL_STATUS_FAILED;
+               break;
+       default:
+               status = HAL_STATUS_UNSUPPORTED;
+               break;
+       }
 
-       ipc_send_rsp(HAL_SERVICE_ID_PAN, HAL_OP_PAN_ENABLE, HAL_STATUS_FAILED);
+       ipc_send_rsp(HAL_SERVICE_ID_PAN, HAL_OP_PAN_ENABLE, status);
 }
 
 static void bt_pan_get_role(const void *buf, uint16_t len)