Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 104825
b: refs/heads/master
c: 059e493
h: refs/heads/master
i:
  104823: db7e1ea
v: v3
  • Loading branch information
Masakazu Mokuno authored and Benjamin Herrenschmidt committed Jul 22, 2008
1 parent 0a61da4 commit c73d7f6
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 6e5f1537833a9fc8251157dff403231f5c89a894
refs/heads/master: 059e4938f8b060b10c4352e6c45739473bc73267
1 change: 1 addition & 0 deletions trunk/arch/powerpc/platforms/ps3/device-init.c
Original file line number Diff line number Diff line change
Expand Up @@ -486,6 +486,7 @@ static int __init ps3_register_graphics_devices(void)
return -ENOMEM;

p->dev.match_id = PS3_MATCH_ID_GRAPHICS;
p->dev.match_sub_id = PS3_MATCH_SUB_ID_FB;
p->dev.dev_type = PS3_DEVICE_TYPE_IOC0;

result = ps3_system_bus_device_register(&p->dev);
Expand Down
21 changes: 14 additions & 7 deletions trunk/arch/powerpc/platforms/ps3/system-bus.c
Original file line number Diff line number Diff line change
Expand Up @@ -347,16 +347,23 @@ static int ps3_system_bus_match(struct device *_dev,
struct ps3_system_bus_driver *drv = ps3_drv_to_system_bus_drv(_drv);
struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev);

result = dev->match_id == drv->match_id;
if (!dev->match_sub_id)
result = dev->match_id == drv->match_id;
else
result = dev->match_sub_id == drv->match_sub_id &&
dev->match_id == drv->match_id;

if (result)
pr_info("%s:%d: dev=%u(%s), drv=%u(%s): match\n", __func__,
__LINE__, dev->match_id, dev->core.bus_id,
drv->match_id, drv->core.name);
pr_info("%s:%d: dev=%u.%u(%s), drv=%u.%u(%s): match\n",
__func__, __LINE__,
dev->match_id, dev->match_sub_id, dev->core.bus_id,
drv->match_id, drv->match_sub_id, drv->core.name);
else
pr_debug("%s:%d: dev=%u(%s), drv=%u(%s): miss\n", __func__,
__LINE__, dev->match_id, dev->core.bus_id,
drv->match_id, drv->core.name);
pr_debug("%s:%d: dev=%u.%u(%s), drv=%u.%u(%s): miss\n",
__func__, __LINE__,
dev->match_id, dev->match_sub_id, dev->core.bus_id,
drv->match_id, drv->match_sub_id, drv->core.name);

return result;
}

Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/video/ps3fb.c
Original file line number Diff line number Diff line change
Expand Up @@ -1297,6 +1297,7 @@ static int ps3fb_shutdown(struct ps3_system_bus_device *dev)

static struct ps3_system_bus_driver ps3fb_driver = {
.match_id = PS3_MATCH_ID_GRAPHICS,
.match_sub_id = PS3_MATCH_SUB_ID_FB,
.core.name = DEVICE_NAME,
.core.owner = THIS_MODULE,
.probe = ps3fb_probe,
Expand Down
7 changes: 7 additions & 0 deletions trunk/include/asm-powerpc/ps3.h
Original file line number Diff line number Diff line change
Expand Up @@ -337,12 +337,18 @@ enum ps3_system_bus_device_type {
PS3_DEVICE_TYPE_LPM,
};

enum ps3_match_sub_id {
/* for PS3_MATCH_ID_GRAPHICS */
PS3_MATCH_SUB_ID_FB = 1,
};

/**
* struct ps3_system_bus_device - a device on the system bus
*/

struct ps3_system_bus_device {
enum ps3_match_id match_id;
enum ps3_match_sub_id match_sub_id;
enum ps3_system_bus_device_type dev_type;

u64 bus_id; /* SB */
Expand Down Expand Up @@ -371,6 +377,7 @@ int ps3_close_hv_device(struct ps3_system_bus_device *dev);

struct ps3_system_bus_driver {
enum ps3_match_id match_id;
enum ps3_match_sub_id match_sub_id;
struct device_driver core;
int (*probe)(struct ps3_system_bus_device *);
int (*remove)(struct ps3_system_bus_device *);
Expand Down

0 comments on commit c73d7f6

Please sign in to comment.