Commit 93f517c4 authored by Dave Airlie's avatar Dave Airlie

Merge branch 'drm-hisilicon-next' of github.com:xin3liang/linux into drm-next

misc hisilicon cleanups.

* 'drm-hisilicon-next' of github.com:xin3liang/linux:
  drm/hisilicon: Fix DRM_INFO printed issue
  drm/hisilicon: Make kirin_drm_unbind sufficient
  drm/hisilicon: Use drm_connector_register_all
parents 6d23abf5 165cccc8
...@@ -430,12 +430,13 @@ static void dsi_set_mipi_phy(void __iomem *base, ...@@ -430,12 +430,13 @@ static void dsi_set_mipi_phy(void __iomem *base,
* wait for phy's clock ready * wait for phy's clock ready
*/ */
delay_count = 100; delay_count = 100;
while (delay_count--) { while (delay_count) {
val = readl(base + PHY_STATUS); val = readl(base + PHY_STATUS);
if ((BIT(0) | BIT(2)) & val) if ((BIT(0) | BIT(2)) & val)
break; break;
udelay(1); udelay(1);
delay_count--;
} }
if (!delay_count) if (!delay_count)
......
...@@ -201,35 +201,6 @@ static int compare_of(struct device *dev, void *data) ...@@ -201,35 +201,6 @@ static int compare_of(struct device *dev, void *data)
return dev->of_node == data; return dev->of_node == data;
} }
static int kirin_drm_connectors_register(struct drm_device *dev)
{
struct drm_connector *connector;
struct drm_connector *failed_connector;
int ret;
mutex_lock(&dev->mode_config.mutex);
drm_for_each_connector(connector, dev) {
ret = drm_connector_register(connector);
if (ret) {
failed_connector = connector;
goto err;
}
}
mutex_unlock(&dev->mode_config.mutex);
return 0;
err:
drm_for_each_connector(connector, dev) {
if (failed_connector == connector)
break;
drm_connector_unregister(connector);
}
mutex_unlock(&dev->mode_config.mutex);
return ret;
}
static int kirin_drm_bind(struct device *dev) static int kirin_drm_bind(struct device *dev)
{ {
struct drm_driver *driver = &kirin_drm_driver; struct drm_driver *driver = &kirin_drm_driver;
...@@ -251,7 +222,7 @@ static int kirin_drm_bind(struct device *dev) ...@@ -251,7 +222,7 @@ static int kirin_drm_bind(struct device *dev)
goto err_kms_cleanup; goto err_kms_cleanup;
/* connectors should be registered after drm device register */ /* connectors should be registered after drm device register */
ret = kirin_drm_connectors_register(drm_dev); ret = drm_connector_register_all(drm_dev);
if (ret) if (ret)
goto err_drm_dev_unregister; goto err_drm_dev_unregister;
...@@ -273,7 +244,12 @@ static int kirin_drm_bind(struct device *dev) ...@@ -273,7 +244,12 @@ static int kirin_drm_bind(struct device *dev)
static void kirin_drm_unbind(struct device *dev) static void kirin_drm_unbind(struct device *dev)
{ {
drm_put_dev(dev_get_drvdata(dev)); struct drm_device *drm_dev = dev_get_drvdata(dev);
drm_connector_unregister_all(drm_dev);
drm_dev_unregister(drm_dev);
kirin_drm_kms_cleanup(drm_dev);
drm_dev_unref(drm_dev);
} }
static const struct component_master_ops kirin_drm_ops = { static const struct component_master_ops kirin_drm_ops = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment