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
[email protected]
[email protected]
Key fingerprint = 0BFA FAEB EAD1 90BA 7498  8F85 6809 9E0B B7EF A12E

Reply via email to