mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 06:00:43 +00:00
dm: x86: Move samus to use new driver model support
Update the samus driver to avoid the direct call to the video BIOS setup. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
0d9483a25c
commit
443ffe509c
2 changed files with 7 additions and 33 deletions
|
@ -291,7 +291,6 @@ void board_debug_uart_init(void)
|
|||
|
||||
static const struct udevice_id broadwell_syscon_ids[] = {
|
||||
{ .compatible = "intel,me", .data = X86_SYSCON_ME },
|
||||
{ .compatible = "intel,gma", .data = X86_SYSCON_GMA },
|
||||
{ }
|
||||
};
|
||||
|
||||
|
|
|
@ -9,10 +9,8 @@
|
|||
#include <common.h>
|
||||
#include <bios_emul.h>
|
||||
#include <dm.h>
|
||||
#include <pci_rom.h>
|
||||
#include <vbe.h>
|
||||
#include <video.h>
|
||||
#include <video_fb.h>
|
||||
#include <asm/cpu.h>
|
||||
#include <asm/intel_regs.h>
|
||||
#include <asm/io.h>
|
||||
|
@ -20,11 +18,9 @@
|
|||
#include <asm/arch/cpu.h>
|
||||
#include <asm/arch/iomap.h>
|
||||
#include <asm/arch/pch.h>
|
||||
#include <linux/log2.h>
|
||||
#include "i915_reg.h"
|
||||
|
||||
struct broadwell_igd_priv {
|
||||
GraphicDevice ctfb;
|
||||
u8 *regs;
|
||||
};
|
||||
|
||||
|
@ -664,10 +660,7 @@ static int broadwell_igd_probe(struct udevice *dev)
|
|||
{
|
||||
struct video_uc_platdata *plat = dev_get_uclass_platdata(dev);
|
||||
struct video_priv *uc_priv = dev_get_uclass_priv(dev);
|
||||
struct broadwell_igd_priv *priv = dev_get_priv(dev);
|
||||
bool is_broadwell;
|
||||
GraphicDevice *gdev = &priv->ctfb;
|
||||
int bits_per_pixel;
|
||||
int ret;
|
||||
|
||||
if (!ll_boot_init()) {
|
||||
|
@ -683,13 +676,9 @@ static int broadwell_igd_probe(struct udevice *dev)
|
|||
debug("%s: is_broadwell=%d\n", __func__, is_broadwell);
|
||||
ret = igd_pre_init(dev, is_broadwell);
|
||||
if (!ret) {
|
||||
ret = dm_pci_run_vga_bios(dev, broadwell_igd_int15_handler,
|
||||
PCI_ROM_USE_NATIVE |
|
||||
PCI_ROM_ALLOW_FALLBACK);
|
||||
if (ret) {
|
||||
printf("failed to run video BIOS: %d\n", ret);
|
||||
ret = -EIO;
|
||||
}
|
||||
ret = vbe_setup_video(dev, broadwell_igd_int15_handler);
|
||||
if (ret)
|
||||
debug("failed to run video BIOS: %d\n", ret);
|
||||
}
|
||||
if (!ret)
|
||||
ret = igd_post_init(dev, is_broadwell);
|
||||
|
@ -697,13 +686,8 @@ static int broadwell_igd_probe(struct udevice *dev)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (vbe_get_video_info(gdev)) {
|
||||
printf("No video mode configured\n");
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
/* Use write-through for the graphics memory, 256MB */
|
||||
ret = mtrr_add_request(MTRR_TYPE_WRTHROUGH, gdev->pciBase, 256 << 20);
|
||||
/* Use write-combining for the graphics memory, 256MB */
|
||||
ret = mtrr_add_request(MTRR_TYPE_WRCOMB, plat->base, 256 << 20);
|
||||
if (!ret)
|
||||
ret = mtrr_commit(true);
|
||||
if (ret && ret != -ENOSYS) {
|
||||
|
@ -711,17 +695,8 @@ static int broadwell_igd_probe(struct udevice *dev)
|
|||
ret);
|
||||
}
|
||||
|
||||
bits_per_pixel = gdev->gdfBytesPP * 8;
|
||||
sprintf(gdev->modeIdent, "%dx%dx%d", gdev->winSizeX, gdev->winSizeY,
|
||||
bits_per_pixel);
|
||||
printf("%s\n", gdev->modeIdent);
|
||||
uc_priv->xsize = gdev->winSizeX;
|
||||
uc_priv->ysize = gdev->winSizeY;
|
||||
uc_priv->bpix = ilog2(bits_per_pixel);
|
||||
plat->base = gdev->pciBase;
|
||||
plat->size = gdev->memSize;
|
||||
debug("fb=%x, size %x, display size=%d %d %d\n", gdev->pciBase,
|
||||
gdev->memSize, uc_priv->xsize, uc_priv->ysize, uc_priv->bpix);
|
||||
debug("fb=%lx, size %x, display size=%d %d %d\n", plat->base,
|
||||
plat->size, uc_priv->xsize, uc_priv->ysize, uc_priv->bpix);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue