Commit 034e0ab5 authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by Paul Mackerras

[POWERPC] PS3: Make bus_id and dev_id u64

Change the PS3 bus_id and dev_id from type unsigned int to u64.  These
IDs are 64-bit in the repository, and the special storage notification
device has a device ID of ULONG_MAX.
Signed-off-by: default avatarGeert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Signed-off-by: default avatarGeoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent cda563fb
...@@ -297,7 +297,7 @@ static int ps3_storage_wait_for_device(const struct ps3_repository_device *repo) ...@@ -297,7 +297,7 @@ static int ps3_storage_wait_for_device(const struct ps3_repository_device *repo)
u64 dev_port; u64 dev_port;
} *notify_event; } *notify_event;
pr_debug(" -> %s:%u: (%u:%u:%u)\n", __func__, __LINE__, repo->bus_id, pr_debug(" -> %s:%u: (%lu:%lu:%u)\n", __func__, __LINE__, repo->bus_id,
repo->dev_id, repo->dev_type); repo->dev_id, repo->dev_type);
buf = kzalloc(512, GFP_KERNEL); buf = kzalloc(512, GFP_KERNEL);
...@@ -384,7 +384,7 @@ static int ps3_storage_wait_for_device(const struct ps3_repository_device *repo) ...@@ -384,7 +384,7 @@ static int ps3_storage_wait_for_device(const struct ps3_repository_device *repo)
if (notify_event->dev_id == repo->dev_id && if (notify_event->dev_id == repo->dev_id &&
notify_event->dev_type == PS3_DEV_TYPE_NOACCESS) { notify_event->dev_type == PS3_DEV_TYPE_NOACCESS) {
pr_debug("%s:%u: no access: dev_id %u\n", __func__, pr_debug("%s:%u: no access: dev_id %lu\n", __func__,
__LINE__, repo->dev_id); __LINE__, repo->dev_id);
break; break;
} }
......
...@@ -359,7 +359,7 @@ static unsigned long dma_sb_lpar_to_bus(struct ps3_dma_region *r, ...@@ -359,7 +359,7 @@ static unsigned long dma_sb_lpar_to_bus(struct ps3_dma_region *r,
static void __maybe_unused _dma_dump_region(const struct ps3_dma_region *r, static void __maybe_unused _dma_dump_region(const struct ps3_dma_region *r,
const char *func, int line) const char *func, int line)
{ {
DBG("%s:%d: dev %u:%u\n", func, line, r->dev->bus_id, DBG("%s:%d: dev %lu:%lu\n", func, line, r->dev->bus_id,
r->dev->dev_id); r->dev->dev_id);
DBG("%s:%d: page_size %u\n", func, line, r->page_size); DBG("%s:%d: page_size %u\n", func, line, r->page_size);
DBG("%s:%d: bus_addr %lxh\n", func, line, r->bus_addr); DBG("%s:%d: bus_addr %lxh\n", func, line, r->bus_addr);
...@@ -394,7 +394,7 @@ struct dma_chunk { ...@@ -394,7 +394,7 @@ struct dma_chunk {
static void _dma_dump_chunk (const struct dma_chunk* c, const char* func, static void _dma_dump_chunk (const struct dma_chunk* c, const char* func,
int line) int line)
{ {
DBG("%s:%d: r.dev %u:%u\n", func, line, DBG("%s:%d: r.dev %lu:%lu\n", func, line,
c->region->dev->bus_id, c->region->dev->dev_id); c->region->dev->bus_id, c->region->dev->dev_id);
DBG("%s:%d: r.bus_addr %lxh\n", func, line, c->region->bus_addr); DBG("%s:%d: r.bus_addr %lxh\n", func, line, c->region->bus_addr);
DBG("%s:%d: r.page_size %u\n", func, line, c->region->page_size); DBG("%s:%d: r.page_size %u\n", func, line, c->region->page_size);
...@@ -658,7 +658,7 @@ static int dma_sb_region_create(struct ps3_dma_region *r) ...@@ -658,7 +658,7 @@ static int dma_sb_region_create(struct ps3_dma_region *r)
BUG_ON(!r); BUG_ON(!r);
if (!r->dev->bus_id) { if (!r->dev->bus_id) {
pr_info("%s:%d: %u:%u no dma\n", __func__, __LINE__, pr_info("%s:%d: %lu:%lu no dma\n", __func__, __LINE__,
r->dev->bus_id, r->dev->dev_id); r->dev->bus_id, r->dev->dev_id);
return 0; return 0;
} }
...@@ -724,7 +724,7 @@ static int dma_sb_region_free(struct ps3_dma_region *r) ...@@ -724,7 +724,7 @@ static int dma_sb_region_free(struct ps3_dma_region *r)
BUG_ON(!r); BUG_ON(!r);
if (!r->dev->bus_id) { if (!r->dev->bus_id) {
pr_info("%s:%d: %u:%u no dma\n", __func__, __LINE__, pr_info("%s:%d: %lu:%lu no dma\n", __func__, __LINE__,
r->dev->bus_id, r->dev->dev_id); r->dev->bus_id, r->dev->dev_id);
return 0; return 0;
} }
......
...@@ -95,7 +95,7 @@ enum ps3_dev_type { ...@@ -95,7 +95,7 @@ enum ps3_dev_type {
int ps3_repository_read_bus_str(unsigned int bus_index, const char *bus_str, int ps3_repository_read_bus_str(unsigned int bus_index, const char *bus_str,
u64 *value); u64 *value);
int ps3_repository_read_bus_id(unsigned int bus_index, unsigned int *bus_id); int ps3_repository_read_bus_id(unsigned int bus_index, u64 *bus_id);
int ps3_repository_read_bus_type(unsigned int bus_index, int ps3_repository_read_bus_type(unsigned int bus_index,
enum ps3_bus_type *bus_type); enum ps3_bus_type *bus_type);
int ps3_repository_read_bus_num_dev(unsigned int bus_index, int ps3_repository_read_bus_num_dev(unsigned int bus_index,
...@@ -119,7 +119,7 @@ enum ps3_reg_type { ...@@ -119,7 +119,7 @@ enum ps3_reg_type {
int ps3_repository_read_dev_str(unsigned int bus_index, int ps3_repository_read_dev_str(unsigned int bus_index,
unsigned int dev_index, const char *dev_str, u64 *value); unsigned int dev_index, const char *dev_str, u64 *value);
int ps3_repository_read_dev_id(unsigned int bus_index, unsigned int dev_index, int ps3_repository_read_dev_id(unsigned int bus_index, unsigned int dev_index,
unsigned int *dev_id); u64 *dev_id);
int ps3_repository_read_dev_type(unsigned int bus_index, int ps3_repository_read_dev_type(unsigned int bus_index,
unsigned int dev_index, enum ps3_dev_type *dev_type); unsigned int dev_index, enum ps3_dev_type *dev_type);
int ps3_repository_read_dev_intr(unsigned int bus_index, int ps3_repository_read_dev_intr(unsigned int bus_index,
...@@ -138,12 +138,12 @@ int ps3_repository_read_dev_reg(unsigned int bus_index, ...@@ -138,12 +138,12 @@ int ps3_repository_read_dev_reg(unsigned int bus_index,
/* repository bus enumerators */ /* repository bus enumerators */
struct ps3_repository_device { struct ps3_repository_device {
enum ps3_bus_type bus_type;
unsigned int bus_index; unsigned int bus_index;
unsigned int bus_id;
enum ps3_dev_type dev_type;
unsigned int dev_index; unsigned int dev_index;
unsigned int dev_id; enum ps3_bus_type bus_type;
enum ps3_dev_type dev_type;
u64 bus_id;
u64 dev_id;
}; };
static inline struct ps3_repository_device *ps3_repository_bump_device( static inline struct ps3_repository_device *ps3_repository_bump_device(
......
...@@ -168,18 +168,15 @@ int ps3_repository_read_bus_str(unsigned int bus_index, const char *bus_str, ...@@ -168,18 +168,15 @@ int ps3_repository_read_bus_str(unsigned int bus_index, const char *bus_str,
value, 0); value, 0);
} }
int ps3_repository_read_bus_id(unsigned int bus_index, unsigned int *bus_id) int ps3_repository_read_bus_id(unsigned int bus_index, u64 *bus_id)
{ {
int result; int result;
u64 v1;
u64 v2; /* unused */
result = read_node(PS3_LPAR_ID_PME, result = read_node(PS3_LPAR_ID_PME,
make_first_field("bus", bus_index), make_first_field("bus", bus_index),
make_field("id", 0), make_field("id", 0),
0, 0, 0, 0,
&v1, &v2); bus_id, NULL);
*bus_id = v1;
return result; return result;
} }
...@@ -225,18 +222,16 @@ int ps3_repository_read_dev_str(unsigned int bus_index, ...@@ -225,18 +222,16 @@ int ps3_repository_read_dev_str(unsigned int bus_index,
} }
int ps3_repository_read_dev_id(unsigned int bus_index, unsigned int dev_index, int ps3_repository_read_dev_id(unsigned int bus_index, unsigned int dev_index,
unsigned int *dev_id) u64 *dev_id)
{ {
int result; int result;
u64 v1;
result = read_node(PS3_LPAR_ID_PME, result = read_node(PS3_LPAR_ID_PME,
make_first_field("bus", bus_index), make_first_field("bus", bus_index),
make_field("dev", dev_index), make_field("dev", dev_index),
make_field("id", 0), make_field("id", 0),
0, 0,
&v1, 0); dev_id, 0);
*dev_id = v1;
return result; return result;
} }
...@@ -332,7 +327,7 @@ int ps3_repository_find_device(struct ps3_repository_device *repo) ...@@ -332,7 +327,7 @@ int ps3_repository_find_device(struct ps3_repository_device *repo)
return result; return result;
} }
pr_debug("%s:%d: bus_type %u, bus_index %u, bus_id %u, num_dev %u\n", pr_debug("%s:%d: bus_type %u, bus_index %u, bus_id %lu, num_dev %u\n",
__func__, __LINE__, tmp.bus_type, tmp.bus_index, tmp.bus_id, __func__, __LINE__, tmp.bus_type, tmp.bus_index, tmp.bus_id,
num_dev); num_dev);
...@@ -387,7 +382,7 @@ int ps3_repository_find_device(struct ps3_repository_device *repo) ...@@ -387,7 +382,7 @@ int ps3_repository_find_device(struct ps3_repository_device *repo)
return result; return result;
} }
pr_debug("%s:%d: found: dev_type %u, dev_index %u, dev_id %u\n", pr_debug("%s:%d: found: dev_type %u, dev_index %u, dev_id %lu\n",
__func__, __LINE__, tmp.dev_type, tmp.dev_index, tmp.dev_id); __func__, __LINE__, tmp.dev_type, tmp.dev_index, tmp.dev_id);
*repo = tmp; *repo = tmp;
...@@ -1034,7 +1029,7 @@ static int dump_device_info(struct ps3_repository_device *repo, ...@@ -1034,7 +1029,7 @@ static int dump_device_info(struct ps3_repository_device *repo,
continue; continue;
} }
pr_debug("%s:%d (%u:%u): dev_type %u, dev_id %u\n", __func__, pr_debug("%s:%d (%u:%u): dev_type %u, dev_id %lu\n", __func__,
__LINE__, repo->bus_index, repo->dev_index, __LINE__, repo->bus_index, repo->dev_index,
repo->dev_type, repo->dev_id); repo->dev_type, repo->dev_id);
...@@ -1091,7 +1086,7 @@ int ps3_repository_dump_bus_info(void) ...@@ -1091,7 +1086,7 @@ int ps3_repository_dump_bus_info(void)
continue; continue;
} }
pr_debug("%s:%d bus_%u: bus_type %u, bus_id %u, num_dev %u\n", pr_debug("%s:%d bus_%u: bus_type %u, bus_id %lu, num_dev %u\n",
__func__, __LINE__, repo.bus_index, repo.bus_type, __func__, __LINE__, repo.bus_index, repo.bus_type,
repo.bus_id, num_dev); repo.bus_id, num_dev);
......
...@@ -42,8 +42,8 @@ struct { ...@@ -42,8 +42,8 @@ struct {
int gpu; int gpu;
} static usage_hack; } static usage_hack;
static int ps3_is_device(struct ps3_system_bus_device *dev, static int ps3_is_device(struct ps3_system_bus_device *dev, u64 bus_id,
unsigned int bus_id, unsigned int dev_id) u64 dev_id)
{ {
return dev->bus_id == bus_id && dev->dev_id == dev_id; return dev->bus_id == bus_id && dev->dev_id == dev_id;
} }
...@@ -182,8 +182,8 @@ int ps3_open_hv_device(struct ps3_system_bus_device *dev) ...@@ -182,8 +182,8 @@ int ps3_open_hv_device(struct ps3_system_bus_device *dev)
case PS3_MATCH_ID_SYSTEM_MANAGER: case PS3_MATCH_ID_SYSTEM_MANAGER:
pr_debug("%s:%d: unsupported match_id: %u\n", __func__, pr_debug("%s:%d: unsupported match_id: %u\n", __func__,
__LINE__, dev->match_id); __LINE__, dev->match_id);
pr_debug("%s:%d: bus_id: %u\n", __func__, pr_debug("%s:%d: bus_id: %lu\n", __func__, __LINE__,
__LINE__, dev->bus_id); dev->bus_id);
BUG(); BUG();
return -EINVAL; return -EINVAL;
...@@ -220,8 +220,8 @@ int ps3_close_hv_device(struct ps3_system_bus_device *dev) ...@@ -220,8 +220,8 @@ int ps3_close_hv_device(struct ps3_system_bus_device *dev)
case PS3_MATCH_ID_SYSTEM_MANAGER: case PS3_MATCH_ID_SYSTEM_MANAGER:
pr_debug("%s:%d: unsupported match_id: %u\n", __func__, pr_debug("%s:%d: unsupported match_id: %u\n", __func__,
__LINE__, dev->match_id); __LINE__, dev->match_id);
pr_debug("%s:%d: bus_id: %u\n", __func__, pr_debug("%s:%d: bus_id: %lu\n", __func__, __LINE__,
__LINE__, dev->bus_id); dev->bus_id);
BUG(); BUG();
return -EINVAL; return -EINVAL;
...@@ -240,7 +240,7 @@ EXPORT_SYMBOL_GPL(ps3_close_hv_device); ...@@ -240,7 +240,7 @@ EXPORT_SYMBOL_GPL(ps3_close_hv_device);
static void _dump_mmio_region(const struct ps3_mmio_region* r, static void _dump_mmio_region(const struct ps3_mmio_region* r,
const char* func, int line) const char* func, int line)
{ {
pr_debug("%s:%d: dev %u:%u\n", func, line, r->dev->bus_id, pr_debug("%s:%d: dev %lu:%lu\n", func, line, r->dev->bus_id,
r->dev->dev_id); r->dev->dev_id);
pr_debug("%s:%d: bus_addr %lxh\n", func, line, r->bus_addr); pr_debug("%s:%d: bus_addr %lxh\n", func, line, r->bus_addr);
pr_debug("%s:%d: len %lxh\n", func, line, r->len); pr_debug("%s:%d: len %lxh\n", func, line, r->len);
......
...@@ -58,11 +58,11 @@ static inline struct device *ctodev(struct gelic_net_card *card) ...@@ -58,11 +58,11 @@ static inline struct device *ctodev(struct gelic_net_card *card)
{ {
return &card->dev->core; return &card->dev->core;
} }
static inline unsigned int bus_id(struct gelic_net_card *card) static inline u64 bus_id(struct gelic_net_card *card)
{ {
return card->dev->bus_id; return card->dev->bus_id;
} }
static inline unsigned int dev_id(struct gelic_net_card *card) static inline u64 dev_id(struct gelic_net_card *card)
{ {
return card->dev->dev_id; return card->dev->dev_id;
} }
......
...@@ -344,8 +344,8 @@ struct ps3_system_bus_device { ...@@ -344,8 +344,8 @@ struct ps3_system_bus_device {
enum ps3_match_id match_id; enum ps3_match_id match_id;
enum ps3_system_bus_device_type dev_type; enum ps3_system_bus_device_type dev_type;
unsigned int bus_id; /* SB */ u64 bus_id; /* SB */
unsigned int dev_id; /* SB */ u64 dev_id; /* SB */
unsigned int interrupt_id; /* SB */ unsigned int interrupt_id; /* SB */
struct ps3_dma_region *d_region; /* SB, IOC0 */ struct ps3_dma_region *d_region; /* SB, IOC0 */
struct ps3_mmio_region *m_region; /* SB, IOC0*/ struct ps3_mmio_region *m_region; /* SB, IOC0*/
......
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