aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_dsi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dsi.c')
-rw-r--r--drivers/gpu/drm/i915/intel_dsi.c28
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
661bool intel_dsi_init(struct drm_device *dev) 661void 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
759err: 759err:
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}