From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out198-19.us.a.mail.aliyun.com (out198-19.us.a.mail.aliyun.com [47.90.198.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 14022248891 for ; Tue, 25 Nov 2025 03:31:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=47.90.198.19 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764041490; cv=none; b=WauhuIg/HXM5oKNEJ4eymIeTiYkZhVYGWapA6z2bksvR/xbvka8RVRSgzlDn70Qpyo5odTspFere0pdS0uTef/gQ6ipPZJ0pKLm0VCWMTip9i1jDQbSJMFxgBLj5T3G0iYyo/M5XTyF/duMlMFtzXnJ+YkRCsxYoyh+tH0SQqyc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764041490; c=relaxed/simple; bh=lvoCe7do9mfDxMnlAM6pvMUSs5usZqqHmB04WjwdNeg=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=fmWepvOn0q0GWyOpzcbyAhc4NM/5n7ybjMMF+OOe44CDLq9+937wLZ0+JqEz4yXo8PzDmdo8EuNALG0NnQdGBrPdqhG0cOU6TOEWgU+4cEZxcPMyyTvIeMYX1q6eE0bswwaJZ9+y1AGuuD99ffszjj6gvoSWi63/x2uFUoYdKrs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bosc.ac.cn; spf=pass smtp.mailfrom=bosc.ac.cn; arc=none smtp.client-ip=47.90.198.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bosc.ac.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bosc.ac.cn Received: from 172.38.10.120(mailfrom:zhangzhijie@bosc.ac.cn fp:SMTPD_---.fV56p1x_1764041465 cluster:ay29) by smtp.aliyun-inc.com; Tue, 25 Nov 2025 11:31:06 +0800 Message-ID: <16876d5f-311e-4c06-ad8a-e05b4a240aba@bosc.ac.cn> Date: Tue, 25 Nov 2025 11:31:04 +0800 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] i915: Support Intel GPU porting on any non-x86 system. To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: jani.nikula@linux.intel.com, jeff@jeffgeerling.com, wangran@bosc.ac.cn, zhangjian@bosc.ac.cn, daniel@ffwll.ch, rodrigo.vivi@intel.com, joonas.lahtinen@linux.intel.com, tursulin@ursulin.net, airlied@gmail.com, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org References: <20251124065612.1920389-1-zhangzhijie@bosc.ac.cn> Content-Language: en-US From: ZhangZhiJie In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 2025/11/25 05:05, Ville Syrjälä wrote: > On Mon, Nov 24, 2025 at 02:56:12PM +0800, zhangzhijie wrote: >> inb/outb speccial wire not support on other ARCH. >> Should detect whether arch platform support or not. >> >> Signed-off-by: zhangzhijie >> --- >> drivers/gpu/drm/i915/display/intel_vga.c | 27 ++++++++++++++++++------ >> 1 file changed, 20 insertions(+), 7 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/display/intel_vga.c b/drivers/gpu/drm/i915/display/intel_vga.c >> index 6e125564db34..d5d6c4ba6434 100644 >> --- a/drivers/gpu/drm/i915/display/intel_vga.c >> +++ b/drivers/gpu/drm/i915/display/intel_vga.c >> @@ -41,6 +41,15 @@ static bool has_vga_pipe_sel(struct intel_display *display) >> return DISPLAY_VER(display) < 7; >> } >> >> +static bool intel_arch_support_vga_pm(struct intel_display *display) > > whatis "pm"? I'd wana to power-manage . or can using better function name > >> +{ >> +#if defined(CONFIG_X86) || defined(CONFIG_X86_64) >> + return true; >> +#else >> + return false; >> +#endif > > Isn't there already some kind of ARCH_HAS_PORTIO thing? > Does that not work? > configs had HAS_IOPORT, But non-x86 arch not support ioport for VGA_SEQ_* >> +} >> + >> /* Disable the VGA plane that we never use */ >> void intel_vga_disable(struct intel_display *display) >> { >> @@ -66,11 +75,13 @@ void intel_vga_disable(struct intel_display *display) >> > > I wouldn't expect us to get this far. The VGA plane should > never have been enabled in the first place. > >> /* WaEnableVGAAccessThroughIOPort:ctg,elk,ilk,snb,ivb,vlv,hsw */ >> vga_get_uninterruptible(pdev, VGA_RSRC_LEGACY_IO); > > Why are you leaving the vga_get() outside the check? > Sorry forgot , I will take new patch for fix this misstake >> - outb(0x01, VGA_SEQ_I); >> - sr1 = inb(VGA_SEQ_D); >> - outb(sr1 | VGA_SR01_SCREEN_OFF, VGA_SEQ_D); >> - vga_put(pdev, VGA_RSRC_LEGACY_IO); >> - udelay(300); >> + if (likely(intel_arch_support_vga_pm(display))) { >> + outb(0x01, VGA_SEQ_I); >> + sr1 = inb(VGA_SEQ_D); >> + outb(sr1 | VGA_SR01_SCREEN_OFF, VGA_SEQ_D); >> + vga_put(pdev, VGA_RSRC_LEGACY_IO); >> + udelay(300); >> + } >> >> intel_de_write(display, vga_reg, VGA_DISP_DISABLE); >> intel_de_posting_read(display, vga_reg); >> @@ -91,8 +102,10 @@ void intel_vga_reset_io_mem(struct intel_display *display) >> * and error messages. >> */ >> vga_get_uninterruptible(pdev, VGA_RSRC_LEGACY_IO); >> - outb(inb(VGA_MIS_R), VGA_MIS_W); >> - vga_put(pdev, VGA_RSRC_LEGACY_IO); >> + if (likely(intel_arch_support_vga_pm(display))) { >> + outb(inb(VGA_MIS_R), VGA_MIS_W); >> + vga_put(pdev, VGA_RSRC_LEGACY_IO); >> + } >> } >> >> int intel_vga_register(struct intel_display *display) >> -- >> 2.34.1 >