[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110913132931.GA5203@srcf.ucam.org>
Date: Tue, 13 Sep 2011 14:29:31 +0100
From: Matthew Garrett <mjg59@...f.ucam.org>
To: Matt Fleming <matt@...sole-pimps.org>
Cc: linux-kernel@...r.kernel.org,
"H. Peter Anvin" <hpa@...ux.intel.com>, x86@...nel.org,
Ingo Molnar <mingo@...e.hu>,
Thomas Gleixner <tglx@...utronix.de>,
Matt Fleming <matt.fleming@...el.com>,
Mike Waychison <mikew@...gle.com>,
Andi Kleen <andi@...stfloor.org>,
Maarten Lankhorst <m.b.lankhorst@...il.com>
Subject: Re: [PATCH v2 10/10] x86, efi: EFI boot stub support
On Mon, Sep 12, 2011 at 03:34:54PM +0100, Matt Fleming wrote:
> + status = efi_call_phys5(sys_table->boottime->locate_handle,
> + EFI_LOCATE_BY_PROTOCOL, proto,
> + NULL, &size, gop_handle);
> + if (status != EFI_SUCCESS)
> + goto free_handle;
> +
> + nr_gops = size / sizeof(void *);
> + for (i = 0; i < nr_gops; i++) {
> + void *h = gop_handle[i];
> +
> + status = efi_call_phys3(sys_table->boottime->handle_protocol,
> + h, proto, &gop);
> + if (status != EFI_SUCCESS)
> + continue;
> +
> + status = efi_call_phys4(gop->query_mode, gop, gop->mode->mode,
> + &size, &info);
> + if (status == EFI_SUCCESS)
> + break;
> + }
Apple do something funky here, which is to provide a GOP that's not
backed by real hardware but which muxes writes out to multiple outputs
in order to handle the multiple display case without screwing up aspect
ratio. That's fine, except that the stride reported for the fake one is
just the horizontal width of the logical display. That results in things
failing badly. The real one also implements PCIIO. My workaround so far
has been to look for a GOP that handles PCIIO and use it if found, and
otherwise just fall back to the first GOP.
--
Matthew Garrett | mjg59@...f.ucam.org
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists