|
@@ -223,6 +223,44 @@ void ps3_mm_vas_destroy(void)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+static int ps3_mm_get_repository_highmem(struct mem_region *r)
|
|
|
+{
|
|
|
+ int result;
|
|
|
+
|
|
|
+ /* Assume a single highmem region. */
|
|
|
+
|
|
|
+ result = ps3_repository_read_highmem_info(0, &r->base, &r->size);
|
|
|
+
|
|
|
+ if (result)
|
|
|
+ goto zero_region;
|
|
|
+
|
|
|
+ if (!r->base || !r->size) {
|
|
|
+ result = -1;
|
|
|
+ goto zero_region;
|
|
|
+ }
|
|
|
+
|
|
|
+ r->offset = r->base - map.rm.size;
|
|
|
+
|
|
|
+ DBG("%s:%d: Found high region in repository: %llxh %llxh\n",
|
|
|
+ __func__, __LINE__, r->base, r->size);
|
|
|
+
|
|
|
+ return 0;
|
|
|
+
|
|
|
+zero_region:
|
|
|
+ DBG("%s:%d: No high region in repository.\n", __func__, __LINE__);
|
|
|
+
|
|
|
+ r->size = r->base = r->offset = 0;
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
+static int ps3_mm_set_repository_highmem(const struct mem_region *r)
|
|
|
+{
|
|
|
+ /* Assume a single highmem region. */
|
|
|
+
|
|
|
+ return r ? ps3_repository_write_highmem_info(0, r->base, r->size) :
|
|
|
+ ps3_repository_write_highmem_info(0, 0, 0);
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* ps3_mm_region_create - create a memory region in the vas
|
|
|
* @r: pointer to a struct mem_region to accept initialized values
|
|
@@ -293,36 +331,6 @@ static void ps3_mm_region_destroy(struct mem_region *r)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-static int ps3_mm_get_repository_highmem(struct mem_region *r)
|
|
|
-{
|
|
|
- int result;
|
|
|
-
|
|
|
- /* Assume a single highmem region. */
|
|
|
-
|
|
|
- result = ps3_repository_read_highmem_info(0, &r->base, &r->size);
|
|
|
-
|
|
|
- if (result)
|
|
|
- goto zero_region;
|
|
|
-
|
|
|
- if (!r->base || !r->size) {
|
|
|
- result = -1;
|
|
|
- goto zero_region;
|
|
|
- }
|
|
|
-
|
|
|
- r->offset = r->base - map.rm.size;
|
|
|
-
|
|
|
- DBG("%s:%d: Found high region in repository: %llxh %llxh\n",
|
|
|
- __func__, __LINE__, r->base, r->size);
|
|
|
-
|
|
|
- return 0;
|
|
|
-
|
|
|
-zero_region:
|
|
|
- DBG("%s:%d: No high region in repository.\n", __func__, __LINE__);
|
|
|
-
|
|
|
- r->size = r->base = r->offset = 0;
|
|
|
- return result;
|
|
|
-}
|
|
|
-
|
|
|
/*============================================================================*/
|
|
|
/* dma routines */
|
|
|
/*============================================================================*/
|