• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/media/dvb/siano/

Lines Matching refs:coredev

59 	struct smscore_device_t *coredev;
217 struct smscore_device_t *coredev =
219 rc = hotplug(coredev, coredev->device, 1);
265 static void smscore_notify_clients(struct smscore_device_t *coredev)
270 while (!list_empty(&coredev->clients)) {
271 client = (struct smscore_client_t *) coredev->clients.next;
276 static int smscore_notify_callbacks(struct smscore_device_t *coredev,
288 hotplug(coredev, device, arrival);
315 * creates coredev object for a device, prepares buffers,
320 * @param coredev pointer to a value that receives created coredev object
325 struct smscore_device_t **coredev)
408 *coredev = dev;
417 static int smscore_sendrequest_and_wait(struct smscore_device_t *coredev,
419 int rc = coredev->sendrequest_handler(coredev->context, buffer, size);
435 static int smscore_init_ir(struct smscore_device_t *coredev)
441 coredev->ir.input_dev = NULL;
442 ir_io = sms_get_board(smscore_get_board_id(coredev))->board_cfg.ir;
445 rc = sms_ir_init(coredev);
461 msg->msgData[0] = coredev->ir.controller;
462 msg->msgData[1] = coredev->ir.timeout;
466 rc = smscore_sendrequest_and_wait(coredev, msg,
468 &coredev->ir_init_done);
484 * @param coredev pointer to a coredev object returned by
489 int smscore_start_device(struct smscore_device_t *coredev)
492 coredev, smscore_registry_getmode(coredev->devpath));
500 rc = smscore_notify_callbacks(coredev, coredev->device, 1);
501 smscore_init_ir(coredev);
503 sms_info("device %p started, rc %d", coredev, rc);
512 static int smscore_load_firmware_family2(struct smscore_device_t *coredev,
527 if (coredev->preload_handler) {
528 rc = coredev->preload_handler(coredev->context);
538 if (coredev->mode != DEVICE_MODE_NONE) {
542 rc = smscore_sendrequest_and_wait(coredev, msg,
544 &coredev->reload_start_done);
560 if ((coredev->device_flags & SMS_ROM_NO_RESPONSE) &&
561 (coredev->mode == DEVICE_MODE_NONE))
562 rc = coredev->sendrequest_handler(
563 coredev->context, DataMsg,
567 coredev, DataMsg,
569 &coredev->data_download_done);
577 if (coredev->mode == DEVICE_MODE_NONE) {
592 if (coredev->device_flags & SMS_ROM_NO_RESPONSE) {
593 rc = coredev->sendrequest_handler(
594 coredev->context, TriggerMsg,
599 coredev, TriggerMsg,
601 &coredev->trigger_done);
606 rc = coredev->sendrequest_handler(coredev->context,
613 coredev->postload_handler);
617 return ((rc >= 0) && coredev->postload_handler) ?
618 coredev->postload_handler(coredev->context) :
625 * @param coredev pointer to a coredev object returned by
632 static int smscore_load_firmware_from_file(struct smscore_device_t *coredev,
640 if (loadfirmware_handler == NULL && !(coredev->device_flags &
644 rc = request_firmware(&fw, filename, coredev->device);
655 rc = (coredev->device_flags & SMS_DEVICE_FAMILY2) ?
656 smscore_load_firmware_family2(coredev,
659 loadfirmware_handler(coredev->context,
675 * frees all buffers and coredev object
677 * @param coredev pointer to a coredev object returned by
682 void smscore_unregister_device(struct smscore_device_t *coredev)
691 sms_ir_exit(coredev);
693 smscore_notify_clients(coredev);
694 smscore_notify_callbacks(coredev, NULL, 0);
700 while (!list_empty(&coredev->buffers)) {
701 cb = (struct smscore_buffer_t *) coredev->buffers.next;
706 if (num_buffers == coredev->num_buffers)
715 coredev->num_buffers - num_buffers);
721 if (coredev->common_buffer)
722 dma_free_coherent(NULL, coredev->common_buffer_size,
723 coredev->common_buffer, coredev->common_buffer_phys);
725 if (coredev->fw_buf != NULL)
726 kfree(coredev->fw_buf);
728 list_del(&coredev->entry);
729 kfree(coredev);
733 sms_info("device %p destroyed", coredev);
737 static int smscore_detect_mode(struct smscore_device_t *coredev)
751 rc = smscore_sendrequest_and_wait(coredev, msg, msg->msgLength,
752 &coredev->version_ex_done);
756 if (wait_for_completion_timeout(&coredev->resume_done,
759 coredev, msg, msg->msgLength,
760 &coredev->version_ex_done);
793 static inline char *sms_get_fw_name(struct smscore_device_t *coredev,
796 char **fw = sms_get_board(smscore_get_board_id(coredev))->fw;
804 * @param coredev pointer to a coredev object returned by
810 int smscore_set_device_mode(struct smscore_device_t *coredev, int mode)
817 if (coredev->device_flags & SMS_DEVICE_FAMILY2) {
823 smscore_registry_setmode(coredev->devpath, mode);
825 if (!(coredev->device_flags & SMS_DEVICE_NOT_READY)) {
826 rc = smscore_detect_mode(coredev);
833 if (coredev->mode == mode) {
838 if (!(coredev->modes_supported & (1 << mode))) {
841 type = smscore_registry_gettype(coredev->devpath);
842 fw_filename = sms_get_fw_name(coredev, mode, type);
844 rc = smscore_load_firmware_from_file(coredev,
853 rc = smscore_load_firmware_from_file(coredev,
880 coredev, msg, msg->xMsgHeader.msgLength,
881 &coredev->init_device_done);
895 smscore_registry_setmode(coredev->devpath, mode);
897 if (coredev->detectmode_handler)
898 coredev->detectmode_handler(coredev->context,
899 &coredev->mode);
901 if (coredev->mode != mode && coredev->setmode_handler)
902 rc = coredev->setmode_handler(coredev->context, mode);
906 coredev->mode = mode;
907 coredev->device_flags &= ~SMS_DEVICE_NOT_READY;
918 * @param coredev pointer to a coredev object returned by
923 int smscore_get_device_mode(struct smscore_device_t *coredev)
925 return coredev->mode;
933 * @param coredev pointer to a coredev object returned by
940 smscore_client_t *smscore_find_client(struct smscore_device_t *coredev,
949 spin_lock_irqsave(&coredev->clientslock, flags);
950 first = &coredev->clients;
966 spin_unlock_irqrestore(&coredev->clientslock, flags);
974 * @param coredev pointer to a coredev object returned by
979 void smscore_onresponse(struct smscore_device_t *coredev,
1005 if (coredev->mode == DEVICE_MODE_DVBT_BDA)
1010 client = smscore_find_client(coredev, phdr->msgType, phdr->msgDstId);
1028 coredev->mode = ver->FirmwareId == 255 ?
1030 coredev->modes_supported = ver->SupportedProtocols;
1032 complete(&coredev->version_ex_done);
1037 complete(&coredev->init_device_done);
1041 complete(&coredev->reload_start_done);
1044 complete(&coredev->data_download_done);
1051 complete(&coredev->trigger_done);
1054 complete(&coredev->resume_done);
1058 complete(&coredev->gpio_configuration_done);
1062 complete(&coredev->gpio_set_level_done);
1067 coredev->gpio_get_res = msgdata[1];
1069 coredev->gpio_get_res);
1070 complete(&coredev->gpio_get_level_done);
1074 complete(&coredev->ir_init_done);
1077 sms_ir_event(coredev,
1088 smscore_putbuffer(coredev, cb);
1096 * @param coredev pointer to a coredev object returned by
1102 struct smscore_buffer_t *get_entry(struct smscore_device_t *coredev)
1107 spin_lock_irqsave(&coredev->bufferslock, flags);
1108 if (!list_empty(&coredev->buffers)) {
1109 cb = (struct smscore_buffer_t *) coredev->buffers.next;
1112 spin_unlock_irqrestore(&coredev->bufferslock, flags);
1116 struct smscore_buffer_t *smscore_getbuffer(struct smscore_device_t *coredev)
1120 wait_event(coredev->buffer_mng_waitq, (cb = get_entry(coredev)));
1129 * @param coredev pointer to a coredev object returned by
1134 void smscore_putbuffer(struct smscore_device_t *coredev,
1136 wake_up_interruptible(&coredev->buffer_mng_waitq);
1137 list_add_locked(&cb->entry, &coredev->buffers, &coredev->bufferslock);
1141 static int smscore_validate_client(struct smscore_device_t *coredev,
1152 registered_client = smscore_find_client(coredev, data_type, id);
1168 &coredev->clientslock);
1175 * @param coredev pointer to a coredev object from clients hotplug
1186 int smscore_register_client(struct smscore_device_t *coredev,
1192 if (smscore_find_client(coredev, params->data_type,
1205 newclient->coredev = coredev;
1209 list_add_locked(&newclient->entry, &coredev->clients,
1210 &coredev->clientslock);
1211 smscore_validate_client(coredev, newclient, params->data_type,
1230 struct smscore_device_t *coredev = client->coredev;
1233 spin_lock_irqsave(&coredev->clientslock, flags);
1248 spin_unlock_irqrestore(&coredev->clientslock, flags);
1266 struct smscore_device_t *coredev;
1275 coredev = client->coredev;
1278 if (coredev == NULL) {
1279 sms_err("Got NULL coredev");
1283 rc = smscore_validate_client(client->coredev, client, 0,
1288 return coredev->sendrequest_handler(coredev->context, buffer, size);
1294 int smscore_configure_gpio(struct smscore_device_t *coredev, u32 pin,
1302 if (coredev->device_flags & SMS_DEVICE_FAMILY2) {
1336 return coredev->sendrequest_handler(coredev->context,
1340 int smscore_set_gpio(struct smscore_device_t *coredev, u32 pin, int level)
1360 return coredev->sendrequest_handler(coredev->context,
1415 int smscore_gpio_configure(struct smscore_device_t *coredev, u8 PinNum,
1453 if (!(coredev->device_flags & SMS_DEVICE_FAMILY2)) {
1480 rc = smscore_sendrequest_and_wait(coredev, pMsg, totalLen,
1481 &coredev->gpio_configuration_done);
1495 int smscore_gpio_set_level(struct smscore_device_t *coredev, u8 PinNum,
1531 rc = smscore_sendrequest_and_wait(coredev, pMsg, totalLen,
1532 &coredev->gpio_set_level_done);
1545 int smscore_gpio_get_level(struct smscore_device_t *coredev, u8 PinNum,
1580 rc = smscore_sendrequest_and_wait(coredev, pMsg, totalLen,
1581 &coredev->gpio_get_level_done);
1592 * global 'coredev->gpio_get_res' to the function's variable 'level'
1594 *level = coredev->gpio_get_res;