Lines Matching defs:kim_gdata
52 static void validate_firmware_response(struct kim_data_s *kim_gdata)
54 struct sk_buff *skb = kim_gdata->rx_skb;
66 memcpy(kim_gdata->resp_buffer,
67 kim_gdata->rx_skb->data,
68 kim_gdata->rx_skb->len);
69 kim_gdata->rx_state = ST_W4_PACKET_TYPE;
70 kim_gdata->rx_skb = NULL;
71 kim_gdata->rx_count = 0;
79 complete_all(&kim_gdata->kim_rcvd);
87 static inline int kim_check_data_len(struct kim_data_s *kim_gdata, int len)
89 register int room = skb_tailroom(kim_gdata->rx_skb);
94 validate_firmware_response(kim_gdata);
102 kfree_skb(kim_gdata->rx_skb);
108 kim_gdata->rx_state = ST_W4_DATA;
109 kim_gdata->rx_count = len;
117 kim_gdata->rx_state = ST_W4_PACKET_TYPE;
118 kim_gdata->rx_skb = NULL;
119 kim_gdata->rx_count = 0;
130 static void kim_int_recv(struct kim_data_s *kim_gdata, const u8 *ptr,
139 if (kim_gdata->rx_count) {
140 len = min_t(unsigned int, kim_gdata->rx_count, count);
141 skb_put_data(kim_gdata->rx_skb, ptr, len);
142 kim_gdata->rx_count -= len;
146 if (kim_gdata->rx_count)
150 switch (kim_gdata->rx_state) {
154 validate_firmware_response(kim_gdata);
155 kim_gdata->rx_state = ST_W4_PACKET_TYPE;
156 kim_gdata->rx_skb = NULL;
161 (unsigned char *)&kim_gdata->rx_skb->data[1];
163 kim_check_data_len(kim_gdata, *plen);
170 kim_gdata->rx_state = ST_W4_HEADER;
171 kim_gdata->rx_count = 2;
181 kim_gdata->rx_skb =
183 if (!kim_gdata->rx_skb) {
185 kim_gdata->rx_state = ST_W4_PACKET_TYPE;
186 kim_gdata->rx_count = 0;
189 skb_reserve(kim_gdata->rx_skb, 8);
190 kim_gdata->rx_skb->cb[0] = 4;
191 kim_gdata->rx_skb->cb[1] = 0;
197 static long read_local_version(struct kim_data_s *kim_gdata, char *bts_scr_name)
205 reinit_completion(&kim_gdata->kim_rcvd);
206 if (4 != st_int_write(kim_gdata->core_data, read_ver_cmd, 4)) {
212 &kim_gdata->kim_rcvd, msecs_to_jiffies(CMD_RESP_TIME));
217 reinit_completion(&kim_gdata->kim_rcvd);
224 MAKEWORD(kim_gdata->resp_buffer[12],
225 kim_gdata->resp_buffer[13]);
237 kim_gdata->version.full = version;
238 kim_gdata->version.chip = chip;
239 kim_gdata->version.maj_ver = maj_ver;
240 kim_gdata->version.min_ver = min_ver;
271 static long download_firmware(struct kim_data_s *kim_gdata)
282 err = read_local_version(kim_gdata, bts_scr_name);
288 request_firmware(&kim_gdata->fw_entry, bts_scr_name,
289 &kim_gdata->kim_pdev->dev);
290 if (unlikely((err != 0) || (kim_gdata->fw_entry->data == NULL) ||
291 (kim_gdata->fw_entry->size == 0))) {
296 ptr = (void *)kim_gdata->fw_entry->data;
297 len = kim_gdata->fw_entry->size;
334 st_get_uart_wr_room(kim_gdata->core_data);
338 release_firmware(kim_gdata->fw_entry);
349 release_firmware(kim_gdata->fw_entry);
356 reinit_completion(&kim_gdata->kim_rcvd);
363 err = st_int_write(kim_gdata->core_data,
367 release_firmware(kim_gdata->fw_entry);
378 release_firmware(kim_gdata->fw_entry);
385 &kim_gdata->kim_rcvd,
390 release_firmware(kim_gdata->fw_entry);
393 reinit_completion(&kim_gdata->kim_rcvd);
409 release_firmware(kim_gdata->fw_entry);
423 struct kim_data_s *kim_gdata = st_gdata->kim_data;
429 kim_int_recv(kim_gdata, data, count);
439 struct kim_data_s *kim_gdata = (struct kim_data_s *)kim_data;
440 complete(&kim_gdata->ldisc_installed);
455 struct kim_data_s *kim_gdata = (struct kim_data_s *)kim_data;
458 pdata = kim_gdata->kim_pdev->dev.platform_data;
463 pdata->chip_enable(kim_gdata);
466 gpio_set_value_cansleep(kim_gdata->nshutdown, GPIO_LOW);
468 gpio_set_value_cansleep(kim_gdata->nshutdown, GPIO_HIGH);
471 reinit_completion(&kim_gdata->ldisc_installed);
473 kim_gdata->ldisc_install = 1;
475 sysfs_notify(&kim_gdata->kim_pdev->dev.kobj,
479 &kim_gdata->ldisc_installed, msecs_to_jiffies(LDISC_TIME));
486 err = st_kim_stop(kim_gdata);
491 err = download_firmware(kim_gdata);
498 err = st_kim_stop(kim_gdata);
521 struct kim_data_s *kim_gdata = (struct kim_data_s *)kim_data;
523 kim_gdata->kim_pdev->dev.platform_data;
524 struct tty_struct *tty = kim_gdata->core_data->tty;
526 reinit_completion(&kim_gdata->ldisc_installed);
536 kim_gdata->ldisc_install = 0;
537 sysfs_notify(&kim_gdata->kim_pdev->dev.kobj, NULL, "install");
541 &kim_gdata->ldisc_installed, msecs_to_jiffies(LDISC_TIME));
548 gpio_set_value_cansleep(kim_gdata->nshutdown, GPIO_LOW);
550 gpio_set_value_cansleep(kim_gdata->nshutdown, GPIO_HIGH);
552 gpio_set_value_cansleep(kim_gdata->nshutdown, GPIO_LOW);
556 pdata->chip_disable(kim_gdata);
566 struct kim_data_s *kim_gdata = (struct kim_data_s *)s->private;
567 seq_printf(s, "%04X %d.%d.%d\n", kim_gdata->version.full,
568 kim_gdata->version.chip, kim_gdata->version.maj_ver,
569 kim_gdata->version.min_ver);
575 struct kim_data_s *kim_gdata = (struct kim_data_s *)s->private;
576 kim_st_list_protocols(kim_gdata->core_data, s);
673 struct kim_data_s *kim_gdata;
674 /* get kim_gdata reference from platform device */
678 kim_gdata = platform_get_drvdata(pdev);
679 if (!kim_gdata)
682 *core_data = kim_gdata->core_data;
700 struct kim_data_s *kim_gdata;
712 kim_gdata = kzalloc(sizeof(struct kim_data_s), GFP_KERNEL);
713 if (!kim_gdata) {
717 platform_set_drvdata(pdev, kim_gdata);
719 err = st_core_init(&kim_gdata->core_data);
726 kim_gdata->core_data->kim_data = kim_gdata;
729 kim_gdata->nshutdown = pdata->nshutdown_gpio;
730 err = gpio_request(kim_gdata->nshutdown, "kim");
732 pr_err(" gpio %d request failed ", kim_gdata->nshutdown);
737 err = gpio_direction_output(kim_gdata->nshutdown, 0);
739 pr_err(" unable to configure gpio %d", kim_gdata->nshutdown);
743 kim_gdata->kim_pdev = pdev;
744 init_completion(&kim_gdata->kim_rcvd);
745 init_completion(&kim_gdata->ldisc_installed);
754 strncpy(kim_gdata->dev_name, pdata->dev_name, UART_DEV_NAME_LEN);
755 kim_gdata->flow_cntrl = pdata->flow_cntrl;
756 kim_gdata->baud_rate = pdata->baud_rate;
762 kim_gdata, &version_fops);
764 kim_gdata, &list_fops);
768 st_core_exit(kim_gdata->core_data);
771 kfree(kim_gdata);
780 struct kim_data_s *kim_gdata;
782 kim_gdata = platform_get_drvdata(pdev);
795 kim_gdata->kim_pdev = NULL;
796 st_core_exit(kim_gdata->core_data);
798 kfree(kim_gdata);
799 kim_gdata = NULL;