lkml.org 
[lkml]   [2022]   [Aug]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v7 01/15] drm/i915/gsc: skip irq initialization if using polling
    Date
    From: Vitaly Lubart <vitaly.lubart@intel.com>

    Some platforms require the host to poll on the
    GSC registers instead of relaying on the interrupts.
    For those platforms, irq initialization should be skipped

    Signed-off-by: Vitaly Lubart <vitaly.lubart@intel.com>
    Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
    Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
    Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
    ---
    drivers/gpu/drm/i915/gt/intel_gsc.c | 10 +++++++---
    1 file changed, 7 insertions(+), 3 deletions(-)

    diff --git a/drivers/gpu/drm/i915/gt/intel_gsc.c b/drivers/gpu/drm/i915/gt/intel_gsc.c
    index 0e494028b81d..e0236ff1d072 100644
    --- a/drivers/gpu/drm/i915/gt/intel_gsc.c
    +++ b/drivers/gpu/drm/i915/gt/intel_gsc.c
    @@ -40,6 +40,7 @@ struct gsc_def {
    const char *name;
    unsigned long bar;
    size_t bar_size;
    + bool use_polling;
    };

    /* gsc resources and definitions (HECI1 and HECI2) */
    @@ -117,6 +118,10 @@ static void gsc_init_one(struct drm_i915_private *i915,
    return;
    }

    + /* skip irq initialization */
    + if (def->use_polling)
    + goto add_device;
    +
    intf->irq = irq_alloc_desc(0);
    if (intf->irq < 0) {
    drm_err(&i915->drm, "gsc irq error %d\n", intf->irq);
    @@ -129,6 +134,7 @@ static void gsc_init_one(struct drm_i915_private *i915,
    goto fail;
    }

    +add_device:
    adev = kzalloc(sizeof(*adev), GFP_KERNEL);
    if (!adev)
    goto fail;
    @@ -182,10 +188,8 @@ static void gsc_irq_handler(struct intel_gt *gt, unsigned int intf_id)
    return;
    }

    - if (gt->gsc.intf[intf_id].irq < 0) {
    - drm_err_ratelimited(&gt->i915->drm, "GSC irq: irq not set");
    + if (gt->gsc.intf[intf_id].irq < 0)
    return;
    - }

    ret = generic_handle_irq(gt->gsc.intf[intf_id].irq);
    if (ret)
    --
    2.37.1
    \
     
     \ /
      Last update: 2022-08-06 14:27    [W:4.282 / U:0.344 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site