Device: It makes more sense to power on before boot
[hayes-ril.git] / hayes-ril.c
1 /**
2  * This file is part of hayes-ril.
3  *
4  * Copyright (C) 2012 Paul Kocialkowski <contact@paulk.fr>
5  * 
6  * Based on htcgeneric-ril, reference-ril:
7  * Copyright 2006-2011, htcgeneric-ril contributors
8  * Copyright 2006, The Android Open Source Project
9  *
10  * Licensed under the Apache License, Version 2.0 (the "License");
11  * you may not use this file except in compliance with the License.
12  * You may obtain a copy of the License at
13  *
14  *     http://www.apache.org/licenses/LICENSE-2.0
15  *
16  * Unless required by applicable law or agreed to in writing, software
17  * distributed under the License is distributed on an "AS IS" BASIS,
18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  * See the License for the specific language governing permissions and
20  * limitations under the License.
21  */
22
23 #define LOG_TAG "RIL"
24 #include <utils/Log.h>
25 #include <telephony/ril.h>
26
27 #include <hayes-ril.h>
28
29 #define RIL_VERSION_STRING "Hayes RIL"
30
31 struct ril_device *ril_device;
32
33 const char *ril_get_version(void)
34 {
35         return RIL_VERSION_STRING;
36 }
37
38 static const RIL_RadioFunctions ril_ops = {
39         RIL_VERSION,
40         NULL,
41         NULL,
42         NULL,
43         NULL,
44         ril_get_version
45 };
46
47 const RIL_RadioFunctions *RIL_Init(const struct RIL_Env *env, int argc, char **argv)
48 {
49         int rc;
50
51         ril_device_register(&ril_device);
52
53         LOGD("Starting %s for device: %s", RIL_VERSION_STRING, ril_device->name);
54
55         rc = ril_device_data_create(ril_device);
56         if(rc < 0) {
57                 goto failure;
58         }
59
60         rc = ril_device_power_on(ril_device);
61         if(rc < 0) {
62                 goto failure;
63         }
64
65         rc = ril_device_boot(ril_device);
66         if(rc < 0) {
67                 goto failure;
68         }
69
70         rc = ril_device_open(ril_device);
71         if(rc < 0) {
72                 goto failure;
73         }
74
75         LOGD("Init process done");
76
77         return &ril_ops;
78
79 failure:
80         LOGE("Failure, aborting!");
81         return NULL;
82 }