From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Jani Nikula <jani.nikula@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH 8/9] drm/i915: move more display related probe/remove stuff to display
Date: Tue, 4 Feb 2020 17:11:50 +0200 [thread overview]
Message-ID: <20200204151149.GX13686@intel.com> (raw)
In-Reply-To: <49a456dcf0de7c799dcbab77e830fcc367d6ed9f.1580823606.git.jani.nikula@intel.com>
On Tue, Feb 04, 2020 at 03:42:27PM +0200, Jani Nikula wrote:
> With the intel_display_* prove/remove functions clarified, we can
"probe", though I wouldn't mind functions that prove the
display code/hw works ;)
> continue with moving more related calls to the right layer:
>
> - drm_vblank_init()
> - intel_bios_init() and intel_bios_driver_remove()
> - intel_vga_register() and intel_vga_unregister()
> - intel_csr_ucode_init() and intel_csr_ucode_fini()
>
> Unfortunately, for the time being, we also need to move a call to the
> *wrong* layer: the power domain init.
>
> v2: move probe failure while at it, power domain init
>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_display.c | 31 ++++++++++++++++
> drivers/gpu/drm/i915/i915_drv.c | 39 +-------------------
> 2 files changed, 32 insertions(+), 38 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 39c12a608103..bf99964d8e4c 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -66,6 +66,7 @@
> #include "intel_bw.h"
> #include "intel_cdclk.h"
> #include "intel_color.h"
> +#include "intel_csr.h"
> #include "intel_display_types.h"
> #include "intel_dp_link_training.h"
> #include "intel_fbc.h"
> @@ -17859,6 +17860,27 @@ int intel_modeset_init_noirq(struct drm_i915_private *i915)
> {
> int ret;
>
> + if (i915_inject_probe_failure(i915))
> + return -ENODEV;
> +
> + if (HAS_DISPLAY(i915) && INTEL_DISPLAY_ENABLED(i915)) {
> + ret = drm_vblank_init(&i915->drm,
> + INTEL_NUM_PIPES(i915));
> + if (ret)
> + goto out;
> + }
> +
> + intel_bios_init(i915);
> +
> + ret = intel_vga_register(i915);
> + if (ret)
> + goto out;
> +
> + /* FIXME: completely on the wrong abstraction layer */
> + intel_power_domains_init_hw(i915, false);
> +
> + intel_csr_ucode_init(i915);
> +
> i915->modeset_wq = alloc_ordered_workqueue("i915_modeset", 0);
> i915->flip_wq = alloc_workqueue("i915_flip", WQ_HIGHPRI |
> WQ_UNBOUND, WQ_UNBOUND_MAX_ACTIVE);
> @@ -17882,6 +17904,9 @@ int intel_modeset_init_noirq(struct drm_i915_private *i915)
> intel_fbc_init(i915);
>
> return 0;
> +
> +out:
> + return ret;
Empty label seems a bit pointless. But I guess we're at least missing a
intel_bios_driver_remove() call here. Hmm, the remove doesn't seem to be
the reverse of this either. Oh well.
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> }
>
> /* part #2: call after irq install, but before gem init */
> @@ -18905,6 +18930,12 @@ void intel_modeset_driver_remove_noirq(struct drm_i915_private *i915)
> destroy_workqueue(i915->modeset_wq);
>
> intel_fbc_cleanup_cfb(i915);
> +
> + intel_bios_driver_remove(i915);
> +
> + intel_vga_unregister(i915);
> +
> + intel_csr_ucode_fini(i915);
> }
>
> #if IS_ENABLED(CONFIG_DRM_I915_CAPTURE_ERROR)
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 21f07709dc9e..fca693ad6cd7 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -275,38 +275,7 @@ intel_teardown_mchbar(struct drm_i915_private *dev_priv)
> /* part #1: call before irq install */
> static int i915_driver_modeset_probe_noirq(struct drm_i915_private *i915)
> {
> - int ret;
> -
> - if (i915_inject_probe_failure(i915))
> - return -ENODEV;
> -
> - if (HAS_DISPLAY(i915) && INTEL_DISPLAY_ENABLED(i915)) {
> - ret = drm_vblank_init(&i915->drm,
> - INTEL_NUM_PIPES(i915));
> - if (ret)
> - goto out;
> - }
> -
> - intel_bios_init(i915);
> -
> - ret = intel_vga_register(i915);
> - if (ret)
> - goto out;
> -
> - intel_power_domains_init_hw(i915, false);
> -
> - intel_csr_ucode_init(i915);
> -
> - ret = intel_modeset_init_noirq(i915);
> - if (ret)
> - goto cleanup_vga_client;
> -
> - return 0;
> -
> -cleanup_vga_client:
> - intel_vga_unregister(i915);
> -out:
> - return ret;
> + return intel_modeset_init_noirq(i915);
> }
>
> /* part #2: call after irq install */
> @@ -353,12 +322,6 @@ static void i915_driver_modeset_remove(struct drm_i915_private *i915)
> static void i915_driver_modeset_remove_noirq(struct drm_i915_private *i915)
> {
> intel_modeset_driver_remove_noirq(i915);
> -
> - intel_bios_driver_remove(i915);
> -
> - intel_vga_unregister(i915);
> -
> - intel_csr_ucode_fini(i915);
> }
>
> static void intel_init_dpio(struct drm_i915_private *dev_priv)
> --
> 2.20.1
--
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2020-02-04 15:11 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-04 13:42 [Intel-gfx] [PATCH 0/9] drm/i915: modeset probe/remove cleanup, again Jani Nikula
2020-02-04 13:42 ` [Intel-gfx] [PATCH 1/9] drm/i915: register vga switcheroo later, unregister earlier Jani Nikula
2020-02-04 13:42 ` [Intel-gfx] [PATCH 2/9] drm/i915: switch i915_driver_probe() to use i915 local variable Jani Nikula
2020-02-04 13:42 ` [Intel-gfx] [PATCH 3/9] drm/i915: split intel_modeset_driver_remove() to pre/post irq uninstall Jani Nikula
2020-02-04 14:46 ` Ville Syrjälä
2020-02-04 13:42 ` [Intel-gfx] [PATCH 4/9] drm/i915: split i915_driver_modeset_remove() " Jani Nikula
2020-02-04 14:49 ` Ville Syrjälä
2020-02-04 13:42 ` [Intel-gfx] [PATCH 5/9] drm/i915: split i915_driver_modeset_probe() to pre/post irq install Jani Nikula
2020-02-04 14:53 ` Ville Syrjälä
2020-02-04 13:42 ` [Intel-gfx] [PATCH 6/9] drm/i915: split intel_modeset_init() " Jani Nikula
2020-02-04 14:59 ` Ville Syrjälä
2020-02-04 13:42 ` [Intel-gfx] [PATCH 7/9] drm/i915: split intel_modeset_init() pre/post gem init Jani Nikula
2020-02-04 15:05 ` Ville Syrjälä
2020-02-04 13:42 ` [Intel-gfx] [PATCH 8/9] drm/i915: move more display related probe/remove stuff to display Jani Nikula
2020-02-04 15:11 ` Ville Syrjälä [this message]
2020-02-04 13:42 ` [Intel-gfx] [PATCH 9/9] drm/i915: remove the now redundant i915_driver_modeset_* call layer Jani Nikula
2020-02-04 15:16 ` Ville Syrjälä
2020-02-05 1:42 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: modeset probe/remove cleanup, again Patchwork
2020-02-05 2:05 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
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=20200204151149.GX13686@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@intel.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.