Loading Documentation/kernel-parameters.txt +4 −1 Original line number Original line Diff line number Diff line Loading @@ -999,7 +999,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted. With this option on every unmap_single operation will With this option on every unmap_single operation will result in a hardware IOTLB flush operation as opposed result in a hardware IOTLB flush operation as opposed to batching them for performance. to batching them for performance. sp_off [Default Off] By default, super page will be supported if Intel IOMMU has the capability. With this option, super page will not be supported. intremap= [X86-64, Intel-IOMMU] intremap= [X86-64, Intel-IOMMU] Format: { on (default) | off | nosid } Format: { on (default) | off | nosid } on enable Interrupt Remapping (default) on enable Interrupt Remapping (default) Loading Documentation/virtual/lguest/Makefile +1 −1 Original line number Original line Diff line number Diff line # This creates the demonstration utility "lguest" which runs a Linux guest. # This creates the demonstration utility "lguest" which runs a Linux guest. # Missing headers? Add "-I../../include -I../../arch/x86/include" # Missing headers? Add "-I../../../include -I../../../arch/x86/include" CFLAGS:=-m32 -Wall -Wmissing-declarations -Wmissing-prototypes -O3 -U_FORTIFY_SOURCE CFLAGS:=-m32 -Wall -Wmissing-declarations -Wmissing-prototypes -O3 -U_FORTIFY_SOURCE all: lguest all: lguest Loading Documentation/virtual/lguest/lguest.c +2 −20 Original line number Original line Diff line number Diff line Loading @@ -49,7 +49,7 @@ #include <linux/virtio_rng.h> #include <linux/virtio_rng.h> #include <linux/virtio_ring.h> #include <linux/virtio_ring.h> #include <asm/bootparam.h> #include <asm/bootparam.h> #include "../../include/linux/lguest_launcher.h" #include "../../../include/linux/lguest_launcher.h" /*L:110 /*L:110 * We can ignore the 42 include files we need for this program, but I do want * We can ignore the 42 include files we need for this program, but I do want * to draw attention to the use of kernel-style types. * to draw attention to the use of kernel-style types. Loading Loading @@ -135,9 +135,6 @@ struct device { /* Is it operational */ /* Is it operational */ bool running; bool running; /* Does Guest want an intrrupt on empty? */ bool irq_on_empty; /* Device-specific data. */ /* Device-specific data. */ void *priv; void *priv; }; }; Loading Loading @@ -637,9 +634,6 @@ static void trigger_irq(struct virtqueue *vq) /* If they don't want an interrupt, don't send one... */ /* If they don't want an interrupt, don't send one... */ if (vq->vring.avail->flags & VRING_AVAIL_F_NO_INTERRUPT) { if (vq->vring.avail->flags & VRING_AVAIL_F_NO_INTERRUPT) { /* ... unless they've asked us to force one on empty. */ if (!vq->dev->irq_on_empty || lg_last_avail(vq) != vq->vring.avail->idx) return; return; } } Loading Loading @@ -1057,15 +1051,6 @@ static void create_thread(struct virtqueue *vq) close(vq->eventfd); close(vq->eventfd); } } static bool accepted_feature(struct device *dev, unsigned int bit) { const u8 *features = get_feature_bits(dev) + dev->feature_len; if (dev->feature_len < bit / CHAR_BIT) return false; return features[bit / CHAR_BIT] & (1 << (bit % CHAR_BIT)); } static void start_device(struct device *dev) static void start_device(struct device *dev) { { unsigned int i; unsigned int i; Loading @@ -1079,8 +1064,6 @@ static void start_device(struct device *dev) verbose(" %02x", get_feature_bits(dev) verbose(" %02x", get_feature_bits(dev) [dev->feature_len+i]); [dev->feature_len+i]); dev->irq_on_empty = accepted_feature(dev, VIRTIO_F_NOTIFY_ON_EMPTY); for (vq = dev->vq; vq; vq = vq->next) { for (vq = dev->vq; vq; vq = vq->next) { if (vq->service) if (vq->service) create_thread(vq); create_thread(vq); Loading Loading @@ -1564,7 +1547,6 @@ static void setup_tun_net(char *arg) /* Set up the tun device. */ /* Set up the tun device. */ configure_device(ipfd, tapif, ip); configure_device(ipfd, tapif, ip); add_feature(dev, VIRTIO_F_NOTIFY_ON_EMPTY); /* Expect Guest to handle everything except UFO */ /* Expect Guest to handle everything except UFO */ add_feature(dev, VIRTIO_NET_F_CSUM); add_feature(dev, VIRTIO_NET_F_CSUM); add_feature(dev, VIRTIO_NET_F_GUEST_CSUM); add_feature(dev, VIRTIO_NET_F_GUEST_CSUM); Loading Makefile +1 −1 Original line number Original line Diff line number Diff line VERSION = 3 VERSION = 3 PATCHLEVEL = 0 PATCHLEVEL = 0 SUBLEVEL = 0 SUBLEVEL = 0 EXTRAVERSION = -rc1 EXTRAVERSION = -rc2 NAME = Sneaky Weasel NAME = Sneaky Weasel # *DOCUMENTATION* # *DOCUMENTATION* Loading arch/arm/mach-shmobile/board-ap4evb.c +56 −0 Original line number Original line Diff line number Diff line Loading @@ -249,6 +249,29 @@ static int slot_cn7_get_cd(struct platform_device *pdev) { { return !gpio_get_value(GPIO_PORT41); return !gpio_get_value(GPIO_PORT41); } } /* MERAM */ static struct sh_mobile_meram_info meram_info = { .addr_mode = SH_MOBILE_MERAM_MODE1, }; static struct resource meram_resources[] = { [0] = { .name = "MERAM", .start = 0xe8000000, .end = 0xe81fffff, .flags = IORESOURCE_MEM, }, }; static struct platform_device meram_device = { .name = "sh_mobile_meram", .id = 0, .num_resources = ARRAY_SIZE(meram_resources), .resource = meram_resources, .dev = { .platform_data = &meram_info, }, }; /* SH_MMCIF */ /* SH_MMCIF */ static struct resource sh_mmcif_resources[] = { static struct resource sh_mmcif_resources[] = { Loading Loading @@ -447,13 +470,29 @@ const static struct fb_videomode ap4evb_lcdc_modes[] = { #endif #endif }, }, }; }; static struct sh_mobile_meram_cfg lcd_meram_cfg = { .icb[0] = { .marker_icb = 28, .cache_icb = 24, .meram_offset = 0x0, .meram_size = 0x40, }, .icb[1] = { .marker_icb = 29, .cache_icb = 25, .meram_offset = 0x40, .meram_size = 0x40, }, }; static struct sh_mobile_lcdc_info lcdc_info = { static struct sh_mobile_lcdc_info lcdc_info = { .meram_dev = &meram_info, .ch[0] = { .ch[0] = { .chan = LCDC_CHAN_MAINLCD, .chan = LCDC_CHAN_MAINLCD, .bpp = 16, .bpp = 16, .lcd_cfg = ap4evb_lcdc_modes, .lcd_cfg = ap4evb_lcdc_modes, .num_cfg = ARRAY_SIZE(ap4evb_lcdc_modes), .num_cfg = ARRAY_SIZE(ap4evb_lcdc_modes), .meram_cfg = &lcd_meram_cfg, } } }; }; Loading Loading @@ -724,15 +763,31 @@ static struct platform_device fsi_device = { static struct platform_device fsi_ak4643_device = { static struct platform_device fsi_ak4643_device = { .name = "sh_fsi2_a_ak4643", .name = "sh_fsi2_a_ak4643", }; }; static struct sh_mobile_meram_cfg hdmi_meram_cfg = { .icb[0] = { .marker_icb = 30, .cache_icb = 26, .meram_offset = 0x80, .meram_size = 0x100, }, .icb[1] = { .marker_icb = 31, .cache_icb = 27, .meram_offset = 0x180, .meram_size = 0x100, }, }; static struct sh_mobile_lcdc_info sh_mobile_lcdc1_info = { static struct sh_mobile_lcdc_info sh_mobile_lcdc1_info = { .clock_source = LCDC_CLK_EXTERNAL, .clock_source = LCDC_CLK_EXTERNAL, .meram_dev = &meram_info, .ch[0] = { .ch[0] = { .chan = LCDC_CHAN_MAINLCD, .chan = LCDC_CHAN_MAINLCD, .bpp = 16, .bpp = 16, .interface_type = RGB24, .interface_type = RGB24, .clock_divider = 1, .clock_divider = 1, .flags = LCDC_FLAGS_DWPOL, .flags = LCDC_FLAGS_DWPOL, .meram_cfg = &hdmi_meram_cfg, } } }; }; Loading Loading @@ -961,6 +1016,7 @@ static struct platform_device *ap4evb_devices[] __initdata = { &csi2_device, &csi2_device, &ceu_device, &ceu_device, &ap4evb_camera, &ap4evb_camera, &meram_device, }; }; static void __init hdmi_init_pm_clock(void) static void __init hdmi_init_pm_clock(void) Loading Loading
Documentation/kernel-parameters.txt +4 −1 Original line number Original line Diff line number Diff line Loading @@ -999,7 +999,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted. With this option on every unmap_single operation will With this option on every unmap_single operation will result in a hardware IOTLB flush operation as opposed result in a hardware IOTLB flush operation as opposed to batching them for performance. to batching them for performance. sp_off [Default Off] By default, super page will be supported if Intel IOMMU has the capability. With this option, super page will not be supported. intremap= [X86-64, Intel-IOMMU] intremap= [X86-64, Intel-IOMMU] Format: { on (default) | off | nosid } Format: { on (default) | off | nosid } on enable Interrupt Remapping (default) on enable Interrupt Remapping (default) Loading
Documentation/virtual/lguest/Makefile +1 −1 Original line number Original line Diff line number Diff line # This creates the demonstration utility "lguest" which runs a Linux guest. # This creates the demonstration utility "lguest" which runs a Linux guest. # Missing headers? Add "-I../../include -I../../arch/x86/include" # Missing headers? Add "-I../../../include -I../../../arch/x86/include" CFLAGS:=-m32 -Wall -Wmissing-declarations -Wmissing-prototypes -O3 -U_FORTIFY_SOURCE CFLAGS:=-m32 -Wall -Wmissing-declarations -Wmissing-prototypes -O3 -U_FORTIFY_SOURCE all: lguest all: lguest Loading
Documentation/virtual/lguest/lguest.c +2 −20 Original line number Original line Diff line number Diff line Loading @@ -49,7 +49,7 @@ #include <linux/virtio_rng.h> #include <linux/virtio_rng.h> #include <linux/virtio_ring.h> #include <linux/virtio_ring.h> #include <asm/bootparam.h> #include <asm/bootparam.h> #include "../../include/linux/lguest_launcher.h" #include "../../../include/linux/lguest_launcher.h" /*L:110 /*L:110 * We can ignore the 42 include files we need for this program, but I do want * We can ignore the 42 include files we need for this program, but I do want * to draw attention to the use of kernel-style types. * to draw attention to the use of kernel-style types. Loading Loading @@ -135,9 +135,6 @@ struct device { /* Is it operational */ /* Is it operational */ bool running; bool running; /* Does Guest want an intrrupt on empty? */ bool irq_on_empty; /* Device-specific data. */ /* Device-specific data. */ void *priv; void *priv; }; }; Loading Loading @@ -637,9 +634,6 @@ static void trigger_irq(struct virtqueue *vq) /* If they don't want an interrupt, don't send one... */ /* If they don't want an interrupt, don't send one... */ if (vq->vring.avail->flags & VRING_AVAIL_F_NO_INTERRUPT) { if (vq->vring.avail->flags & VRING_AVAIL_F_NO_INTERRUPT) { /* ... unless they've asked us to force one on empty. */ if (!vq->dev->irq_on_empty || lg_last_avail(vq) != vq->vring.avail->idx) return; return; } } Loading Loading @@ -1057,15 +1051,6 @@ static void create_thread(struct virtqueue *vq) close(vq->eventfd); close(vq->eventfd); } } static bool accepted_feature(struct device *dev, unsigned int bit) { const u8 *features = get_feature_bits(dev) + dev->feature_len; if (dev->feature_len < bit / CHAR_BIT) return false; return features[bit / CHAR_BIT] & (1 << (bit % CHAR_BIT)); } static void start_device(struct device *dev) static void start_device(struct device *dev) { { unsigned int i; unsigned int i; Loading @@ -1079,8 +1064,6 @@ static void start_device(struct device *dev) verbose(" %02x", get_feature_bits(dev) verbose(" %02x", get_feature_bits(dev) [dev->feature_len+i]); [dev->feature_len+i]); dev->irq_on_empty = accepted_feature(dev, VIRTIO_F_NOTIFY_ON_EMPTY); for (vq = dev->vq; vq; vq = vq->next) { for (vq = dev->vq; vq; vq = vq->next) { if (vq->service) if (vq->service) create_thread(vq); create_thread(vq); Loading Loading @@ -1564,7 +1547,6 @@ static void setup_tun_net(char *arg) /* Set up the tun device. */ /* Set up the tun device. */ configure_device(ipfd, tapif, ip); configure_device(ipfd, tapif, ip); add_feature(dev, VIRTIO_F_NOTIFY_ON_EMPTY); /* Expect Guest to handle everything except UFO */ /* Expect Guest to handle everything except UFO */ add_feature(dev, VIRTIO_NET_F_CSUM); add_feature(dev, VIRTIO_NET_F_CSUM); add_feature(dev, VIRTIO_NET_F_GUEST_CSUM); add_feature(dev, VIRTIO_NET_F_GUEST_CSUM); Loading
Makefile +1 −1 Original line number Original line Diff line number Diff line VERSION = 3 VERSION = 3 PATCHLEVEL = 0 PATCHLEVEL = 0 SUBLEVEL = 0 SUBLEVEL = 0 EXTRAVERSION = -rc1 EXTRAVERSION = -rc2 NAME = Sneaky Weasel NAME = Sneaky Weasel # *DOCUMENTATION* # *DOCUMENTATION* Loading
arch/arm/mach-shmobile/board-ap4evb.c +56 −0 Original line number Original line Diff line number Diff line Loading @@ -249,6 +249,29 @@ static int slot_cn7_get_cd(struct platform_device *pdev) { { return !gpio_get_value(GPIO_PORT41); return !gpio_get_value(GPIO_PORT41); } } /* MERAM */ static struct sh_mobile_meram_info meram_info = { .addr_mode = SH_MOBILE_MERAM_MODE1, }; static struct resource meram_resources[] = { [0] = { .name = "MERAM", .start = 0xe8000000, .end = 0xe81fffff, .flags = IORESOURCE_MEM, }, }; static struct platform_device meram_device = { .name = "sh_mobile_meram", .id = 0, .num_resources = ARRAY_SIZE(meram_resources), .resource = meram_resources, .dev = { .platform_data = &meram_info, }, }; /* SH_MMCIF */ /* SH_MMCIF */ static struct resource sh_mmcif_resources[] = { static struct resource sh_mmcif_resources[] = { Loading Loading @@ -447,13 +470,29 @@ const static struct fb_videomode ap4evb_lcdc_modes[] = { #endif #endif }, }, }; }; static struct sh_mobile_meram_cfg lcd_meram_cfg = { .icb[0] = { .marker_icb = 28, .cache_icb = 24, .meram_offset = 0x0, .meram_size = 0x40, }, .icb[1] = { .marker_icb = 29, .cache_icb = 25, .meram_offset = 0x40, .meram_size = 0x40, }, }; static struct sh_mobile_lcdc_info lcdc_info = { static struct sh_mobile_lcdc_info lcdc_info = { .meram_dev = &meram_info, .ch[0] = { .ch[0] = { .chan = LCDC_CHAN_MAINLCD, .chan = LCDC_CHAN_MAINLCD, .bpp = 16, .bpp = 16, .lcd_cfg = ap4evb_lcdc_modes, .lcd_cfg = ap4evb_lcdc_modes, .num_cfg = ARRAY_SIZE(ap4evb_lcdc_modes), .num_cfg = ARRAY_SIZE(ap4evb_lcdc_modes), .meram_cfg = &lcd_meram_cfg, } } }; }; Loading Loading @@ -724,15 +763,31 @@ static struct platform_device fsi_device = { static struct platform_device fsi_ak4643_device = { static struct platform_device fsi_ak4643_device = { .name = "sh_fsi2_a_ak4643", .name = "sh_fsi2_a_ak4643", }; }; static struct sh_mobile_meram_cfg hdmi_meram_cfg = { .icb[0] = { .marker_icb = 30, .cache_icb = 26, .meram_offset = 0x80, .meram_size = 0x100, }, .icb[1] = { .marker_icb = 31, .cache_icb = 27, .meram_offset = 0x180, .meram_size = 0x100, }, }; static struct sh_mobile_lcdc_info sh_mobile_lcdc1_info = { static struct sh_mobile_lcdc_info sh_mobile_lcdc1_info = { .clock_source = LCDC_CLK_EXTERNAL, .clock_source = LCDC_CLK_EXTERNAL, .meram_dev = &meram_info, .ch[0] = { .ch[0] = { .chan = LCDC_CHAN_MAINLCD, .chan = LCDC_CHAN_MAINLCD, .bpp = 16, .bpp = 16, .interface_type = RGB24, .interface_type = RGB24, .clock_divider = 1, .clock_divider = 1, .flags = LCDC_FLAGS_DWPOL, .flags = LCDC_FLAGS_DWPOL, .meram_cfg = &hdmi_meram_cfg, } } }; }; Loading Loading @@ -961,6 +1016,7 @@ static struct platform_device *ap4evb_devices[] __initdata = { &csi2_device, &csi2_device, &ceu_device, &ceu_device, &ap4evb_camera, &ap4evb_camera, &meram_device, }; }; static void __init hdmi_init_pm_clock(void) static void __init hdmi_init_pm_clock(void) Loading