Commit b17b3df1 authored by Stephen Rothwell's avatar Stephen Rothwell Committed by Benjamin Herrenschmidt

powerpc/ps3: The lv1_ routines have u64 parameters

We just fix up the reference parameters as the others are dealt with by
arithmetic promotion rules and don't cause warnings.

This removes warnings like this:

arch/powerpc/platforms/ps3/interrupt.c:327: warning: passing argument 1 of 'lv1_construct_event_receive_port' from incompatible pointer type

Also, these:

drivers/ps3/ps3-vuart.c:462: warning: passing argument 4 of 'ps3_vuart_raw_read' from incompatible pointer type
drivers/ps3/ps3-vuart.c:592: warning: passing argument 4 of 'ps3_vuart_raw_read' from incompatible pointer type
Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
Acked-by: default avatarGeoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent 494fd07a
...@@ -322,7 +322,7 @@ EXPORT_SYMBOL_GPL(ps3_irq_plug_destroy); ...@@ -322,7 +322,7 @@ EXPORT_SYMBOL_GPL(ps3_irq_plug_destroy);
int ps3_event_receive_port_setup(enum ps3_cpu_binding cpu, unsigned int *virq) int ps3_event_receive_port_setup(enum ps3_cpu_binding cpu, unsigned int *virq)
{ {
int result; int result;
unsigned long outlet; u64 outlet;
result = lv1_construct_event_receive_port(&outlet); result = lv1_construct_event_receive_port(&outlet);
...@@ -468,7 +468,7 @@ int ps3_io_irq_setup(enum ps3_cpu_binding cpu, unsigned int interrupt_id, ...@@ -468,7 +468,7 @@ int ps3_io_irq_setup(enum ps3_cpu_binding cpu, unsigned int interrupt_id,
unsigned int *virq) unsigned int *virq)
{ {
int result; int result;
unsigned long outlet; u64 outlet;
result = lv1_construct_io_irq_outlet(interrupt_id, &outlet); result = lv1_construct_io_irq_outlet(interrupt_id, &outlet);
...@@ -525,7 +525,7 @@ int ps3_vuart_irq_setup(enum ps3_cpu_binding cpu, void* virt_addr_bmp, ...@@ -525,7 +525,7 @@ int ps3_vuart_irq_setup(enum ps3_cpu_binding cpu, void* virt_addr_bmp,
unsigned int *virq) unsigned int *virq)
{ {
int result; int result;
unsigned long outlet; u64 outlet;
u64 lpar_addr; u64 lpar_addr;
BUG_ON(!is_kernel_addr((u64)virt_addr_bmp)); BUG_ON(!is_kernel_addr((u64)virt_addr_bmp));
...@@ -581,7 +581,7 @@ int ps3_spe_irq_setup(enum ps3_cpu_binding cpu, unsigned long spe_id, ...@@ -581,7 +581,7 @@ int ps3_spe_irq_setup(enum ps3_cpu_binding cpu, unsigned long spe_id,
unsigned int class, unsigned int *virq) unsigned int class, unsigned int *virq)
{ {
int result; int result;
unsigned long outlet; u64 outlet;
BUG_ON(class > 2); BUG_ON(class > 2);
......
...@@ -79,7 +79,7 @@ enum { ...@@ -79,7 +79,7 @@ enum {
*/ */
struct mem_region { struct mem_region {
unsigned long base; u64 base;
unsigned long size; unsigned long size;
unsigned long offset; unsigned long offset;
}; };
...@@ -104,8 +104,8 @@ struct mem_region { ...@@ -104,8 +104,8 @@ struct mem_region {
struct map { struct map {
unsigned long total; unsigned long total;
unsigned long vas_id; u64 vas_id;
unsigned long htab_size; u64 htab_size;
struct mem_region rm; struct mem_region rm;
struct mem_region r1; struct mem_region r1;
}; };
...@@ -116,9 +116,9 @@ static void __maybe_unused _debug_dump_map(const struct map *m, ...@@ -116,9 +116,9 @@ static void __maybe_unused _debug_dump_map(const struct map *m,
{ {
DBG("%s:%d: map.total = %lxh\n", func, line, m->total); DBG("%s:%d: map.total = %lxh\n", func, line, m->total);
DBG("%s:%d: map.rm.size = %lxh\n", func, line, m->rm.size); DBG("%s:%d: map.rm.size = %lxh\n", func, line, m->rm.size);
DBG("%s:%d: map.vas_id = %lu\n", func, line, m->vas_id); DBG("%s:%d: map.vas_id = %llu\n", func, line, m->vas_id);
DBG("%s:%d: map.htab_size = %lxh\n", func, line, m->htab_size); DBG("%s:%d: map.htab_size = %llxh\n", func, line, m->htab_size);
DBG("%s:%d: map.r1.base = %lxh\n", func, line, m->r1.base); DBG("%s:%d: map.r1.base = %llxh\n", func, line, m->r1.base);
DBG("%s:%d: map.r1.offset = %lxh\n", func, line, m->r1.offset); DBG("%s:%d: map.r1.offset = %lxh\n", func, line, m->r1.offset);
DBG("%s:%d: map.r1.size = %lxh\n", func, line, m->r1.size); DBG("%s:%d: map.r1.size = %lxh\n", func, line, m->r1.size);
} }
...@@ -146,11 +146,11 @@ EXPORT_SYMBOL(ps3_mm_phys_to_lpar); ...@@ -146,11 +146,11 @@ EXPORT_SYMBOL(ps3_mm_phys_to_lpar);
void __init ps3_mm_vas_create(unsigned long* htab_size) void __init ps3_mm_vas_create(unsigned long* htab_size)
{ {
int result; int result;
unsigned long start_address; u64 start_address;
unsigned long size; u64 size;
unsigned long access_right; u64 access_right;
unsigned long max_page_size; u64 max_page_size;
unsigned long flags; u64 flags;
result = lv1_query_logical_partition_address_region_info(0, result = lv1_query_logical_partition_address_region_info(0,
&start_address, &size, &access_right, &max_page_size, &start_address, &size, &access_right, &max_page_size,
...@@ -164,7 +164,7 @@ void __init ps3_mm_vas_create(unsigned long* htab_size) ...@@ -164,7 +164,7 @@ void __init ps3_mm_vas_create(unsigned long* htab_size)
} }
if (max_page_size < PAGE_SHIFT_16M) { if (max_page_size < PAGE_SHIFT_16M) {
DBG("%s:%d: bad max_page_size %lxh\n", __func__, __LINE__, DBG("%s:%d: bad max_page_size %llxh\n", __func__, __LINE__,
max_page_size); max_page_size);
goto fail; goto fail;
} }
...@@ -208,7 +208,7 @@ void ps3_mm_vas_destroy(void) ...@@ -208,7 +208,7 @@ void ps3_mm_vas_destroy(void)
{ {
int result; int result;
DBG("%s:%d: map.vas_id = %lu\n", __func__, __LINE__, map.vas_id); DBG("%s:%d: map.vas_id = %llu\n", __func__, __LINE__, map.vas_id);
if (map.vas_id) { if (map.vas_id) {
result = lv1_select_virtual_address_space(0); result = lv1_select_virtual_address_space(0);
...@@ -235,7 +235,7 @@ void ps3_mm_vas_destroy(void) ...@@ -235,7 +235,7 @@ void ps3_mm_vas_destroy(void)
static int ps3_mm_region_create(struct mem_region *r, unsigned long size) static int ps3_mm_region_create(struct mem_region *r, unsigned long size)
{ {
int result; int result;
unsigned long muid; u64 muid;
r->size = _ALIGN_DOWN(size, 1 << PAGE_SHIFT_16M); r->size = _ALIGN_DOWN(size, 1 << PAGE_SHIFT_16M);
...@@ -277,7 +277,7 @@ static void ps3_mm_region_destroy(struct mem_region *r) ...@@ -277,7 +277,7 @@ static void ps3_mm_region_destroy(struct mem_region *r)
{ {
int result; int result;
DBG("%s:%d: r->base = %lxh\n", __func__, __LINE__, r->base); DBG("%s:%d: r->base = %llxh\n", __func__, __LINE__, r->base);
if (r->base) { if (r->base) {
result = lv1_release_memory(r->base); result = lv1_release_memory(r->base);
BUG_ON(result); BUG_ON(result);
...@@ -648,6 +648,7 @@ fail_alloc: ...@@ -648,6 +648,7 @@ fail_alloc:
static int dma_sb_region_create(struct ps3_dma_region *r) static int dma_sb_region_create(struct ps3_dma_region *r)
{ {
int result; int result;
u64 bus_addr;
DBG(" -> %s:%d:\n", __func__, __LINE__); DBG(" -> %s:%d:\n", __func__, __LINE__);
...@@ -671,7 +672,8 @@ static int dma_sb_region_create(struct ps3_dma_region *r) ...@@ -671,7 +672,8 @@ static int dma_sb_region_create(struct ps3_dma_region *r)
result = lv1_allocate_device_dma_region(r->dev->bus_id, r->dev->dev_id, result = lv1_allocate_device_dma_region(r->dev->bus_id, r->dev->dev_id,
roundup_pow_of_two(r->len), r->page_size, r->region_type, roundup_pow_of_two(r->len), r->page_size, r->region_type,
&r->bus_addr); &bus_addr);
r->bus_addr = bus_addr;
if (result) { if (result) {
DBG("%s:%d: lv1_allocate_device_dma_region failed: %s\n", DBG("%s:%d: lv1_allocate_device_dma_region failed: %s\n",
...@@ -685,6 +687,7 @@ static int dma_sb_region_create(struct ps3_dma_region *r) ...@@ -685,6 +687,7 @@ static int dma_sb_region_create(struct ps3_dma_region *r)
static int dma_ioc0_region_create(struct ps3_dma_region *r) static int dma_ioc0_region_create(struct ps3_dma_region *r)
{ {
int result; int result;
u64 bus_addr;
INIT_LIST_HEAD(&r->chunk_list.head); INIT_LIST_HEAD(&r->chunk_list.head);
spin_lock_init(&r->chunk_list.lock); spin_lock_init(&r->chunk_list.lock);
...@@ -692,7 +695,8 @@ static int dma_ioc0_region_create(struct ps3_dma_region *r) ...@@ -692,7 +695,8 @@ static int dma_ioc0_region_create(struct ps3_dma_region *r)
result = lv1_allocate_io_segment(0, result = lv1_allocate_io_segment(0,
r->len, r->len,
r->page_size, r->page_size,
&r->bus_addr); &bus_addr);
r->bus_addr = bus_addr;
if (result) { if (result) {
DBG("%s:%d: lv1_allocate_io_segment failed: %s\n", DBG("%s:%d: lv1_allocate_io_segment failed: %s\n",
__func__, __LINE__, ps3_result(result)); __func__, __LINE__, ps3_result(result));
......
...@@ -149,7 +149,7 @@ EXPORT_SYMBOL_GPL(ps3_get_spe_id); ...@@ -149,7 +149,7 @@ EXPORT_SYMBOL_GPL(ps3_get_spe_id);
static unsigned long get_vas_id(void) static unsigned long get_vas_id(void)
{ {
unsigned long id; u64 id;
lv1_get_logical_ppe_id(&id); lv1_get_logical_ppe_id(&id);
lv1_get_virtual_address_space_id_of_ppe(id, &id); lv1_get_virtual_address_space_id_of_ppe(id, &id);
...@@ -160,14 +160,18 @@ static unsigned long get_vas_id(void) ...@@ -160,14 +160,18 @@ static unsigned long get_vas_id(void)
static int __init construct_spu(struct spu *spu) static int __init construct_spu(struct spu *spu)
{ {
int result; int result;
unsigned long unused; u64 unused;
u64 problem_phys;
u64 local_store_phys;
result = lv1_construct_logical_spe(PAGE_SHIFT, PAGE_SHIFT, PAGE_SHIFT, result = lv1_construct_logical_spe(PAGE_SHIFT, PAGE_SHIFT, PAGE_SHIFT,
PAGE_SHIFT, PAGE_SHIFT, get_vas_id(), SPE_TYPE_LOGICAL, PAGE_SHIFT, PAGE_SHIFT, get_vas_id(), SPE_TYPE_LOGICAL,
&spu_pdata(spu)->priv2_addr, &spu->problem_phys, &spu_pdata(spu)->priv2_addr, &problem_phys,
&spu->local_store_phys, &unused, &local_store_phys, &unused,
&spu_pdata(spu)->shadow_addr, &spu_pdata(spu)->shadow_addr,
&spu_pdata(spu)->spe_id); &spu_pdata(spu)->spe_id);
spu->problem_phys = problem_phys;
spu->local_store_phys = local_store_phys;
if (result) { if (result) {
pr_debug("%s:%d: lv1_construct_logical_spe failed: %s\n", pr_debug("%s:%d: lv1_construct_logical_spe failed: %s\n",
......
...@@ -250,9 +250,11 @@ static void _dump_mmio_region(const struct ps3_mmio_region* r, ...@@ -250,9 +250,11 @@ static void _dump_mmio_region(const struct ps3_mmio_region* r,
static int ps3_sb_mmio_region_create(struct ps3_mmio_region *r) static int ps3_sb_mmio_region_create(struct ps3_mmio_region *r)
{ {
int result; int result;
u64 lpar_addr;
result = lv1_map_device_mmio_region(r->dev->bus_id, r->dev->dev_id, result = lv1_map_device_mmio_region(r->dev->bus_id, r->dev->dev_id,
r->bus_addr, r->len, r->page_size, &r->lpar_addr); r->bus_addr, r->len, r->page_size, &lpar_addr);
r->lpar_addr = lpar_addr;
if (result) { if (result) {
pr_debug("%s:%d: lv1_map_device_mmio_region failed: %s\n", pr_debug("%s:%d: lv1_map_device_mmio_region failed: %s\n",
......
...@@ -159,11 +159,13 @@ int ps3_vuart_get_triggers(struct ps3_system_bus_device *dev, ...@@ -159,11 +159,13 @@ int ps3_vuart_get_triggers(struct ps3_system_bus_device *dev,
struct vuart_triggers *trig) struct vuart_triggers *trig)
{ {
int result; int result;
unsigned long size; u64 size;
unsigned long val; u64 val;
u64 tx;
result = lv1_get_virtual_uart_param(dev->port_number, result = lv1_get_virtual_uart_param(dev->port_number,
PARAM_TX_TRIGGER, &trig->tx); PARAM_TX_TRIGGER, &tx);
trig->tx = tx;
if (result) { if (result) {
dev_dbg(&dev->core, "%s:%d: tx_trigger failed: %s\n", dev_dbg(&dev->core, "%s:%d: tx_trigger failed: %s\n",
...@@ -201,7 +203,7 @@ int ps3_vuart_set_triggers(struct ps3_system_bus_device *dev, unsigned int tx, ...@@ -201,7 +203,7 @@ int ps3_vuart_set_triggers(struct ps3_system_bus_device *dev, unsigned int tx,
unsigned int rx) unsigned int rx)
{ {
int result; int result;
unsigned long size; u64 size;
result = lv1_set_virtual_uart_param(dev->port_number, result = lv1_set_virtual_uart_param(dev->port_number,
PARAM_TX_TRIGGER, tx); PARAM_TX_TRIGGER, tx);
...@@ -363,7 +365,7 @@ int ps3_vuart_disable_interrupt_disconnect(struct ps3_system_bus_device *dev) ...@@ -363,7 +365,7 @@ int ps3_vuart_disable_interrupt_disconnect(struct ps3_system_bus_device *dev)
*/ */
static int ps3_vuart_raw_write(struct ps3_system_bus_device *dev, static int ps3_vuart_raw_write(struct ps3_system_bus_device *dev,
const void *buf, unsigned int bytes, unsigned long *bytes_written) const void *buf, unsigned int bytes, u64 *bytes_written)
{ {
int result; int result;
struct ps3_vuart_port_priv *priv = to_port_priv(dev); struct ps3_vuart_port_priv *priv = to_port_priv(dev);
...@@ -379,7 +381,7 @@ static int ps3_vuart_raw_write(struct ps3_system_bus_device *dev, ...@@ -379,7 +381,7 @@ static int ps3_vuart_raw_write(struct ps3_system_bus_device *dev,
priv->stats.bytes_written += *bytes_written; priv->stats.bytes_written += *bytes_written;
dev_dbg(&dev->core, "%s:%d: wrote %lxh/%xh=>%lxh\n", __func__, __LINE__, dev_dbg(&dev->core, "%s:%d: wrote %llxh/%xh=>%lxh\n", __func__, __LINE__,
*bytes_written, bytes, priv->stats.bytes_written); *bytes_written, bytes, priv->stats.bytes_written);
return result; return result;
...@@ -393,7 +395,7 @@ static int ps3_vuart_raw_write(struct ps3_system_bus_device *dev, ...@@ -393,7 +395,7 @@ static int ps3_vuart_raw_write(struct ps3_system_bus_device *dev,
*/ */
static int ps3_vuart_raw_read(struct ps3_system_bus_device *dev, void *buf, static int ps3_vuart_raw_read(struct ps3_system_bus_device *dev, void *buf,
unsigned int bytes, unsigned long *bytes_read) unsigned int bytes, u64 *bytes_read)
{ {
int result; int result;
struct ps3_vuart_port_priv *priv = to_port_priv(dev); struct ps3_vuart_port_priv *priv = to_port_priv(dev);
...@@ -411,7 +413,7 @@ static int ps3_vuart_raw_read(struct ps3_system_bus_device *dev, void *buf, ...@@ -411,7 +413,7 @@ static int ps3_vuart_raw_read(struct ps3_system_bus_device *dev, void *buf,
priv->stats.bytes_read += *bytes_read; priv->stats.bytes_read += *bytes_read;
dev_dbg(&dev->core, "%s:%d: read %lxh/%xh=>%lxh\n", __func__, __LINE__, dev_dbg(&dev->core, "%s:%d: read %llxh/%xh=>%lxh\n", __func__, __LINE__,
*bytes_read, bytes, priv->stats.bytes_read); *bytes_read, bytes, priv->stats.bytes_read);
return result; return result;
...@@ -500,7 +502,7 @@ int ps3_vuart_write(struct ps3_system_bus_device *dev, const void *buf, ...@@ -500,7 +502,7 @@ int ps3_vuart_write(struct ps3_system_bus_device *dev, const void *buf,
spin_lock_irqsave(&priv->tx_list.lock, flags); spin_lock_irqsave(&priv->tx_list.lock, flags);
if (list_empty(&priv->tx_list.head)) { if (list_empty(&priv->tx_list.head)) {
unsigned long bytes_written; u64 bytes_written;
result = ps3_vuart_raw_write(dev, buf, bytes, &bytes_written); result = ps3_vuart_raw_write(dev, buf, bytes, &bytes_written);
...@@ -745,7 +747,7 @@ static int ps3_vuart_handle_interrupt_tx(struct ps3_system_bus_device *dev) ...@@ -745,7 +747,7 @@ static int ps3_vuart_handle_interrupt_tx(struct ps3_system_bus_device *dev)
list_for_each_entry_safe(lb, n, &priv->tx_list.head, link) { list_for_each_entry_safe(lb, n, &priv->tx_list.head, link) {
unsigned long bytes_written; u64 bytes_written;
result = ps3_vuart_raw_write(dev, lb->head, lb->tail - lb->head, result = ps3_vuart_raw_write(dev, lb->head, lb->tail - lb->head,
&bytes_written); &bytes_written);
...@@ -762,7 +764,7 @@ static int ps3_vuart_handle_interrupt_tx(struct ps3_system_bus_device *dev) ...@@ -762,7 +764,7 @@ static int ps3_vuart_handle_interrupt_tx(struct ps3_system_bus_device *dev)
if (bytes_written < lb->tail - lb->head) { if (bytes_written < lb->tail - lb->head) {
lb->head += bytes_written; lb->head += bytes_written;
dev_dbg(&dev->core, dev_dbg(&dev->core,
"%s:%d cleared buf_%lu, %lxh bytes\n", "%s:%d cleared buf_%lu, %llxh bytes\n",
__func__, __LINE__, lb->dbg_number, __func__, __LINE__, lb->dbg_number,
bytes_written); bytes_written);
goto port_full; goto port_full;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment