This contains no functional changes. Signed-off-by: Denis 'GNUtoo' Carikli <gnu...@cyberdimension.org> --- samsung-ipc/devices/piranha/piranha.c | 485 +++++++++++++------------- samsung-ipc/devices/piranha/piranha.h | 30 +- 2 files changed, 259 insertions(+), 256 deletions(-)
diff --git a/samsung-ipc/devices/piranha/piranha.c b/samsung-ipc/devices/piranha/piranha.c index e1c85fa..56dc60b 100644 --- a/samsung-ipc/devices/piranha/piranha.c +++ b/samsung-ipc/devices/piranha/piranha.c @@ -33,339 +33,344 @@ int piranha_boot(struct ipc_client *client) { - void *modem_image_data = NULL; - int modem_image_fd = -1; - int modem_boot_fd = -1; - unsigned char *p; - int rc; - - if (client == NULL) - return -1; - - ipc_client_log(client, "Starting piranha modem boot"); - - modem_image_fd = open(PIRANHA_MODEM_IMAGE_DEVICE, O_RDONLY); - if (modem_image_fd < 0) { - ipc_client_log(client, "Opening modem image device failed"); - goto error; - } - ipc_client_log(client, "Opened modem image device"); - - modem_image_data = mmap(0, PIRANHA_MODEM_IMAGE_SIZE, PROT_READ, MAP_SHARED, - modem_image_fd, 0); - if (modem_image_data == NULL || modem_image_data == (void *) 0xffffffff) { - ipc_client_log(client, "Mapping modem image data to memory failed"); - goto error; - } - ipc_client_log(client, "Mapped modem image data to memory"); - - modem_boot_fd = open(XMM626_SEC_MODEM_BOOT0_DEVICE, - O_RDWR | O_NOCTTY | O_NONBLOCK); - if (modem_boot_fd < 0) { - ipc_client_log(client, "Opening modem boot device failed"); - goto error; - } - ipc_client_log(client, "Opened modem boot device"); - - rc = xmm626_kernel_smdk4412_power(client, modem_boot_fd, 0); - if (rc < 0) { - ipc_client_log(client, "Turning the modem off failed"); - goto error; - } - ipc_client_log(client, "Turned the modem off"); - - rc = xmm626_kernel_smdk4412_power(client, modem_boot_fd, 1); - if (rc < 0) { - ipc_client_log(client, "Turning the modem on failed"); - goto error; - } - ipc_client_log(client, "Turned the modem on"); - - p = (unsigned char *) modem_image_data + PIRANHA_PSI_OFFSET; - - rc = xmm626_mipi_psi_send(client, modem_boot_fd, (void *) p, - PIRANHA_PSI_SIZE); - if (rc < 0) { - ipc_client_log(client, "Sending XMM626 MIPI PSI failed"); - goto error; - } - ipc_client_log(client, "Sent XMM626 MIPI PSI"); - - close(modem_boot_fd); - - modem_boot_fd = open(XMM626_SEC_MODEM_BOOT1_DEVICE, - O_RDWR | O_NOCTTY | O_NONBLOCK); - if (modem_boot_fd < 0) { - ipc_client_log(client, "Opening modem boot device failed"); - goto error; - } - ipc_client_log(client, "Opened modem boot device"); - - p = (unsigned char *) modem_image_data + PIRANHA_EBL_OFFSET; - - rc = xmm626_mipi_ebl_send(client, modem_boot_fd, (void *) p, - PIRANHA_EBL_SIZE); - if (rc < 0) { - ipc_client_log(client, "Sending XMM626 MIPI EBL failed"); - goto error; - } - ipc_client_log(client, "Sent XMM626 MIPI EBL"); - - rc = xmm626_mipi_port_config_send(client, modem_boot_fd); - if (rc < 0) { - ipc_client_log(client, "Sending XMM626 MIPI port config failed"); - goto error; - } - ipc_client_log(client, "Sent XMM626 MIPI port config"); - - p = (unsigned char *) modem_image_data + PIRANHA_SEC_START_OFFSET; - - rc = xmm626_mipi_sec_start_send(client, modem_boot_fd, (void *) p, - PIRANHA_SEC_START_SIZE); - if (rc < 0) { - ipc_client_log(client, "Sending XMM626 MIPI SEC start failed"); - goto error; - } - ipc_client_log(client, "Sent XMM626 MIPI SEC start"); - - p = (unsigned char *) modem_image_data + PIRANHA_FIRMWARE_OFFSET; - - rc = xmm626_mipi_firmware_send(client, modem_boot_fd, (void *) p, - PIRANHA_FIRMWARE_SIZE); - if (rc < 0) { - ipc_client_log(client, "Sending XMM626 MIPI firmware failed"); - goto error; - } - ipc_client_log(client, "Sent XMM626 MIPI firmware"); - - rc = xmm626_mipi_nv_data_send(client, modem_boot_fd); - if (rc < 0) { - ipc_client_log(client, "Sending XMM626 MIPI nv_data failed"); - goto error; - } - ipc_client_log(client, "Sent XMM626 MIPI nv_data"); - - rc = xmm626_mipi_sec_end_send(client, modem_boot_fd); - if (rc < 0) { - ipc_client_log(client, "Sending XMM626 MIPI SEC end failed"); - goto error; - } - ipc_client_log(client, "Sent XMM626 MIPI SEC end"); - - rc = xmm626_mipi_hw_reset_send(client, modem_boot_fd); - if (rc < 0) { - ipc_client_log(client, "Sending XMM626 MIPI HW reset failed"); - goto error; - } - ipc_client_log(client, "Sent XMM626 MIPI HW reset"); - - rc = 0; - goto complete; + void *modem_image_data = NULL; + int modem_image_fd = -1; + int modem_boot_fd = -1; + unsigned char *p; + int rc; + + if (client == NULL) + return -1; + + ipc_client_log(client, "Starting piranha modem boot"); + + modem_image_fd = open(PIRANHA_MODEM_IMAGE_DEVICE, O_RDONLY); + if (modem_image_fd < 0) { + ipc_client_log(client, "Opening modem image device failed"); + goto error; + } + ipc_client_log(client, "Opened modem image device"); + + modem_image_data = mmap(0, PIRANHA_MODEM_IMAGE_SIZE, PROT_READ, + MAP_SHARED, modem_image_fd, 0); + if (modem_image_data == NULL || + modem_image_data == (void *) 0xffffffff) { + ipc_client_log(client, + "Mapping modem image data to memory failed"); + goto error; + } + ipc_client_log(client, "Mapped modem image data to memory"); + + modem_boot_fd = open(XMM626_SEC_MODEM_BOOT0_DEVICE, + O_RDWR | O_NOCTTY | O_NONBLOCK); + if (modem_boot_fd < 0) { + ipc_client_log(client, "Opening modem boot device failed"); + goto error; + } + ipc_client_log(client, "Opened modem boot device"); + + rc = xmm626_kernel_smdk4412_power(client, modem_boot_fd, 0); + if (rc < 0) { + ipc_client_log(client, "Turning the modem off failed"); + goto error; + } + ipc_client_log(client, "Turned the modem off"); + + rc = xmm626_kernel_smdk4412_power(client, modem_boot_fd, 1); + if (rc < 0) { + ipc_client_log(client, "Turning the modem on failed"); + goto error; + } + ipc_client_log(client, "Turned the modem on"); + + p = (unsigned char *) modem_image_data + PIRANHA_PSI_OFFSET; + + rc = xmm626_mipi_psi_send(client, modem_boot_fd, (void *) p, + PIRANHA_PSI_SIZE); + if (rc < 0) { + ipc_client_log(client, "Sending XMM626 MIPI PSI failed"); + goto error; + } + ipc_client_log(client, "Sent XMM626 MIPI PSI"); + + close(modem_boot_fd); + + modem_boot_fd = open(XMM626_SEC_MODEM_BOOT1_DEVICE, + O_RDWR | O_NOCTTY | O_NONBLOCK); + if (modem_boot_fd < 0) { + ipc_client_log(client, "Opening modem boot device failed"); + goto error; + } + ipc_client_log(client, "Opened modem boot device"); + + p = (unsigned char *) modem_image_data + PIRANHA_EBL_OFFSET; + + rc = xmm626_mipi_ebl_send(client, modem_boot_fd, (void *) p, + PIRANHA_EBL_SIZE); + if (rc < 0) { + ipc_client_log(client, "Sending XMM626 MIPI EBL failed"); + goto error; + } + ipc_client_log(client, "Sent XMM626 MIPI EBL"); + + rc = xmm626_mipi_port_config_send(client, modem_boot_fd); + if (rc < 0) { + ipc_client_log(client, + "Sending XMM626 MIPI port config failed"); + goto error; + } + ipc_client_log(client, "Sent XMM626 MIPI port config"); + + p = (unsigned char *) modem_image_data + PIRANHA_SEC_START_OFFSET; + + rc = xmm626_mipi_sec_start_send(client, modem_boot_fd, (void *) p, + PIRANHA_SEC_START_SIZE); + if (rc < 0) { + ipc_client_log(client, "Sending XMM626 MIPI SEC start failed"); + goto error; + } + ipc_client_log(client, "Sent XMM626 MIPI SEC start"); + + p = (unsigned char *) modem_image_data + PIRANHA_FIRMWARE_OFFSET; + + rc = xmm626_mipi_firmware_send(client, modem_boot_fd, (void *) p, + PIRANHA_FIRMWARE_SIZE); + if (rc < 0) { + ipc_client_log(client, "Sending XMM626 MIPI firmware failed"); + goto error; + } + ipc_client_log(client, "Sent XMM626 MIPI firmware"); + + rc = xmm626_mipi_nv_data_send(client, modem_boot_fd); + if (rc < 0) { + ipc_client_log(client, "Sending XMM626 MIPI nv_data failed"); + goto error; + } + ipc_client_log(client, "Sent XMM626 MIPI nv_data"); + + rc = xmm626_mipi_sec_end_send(client, modem_boot_fd); + if (rc < 0) { + ipc_client_log(client, "Sending XMM626 MIPI SEC end failed"); + goto error; + } + ipc_client_log(client, "Sent XMM626 MIPI SEC end"); + + rc = xmm626_mipi_hw_reset_send(client, modem_boot_fd); + if (rc < 0) { + ipc_client_log(client, "Sending XMM626 MIPI HW reset failed"); + goto error; + } + ipc_client_log(client, "Sent XMM626 MIPI HW reset"); + + rc = 0; + goto complete; error: - rc = -1; + rc = -1; complete: - if (modem_image_data != NULL) - munmap(modem_image_data, PIRANHA_MODEM_IMAGE_SIZE); + if (modem_image_data != NULL) + munmap(modem_image_data, PIRANHA_MODEM_IMAGE_SIZE); - if (modem_image_fd >= 0) - close(modem_image_fd); + if (modem_image_fd >= 0) + close(modem_image_fd); - if (modem_boot_fd >= 0) - close(modem_boot_fd); + if (modem_boot_fd >= 0) + close(modem_boot_fd); - return rc; + return rc; } int piranha_open(__attribute__((unused)) struct ipc_client *client, void *data, - int type) + int type) { - struct piranha_transport_data *transport_data; + struct piranha_transport_data *transport_data; - if (data == NULL) - return -1; + if (data == NULL) + return -1; - transport_data = (struct piranha_transport_data *) data; + transport_data = (struct piranha_transport_data *) data; - transport_data->fd = xmm626_kernel_smdk4412_open(client, type); - if (transport_data->fd < 0) - return -1; + transport_data->fd = xmm626_kernel_smdk4412_open(client, type); + if (transport_data->fd < 0) + return -1; - return 0; + return 0; } int piranha_close(__attribute__((unused)) struct ipc_client *client, void *data) { - struct piranha_transport_data *transport_data; + struct piranha_transport_data *transport_data; - if (data == NULL) - return -1; + if (data == NULL) + return -1; - transport_data = (struct piranha_transport_data *) data; + transport_data = (struct piranha_transport_data *) data; - xmm626_kernel_smdk4412_close(client, transport_data->fd); - transport_data->fd = -1; + xmm626_kernel_smdk4412_close(client, transport_data->fd); + transport_data->fd = -1; - return 0; + return 0; } int piranha_read(__attribute__((unused)) struct ipc_client *client, void *data, - void *buffer, size_t length) + void *buffer, size_t length) { - struct piranha_transport_data *transport_data; - int rc; + struct piranha_transport_data *transport_data; + int rc; - if (data == NULL) - return -1; + if (data == NULL) + return -1; - transport_data = (struct piranha_transport_data *) data; + transport_data = (struct piranha_transport_data *) data; - rc = xmm626_kernel_smdk4412_read(client, transport_data->fd, buffer, length); + rc = xmm626_kernel_smdk4412_read(client, transport_data->fd, buffer, + length); - return rc; + return rc; } int piranha_write(__attribute__((unused)) struct ipc_client *client, void *data, - const void *buffer, size_t length) + const void *buffer, size_t length) { - struct piranha_transport_data *transport_data; - int rc; + struct piranha_transport_data *transport_data; + int rc; - if (data == NULL) - return -1; + if (data == NULL) + return -1; - transport_data = (struct piranha_transport_data *) data; + transport_data = (struct piranha_transport_data *) data; - rc = xmm626_kernel_smdk4412_write(client, transport_data->fd, buffer, length); + rc = xmm626_kernel_smdk4412_write(client, transport_data->fd, buffer, + length); - return rc; + return rc; } int piranha_poll(__attribute__((unused)) struct ipc_client *client, void *data, - struct ipc_poll_fds *fds, struct timeval *timeout) + struct ipc_poll_fds *fds, struct timeval *timeout) { - struct piranha_transport_data *transport_data; - int rc; + struct piranha_transport_data *transport_data; + int rc; - if (data == NULL) - return -1; + if (data == NULL) + return -1; - transport_data = (struct piranha_transport_data *) data; + transport_data = (struct piranha_transport_data *) data; - rc = xmm626_kernel_smdk4412_poll(client, transport_data->fd, fds, timeout); + rc = xmm626_kernel_smdk4412_poll(client, transport_data->fd, fds, + timeout); - return rc; + return rc; } int piranha_power_on(__attribute__((unused)) struct ipc_client *client, - __attribute__((unused)) void *data) + __attribute__((unused)) void *data) { - return 0; + return 0; } int piranha_power_off(__attribute__((unused)) struct ipc_client *client, - __attribute__((unused)) void *data) + __attribute__((unused)) void *data) { - int fd; - int rc; + int fd; + int rc; - fd = open(XMM626_SEC_MODEM_BOOT0_DEVICE, O_RDWR | O_NOCTTY | O_NONBLOCK); - if (fd < 0) - return -1; + fd = open(XMM626_SEC_MODEM_BOOT0_DEVICE, O_RDWR | O_NOCTTY | + O_NONBLOCK); + if (fd < 0) + return -1; - rc = xmm626_kernel_smdk4412_power(client, fd, 0); + rc = xmm626_kernel_smdk4412_power(client, fd, 0); - close(fd); + close(fd); - if (rc < 0) - return -1; + if (rc < 0) + return -1; - return 0; + return 0; } int piranha_gprs_activate(__attribute__((unused)) struct ipc_client *client, - __attribute__((unused)) void *data, - __attribute__((unused)) unsigned int cid) + __attribute__((unused)) void *data, + __attribute__((unused)) unsigned int cid) { - return 0; + return 0; } int piranha_gprs_deactivate(__attribute__((unused)) struct ipc_client *client, - __attribute__((unused)) void *data, - __attribute__((unused)) unsigned int cid) + __attribute__((unused)) void *data, + __attribute__((unused)) unsigned int cid) { - return 0; + return 0; } int piranha_data_create(__attribute__((unused)) struct ipc_client *client, - void **transport_data, - __attribute__((unused)) void **power_data, - __attribute__((unused)) void **gprs_data) + void **transport_data, + __attribute__((unused)) void **power_data, + __attribute__((unused)) void **gprs_data) { - if (transport_data == NULL) - return -1; + if (transport_data == NULL) + return -1; - *transport_data = calloc(1, sizeof(struct piranha_transport_data)); + *transport_data = calloc(1, sizeof(struct piranha_transport_data)); - return 0; + return 0; } int piranha_data_destroy(__attribute__((unused)) struct ipc_client *client, - void *transport_data, - __attribute__((unused)) void *power_data, - __attribute__((unused)) void *gprs_data) + void *transport_data, + __attribute__((unused)) void *power_data, + __attribute__((unused)) void *gprs_data) { - if (transport_data == NULL) - return -1; + if (transport_data == NULL) + return -1; - free(transport_data); + free(transport_data); - return 0; + return 0; } struct ipc_client_ops piranha_fmt_ops = { - .boot = piranha_boot, - .send = xmm626_kernel_smdk4412_fmt_send, - .recv = xmm626_kernel_smdk4412_fmt_recv, + .boot = piranha_boot, + .send = xmm626_kernel_smdk4412_fmt_send, + .recv = xmm626_kernel_smdk4412_fmt_recv, }; struct ipc_client_ops piranha_rfs_ops = { - .boot = NULL, - .send = xmm626_kernel_smdk4412_rfs_send, - .recv = xmm626_kernel_smdk4412_rfs_recv, + .boot = NULL, + .send = xmm626_kernel_smdk4412_rfs_send, + .recv = xmm626_kernel_smdk4412_rfs_recv, }; struct ipc_client_handlers piranha_handlers = { - .read = piranha_read, - .write = piranha_write, - .open = piranha_open, - .close = piranha_close, - .poll = piranha_poll, - .transport_data = NULL, - .power_on = piranha_power_on, - .power_off = piranha_power_off, - .power_data = NULL, - .gprs_activate = piranha_gprs_activate, - .gprs_deactivate = piranha_gprs_deactivate, - .gprs_data = NULL, - .data_create = piranha_data_create, - .data_destroy = piranha_data_destroy, + .read = piranha_read, + .write = piranha_write, + .open = piranha_open, + .close = piranha_close, + .poll = piranha_poll, + .transport_data = NULL, + .power_on = piranha_power_on, + .power_off = piranha_power_off, + .power_data = NULL, + .gprs_activate = piranha_gprs_activate, + .gprs_deactivate = piranha_gprs_deactivate, + .gprs_data = NULL, + .data_create = piranha_data_create, + .data_destroy = piranha_data_destroy, }; struct ipc_client_gprs_specs piranha_gprs_specs = { - .gprs_get_iface = xmm626_kernel_smdk4412_gprs_get_iface, - .gprs_get_capabilities = xmm626_kernel_smdk4412_gprs_get_capabilities, + .gprs_get_iface = xmm626_kernel_smdk4412_gprs_get_iface, + .gprs_get_capabilities = xmm626_kernel_smdk4412_gprs_get_capabilities, }; struct ipc_client_nv_data_specs piranha_nv_data_specs = { - .nv_data_path = XMM626_NV_DATA_PATH, - .nv_data_md5_path = XMM626_NV_DATA_MD5_PATH, - .nv_data_backup_path = XMM626_NV_DATA_BACKUP_PATH, - .nv_data_backup_md5_path = XMM626_NV_DATA_BACKUP_MD5_PATH, - .nv_data_secret = XMM626_NV_DATA_SECRET, - .nv_data_size = XMM626_NV_DATA_SIZE, - .nv_data_chunk_size = XMM626_NV_DATA_CHUNK_SIZE, + .nv_data_path = XMM626_NV_DATA_PATH, + .nv_data_md5_path = XMM626_NV_DATA_MD5_PATH, + .nv_data_backup_path = XMM626_NV_DATA_BACKUP_PATH, + .nv_data_backup_md5_path = XMM626_NV_DATA_BACKUP_MD5_PATH, + .nv_data_secret = XMM626_NV_DATA_SECRET, + .nv_data_size = XMM626_NV_DATA_SIZE, + .nv_data_chunk_size = XMM626_NV_DATA_CHUNK_SIZE, }; - -// vim:ts=4:sw=4:expandtab diff --git a/samsung-ipc/devices/piranha/piranha.h b/samsung-ipc/devices/piranha/piranha.h index 834f7c3..469d15b 100644 --- a/samsung-ipc/devices/piranha/piranha.h +++ b/samsung-ipc/devices/piranha/piranha.h @@ -20,22 +20,22 @@ #ifndef __PIRANHA_H__ #define __PIRANHA_H__ -#define PIRANHA_MODEM_IMAGE_SIZE 0x1400000 -#define PIRANHA_PSI_OFFSET 0x1000 -#define PIRANHA_PSI_SIZE 0xE000 -#define PIRANHA_EBL_OFFSET 0xF000 -#define PIRANHA_EBL_SIZE 0x19000 -#define PIRANHA_SEC_START_OFFSET 0x9FF800 -#define PIRANHA_SEC_START_SIZE 0x800 -#define PIRANHA_FIRMWARE_OFFSET 0x28000 -#define PIRANHA_FIRMWARE_SIZE 0x9D7800 -#define PIRANHA_NV_DATA_OFFSET 0xA00000 -#define PIRANHA_NV_DATA_SIZE 0x200000 +#define PIRANHA_MODEM_IMAGE_SIZE 0x1400000 +#define PIRANHA_PSI_OFFSET 0x1000 +#define PIRANHA_PSI_SIZE 0xE000 +#define PIRANHA_EBL_OFFSET 0xF000 +#define PIRANHA_EBL_SIZE 0x19000 +#define PIRANHA_SEC_START_OFFSET 0x9FF800 +#define PIRANHA_SEC_START_SIZE 0x800 +#define PIRANHA_FIRMWARE_OFFSET 0x28000 +#define PIRANHA_FIRMWARE_SIZE 0x9D7800 +#define PIRANHA_NV_DATA_OFFSET 0xA00000 +#define PIRANHA_NV_DATA_SIZE 0x200000 -#define PIRANHA_MODEM_IMAGE_DEVICE "/dev/block/mmcblk0p8" +#define PIRANHA_MODEM_IMAGE_DEVICE "/dev/block/mmcblk0p8" struct piranha_transport_data { - int fd; + int fd; }; extern struct ipc_client_ops piranha_fmt_ops; @@ -45,6 +45,4 @@ extern struct ipc_client_gprs_specs piranha_gprs_specs; extern struct ipc_client_nv_data_specs piranha_nv_data_specs; extern struct ipc_client_nv_data_specs piranha_nv_data_specs; -#endif - -// vim:ts=4:sw=4:expandtab +#endif /* __PIRANHA_H__ */ -- 2.27.0 _______________________________________________ Replicant mailing list Replicant@osuosl.org https://lists.osuosl.org/mailman/listinfo/replicant