diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dsi.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_dsi.c | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c index 3fd082933c87..bfcefbf33709 100644 --- a/drivers/gpu/drm/i915/intel_dsi.c +++ b/drivers/gpu/drm/i915/intel_dsi.c | |||
@@ -658,7 +658,7 @@ static const struct drm_connector_funcs intel_dsi_connector_funcs = { | |||
658 | .fill_modes = drm_helper_probe_single_connector_modes, | 658 | .fill_modes = drm_helper_probe_single_connector_modes, |
659 | }; | 659 | }; |
660 | 660 | ||
661 | bool intel_dsi_init(struct drm_device *dev) | 661 | void intel_dsi_init(struct drm_device *dev) |
662 | { | 662 | { |
663 | struct intel_dsi *intel_dsi; | 663 | struct intel_dsi *intel_dsi; |
664 | struct intel_encoder *intel_encoder; | 664 | struct intel_encoder *intel_encoder; |
@@ -674,29 +674,29 @@ bool intel_dsi_init(struct drm_device *dev) | |||
674 | 674 | ||
675 | /* There is no detection method for MIPI so rely on VBT */ | 675 | /* There is no detection method for MIPI so rely on VBT */ |
676 | if (!dev_priv->vbt.has_mipi) | 676 | if (!dev_priv->vbt.has_mipi) |
677 | return false; | 677 | return; |
678 | |||
679 | if (IS_VALLEYVIEW(dev)) { | ||
680 | dev_priv->mipi_mmio_base = VLV_MIPI_BASE; | ||
681 | } else { | ||
682 | DRM_ERROR("Unsupported Mipi device to reg base"); | ||
683 | return; | ||
684 | } | ||
678 | 685 | ||
679 | intel_dsi = kzalloc(sizeof(*intel_dsi), GFP_KERNEL); | 686 | intel_dsi = kzalloc(sizeof(*intel_dsi), GFP_KERNEL); |
680 | if (!intel_dsi) | 687 | if (!intel_dsi) |
681 | return false; | 688 | return; |
682 | 689 | ||
683 | intel_connector = kzalloc(sizeof(*intel_connector), GFP_KERNEL); | 690 | intel_connector = kzalloc(sizeof(*intel_connector), GFP_KERNEL); |
684 | if (!intel_connector) { | 691 | if (!intel_connector) { |
685 | kfree(intel_dsi); | 692 | kfree(intel_dsi); |
686 | return false; | 693 | return; |
687 | } | 694 | } |
688 | 695 | ||
689 | intel_encoder = &intel_dsi->base; | 696 | intel_encoder = &intel_dsi->base; |
690 | encoder = &intel_encoder->base; | 697 | encoder = &intel_encoder->base; |
691 | intel_dsi->attached_connector = intel_connector; | 698 | intel_dsi->attached_connector = intel_connector; |
692 | 699 | ||
693 | if (IS_VALLEYVIEW(dev)) { | ||
694 | dev_priv->mipi_mmio_base = VLV_MIPI_BASE; | ||
695 | } else { | ||
696 | DRM_ERROR("Unsupported Mipi device to reg base"); | ||
697 | return false; | ||
698 | } | ||
699 | |||
700 | connector = &intel_connector->base; | 700 | connector = &intel_connector->base; |
701 | 701 | ||
702 | drm_encoder_init(dev, encoder, &intel_dsi_funcs, DRM_MODE_ENCODER_DSI); | 702 | drm_encoder_init(dev, encoder, &intel_dsi_funcs, DRM_MODE_ENCODER_DSI); |
@@ -743,7 +743,7 @@ bool intel_dsi_init(struct drm_device *dev) | |||
743 | 743 | ||
744 | intel_connector_attach_encoder(intel_connector, intel_encoder); | 744 | intel_connector_attach_encoder(intel_connector, intel_encoder); |
745 | 745 | ||
746 | drm_sysfs_connector_add(connector); | 746 | drm_connector_register(connector); |
747 | 747 | ||
748 | fixed_mode = dsi->dev_ops->get_modes(&intel_dsi->dev); | 748 | fixed_mode = dsi->dev_ops->get_modes(&intel_dsi->dev); |
749 | if (!fixed_mode) { | 749 | if (!fixed_mode) { |
@@ -754,12 +754,10 @@ bool intel_dsi_init(struct drm_device *dev) | |||
754 | fixed_mode->type |= DRM_MODE_TYPE_PREFERRED; | 754 | fixed_mode->type |= DRM_MODE_TYPE_PREFERRED; |
755 | intel_panel_init(&intel_connector->panel, fixed_mode, NULL); | 755 | intel_panel_init(&intel_connector->panel, fixed_mode, NULL); |
756 | 756 | ||
757 | return true; | 757 | return; |
758 | 758 | ||
759 | err: | 759 | err: |
760 | drm_encoder_cleanup(&intel_encoder->base); | 760 | drm_encoder_cleanup(&intel_encoder->base); |
761 | kfree(intel_dsi); | 761 | kfree(intel_dsi); |
762 | kfree(intel_connector); | 762 | kfree(intel_connector); |
763 | |||
764 | return false; | ||
765 | } | 763 | } |