Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Panasonic Let's Note CF-SX2 problem (Re: kern info: [drm] failed to find VBIOS tables
Hi,
Again Panasonic Let's Note CF Series Video card issue:
(i915m or i915gm)
Some time before,
N10 and SX2 were working without attached my nasty patch.
Say, even when at failing VBIOS table is not found, they were fine.
But that is NOT true recently, so the attached patch is necessary
for N10 and SX2
Checked with 9.0 and 9.99.48
PCI_PRODCUT(pa->pa_id)
| rom.rom_product
| | builtin 9.0
v v LCD console X11 install image
--- ----- ---- ----- ---------- ----------- ---
R4
S9 46 46 OK 1024 x 768 1280 x 800 OK
J10 46 46 OK 1024 x 768 1366 x 768 OK
N10 126 106 - -
(w/tweak) OK 1024 x 768 1280 x 800
SX2 166 106 - -
(w/tweak) OK 1024 x 768 1600 x 900
SX3 a16 406 OK 1024 x 768 1600 x 900 OK
NX4 1616 406 OK 1024 x 768 1600 x 900 OK
(from dmesg:)
N9
i915drmkms0 at pci0 dev 2 function 0: vendor 8086 product 0046 (rev. 0x02)
J10
i915drmkms0 at pci0 dev 2 function 0: vendor 8086 product 0046 (rev. 0x02)
N10
i915drmkms0 at pci0 dev 2 function 0: Intel Sandy Bridge (mobile) GT2+ Integrated Graphics Device (rev. 0x09)
SX2
i915drmkms0 at pci0 dev 2 function 0: vendor 8086 product 0166 (rev. 0x09)
SX3
i915drmkms0 at pci0 dev 2 function 0: Intel HD Graphics (GT2) (rev. 0x0b)
NX4
i915drmkms0 at pci0 dev 2 function 0: Intel Ivy Bridge Integrated Graphics Device (rev. 0x09)
diff --git a/sys/dev/pci/pci_map.c b/sys/dev/pci/pci_map.c
index fa91835f99f..7c19cbe557f 100644
--- a/sys/dev/pci/pci_map.c
+++ b/sys/dev/pci/pci_map.c
@@ -393,6 +393,18 @@ pci_find_rom(const struct pci_attach_args *pa, bus_space_tag_t bst,
offsetof(struct pci_rom, rom_vendor));
rom.rom_product = bus_space_read_2(bst, bsh, ptr +
offsetof(struct pci_rom, rom_product));
+ /* ------------ XXXXXXXX ------------------ */
+ if (
+ rom.rom_vendor == 0x8086 &&
+ rom.rom_product == 0x0106 &&
+ ( PCI_PRODUCT(pa->pa_id) == 0x0166 ||
+ PCI_PRODUCT(pa->pa_id) == 0x0126
+ )
+ ) {
+ rom.rom_product = PCI_PRODUCT(pa->pa_id);
+ printf( "%s:%4d: %s * XXXXX mapped XXXX\n", __FILE__, __LINE__, __func__);
+ }
+ /* ------------ XXXXXXXX ------------------ */
rom.rom_class = bus_space_read_1(bst, bsh,
ptr + offsetof (struct pci_rom, rom_class));
rom.rom_subclass = bus_space_read_1(bst, bsh,
@@ -413,6 +425,17 @@ pci_find_rom(const struct pci_attach_args *pa, bus_space_tag_t bst,
imagesz = rom.rom_len * 512;
+ printf( "%s:%4d: %s\n", __FILE__, __LINE__, __func__);
+ printf( "%9s\t%8s \t%8s\n", "sub", "PCI_..", "rom.rom_");
+ printf( "%9s\t%8s \t%8s\n", "--------", "--------", "--------");
+ printf( "%9s\t%08x\t%08x\n%9s\t%08x\t%08x\n%9s\t%08x\t%08x\n%9s\t%08x\t%08x\n%9s\t%08x\t%08x\n%9s\t%08x\t%08x\n",
+ "vendor", PCI_VENDOR(pa->pa_id), rom.rom_vendor,
+ "product", PCI_PRODUCT(pa->pa_id), rom.rom_product,
+ "class", PCI_CLASS(pa->pa_class), rom.rom_class,
+ "subclass", PCI_SUBCLASS(pa->pa_class), rom.rom_subclass,
+ "interface", PCI_INTERFACE(pa->pa_class), rom.rom_interface,
+ "type", type, rom.rom_code_type
+ );
if ((rom.rom_vendor == PCI_VENDOR(pa->pa_id)) &&
(rom.rom_product == PCI_PRODUCT(pa->pa_id)) &&
(rom.rom_class == PCI_CLASS(pa->pa_class)) &&
--
Makoto Fujiwara
mef%NetBSD.org@localhost
makoto%if.t.u-tokyo.ac.jp@localhost
Key fingerprint = 0BFA FAEB EAD1 90BA 7498 8F85 6809 9E0B B7EF A12E
Home |
Main Index |
Thread Index |
Old Index