Lines Matching defs:cxld
667 static int mock_decoder_commit(struct cxl_decoder *cxld)
669 struct cxl_port *port = to_cxl_port(cxld->dev.parent);
670 int id = cxld->id;
672 if (cxld->flags & CXL_DECODER_F_ENABLE)
675 dev_dbg(&port->dev, "%s commit\n", dev_name(&cxld->dev));
679 dev_name(&cxld->dev), port->id,
685 cxld->flags |= CXL_DECODER_F_ENABLE;
690 static void mock_decoder_reset(struct cxl_decoder *cxld)
692 struct cxl_port *port = to_cxl_port(cxld->dev.parent);
693 int id = cxld->id;
695 if ((cxld->flags & CXL_DECODER_F_ENABLE) == 0)
698 dev_dbg(&port->dev, "%s reset\n", dev_name(&cxld->dev));
700 cxl_port_commit_reap(cxld);
704 dev_name(&cxld->dev), port->id, port->commit_end);
705 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;
820 cxld->target_map[1] = dport->port_id;
823 cxld->target_map[0] = dport->port_id;
827 cxld->target_map[0] = dport->port_id;
829 cxld = &cxlsd->cxld;
830 cxld->target_type = CXL_DECODER_HOSTONLYMEM;
831 cxld->flags = CXL_DECODER_F_ENABLE;
838 cxld->interleave_ways = 2;
840 cxld->interleave_ways = 1;
841 cxld->interleave_granularity = 4096;
842 cxld->hpa_range = (struct range) {
868 struct cxl_decoder *cxld;
880 cxld = &cxlsd->cxld;
891 cxld = &cxled->cxld;
894 ctx.target_map = cxld->target_map;
896 mock_init_hdm_decoder(cxld);
902 put_device(&cxld->dev);
907 rc = cxl_decoder_add_locked(cxld);
909 put_device(&cxld->dev);
914 rc = cxl_decoder_autoremove(&port->dev, cxld);
917 dev_dbg(&cxld->dev, "Added to port %s\n", dev_name(&port->dev));