diff options
Diffstat (limited to 'drivers/gpu/drm/drm_platform.c')
-rw-r--r-- | drivers/gpu/drm/drm_platform.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/gpu/drm/drm_platform.c b/drivers/gpu/drm/drm_platform.c index ae9db5e2b27c..82431dcae37b 100644 --- a/drivers/gpu/drm/drm_platform.c +++ b/drivers/gpu/drm/drm_platform.c | |||
@@ -122,7 +122,7 @@ static const char *drm_platform_get_name(struct drm_device *dev) | |||
122 | 122 | ||
123 | static int drm_platform_set_busid(struct drm_device *dev, struct drm_master *master) | 123 | static int drm_platform_set_busid(struct drm_device *dev, struct drm_master *master) |
124 | { | 124 | { |
125 | int len, ret; | 125 | int len, ret, id; |
126 | 126 | ||
127 | master->unique_len = 13 + strlen(dev->platformdev->name); | 127 | master->unique_len = 13 + strlen(dev->platformdev->name); |
128 | master->unique_size = master->unique_len; | 128 | master->unique_size = master->unique_len; |
@@ -131,8 +131,16 @@ static int drm_platform_set_busid(struct drm_device *dev, struct drm_master *mas | |||
131 | if (master->unique == NULL) | 131 | if (master->unique == NULL) |
132 | return -ENOMEM; | 132 | return -ENOMEM; |
133 | 133 | ||
134 | id = dev->platformdev->id; | ||
135 | |||
136 | /* if only a single instance of the platform device, id will be | ||
137 | * set to -1.. use 0 instead to avoid a funny looking bus-id: | ||
138 | */ | ||
139 | if (id == -1) | ||
140 | id = 0; | ||
141 | |||
134 | len = snprintf(master->unique, master->unique_len, | 142 | len = snprintf(master->unique, master->unique_len, |
135 | "platform:%s:%02d", dev->platformdev->name, dev->platformdev->id); | 143 | "platform:%s:%02d", dev->platformdev->name, id); |
136 | 144 | ||
137 | if (len > master->unique_len) { | 145 | if (len > master->unique_len) { |
138 | DRM_ERROR("Unique buffer overflowed\n"); | 146 | DRM_ERROR("Unique buffer overflowed\n"); |