[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v6 0/10] xen: ARM HDLCD video driver
Hi all, this patch series introduces a very simple driver for the ARM HDLCD Controller, that means that we can finally have something on the screen while Xen is booting on ARM :) The driver is capable of reading the mode property on device tree and setting the HDLCD accordingly. It is also capable of setting the required OSC5 timer to the right frequency for the pixel clock. In order to reduce code duplication with x86, I tried to generalize the existing vesa character rendering functions into a architecture agnostic framebuffer driver that can be used by vesa and the hdlcd drivers. Changes in v6: - rebased on 77d3a1db3196b1b5864469f8d3f41d496800c795; - remove useless initializations to NULL in lfb_init; - more compact checks in lfb_init. Changes in v5: - move the barriers outside the loop in flush_xen_data_tlb_range_va; - move out of "introduce early_ioremap" any changes related to flush_xen_data_tlb_range_va and PAGE masks; - remove lfb_alloc and the now unused __initdata variables; - fix indentation and long lines; - reword commit message of "move setup_mm right after setup_pagetables"; - turn printk in setup_mm into an early_printk in setup_mm; - actually include the Makefile for xen/arch/arm/platforms. Changes in v4: - rename flush_xen_data_tlb_range to flush_xen_data_tlb_range_va; - replace all the calls to flush_xen_data_tlb_va, with calls to flush_xen_data_tlb_range_va; - flush the entire 2MB mapping at BOOT_MISC_VIRT_START rather than just the first 4k; - remove flush_xen_data_tlb_va; - fix indentation; - rename EARLY_VMAP_START/END to EARLY_VMAP_VIRT_START/END; - mark early_ioremap as __init; - reduce the amount of casts in early_ioremap; - squash the vesa.c changes into this patch; - rename fb* to lfb*; - pass a pointer to fb_init; - use %u for screen dimensions; - specify loglevel in printk; - call fb_free on error in fb_alloc; - no __init on declarations; - do not break messages to fit 80 columns; - remove "preserve DTB mappings"; - introduce a new "move setup_mm right after setup_pagetables" patch; - stop iterating over the DT nodes in device_tree_for_each_node if func returns a value != 0; - return 1 from _find_compatible_node when a node is found; - move the wait loop and the syscfg cfgctrl write into a separate function; - fix comments; - define all registers in write; - move platform_vexpress.c to platforms/vexpress.c; - move platform_vexpress.h to arm-arm/platforms/vexpress.h; - use a lookup table to set the color masks; - fix indentation; - make sure mode_string is not NULL and is not bigger than 16 chars before continuing; - introduce 2 separate error messages for !hdlcd_start and !framebuffer_start at the beginning of video_init; - mark get_color_masks and set_pixclock as __init; - check that we are running on a vexpress machine before calling vexpress_syscfg. Changes in v3: - rename fb_cr to fb_carriage_return. Changes in v2: - rebase on latest xen-unstable; - add support for multiple resolutions; - add support to dynamically change the OSC5 motherboard timer; - add the patch "preserve DTB mappings". Stefano Stabellini (10): xen/arm: add missing FIRST, SECOND and THIRD MASK and SIZE definitions xen/arm: introduce flush_xen_data_tlb_range_va xen/arm: flush the entire dest_va 2MB mapping xen/arm: introduce early_ioremap xen: infrastructure to have cross-platform video drivers xen: introduce a generic framebuffer driver xen/arm: move setup_mm right after setup_pagetables xen/device_tree: introduce find_compatible_node xen/arm: introduce vexpress_syscfg xen/arm: introduce a driver for the ARM HDLCD controller xen/arch/arm/Makefile | 1 + xen/arch/arm/Rules.mk | 2 + xen/arch/arm/arm32/mode_switch.S | 2 +- xen/arch/arm/mm.c | 40 ++++- xen/arch/arm/platforms/Makefile | 1 + xen/arch/arm/platforms/vexpress.c | 100 +++++++++++ xen/arch/arm/setup.c | 12 +- xen/arch/x86/Rules.mk | 1 + xen/common/device_tree.c | 56 ++++++- xen/drivers/Makefile | 2 +- xen/drivers/char/console.c | 12 +- xen/drivers/video/Makefile | 12 +- xen/drivers/video/arm_hdlcd.c | 276 ++++++++++++++++++++++++++++++ xen/drivers/video/lfb.c | 183 ++++++++++++++++++++ xen/drivers/video/lfb.h | 46 +++++ xen/drivers/video/modelines.h | 77 +++++++++ xen/drivers/video/vesa.c | 177 +++----------------- xen/drivers/video/vga.c | 12 +- xen/include/asm-arm/config.h | 6 + xen/include/asm-arm/mm.h | 3 +- xen/include/asm-arm/page.h | 24 ++- xen/include/asm-arm/platform_vexpress.h | 17 -- xen/include/asm-arm/platforms/vexpress.h | 40 +++++ xen/include/asm-x86/config.h | 1 + xen/include/xen/device_tree.h | 3 + xen/include/xen/vga.h | 9 +- xen/include/xen/video.h | 24 +++ 27 files changed, 921 insertions(+), 218 deletions(-) Cheers, Stefano _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |