sbefifo 42 drivers/fsi/fsi-occ.c struct device *sbefifo; sbefifo 260 drivers/fsi/fsi-occ.c rc = sbefifo_submit(occ->sbefifo, cmd, 5, resp, &resp_len); sbefifo 264 drivers/fsi/fsi-occ.c rc = sbefifo_parse_status(occ->sbefifo, SBEFIFO_CMD_GET_OCC_SRAM, sbefifo 321 drivers/fsi/fsi-occ.c rc = sbefifo_submit(occ->sbefifo, buf, cmd_len, buf, &resp_len); sbefifo 325 drivers/fsi/fsi-occ.c rc = sbefifo_parse_status(occ->sbefifo, SBEFIFO_CMD_PUT_OCC_SRAM, sbefifo 373 drivers/fsi/fsi-occ.c rc = sbefifo_submit(occ->sbefifo, buf, 7, buf, &resp_len); sbefifo 377 drivers/fsi/fsi-occ.c rc = sbefifo_parse_status(occ->sbefifo, SBEFIFO_CMD_PUT_OCC_SRAM, sbefifo 521 drivers/fsi/fsi-occ.c occ->sbefifo = dev->parent; sbefifo 130 drivers/fsi/fsi-sbefifo.c struct sbefifo *sbefifo; sbefifo 249 drivers/fsi/fsi-sbefifo.c static int sbefifo_regr(struct sbefifo *sbefifo, int reg, u32 *word) sbefifo 254 drivers/fsi/fsi-sbefifo.c rc = fsi_device_read(sbefifo->fsi_dev, reg, &raw_word, sbefifo 264 drivers/fsi/fsi-sbefifo.c static int sbefifo_regw(struct sbefifo *sbefifo, int reg, u32 word) sbefifo 268 drivers/fsi/fsi-sbefifo.c return fsi_device_write(sbefifo->fsi_dev, reg, &raw_word, sbefifo 272 drivers/fsi/fsi-sbefifo.c static int sbefifo_check_sbe_state(struct sbefifo *sbefifo) sbefifo 278 drivers/fsi/fsi-sbefifo.c rc = fsi_slave_read(sbefifo->fsi_dev->slave, CFAM_GP_MBOX_SBM_ADDR, sbefifo 307 drivers/fsi/fsi-sbefifo.c sbefifo->async_ffdc = true; sbefifo 313 drivers/fsi/fsi-sbefifo.c static int sbefifo_down_read(struct sbefifo *sbefifo, __be32 *word) sbefifo 315 drivers/fsi/fsi-sbefifo.c return fsi_device_read(sbefifo->fsi_dev, SBEFIFO_DOWN, word, sbefifo 319 drivers/fsi/fsi-sbefifo.c static int sbefifo_up_write(struct sbefifo *sbefifo, __be32 word) sbefifo 321 drivers/fsi/fsi-sbefifo.c return fsi_device_write(sbefifo->fsi_dev, SBEFIFO_UP, &word, sbefifo 325 drivers/fsi/fsi-sbefifo.c static int sbefifo_request_reset(struct sbefifo *sbefifo) sbefifo 327 drivers/fsi/fsi-sbefifo.c struct device *dev = &sbefifo->fsi_dev->dev; sbefifo 334 drivers/fsi/fsi-sbefifo.c sbefifo->broken = true; sbefifo 337 drivers/fsi/fsi-sbefifo.c rc = sbefifo_regw(sbefifo, SBEFIFO_UP | SBEFIFO_REQ_RESET, 1); sbefifo 345 drivers/fsi/fsi-sbefifo.c rc = sbefifo_regr(sbefifo, SBEFIFO_UP | SBEFIFO_STS, &status); sbefifo 354 drivers/fsi/fsi-sbefifo.c sbefifo->broken = false; sbefifo 365 drivers/fsi/fsi-sbefifo.c static int sbefifo_cleanup_hw(struct sbefifo *sbefifo) sbefifo 367 drivers/fsi/fsi-sbefifo.c struct device *dev = &sbefifo->fsi_dev->dev; sbefifo 372 drivers/fsi/fsi-sbefifo.c rc = sbefifo_check_sbe_state(sbefifo); sbefifo 379 drivers/fsi/fsi-sbefifo.c if (sbefifo->broken) sbefifo 382 drivers/fsi/fsi-sbefifo.c rc = sbefifo_regr(sbefifo, SBEFIFO_UP | SBEFIFO_STS, &up_status); sbefifo 387 drivers/fsi/fsi-sbefifo.c sbefifo->broken = true; sbefifo 391 drivers/fsi/fsi-sbefifo.c rc = sbefifo_regr(sbefifo, SBEFIFO_DOWN | SBEFIFO_STS, &down_status); sbefifo 396 drivers/fsi/fsi-sbefifo.c sbefifo->broken = true; sbefifo 403 drivers/fsi/fsi-sbefifo.c rc = sbefifo_regw(sbefifo, SBEFIFO_UP, SBEFIFO_PERFORM_RESET); sbefifo 405 drivers/fsi/fsi-sbefifo.c sbefifo->broken = true; sbefifo 409 drivers/fsi/fsi-sbefifo.c sbefifo->broken = false; sbefifo 430 drivers/fsi/fsi-sbefifo.c return sbefifo_request_reset(sbefifo); sbefifo 433 drivers/fsi/fsi-sbefifo.c static int sbefifo_wait(struct sbefifo *sbefifo, bool up, sbefifo 436 drivers/fsi/fsi-sbefifo.c struct device *dev = &sbefifo->fsi_dev->dev; sbefifo 449 drivers/fsi/fsi-sbefifo.c rc = sbefifo_regr(sbefifo, addr, &sts); sbefifo 473 drivers/fsi/fsi-sbefifo.c static int sbefifo_send_command(struct sbefifo *sbefifo, sbefifo 476 drivers/fsi/fsi-sbefifo.c struct device *dev = &sbefifo->fsi_dev->dev; sbefifo 489 drivers/fsi/fsi-sbefifo.c rc = sbefifo_wait(sbefifo, true, &status, timeout); sbefifo 502 drivers/fsi/fsi-sbefifo.c rc = sbefifo_up_write(sbefifo, *(command++)); sbefifo 514 drivers/fsi/fsi-sbefifo.c rc = sbefifo_wait(sbefifo, true, &status, timeout); sbefifo 520 drivers/fsi/fsi-sbefifo.c rc = sbefifo_regw(sbefifo, SBEFIFO_UP | SBEFIFO_EOT_RAISE, 0); sbefifo 526 drivers/fsi/fsi-sbefifo.c static int sbefifo_read_response(struct sbefifo *sbefifo, struct iov_iter *response) sbefifo 528 drivers/fsi/fsi-sbefifo.c struct device *dev = &sbefifo->fsi_dev->dev; sbefifo 541 drivers/fsi/fsi-sbefifo.c rc = sbefifo_wait(sbefifo, false, &status, timeout); sbefifo 555 drivers/fsi/fsi-sbefifo.c rc = sbefifo_down_read(sbefifo, &data); sbefifo 571 drivers/fsi/fsi-sbefifo.c sbefifo->broken = true; sbefifo 575 drivers/fsi/fsi-sbefifo.c rc = sbefifo_regw(sbefifo, sbefifo 585 drivers/fsi/fsi-sbefifo.c sbefifo->broken = true; sbefifo 610 drivers/fsi/fsi-sbefifo.c static int sbefifo_do_command(struct sbefifo *sbefifo, sbefifo 615 drivers/fsi/fsi-sbefifo.c int rc = sbefifo_send_command(sbefifo, command, cmd_len); sbefifo 620 drivers/fsi/fsi-sbefifo.c return sbefifo_read_response(sbefifo, response); sbefifo 623 drivers/fsi/fsi-sbefifo.c static void sbefifo_collect_async_ffdc(struct sbefifo *sbefifo) sbefifo 625 drivers/fsi/fsi-sbefifo.c struct device *dev = &sbefifo->fsi_dev->dev; sbefifo 633 drivers/fsi/fsi-sbefifo.c sbefifo->async_ffdc = false; sbefifo 644 drivers/fsi/fsi-sbefifo.c rc = sbefifo_do_command(sbefifo, cmd, 2, &ffdc_iter); sbefifo 664 drivers/fsi/fsi-sbefifo.c static int __sbefifo_submit(struct sbefifo *sbefifo, sbefifo 668 drivers/fsi/fsi-sbefifo.c struct device *dev = &sbefifo->fsi_dev->dev; sbefifo 671 drivers/fsi/fsi-sbefifo.c if (sbefifo->dead) sbefifo 681 drivers/fsi/fsi-sbefifo.c rc = sbefifo_cleanup_hw(sbefifo); sbefifo 686 drivers/fsi/fsi-sbefifo.c if (sbefifo->async_ffdc) sbefifo 687 drivers/fsi/fsi-sbefifo.c sbefifo_collect_async_ffdc(sbefifo); sbefifo 689 drivers/fsi/fsi-sbefifo.c rc = sbefifo_do_command(sbefifo, command, cmd_len, response); sbefifo 698 drivers/fsi/fsi-sbefifo.c sbefifo_request_reset(sbefifo); sbefifo 718 drivers/fsi/fsi-sbefifo.c struct sbefifo *sbefifo; sbefifo 726 drivers/fsi/fsi-sbefifo.c sbefifo = dev_get_drvdata(dev); sbefifo 727 drivers/fsi/fsi-sbefifo.c if (!sbefifo) sbefifo 729 drivers/fsi/fsi-sbefifo.c if (WARN_ON_ONCE(sbefifo->magic != SBEFIFO_MAGIC)) sbefifo 741 drivers/fsi/fsi-sbefifo.c mutex_lock(&sbefifo->lock); sbefifo 742 drivers/fsi/fsi-sbefifo.c rc = __sbefifo_submit(sbefifo, command, cmd_len, &resp_iter); sbefifo 743 drivers/fsi/fsi-sbefifo.c mutex_unlock(&sbefifo->lock); sbefifo 767 drivers/fsi/fsi-sbefifo.c struct sbefifo *sbefifo = container_of(inode->i_cdev, struct sbefifo, cdev); sbefifo 775 drivers/fsi/fsi-sbefifo.c user->sbefifo = sbefifo; sbefifo 790 drivers/fsi/fsi-sbefifo.c struct sbefifo *sbefifo; sbefifo 798 drivers/fsi/fsi-sbefifo.c sbefifo = user->sbefifo; sbefifo 821 drivers/fsi/fsi-sbefifo.c mutex_lock(&sbefifo->lock); sbefifo 822 drivers/fsi/fsi-sbefifo.c rc = __sbefifo_submit(sbefifo, user->pending_cmd, cmd_len, &resp_iter); sbefifo 823 drivers/fsi/fsi-sbefifo.c mutex_unlock(&sbefifo->lock); sbefifo 839 drivers/fsi/fsi-sbefifo.c struct sbefifo *sbefifo; sbefifo 844 drivers/fsi/fsi-sbefifo.c sbefifo = user->sbefifo; sbefifo 876 drivers/fsi/fsi-sbefifo.c mutex_lock(&sbefifo->lock); sbefifo 877 drivers/fsi/fsi-sbefifo.c rc = sbefifo_request_reset(user->sbefifo); sbefifo 878 drivers/fsi/fsi-sbefifo.c mutex_unlock(&sbefifo->lock); sbefifo 920 drivers/fsi/fsi-sbefifo.c struct sbefifo *sbefifo = container_of(dev, struct sbefifo, dev); sbefifo 922 drivers/fsi/fsi-sbefifo.c put_device(&sbefifo->fsi_dev->dev); sbefifo 923 drivers/fsi/fsi-sbefifo.c kfree(sbefifo); sbefifo 933 drivers/fsi/fsi-sbefifo.c struct sbefifo *sbefifo; sbefifo 941 drivers/fsi/fsi-sbefifo.c sbefifo = kzalloc(sizeof(*sbefifo), GFP_KERNEL); sbefifo 942 drivers/fsi/fsi-sbefifo.c if (!sbefifo) sbefifo 947 drivers/fsi/fsi-sbefifo.c kfree(sbefifo); sbefifo 951 drivers/fsi/fsi-sbefifo.c sbefifo->magic = SBEFIFO_MAGIC; sbefifo 952 drivers/fsi/fsi-sbefifo.c sbefifo->fsi_dev = fsi_dev; sbefifo 953 drivers/fsi/fsi-sbefifo.c dev_set_drvdata(dev, sbefifo); sbefifo 954 drivers/fsi/fsi-sbefifo.c mutex_init(&sbefifo->lock); sbefifo 960 drivers/fsi/fsi-sbefifo.c rc = sbefifo_cleanup_hw(sbefifo); sbefifo 965 drivers/fsi/fsi-sbefifo.c sbefifo->dev.type = &fsi_cdev_type; sbefifo 966 drivers/fsi/fsi-sbefifo.c sbefifo->dev.parent = dev; sbefifo 967 drivers/fsi/fsi-sbefifo.c sbefifo->dev.release = sbefifo_free; sbefifo 968 drivers/fsi/fsi-sbefifo.c device_initialize(&sbefifo->dev); sbefifo 971 drivers/fsi/fsi-sbefifo.c rc = fsi_get_new_minor(fsi_dev, fsi_dev_sbefifo, &sbefifo->dev.devt, &didx); sbefifo 975 drivers/fsi/fsi-sbefifo.c dev_set_name(&sbefifo->dev, "sbefifo%d", didx); sbefifo 976 drivers/fsi/fsi-sbefifo.c cdev_init(&sbefifo->cdev, &sbefifo_fops); sbefifo 977 drivers/fsi/fsi-sbefifo.c rc = cdev_device_add(&sbefifo->cdev, &sbefifo->dev); sbefifo 980 drivers/fsi/fsi-sbefifo.c rc, dev_name(&sbefifo->dev)); sbefifo 987 drivers/fsi/fsi-sbefifo.c dev_name(&sbefifo->dev), child_idx++); sbefifo 996 drivers/fsi/fsi-sbefifo.c fsi_free_minor(sbefifo->dev.devt); sbefifo 998 drivers/fsi/fsi-sbefifo.c put_device(&sbefifo->dev); sbefifo 1015 drivers/fsi/fsi-sbefifo.c struct sbefifo *sbefifo = dev_get_drvdata(dev); sbefifo 1019 drivers/fsi/fsi-sbefifo.c mutex_lock(&sbefifo->lock); sbefifo 1020 drivers/fsi/fsi-sbefifo.c sbefifo->dead = true; sbefifo 1021 drivers/fsi/fsi-sbefifo.c mutex_unlock(&sbefifo->lock); sbefifo 1023 drivers/fsi/fsi-sbefifo.c cdev_device_del(&sbefifo->cdev, &sbefifo->dev); sbefifo 1024 drivers/fsi/fsi-sbefifo.c fsi_free_minor(sbefifo->dev.devt); sbefifo 1026 drivers/fsi/fsi-sbefifo.c put_device(&sbefifo->dev);