Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
xenomai
ipipe
Commits
5be32463
Commit
5be32463
authored
May 21, 2011
by
Geert Uytterhoeven
Browse files
m68k/amiga: Chip RAM - Use tabs for indentation
Signed-off-by:
Geert Uytterhoeven
<
geert@linux-m68k.org
>
parent
02f8c6ae
Changes
1
Hide whitespace changes
Inline
Side-by-side
arch/m68k/amiga/chipram.c
View file @
5be32463
...
...
@@ -23,101 +23,105 @@ unsigned long amiga_chip_size;
EXPORT_SYMBOL
(
amiga_chip_size
);
static
struct
resource
chipram_res
=
{
.
name
=
"Chip RAM"
,
.
start
=
CHIP_PHYSADDR
.
name
=
"Chip RAM"
,
.
start
=
CHIP_PHYSADDR
};
static
unsigned
long
chipavail
;
void
__init
amiga_chip_init
(
void
)
{
if
(
!
AMIGAHW_PRESENT
(
CHIP_RAM
))
return
;
if
(
!
AMIGAHW_PRESENT
(
CHIP_RAM
))
return
;
chipram_res
.
end
=
amiga_chip_size
-
1
;
request_resource
(
&
iomem_resource
,
&
chipram_res
);
chipram_res
.
end
=
amiga_chip_size
-
1
;
request_resource
(
&
iomem_resource
,
&
chipram_res
);
chipavail
=
amiga_chip_size
;
chipavail
=
amiga_chip_size
;
}
void
*
amiga_chip_alloc
(
unsigned
long
size
,
const
char
*
name
)
{
struct
resource
*
res
;
struct
resource
*
res
;
/* round up */
size
=
PAGE_ALIGN
(
size
);
/* round up */
size
=
PAGE_ALIGN
(
size
);
#ifdef DEBUG
printk
(
"amiga_chip_alloc: allocate %ld bytes
\n
"
,
size
);
printk
(
"amiga_chip_alloc: allocate %ld bytes
\n
"
,
size
);
#endif
res
=
kzalloc
(
sizeof
(
struct
resource
),
GFP_KERNEL
);
if
(
!
res
)
return
NULL
;
res
->
name
=
name
;
if
(
allocate_resource
(
&
chipram_res
,
res
,
size
,
0
,
UINT_MAX
,
PAGE_SIZE
,
NULL
,
NULL
)
<
0
)
{
kfree
(
res
);
return
NULL
;
}
chipavail
-=
size
;
res
=
kzalloc
(
sizeof
(
struct
resource
),
GFP_KERNEL
);
if
(
!
res
)
return
NULL
;
res
->
name
=
name
;
if
(
allocate_resource
(
&
chipram_res
,
res
,
size
,
0
,
UINT_MAX
,
PAGE_SIZE
,
NULL
,
NULL
)
<
0
)
{
kfree
(
res
);
return
NULL
;
}
chipavail
-=
size
;
#ifdef DEBUG
printk
(
"amiga_chip_alloc: returning %lx
\n
"
,
res
->
start
);
printk
(
"amiga_chip_alloc: returning %lx
\n
"
,
res
->
start
);
#endif
return
(
void
*
)
ZTWO_VADDR
(
res
->
start
);
return
(
void
*
)
ZTWO_VADDR
(
res
->
start
);
}
EXPORT_SYMBOL
(
amiga_chip_alloc
);
/*
* Warning:
* amiga_chip_alloc_res is meant only for drivers that need to
allocate
*
Chip RAM before kmalloc() is functional. As a consequence,
those
*
drivers must not free that Chip RAM afterwards.
*/
/*
* Warning:
* amiga_chip_alloc_res is meant only for drivers that need to
* allocate
Chip RAM before kmalloc() is functional. As a consequence,
* those
drivers must not free that Chip RAM afterwards.
*/
void
*
__init
amiga_chip_alloc_res
(
unsigned
long
size
,
struct
resource
*
res
)
{
unsigned
long
start
;
unsigned
long
start
;
/* round up */
size
=
PAGE_ALIGN
(
size
);
/* dmesg into chipmem prefers memory at the safe end */
start
=
CHIP_PHYSADDR
+
chipavail
-
size
;
/* round up */
size
=
PAGE_ALIGN
(
size
);
/* dmesg into chipmem prefers memory at the safe end */
start
=
CHIP_PHYSADDR
+
chipavail
-
size
;
#ifdef DEBUG
printk
(
"amiga_chip_alloc_res: allocate %ld bytes
\n
"
,
size
);
printk
(
"amiga_chip_alloc_res: allocate %ld bytes
\n
"
,
size
);
#endif
if
(
allocate_resource
(
&
chipram_res
,
res
,
size
,
start
,
UINT_MAX
,
PAGE_SIZE
,
NULL
,
NULL
)
<
0
)
{
printk
(
"amiga_chip_alloc_res: first alloc failed!
\n
"
);
if
(
allocate_resource
(
&
chipram_res
,
res
,
size
,
0
,
UINT_MAX
,
PAGE_SIZE
,
NULL
,
NULL
)
<
0
)
return
NULL
;
}
chipavail
-=
size
;
if
(
allocate_resource
(
&
chipram_res
,
res
,
size
,
start
,
UINT_MAX
,
PAGE_SIZE
,
NULL
,
NULL
)
<
0
)
{
printk
(
"amiga_chip_alloc_res: first alloc failed!
\n
"
);
if
(
allocate_resource
(
&
chipram_res
,
res
,
size
,
0
,
UINT_MAX
,
PAGE_SIZE
,
NULL
,
NULL
)
<
0
)
return
NULL
;
}
chipavail
-=
size
;
#ifdef DEBUG
printk
(
"amiga_chip_alloc_res: returning %lx
\n
"
,
res
->
start
);
printk
(
"amiga_chip_alloc_res: returning %lx
\n
"
,
res
->
start
);
#endif
return
(
void
*
)
ZTWO_VADDR
(
res
->
start
);
return
(
void
*
)
ZTWO_VADDR
(
res
->
start
);
}
void
amiga_chip_free
(
void
*
ptr
)
{
unsigned
long
start
=
ZTWO_PADDR
(
ptr
);
struct
resource
**
p
,
*
res
;
unsigned
long
size
;
for
(
p
=
&
chipram_res
.
child
;
(
res
=
*
p
);
p
=
&
res
->
sibling
)
{
if
(
res
->
start
!=
start
)
continue
;
*
p
=
res
->
sibling
;
size
=
res
->
end
-
start
;
unsigned
long
start
=
ZTWO_PADDR
(
ptr
);
struct
resource
**
p
,
*
res
;
unsigned
long
size
;
for
(
p
=
&
chipram_res
.
child
;
(
res
=
*
p
);
p
=
&
res
->
sibling
)
{
if
(
res
->
start
!=
start
)
continue
;
*
p
=
res
->
sibling
;
size
=
res
->
end
-
start
;
#ifdef DEBUG
printk
(
"amiga_chip_free: free %ld bytes at %p
\n
"
,
size
,
ptr
);
printk
(
"amiga_chip_free: free %ld bytes at %p
\n
"
,
size
,
ptr
);
#endif
chipavail
+=
size
;
kfree
(
res
);
return
;
}
printk
(
"amiga_chip_free: trying to free nonexistent region at %p
\n
"
,
ptr
);
chipavail
+=
size
;
kfree
(
res
);
return
;
}
printk
(
"amiga_chip_free: trying to free nonexistent region at %p
\n
"
,
ptr
);
}
EXPORT_SYMBOL
(
amiga_chip_free
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment