Skip to content

Commit

Permalink
ARM: PL08x: avoid 'void *' struct fields when we can type them properly
Browse files Browse the repository at this point in the history
Avoid using 'void *' struct fields when the structs are not defined
in linux/amba/pl08x.h - instead, forward declare the struct names, and
use these instead.  This ensures we have proper typechecking.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
  • Loading branch information
Russell King - ARM Linux authored and Dan Williams committed Jan 5, 2011
1 parent f96ca9e commit 7cb72ad
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 9 deletions.
16 changes: 8 additions & 8 deletions drivers/dma/amba-pl08x.c
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ struct vendor_data {
* An LLI struct - see PL08x TRM. Note that next uses bit[0] as a bus bit,
* start & end do not - their bus bit info is in cctl.
*/
struct lli {
struct pl08x_lli {
dma_addr_t src;
dma_addr_t dst;
dma_addr_t next;
Expand Down Expand Up @@ -160,7 +160,7 @@ struct pl08x_driver_data {

/* Maximum times we call dma_pool_alloc on this pool without freeing */
#define PL08X_MAX_ALLOCS 0x40
#define MAX_NUM_TSFR_LLIS (PL08X_LLI_TSFR_SIZE/sizeof(struct lli))
#define MAX_NUM_TSFR_LLIS (PL08X_LLI_TSFR_SIZE/sizeof(struct pl08x_lli))
#define PL08X_ALIGN 8

static inline struct pl08x_dma_chan *to_pl08x_chan(struct dma_chan *chan)
Expand Down Expand Up @@ -354,8 +354,8 @@ static u32 pl08x_getbytes_chan(struct pl08x_dma_chan *plchan)
* currently active transaction.
*/
if (ch && txd) {
struct lli *llis_va = txd->llis_va;
struct lli *llis_bus = (struct lli *) txd->llis_bus;
struct pl08x_lli *llis_va = txd->llis_va;
struct pl08x_lli *llis_bus = (struct pl08x_lli *) txd->llis_bus;
u32 clli = readl(ch->base + PL080_CH_LLI);

/* First get the bytes in the current active LLI */
Expand Down Expand Up @@ -558,8 +558,8 @@ static int pl08x_fill_lli_for_desc(struct pl08x_driver_data *pl08x,
struct pl08x_txd *txd, int num_llis, int len,
u32 cctl, u32 *remainder)
{
struct lli *llis_va = txd->llis_va;
struct lli *llis_bus = (struct lli *) txd->llis_bus;
struct pl08x_lli *llis_va = txd->llis_va;
struct pl08x_lli *llis_bus = (struct pl08x_lli *) txd->llis_bus;

BUG_ON(num_llis >= MAX_NUM_TSFR_LLIS);

Expand Down Expand Up @@ -620,8 +620,8 @@ static int pl08x_fill_llis_for_desc(struct pl08x_driver_data *pl08x,
u32 cctl;
int max_bytes_per_lli;
int total_bytes = 0;
struct lli *llis_va;
struct lli *llis_bus;
struct pl08x_lli *llis_va;
struct pl08x_lli *llis_bus;

txd->llis_va = dma_pool_alloc(pl08x->pool, GFP_NOWAIT,
&txd->llis_bus);
Expand Down
5 changes: 4 additions & 1 deletion include/linux/amba/pl08x.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
#include <linux/dmaengine.h>
#include <linux/interrupt.h>

struct pl08x_lli;
struct pl08x_driver_data;

/**
* struct pl08x_channel_data - data structure to pass info between
* platform and PL08x driver regarding channel configuration
Expand Down Expand Up @@ -179,7 +182,7 @@ struct pl08x_dma_chan {
struct pl08x_txd *at;
unsigned long lockflags;
spinlock_t lock;
void *host;
struct pl08x_driver_data *host;
enum pl08x_dma_chan_state state;
bool slave;
struct pl08x_txd *waiting;
Expand Down

0 comments on commit 7cb72ad

Please sign in to comment.