Lines Matching defs:cxld
663 static int mock_decoder_commit(struct cxl_decoder *cxld)
665 struct cxl_port *port = to_cxl_port(cxld->dev.parent);
666 int id = cxld->id;
668 if (cxld->flags & CXL_DECODER_F_ENABLE)
671 dev_dbg(&port->dev, "%s commit\n", dev_name(&cxld->dev));
675 dev_name(&cxld->dev), port->id,
681 cxld->flags |= CXL_DECODER_F_ENABLE;
686 static int mock_decoder_reset(struct cxl_decoder *cxld)
688 struct cxl_port *port = to_cxl_port(cxld->dev.parent);
689 int id = cxld->id;
691 if ((cxld->flags & CXL_DECODER_F_ENABLE) == 0)
694 dev_dbg(&port->dev, "%s reset\n", dev_name(&cxld->dev));
698 dev_name(&cxld->dev), port->id, port->commit_end);
703 cxld->flags &= ~CXL_DECODER_F_ENABLE;
708 static void default_mock_decoder(struct cxl_decoder *cxld)
710 cxld->hpa_range = (struct range){
715 cxld->interleave_ways = 1;
716 cxld->interleave_granularity = 256;
717 cxld->target_type = CXL_DECODER_HOSTONLYMEM;
718 cxld->commit = mock_decoder_commit;
719 cxld->reset = mock_decoder_reset;
724 struct cxl_decoder *cxld;
728 cxld = to_cxl_decoder(dev);
729 if (cxld->id == 0)
734 static void mock_init_hdm_decoder(struct cxl_decoder *cxld)
749 if (is_endpoint_decoder(&cxld->dev)) {
750 cxled = to_cxl_endpoint_decoder(&cxld->dev);
778 if (!hb0 || pdev->id % 4 || pdev->id > 4 || cxld->id > 0) {
779 default_mock_decoder(cxld);
784 cxld->hpa_range = (struct range) {
789 cxld->interleave_ways = 2;
790 eig_to_granularity(window->granularity, &cxld->interleave_granularity);
791 cxld->target_type = CXL_DECODER_HOSTONLYMEM;
792 cxld->flags = CXL_DECODER_F_ENABLE;
794 port->commit_end = cxld->id;
795 devm_cxl_dpa_reserve(cxled, 0, size / cxld->interleave_ways, 0);
796 cxld->commit = mock_decoder_commit;
797 cxld->reset = mock_decoder_reset;
823 cxld = &cxlsd->cxld;
824 cxld->target_type = CXL_DECODER_HOSTONLYMEM;
825 cxld->flags = CXL_DECODER_F_ENABLE;
832 cxld->interleave_ways = 2;
834 cxld->interleave_ways = 1;
835 cxld->interleave_granularity = 4096;
836 cxld->hpa_range = (struct range) {
864 struct cxl_decoder *cxld;
876 cxld = &cxlsd->cxld;
887 cxld = &cxled->cxld;
890 mock_init_hdm_decoder(cxld);
896 put_device(&cxld->dev);
901 rc = cxl_decoder_add_locked(cxld, target_map);
903 put_device(&cxld->dev);
908 rc = cxl_decoder_autoremove(&port->dev, cxld);
911 dev_dbg(&cxld->dev, "Added to port %s\n", dev_name(&port->dev));