All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Hsin-Yi Wang <hsinyi@chromium.org>,
	Robert Foss <robert.foss@linaro.org>,
	Rob Herring <robh+dt@kernel.org>, Xin Ji <xji@analogixsemi.com>
Cc: kbuild-all@lists.01.org, David Airlie <airlied@linux.ie>,
	Daniel Vetter <daniel@ffwll.ch>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, Andrzej Hajda <a.hajda@samsung.com>
Subject: Re: [PATCH v5 3/4] drm/bridge: anx7625: Support reading edid through aux channel
Date: Thu, 20 Jan 2022 12:29:04 +0800	[thread overview]
Message-ID: <202201201223.sts9AtBC-lkp@intel.com> (raw)
In-Reply-To: <20220119151751.986185-3-hsinyi@chromium.org>

Hi Hsin-Yi,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-tip/drm-tip]
[cannot apply to drm/drm-next robh/for-next drm-intel/for-linux-next v5.16 next-20220118]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Hsin-Yi-Wang/drm-bridge-anx7625-send-DPCD-command-to-downstream/20220119-231952
base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: i386-randconfig-r024-20220117 (https://download.01.org/0day-ci/archive/20220120/202201201223.sts9AtBC-lkp@intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://github.com/0day-ci/linux/commit/61809df270082584886188b067ee19744f4b35e1
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Hsin-Yi-Wang/drm-bridge-anx7625-send-DPCD-command-to-downstream/20220119-231952
        git checkout 61809df270082584886188b067ee19744f4b35e1
        # save the config file to linux build tree
        mkdir build_dir
        make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   ld: drivers/gpu/drm/bridge/analogix/anx7625.o: in function `anx7625_i2c_probe':
>> drivers/gpu/drm/bridge/analogix/anx7625.c:2648: undefined reference to `devm_of_dp_aux_populate_ep_devices'


vim +2648 drivers/gpu/drm/bridge/analogix/anx7625.c

  2574	
  2575	static int anx7625_i2c_probe(struct i2c_client *client,
  2576				     const struct i2c_device_id *id)
  2577	{
  2578		struct anx7625_data *platform;
  2579		struct anx7625_platform_data *pdata;
  2580		int ret = 0;
  2581		struct device *dev = &client->dev;
  2582	
  2583		if (!i2c_check_functionality(client->adapter,
  2584					     I2C_FUNC_SMBUS_I2C_BLOCK)) {
  2585			DRM_DEV_ERROR(dev, "anx7625's i2c bus doesn't support\n");
  2586			return -ENODEV;
  2587		}
  2588	
  2589		platform = devm_kzalloc(dev, sizeof(*platform), GFP_KERNEL);
  2590		if (!platform) {
  2591			DRM_DEV_ERROR(dev, "fail to allocate driver data\n");
  2592			return -ENOMEM;
  2593		}
  2594	
  2595		pdata = &platform->pdata;
  2596	
  2597		platform->client = client;
  2598		i2c_set_clientdata(client, platform);
  2599	
  2600		pdata->supplies[0].supply = "vdd10";
  2601		pdata->supplies[1].supply = "vdd18";
  2602		pdata->supplies[2].supply = "vdd33";
  2603		ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(pdata->supplies),
  2604					      pdata->supplies);
  2605		if (ret) {
  2606			DRM_DEV_ERROR(dev, "fail to get power supplies: %d\n", ret);
  2607			return ret;
  2608		}
  2609		anx7625_init_gpio(platform);
  2610	
  2611		mutex_init(&platform->lock);
  2612		mutex_init(&platform->hdcp_wq_lock);
  2613	
  2614		INIT_DELAYED_WORK(&platform->hdcp_work, hdcp_check_work_func);
  2615		platform->hdcp_workqueue = create_workqueue("hdcp workqueue");
  2616		if (!platform->hdcp_workqueue) {
  2617			dev_err(dev, "fail to create work queue\n");
  2618			ret = -ENOMEM;
  2619			return ret;
  2620		}
  2621	
  2622		platform->pdata.intp_irq = client->irq;
  2623		if (platform->pdata.intp_irq) {
  2624			INIT_WORK(&platform->work, anx7625_work_func);
  2625			platform->workqueue = alloc_workqueue("anx7625_work",
  2626							      WQ_FREEZABLE | WQ_MEM_RECLAIM, 1);
  2627			if (!platform->workqueue) {
  2628				DRM_DEV_ERROR(dev, "fail to create work queue\n");
  2629				ret = -ENOMEM;
  2630				goto free_hdcp_wq;
  2631			}
  2632	
  2633			ret = devm_request_threaded_irq(dev, platform->pdata.intp_irq,
  2634							NULL, anx7625_intr_hpd_isr,
  2635							IRQF_TRIGGER_FALLING |
  2636							IRQF_ONESHOT,
  2637							"anx7625-intp", platform);
  2638			if (ret) {
  2639				DRM_DEV_ERROR(dev, "fail to request irq\n");
  2640				goto free_wq;
  2641			}
  2642		}
  2643	
  2644		platform->aux.name = "anx7625-aux";
  2645		platform->aux.dev = dev;
  2646		platform->aux.transfer = anx7625_aux_transfer;
  2647		drm_dp_aux_init(&platform->aux);
> 2648		devm_of_dp_aux_populate_ep_devices(&platform->aux);
  2649	
  2650		ret = anx7625_parse_dt(dev, pdata);
  2651		if (ret) {
  2652			if (ret != -EPROBE_DEFER)
  2653				DRM_DEV_ERROR(dev, "fail to parse DT : %d\n", ret);
  2654			return ret;
  2655		}
  2656	
  2657		if (anx7625_register_i2c_dummy_clients(platform, client) != 0) {
  2658			ret = -ENOMEM;
  2659			DRM_DEV_ERROR(dev, "fail to reserve I2C bus.\n");
  2660			goto free_wq;
  2661		}
  2662	
  2663		pm_runtime_enable(dev);
  2664		pm_runtime_set_autosuspend_delay(dev, 1000);
  2665		pm_runtime_use_autosuspend(dev);
  2666		pm_suspend_ignore_children(dev, true);
  2667		ret = devm_add_action_or_reset(dev, anx7625_runtime_disable, dev);
  2668		if (ret)
  2669			return ret;
  2670	
  2671		if (!platform->pdata.low_power_mode) {
  2672			anx7625_disable_pd_protocol(platform);
  2673			pm_runtime_get_sync(dev);
  2674		}
  2675	
  2676		/* Add work function */
  2677		if (platform->pdata.intp_irq)
  2678			queue_work(platform->workqueue, &platform->work);
  2679	
  2680		platform->bridge.funcs = &anx7625_bridge_funcs;
  2681		platform->bridge.of_node = client->dev.of_node;
  2682		if (!anx7625_of_panel_on_aux_bus(&client->dev))
  2683			platform->bridge.ops |= DRM_BRIDGE_OP_EDID;
  2684		if (!platform->pdata.panel_bridge)
  2685			platform->bridge.ops |= DRM_BRIDGE_OP_HPD |
  2686						DRM_BRIDGE_OP_DETECT;
  2687		platform->bridge.type = platform->pdata.panel_bridge ?
  2688					    DRM_MODE_CONNECTOR_eDP :
  2689					    DRM_MODE_CONNECTOR_DisplayPort;
  2690	
  2691		drm_bridge_add(&platform->bridge);
  2692	
  2693		if (!platform->pdata.is_dpi) {
  2694			ret = anx7625_attach_dsi(platform);
  2695			if (ret) {
  2696				DRM_DEV_ERROR(dev, "Fail to attach to dsi : %d\n", ret);
  2697				goto unregister_bridge;
  2698			}
  2699		}
  2700	
  2701		if (platform->pdata.audio_en)
  2702			anx7625_register_audio(dev, platform);
  2703	
  2704		DRM_DEV_DEBUG_DRIVER(dev, "probe done\n");
  2705	
  2706		return 0;
  2707	
  2708	unregister_bridge:
  2709		drm_bridge_remove(&platform->bridge);
  2710	
  2711		if (!platform->pdata.low_power_mode)
  2712			pm_runtime_put_sync_suspend(&client->dev);
  2713	
  2714		anx7625_unregister_i2c_dummy_clients(platform);
  2715	
  2716	free_wq:
  2717		if (platform->workqueue)
  2718			destroy_workqueue(platform->workqueue);
  2719	
  2720	free_hdcp_wq:
  2721		if (platform->hdcp_workqueue)
  2722			destroy_workqueue(platform->hdcp_workqueue);
  2723	
  2724		return ret;
  2725	}
  2726	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Hsin-Yi Wang <hsinyi@chromium.org>,
	Robert Foss <robert.foss@linaro.org>,
	Rob Herring <robh+dt@kernel.org>, Xin Ji <xji@analogixsemi.com>
Cc: devicetree@vger.kernel.org, kbuild-all@lists.01.org,
	David Airlie <airlied@linux.ie>,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	Andrzej Hajda <a.hajda@samsung.com>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Subject: Re: [PATCH v5 3/4] drm/bridge: anx7625: Support reading edid through aux channel
Date: Thu, 20 Jan 2022 12:29:04 +0800	[thread overview]
Message-ID: <202201201223.sts9AtBC-lkp@intel.com> (raw)
In-Reply-To: <20220119151751.986185-3-hsinyi@chromium.org>

Hi Hsin-Yi,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-tip/drm-tip]
[cannot apply to drm/drm-next robh/for-next drm-intel/for-linux-next v5.16 next-20220118]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Hsin-Yi-Wang/drm-bridge-anx7625-send-DPCD-command-to-downstream/20220119-231952
base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: i386-randconfig-r024-20220117 (https://download.01.org/0day-ci/archive/20220120/202201201223.sts9AtBC-lkp@intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://github.com/0day-ci/linux/commit/61809df270082584886188b067ee19744f4b35e1
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Hsin-Yi-Wang/drm-bridge-anx7625-send-DPCD-command-to-downstream/20220119-231952
        git checkout 61809df270082584886188b067ee19744f4b35e1
        # save the config file to linux build tree
        mkdir build_dir
        make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   ld: drivers/gpu/drm/bridge/analogix/anx7625.o: in function `anx7625_i2c_probe':
>> drivers/gpu/drm/bridge/analogix/anx7625.c:2648: undefined reference to `devm_of_dp_aux_populate_ep_devices'


vim +2648 drivers/gpu/drm/bridge/analogix/anx7625.c

  2574	
  2575	static int anx7625_i2c_probe(struct i2c_client *client,
  2576				     const struct i2c_device_id *id)
  2577	{
  2578		struct anx7625_data *platform;
  2579		struct anx7625_platform_data *pdata;
  2580		int ret = 0;
  2581		struct device *dev = &client->dev;
  2582	
  2583		if (!i2c_check_functionality(client->adapter,
  2584					     I2C_FUNC_SMBUS_I2C_BLOCK)) {
  2585			DRM_DEV_ERROR(dev, "anx7625's i2c bus doesn't support\n");
  2586			return -ENODEV;
  2587		}
  2588	
  2589		platform = devm_kzalloc(dev, sizeof(*platform), GFP_KERNEL);
  2590		if (!platform) {
  2591			DRM_DEV_ERROR(dev, "fail to allocate driver data\n");
  2592			return -ENOMEM;
  2593		}
  2594	
  2595		pdata = &platform->pdata;
  2596	
  2597		platform->client = client;
  2598		i2c_set_clientdata(client, platform);
  2599	
  2600		pdata->supplies[0].supply = "vdd10";
  2601		pdata->supplies[1].supply = "vdd18";
  2602		pdata->supplies[2].supply = "vdd33";
  2603		ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(pdata->supplies),
  2604					      pdata->supplies);
  2605		if (ret) {
  2606			DRM_DEV_ERROR(dev, "fail to get power supplies: %d\n", ret);
  2607			return ret;
  2608		}
  2609		anx7625_init_gpio(platform);
  2610	
  2611		mutex_init(&platform->lock);
  2612		mutex_init(&platform->hdcp_wq_lock);
  2613	
  2614		INIT_DELAYED_WORK(&platform->hdcp_work, hdcp_check_work_func);
  2615		platform->hdcp_workqueue = create_workqueue("hdcp workqueue");
  2616		if (!platform->hdcp_workqueue) {
  2617			dev_err(dev, "fail to create work queue\n");
  2618			ret = -ENOMEM;
  2619			return ret;
  2620		}
  2621	
  2622		platform->pdata.intp_irq = client->irq;
  2623		if (platform->pdata.intp_irq) {
  2624			INIT_WORK(&platform->work, anx7625_work_func);
  2625			platform->workqueue = alloc_workqueue("anx7625_work",
  2626							      WQ_FREEZABLE | WQ_MEM_RECLAIM, 1);
  2627			if (!platform->workqueue) {
  2628				DRM_DEV_ERROR(dev, "fail to create work queue\n");
  2629				ret = -ENOMEM;
  2630				goto free_hdcp_wq;
  2631			}
  2632	
  2633			ret = devm_request_threaded_irq(dev, platform->pdata.intp_irq,
  2634							NULL, anx7625_intr_hpd_isr,
  2635							IRQF_TRIGGER_FALLING |
  2636							IRQF_ONESHOT,
  2637							"anx7625-intp", platform);
  2638			if (ret) {
  2639				DRM_DEV_ERROR(dev, "fail to request irq\n");
  2640				goto free_wq;
  2641			}
  2642		}
  2643	
  2644		platform->aux.name = "anx7625-aux";
  2645		platform->aux.dev = dev;
  2646		platform->aux.transfer = anx7625_aux_transfer;
  2647		drm_dp_aux_init(&platform->aux);
> 2648		devm_of_dp_aux_populate_ep_devices(&platform->aux);
  2649	
  2650		ret = anx7625_parse_dt(dev, pdata);
  2651		if (ret) {
  2652			if (ret != -EPROBE_DEFER)
  2653				DRM_DEV_ERROR(dev, "fail to parse DT : %d\n", ret);
  2654			return ret;
  2655		}
  2656	
  2657		if (anx7625_register_i2c_dummy_clients(platform, client) != 0) {
  2658			ret = -ENOMEM;
  2659			DRM_DEV_ERROR(dev, "fail to reserve I2C bus.\n");
  2660			goto free_wq;
  2661		}
  2662	
  2663		pm_runtime_enable(dev);
  2664		pm_runtime_set_autosuspend_delay(dev, 1000);
  2665		pm_runtime_use_autosuspend(dev);
  2666		pm_suspend_ignore_children(dev, true);
  2667		ret = devm_add_action_or_reset(dev, anx7625_runtime_disable, dev);
  2668		if (ret)
  2669			return ret;
  2670	
  2671		if (!platform->pdata.low_power_mode) {
  2672			anx7625_disable_pd_protocol(platform);
  2673			pm_runtime_get_sync(dev);
  2674		}
  2675	
  2676		/* Add work function */
  2677		if (platform->pdata.intp_irq)
  2678			queue_work(platform->workqueue, &platform->work);
  2679	
  2680		platform->bridge.funcs = &anx7625_bridge_funcs;
  2681		platform->bridge.of_node = client->dev.of_node;
  2682		if (!anx7625_of_panel_on_aux_bus(&client->dev))
  2683			platform->bridge.ops |= DRM_BRIDGE_OP_EDID;
  2684		if (!platform->pdata.panel_bridge)
  2685			platform->bridge.ops |= DRM_BRIDGE_OP_HPD |
  2686						DRM_BRIDGE_OP_DETECT;
  2687		platform->bridge.type = platform->pdata.panel_bridge ?
  2688					    DRM_MODE_CONNECTOR_eDP :
  2689					    DRM_MODE_CONNECTOR_DisplayPort;
  2690	
  2691		drm_bridge_add(&platform->bridge);
  2692	
  2693		if (!platform->pdata.is_dpi) {
  2694			ret = anx7625_attach_dsi(platform);
  2695			if (ret) {
  2696				DRM_DEV_ERROR(dev, "Fail to attach to dsi : %d\n", ret);
  2697				goto unregister_bridge;
  2698			}
  2699		}
  2700	
  2701		if (platform->pdata.audio_en)
  2702			anx7625_register_audio(dev, platform);
  2703	
  2704		DRM_DEV_DEBUG_DRIVER(dev, "probe done\n");
  2705	
  2706		return 0;
  2707	
  2708	unregister_bridge:
  2709		drm_bridge_remove(&platform->bridge);
  2710	
  2711		if (!platform->pdata.low_power_mode)
  2712			pm_runtime_put_sync_suspend(&client->dev);
  2713	
  2714		anx7625_unregister_i2c_dummy_clients(platform);
  2715	
  2716	free_wq:
  2717		if (platform->workqueue)
  2718			destroy_workqueue(platform->workqueue);
  2719	
  2720	free_hdcp_wq:
  2721		if (platform->hdcp_workqueue)
  2722			destroy_workqueue(platform->hdcp_workqueue);
  2723	
  2724		return ret;
  2725	}
  2726	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v5 3/4] drm/bridge: anx7625: Support reading edid through aux channel
Date: Thu, 20 Jan 2022 12:29:04 +0800	[thread overview]
Message-ID: <202201201223.sts9AtBC-lkp@intel.com> (raw)
In-Reply-To: <20220119151751.986185-3-hsinyi@chromium.org>

[-- Attachment #1: Type: text/plain, Size: 7055 bytes --]

Hi Hsin-Yi,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-tip/drm-tip]
[cannot apply to drm/drm-next robh/for-next drm-intel/for-linux-next v5.16 next-20220118]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Hsin-Yi-Wang/drm-bridge-anx7625-send-DPCD-command-to-downstream/20220119-231952
base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: i386-randconfig-r024-20220117 (https://download.01.org/0day-ci/archive/20220120/202201201223.sts9AtBC-lkp(a)intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://github.com/0day-ci/linux/commit/61809df270082584886188b067ee19744f4b35e1
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Hsin-Yi-Wang/drm-bridge-anx7625-send-DPCD-command-to-downstream/20220119-231952
        git checkout 61809df270082584886188b067ee19744f4b35e1
        # save the config file to linux build tree
        mkdir build_dir
        make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   ld: drivers/gpu/drm/bridge/analogix/anx7625.o: in function `anx7625_i2c_probe':
>> drivers/gpu/drm/bridge/analogix/anx7625.c:2648: undefined reference to `devm_of_dp_aux_populate_ep_devices'


vim +2648 drivers/gpu/drm/bridge/analogix/anx7625.c

  2574	
  2575	static int anx7625_i2c_probe(struct i2c_client *client,
  2576				     const struct i2c_device_id *id)
  2577	{
  2578		struct anx7625_data *platform;
  2579		struct anx7625_platform_data *pdata;
  2580		int ret = 0;
  2581		struct device *dev = &client->dev;
  2582	
  2583		if (!i2c_check_functionality(client->adapter,
  2584					     I2C_FUNC_SMBUS_I2C_BLOCK)) {
  2585			DRM_DEV_ERROR(dev, "anx7625's i2c bus doesn't support\n");
  2586			return -ENODEV;
  2587		}
  2588	
  2589		platform = devm_kzalloc(dev, sizeof(*platform), GFP_KERNEL);
  2590		if (!platform) {
  2591			DRM_DEV_ERROR(dev, "fail to allocate driver data\n");
  2592			return -ENOMEM;
  2593		}
  2594	
  2595		pdata = &platform->pdata;
  2596	
  2597		platform->client = client;
  2598		i2c_set_clientdata(client, platform);
  2599	
  2600		pdata->supplies[0].supply = "vdd10";
  2601		pdata->supplies[1].supply = "vdd18";
  2602		pdata->supplies[2].supply = "vdd33";
  2603		ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(pdata->supplies),
  2604					      pdata->supplies);
  2605		if (ret) {
  2606			DRM_DEV_ERROR(dev, "fail to get power supplies: %d\n", ret);
  2607			return ret;
  2608		}
  2609		anx7625_init_gpio(platform);
  2610	
  2611		mutex_init(&platform->lock);
  2612		mutex_init(&platform->hdcp_wq_lock);
  2613	
  2614		INIT_DELAYED_WORK(&platform->hdcp_work, hdcp_check_work_func);
  2615		platform->hdcp_workqueue = create_workqueue("hdcp workqueue");
  2616		if (!platform->hdcp_workqueue) {
  2617			dev_err(dev, "fail to create work queue\n");
  2618			ret = -ENOMEM;
  2619			return ret;
  2620		}
  2621	
  2622		platform->pdata.intp_irq = client->irq;
  2623		if (platform->pdata.intp_irq) {
  2624			INIT_WORK(&platform->work, anx7625_work_func);
  2625			platform->workqueue = alloc_workqueue("anx7625_work",
  2626							      WQ_FREEZABLE | WQ_MEM_RECLAIM, 1);
  2627			if (!platform->workqueue) {
  2628				DRM_DEV_ERROR(dev, "fail to create work queue\n");
  2629				ret = -ENOMEM;
  2630				goto free_hdcp_wq;
  2631			}
  2632	
  2633			ret = devm_request_threaded_irq(dev, platform->pdata.intp_irq,
  2634							NULL, anx7625_intr_hpd_isr,
  2635							IRQF_TRIGGER_FALLING |
  2636							IRQF_ONESHOT,
  2637							"anx7625-intp", platform);
  2638			if (ret) {
  2639				DRM_DEV_ERROR(dev, "fail to request irq\n");
  2640				goto free_wq;
  2641			}
  2642		}
  2643	
  2644		platform->aux.name = "anx7625-aux";
  2645		platform->aux.dev = dev;
  2646		platform->aux.transfer = anx7625_aux_transfer;
  2647		drm_dp_aux_init(&platform->aux);
> 2648		devm_of_dp_aux_populate_ep_devices(&platform->aux);
  2649	
  2650		ret = anx7625_parse_dt(dev, pdata);
  2651		if (ret) {
  2652			if (ret != -EPROBE_DEFER)
  2653				DRM_DEV_ERROR(dev, "fail to parse DT : %d\n", ret);
  2654			return ret;
  2655		}
  2656	
  2657		if (anx7625_register_i2c_dummy_clients(platform, client) != 0) {
  2658			ret = -ENOMEM;
  2659			DRM_DEV_ERROR(dev, "fail to reserve I2C bus.\n");
  2660			goto free_wq;
  2661		}
  2662	
  2663		pm_runtime_enable(dev);
  2664		pm_runtime_set_autosuspend_delay(dev, 1000);
  2665		pm_runtime_use_autosuspend(dev);
  2666		pm_suspend_ignore_children(dev, true);
  2667		ret = devm_add_action_or_reset(dev, anx7625_runtime_disable, dev);
  2668		if (ret)
  2669			return ret;
  2670	
  2671		if (!platform->pdata.low_power_mode) {
  2672			anx7625_disable_pd_protocol(platform);
  2673			pm_runtime_get_sync(dev);
  2674		}
  2675	
  2676		/* Add work function */
  2677		if (platform->pdata.intp_irq)
  2678			queue_work(platform->workqueue, &platform->work);
  2679	
  2680		platform->bridge.funcs = &anx7625_bridge_funcs;
  2681		platform->bridge.of_node = client->dev.of_node;
  2682		if (!anx7625_of_panel_on_aux_bus(&client->dev))
  2683			platform->bridge.ops |= DRM_BRIDGE_OP_EDID;
  2684		if (!platform->pdata.panel_bridge)
  2685			platform->bridge.ops |= DRM_BRIDGE_OP_HPD |
  2686						DRM_BRIDGE_OP_DETECT;
  2687		platform->bridge.type = platform->pdata.panel_bridge ?
  2688					    DRM_MODE_CONNECTOR_eDP :
  2689					    DRM_MODE_CONNECTOR_DisplayPort;
  2690	
  2691		drm_bridge_add(&platform->bridge);
  2692	
  2693		if (!platform->pdata.is_dpi) {
  2694			ret = anx7625_attach_dsi(platform);
  2695			if (ret) {
  2696				DRM_DEV_ERROR(dev, "Fail to attach to dsi : %d\n", ret);
  2697				goto unregister_bridge;
  2698			}
  2699		}
  2700	
  2701		if (platform->pdata.audio_en)
  2702			anx7625_register_audio(dev, platform);
  2703	
  2704		DRM_DEV_DEBUG_DRIVER(dev, "probe done\n");
  2705	
  2706		return 0;
  2707	
  2708	unregister_bridge:
  2709		drm_bridge_remove(&platform->bridge);
  2710	
  2711		if (!platform->pdata.low_power_mode)
  2712			pm_runtime_put_sync_suspend(&client->dev);
  2713	
  2714		anx7625_unregister_i2c_dummy_clients(platform);
  2715	
  2716	free_wq:
  2717		if (platform->workqueue)
  2718			destroy_workqueue(platform->workqueue);
  2719	
  2720	free_hdcp_wq:
  2721		if (platform->hdcp_workqueue)
  2722			destroy_workqueue(platform->hdcp_workqueue);
  2723	
  2724		return ret;
  2725	}
  2726	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

  parent reply	other threads:[~2022-01-20  4:29 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-19 15:17 [PATCH v5 1/4] drm/bridge: anx7625: send DPCD command to downstream Hsin-Yi Wang
2022-01-19 15:17 ` Hsin-Yi Wang
2022-01-19 15:17 ` [PATCH v5 2/4] drm/bridge: anx7625: Convert to use devm_kzalloc Hsin-Yi Wang
2022-01-19 15:17   ` Hsin-Yi Wang
2022-01-19 15:17 ` [PATCH v5 3/4] drm/bridge: anx7625: Support reading edid through aux channel Hsin-Yi Wang
2022-01-19 15:17   ` Hsin-Yi Wang
2022-01-20  3:27   ` kernel test robot
2022-01-20  3:27     ` kernel test robot
2022-01-20  3:27     ` kernel test robot
2022-01-20  4:29   ` kernel test robot [this message]
2022-01-20  4:29     ` kernel test robot
2022-01-20  4:29     ` kernel test robot
2022-01-19 15:17 ` [PATCH v5 4/4] dt-bindings: drm/bridge: anx7625: Add aux-bus node Hsin-Yi Wang
2022-01-19 15:17   ` Hsin-Yi Wang
2022-01-19 15:35   ` Robert Foss
2022-01-19 15:35     ` Robert Foss
2022-01-25  6:25     ` Hsin-Yi Wang
2022-01-25  6:25       ` Hsin-Yi Wang
2022-01-27  3:39       ` Hsin-Yi Wang
2022-01-27  3:39         ` Hsin-Yi Wang
2022-01-19 15:38 ` [PATCH v5 1/4] drm/bridge: anx7625: send DPCD command to downstream Robert Foss
2022-01-19 15:38   ` Robert Foss
2022-01-19 17:02   ` Hsin-Yi Wang
2022-01-19 17:02     ` Hsin-Yi Wang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202201201223.sts9AtBC-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=a.hajda@samsung.com \
    --cc=airlied@linux.ie \
    --cc=daniel@ffwll.ch \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hsinyi@chromium.org \
    --cc=kbuild-all@lists.01.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robert.foss@linaro.org \
    --cc=robh+dt@kernel.org \
    --cc=xji@analogixsemi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.