Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / drivers / char / agp / alpha-agp.c
index edca77d..2b5838e 100644 (file)
@@ -23,8 +23,9 @@ static struct page *alpha_core_agp_vm_nopage(struct vm_area_struct *vma,
        dma_addr = address - vma->vm_start + agp->aperture.bus_base;
        pa = agp->ops->translate(agp, dma_addr);
 
-       if (pa == (unsigned long)-EINVAL) return NULL;  /* no translation */
-       
+       if (pa == (unsigned long)-EINVAL)
+               return NULL;    /* no translation */
+
        /*
         * Get the page, inc the use count, and return it
         */
@@ -76,11 +77,12 @@ static void alpha_core_agp_tlbflush(struct agp_memory *mem)
        alpha_mv.mv_pci_tbi(agp->hose, 0, -1);
 }
 
-static void alpha_core_agp_enable(u32 mode)
+static void alpha_core_agp_enable(struct agp_bridge_data *bridge, u32 mode)
 {
-       alpha_agp_info *agp = agp_bridge->dev_private_data;
+       alpha_agp_info *agp = bridge->dev_private_data;
 
-       agp->mode.lw = agp_collect_device_status(mode, agp->capability.lw);
+       agp->mode.lw = agp_collect_device_status(bridge, mode,
+                                       agp->capability.lw);
 
        agp->mode.bits.enable = 1;
        agp->ops->configure(agp);
@@ -88,7 +90,7 @@ static void alpha_core_agp_enable(u32 mode)
        agp_device_command(agp->mode.lw, 0);
 }
 
-static int alpha_core_agp_insert_memory(struct agp_memory *mem, off_t pg_start, 
+static int alpha_core_agp_insert_memory(struct agp_memory *mem, off_t pg_start,
                                        int type)
 {
        alpha_agp_info *agp = agp_bridge->dev_private_data;
@@ -97,7 +99,8 @@ static int alpha_core_agp_insert_memory(struct agp_memory *mem, off_t pg_start,
 
        temp = agp_bridge->current_size;
        num_entries = A_SIZE_FIX(temp)->num_entries;
-       if ((pg_start + mem->page_count) > num_entries) return -EINVAL;
+       if ((pg_start + mem->page_count) > num_entries)
+               return -EINVAL;
 
        status = agp->ops->bind(agp, pg_start, mem);
        mb();
@@ -106,7 +109,7 @@ static int alpha_core_agp_insert_memory(struct agp_memory *mem, off_t pg_start,
        return status;
 }
 
-static int alpha_core_agp_remove_memory(struct agp_memory *mem, off_t pg_start, 
+static int alpha_core_agp_remove_memory(struct agp_memory *mem, off_t pg_start,
                                        int type)
 {
        alpha_agp_info *agp = agp_bridge->dev_private_data;
@@ -124,7 +127,7 @@ struct agp_bridge_driver alpha_core_agp_driver = {
        .size_type              = FIXED_APER_SIZE,
        .cant_use_aperture      = 1,
        .masks                  = NULL,
-       
+
        .fetch_size             = alpha_core_agp_fetch_size,
        .configure              = alpha_core_agp_configure,
        .agp_enable             = alpha_core_agp_enable,
@@ -195,6 +198,8 @@ alpha_core_agp_setup(void)
 
 static int __init agp_alpha_core_init(void)
 {
+       if (agp_off)
+               return -EINVAL;
        if (alpha_mv.agp_info)
                return alpha_core_agp_setup();
        return -ENODEV;