From: Andreas Werner <wernerandy@gmx.de>
To: linux-kernel@vger.kernel.org
Subject: Black screen with GMA500 driver on Atom E680 (invalid VBT signature)
Date: Wed, 13 Nov 2013 19:34:19 +0100 [thread overview]
Message-ID: <20131113183418.GA1593@thinkpad.fritz.box> (raw)
I´ve a question about the GMA 500 driver (gma500_gfx) with an Intel Atom E680.
Since the gma500 driver is in the Kernel, i get a black screen after loading
the driver.
The last message i can see are "Invalid VBT signature".
I have check the driver file "intel_bios.c" and there the driver map
the bios rom and search for the string "$VBT", but the driver cannot
find the string and return with "Invalid VBT signature".
Above the function with the relevant code.
int psb_intel_init_bios(struct drm_device *dev)
{
struct drm_psb_private *dev_priv = dev->dev_private;
struct pci_dev *pdev = dev->pdev;
struct vbt_header *vbt = NULL;
struct bdb_header *bdb = NULL;
u8 __iomem *bios = NULL;
size_t size;
int i;
dev_priv->panel_type = 0xff;
/* XXX Should this validation be moved to intel_opregion.c? */
if (dev_priv->opregion.vbt) {
struct vbt_header *vbt = dev_priv->opregion.vbt;
if (memcmp(vbt->signature, "$VBT", 4) == 0) {
DRM_DEBUG_KMS("Using VBT from OpRegion: %20s\n",
vbt->signature);
bdb = (struct bdb_header *)((char *)vbt + vbt->bdb_offset);
} else
dev_priv->opregion.vbt = NULL;
}
if (bdb == NULL) {
bios = pci_map_rom(pdev, &size);
if (!bios)
return -1;
/* Scour memory looking for the VBT signature */
for (i = 0; i + 4 < size; i++) {
if (!memcmp(bios + i, "$VBT", 4)) {
vbt = (struct vbt_header *)(bios + i);
break;
}
}
if (!vbt) {
dev_err(dev->dev, "VBT signature missing\n");
pci_unmap_rom(pdev, bios);
return -1;
}
bdb = (struct bdb_header *)(bios + i + vbt->bdb_offset);
}
/* Grab useful general dxefinitions */
parse_general_features(dev_priv, bdb);
parse_driver_features(dev_priv, bdb);
parse_lfp_panel_data(dev_priv, bdb);
parse_sdvo_panel_data(dev_priv, bdb);
parse_sdvo_device_mapping(dev_priv, bdb);
parse_device_mapping(dev_priv, bdb);
parse_backlight_data(dev_priv, bdb);
parse_edp(dev_priv, bdb);
if (bios)
pci_unmap_rom(pdev, bios);
return 0;
}
My question now is, is it a bug in the driver or in the VGA Bios?
I´ve checked the VGA bios and did a hex dump but there is really no "$VBT" string.
On an Atom Gen1 CPU with intel GMA500 Graphic there is the string in the VGA BIOS.
But if i create the VGA BIOS for intel Atom E680 which has a GMA600 Graphic
there is no string.
Does anybody of you running the GMA500 driver with and Atom E680 without having this
problem? Or does anybody know how to get this string into the VGA BIOS?
Regards
Andy
next reply other threads:[~2013-11-13 18:34 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-13 18:34 Andreas Werner [this message]
2013-11-14 13:52 ` One Thousand Gnomes
2013-11-14 15:32 ` Patrik Jakobsson
2013-11-14 18:25 ` Andreas Werner
2013-11-14 20:57 ` One Thousand Gnomes
2013-11-16 9:28 ` Andreas Werner
2013-11-18 13:59 ` One Thousand Gnomes
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=20131113183418.GA1593@thinkpad.fritz.box \
--to=wernerandy@gmx.de \
--cc=linux-kernel@vger.kernel.org \
/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®