From: suijingfeng <suijingfeng@loongson.cn>
To: Bjorn Helgaas <helgaas@kernel.org>,
Sui Jingfeng <sui.jingfeng@linux.dev>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
David Airlie <airlied@gmail.com>, Daniel Vetter <daniel@ffwll.ch>,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
dri-devel@lists.freedesktop.org,
loongson-kernel@lists.loongnix.cn,
Mario Limonciello <mario.limonciello@amd.com>
Subject: Re: [PATCH 2/6] PCI/VGA: Deal with PCI VGA compatible devices only
Date: Sat, 22 Jul 2023 16:11:07 +0800 [thread overview]
Message-ID: <ee44ec4e-df97-c327-b83b-fe56eb2c120b@loongson.cn> (raw)
In-Reply-To: <20230719182617.GA509912@bhelgaas>
Hi,
On 2023/7/20 02:26, Bjorn Helgaas wrote:
> Optimization is fine, but the most important thing here is to be clear
> about what functional change this patch makes. As I mentioned at [1],
> if this patch affects the class codes accepted, please make that clear
> here.
>
>> Reviewed-by: Mario Limonciello<mario.limonciello@amd.com>
>> Signed-off-by: Sui Jingfeng<suijingfeng@loongson.cn>
> I do not see Mario's Reviewed-by on the list. I do see Mario's
> Reviewed-by [2] for a previous version, but that version added this in
> pci_notify():
>
> + if (pdev->class != PCI_CLASS_DISPLAY_VGA << 8)
> + return 0;
>
> while this version adds:
>
> + if ((pdev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
> + return 0;
>
> It's OK to carry a review to future versions if there are
> insignificant changes, but this is a functional change that seems
> significant to me. The first matches only 0x030000, while the second
> discards the low eight bits so it matches 0x0300XX.
>
> [1]https://lore.kernel.org/r/20230718231400.GA496927@bhelgaas
> [2]https://lore.kernel.org/all/5b6fdf65-b354-94a9-f883-be820157efad@amd.com/
>
Yes, you are right. As you already told me at [1]:
According to the "PCI Code and ID Assignment" spec, r1.15, sec 1.4,
only mentions 0x0300 programming interface 0x00 as decoding
the legacy VGA addresses.
If the programming interface is 0x01, then it is a 8514-compatible
controller.
It is petty old card, about 30 years old(I think, it is nearly obsolete
for now).
I never have a chance to see such a card in real life.
Yes, we should adopt first matches method here. That is:
+ if (pdev->class != PCI_CLASS_DISPLAY_VGA << 8)
+ return 0;
It seems that we are more rigorous to deal the VGA-compatible devices as
illustrated by above code here.
But who the still have that card (8514-compatible) and the hardware to
using such a card today ?
Please consider that the pci_dev_attrs_are_visible() function[3] also
ignore the
programming interface (the least significant 8 bits).
Therefore, at this version of my vgaarb cleanup patch set.
I choose to keep the original filtering rule,
but do the necessary optimization only which I think is meaningful.
In the future, we may want to expand VGAARB to deal all PCI display
class devices, with another patch.
if (pdev->class >> 16 == PCI_BASE_CLASS_DISPLAY)
// accept
else
// return immediately.
Then, we will have a more good chance to clarify the programmer interface.
Is this explanation feasible and reasonable, Bjorn and Mario ?
[3]
https://elixir.bootlin.com/linux/latest/source/drivers/pci/pci-sysfs.c#L1551
next prev parent reply other threads:[~2023-07-22 8:11 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-11 13:43 [PATCH 0/6] PCI/VGA: Fix typos, comments and copyright Sui Jingfeng
2023-07-11 13:43 ` [PATCH 1/6] PCI/VGA: Use unsigned type for the io_state variable Sui Jingfeng
2023-07-11 13:43 ` [PATCH 2/6] PCI/VGA: Deal with PCI VGA compatible devices only Sui Jingfeng
2023-07-19 18:26 ` Bjorn Helgaas
2023-07-19 19:58 ` Sui Jingfeng
2023-07-19 20:06 ` suijingfeng
2023-07-19 20:08 ` suijingfeng
2023-07-19 20:16 ` suijingfeng
2023-07-19 21:13 ` Sui Jingfeng
2023-07-19 21:27 ` suijingfeng
2023-07-22 8:11 ` suijingfeng [this message]
2023-07-25 21:49 ` Bjorn Helgaas
2023-08-01 7:17 ` Sui Jingfeng
2023-07-11 13:43 ` [PATCH 3/6] PCI/VGA: drop the inline of vga_update_device_decodes() function Sui Jingfeng
2023-07-24 13:02 ` suijingfeng
2023-07-11 13:43 ` [PATCH 4/6] PCI/VGA: Move the new_state assignment out the loop Sui Jingfeng
2023-07-24 13:02 ` suijingfeng
2023-07-25 21:51 ` Bjorn Helgaas
2023-07-11 13:43 ` [PATCH 5/6] PCI/VGA: Tidy up the code and comment format Sui Jingfeng
2023-07-11 13:43 ` [PATCH 6/6] PCI/VGA: Replace full MIT license text with SPDX identifier Sui Jingfeng
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=ee44ec4e-df97-c327-b83b-fe56eb2c120b@loongson.cn \
--to=suijingfeng@loongson.cn \
--cc=airlied@gmail.com \
--cc=bhelgaas@google.com \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=helgaas@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=loongson-kernel@lists.loongnix.cn \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mario.limonciello@amd.com \
--cc=mripard@kernel.org \
--cc=sui.jingfeng@linux.dev \
--cc=tzimmermann@suse.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®