* Some minor bugfixes
@ 2011-10-28 9:14 Christian König
2011-10-28 9:14 ` [PATCH 1/3] drm/radeon: fix debugfs handling Christian König
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Christian König @ 2011-10-28 9:14 UTC (permalink / raw)
To: dri-devel
The following three patches are just minor bug fixes.
I've send them to the list previously, but this time they are based upon drm-next instead of drm-fixes and I also fixed some spelling mistakes in the commit messages.
Please commit. Thanks,
Christian.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/3] drm/radeon: fix debugfs handling
2011-10-28 9:14 Some minor bugfixes Christian König
@ 2011-10-28 9:14 ` Christian König
2011-10-28 9:14 ` [PATCH 2/3] drm/radeon: no need to check all relocs for duplicates Christian König
2011-10-28 9:14 ` [PATCH 3/3] drm/radeon: fix a spelling mistake Christian König
2 siblings, 0 replies; 7+ messages in thread
From: Christian König @ 2011-10-28 9:14 UTC (permalink / raw)
To: dri-devel; +Cc: Christian König
Having registered debugfs files globally causes
the files to not show up on the second, third
etc.. card in the system.
Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
---
drivers/gpu/drm/radeon/radeon.h | 8 ++++++++
drivers/gpu/drm/radeon/radeon_device.c | 26 ++++++++++----------------
2 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index e3170c7..ede1b1b 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -879,6 +879,11 @@ void radeon_test_moves(struct radeon_device *rdev);
/*
* Debugfs
*/
+struct radeon_debugfs {
+ struct drm_info_list *files;
+ unsigned num_files;
+};
+
int radeon_debugfs_add_files(struct radeon_device *rdev,
struct drm_info_list *files,
unsigned nfiles);
@@ -1241,6 +1246,9 @@ struct radeon_device {
struct drm_file *cmask_filp;
/* i2c buses */
struct radeon_i2c_chan *i2c_bus[RADEON_MAX_I2C_BUS];
+ /* debugfs */
+ struct radeon_debugfs debugfs[RADEON_DEBUGFS_MAX_COMPONENTS];
+ unsigned debugfs_count;
};
int radeon_device_init(struct radeon_device *rdev,
diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
index c33bc91..d50fa60 100644
--- a/drivers/gpu/drm/radeon/radeon_device.c
+++ b/drivers/gpu/drm/radeon/radeon_device.c
@@ -978,36 +978,29 @@ int radeon_gpu_reset(struct radeon_device *rdev)
/*
* Debugfs
*/
-struct radeon_debugfs {
- struct drm_info_list *files;
- unsigned num_files;
-};
-static struct radeon_debugfs _radeon_debugfs[RADEON_DEBUGFS_MAX_COMPONENTS];
-static unsigned _radeon_debugfs_count = 0;
-
int radeon_debugfs_add_files(struct radeon_device *rdev,
struct drm_info_list *files,
unsigned nfiles)
{
unsigned i;
- for (i = 0; i < _radeon_debugfs_count; i++) {
- if (_radeon_debugfs[i].files == files) {
+ for (i = 0; i < rdev->debugfs_count; i++) {
+ if (rdev->debugfs[i].files == files) {
/* Already registered */
return 0;
}
}
- i = _radeon_debugfs_count + 1;
+ i = rdev->debugfs_count + 1;
if (i > RADEON_DEBUGFS_MAX_COMPONENTS) {
DRM_ERROR("Reached maximum number of debugfs components.\n");
DRM_ERROR("Report so we increase "
"RADEON_DEBUGFS_MAX_COMPONENTS.\n");
return -EINVAL;
}
- _radeon_debugfs[_radeon_debugfs_count].files = files;
- _radeon_debugfs[_radeon_debugfs_count].num_files = nfiles;
- _radeon_debugfs_count = i;
+ rdev->debugfs[rdev->debugfs_count].files = files;
+ rdev->debugfs[rdev->debugfs_count].num_files = nfiles;
+ rdev->debugfs_count = i;
#if defined(CONFIG_DEBUG_FS)
drm_debugfs_create_files(files, nfiles,
rdev->ddev->control->debugfs_root,
@@ -1027,11 +1020,12 @@ int radeon_debugfs_init(struct drm_minor *minor)
void radeon_debugfs_cleanup(struct drm_minor *minor)
{
+ struct radeon_device *rdev = minor->dev->dev_private;
unsigned i;
- for (i = 0; i < _radeon_debugfs_count; i++) {
- drm_debugfs_remove_files(_radeon_debugfs[i].files,
- _radeon_debugfs[i].num_files, minor);
+ for (i = 0; i < rdev->debugfs_count; i++) {
+ drm_debugfs_remove_files(rdev->debugfs[i].files,
+ rdev->debugfs[i].num_files, minor);
}
}
#endif
--
1.7.5.4
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/3] drm/radeon: no need to check all relocs for duplicates
2011-10-28 9:14 Some minor bugfixes Christian König
2011-10-28 9:14 ` [PATCH 1/3] drm/radeon: fix debugfs handling Christian König
@ 2011-10-28 9:14 ` Christian König
2011-10-28 14:15 ` Alex Deucher
2011-10-28 9:14 ` [PATCH 3/3] drm/radeon: fix a spelling mistake Christian König
2 siblings, 1 reply; 7+ messages in thread
From: Christian König @ 2011-10-28 9:14 UTC (permalink / raw)
To: dri-devel; +Cc: Christian König
Only check the previously checked relocs for
duplicates. Also leaving the handle uninitialized
isn't such a good idea.
Signed-off-by: Christian König <deathsimple@vodafone.de>
---
drivers/gpu/drm/radeon/radeon_cs.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_cs.c b/drivers/gpu/drm/radeon/radeon_cs.c
index fae00c0..7b6e98a 100644
--- a/drivers/gpu/drm/radeon/radeon_cs.c
+++ b/drivers/gpu/drm/radeon/radeon_cs.c
@@ -58,7 +58,7 @@ int radeon_cs_parser_relocs(struct radeon_cs_parser *p)
duplicate = false;
r = (struct drm_radeon_cs_reloc *)&chunk->kdata[i*4];
- for (j = 0; j < p->nrelocs; j++) {
+ for (j = 0; j < i; j++) {
if (r->handle == p->relocs[j].handle) {
p->relocs_ptr[i] = &p->relocs[j];
duplicate = true;
@@ -84,7 +84,8 @@ int radeon_cs_parser_relocs(struct radeon_cs_parser *p)
p->relocs[i].flags = r->flags;
radeon_bo_list_add_object(&p->relocs[i].lobj,
&p->validated);
- }
+ } else
+ p->relocs[i].handle = 0;
}
return radeon_bo_list_validate(&p->validated);
}
--
1.7.5.4
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/3] drm/radeon: fix a spelling mistake
2011-10-28 9:14 Some minor bugfixes Christian König
2011-10-28 9:14 ` [PATCH 1/3] drm/radeon: fix debugfs handling Christian König
2011-10-28 9:14 ` [PATCH 2/3] drm/radeon: no need to check all relocs for duplicates Christian König
@ 2011-10-28 9:14 ` Christian König
2 siblings, 0 replies; 7+ messages in thread
From: Christian König @ 2011-10-28 9:14 UTC (permalink / raw)
To: dri-devel; +Cc: Christian König
Better fix it before this obvious typo spreads even more.
Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
---
drivers/gpu/drm/radeon/radeon.h | 4 +-
drivers/gpu/drm/radeon/radeon_fence.c | 34 ++++++++++++++++----------------
drivers/gpu/drm/radeon/radeon_pm.c | 4 +-
drivers/gpu/drm/radeon/radeon_ring.c | 2 +-
4 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index ede1b1b..2fda4ae 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -198,7 +198,7 @@ struct radeon_fence_driver {
wait_queue_head_t queue;
rwlock_t lock;
struct list_head created;
- struct list_head emited;
+ struct list_head emitted;
struct list_head signaled;
bool initialized;
};
@@ -209,7 +209,7 @@ struct radeon_fence {
struct list_head list;
/* protected by radeon_fence.lock */
uint32_t seq;
- bool emited;
+ bool emitted;
bool signaled;
};
diff --git a/drivers/gpu/drm/radeon/radeon_fence.c b/drivers/gpu/drm/radeon/radeon_fence.c
index a488b50..711bd6e 100644
--- a/drivers/gpu/drm/radeon/radeon_fence.c
+++ b/drivers/gpu/drm/radeon/radeon_fence.c
@@ -74,7 +74,7 @@ int radeon_fence_emit(struct radeon_device *rdev, struct radeon_fence *fence)
unsigned long irq_flags;
write_lock_irqsave(&rdev->fence_drv.lock, irq_flags);
- if (fence->emited) {
+ if (fence->emitted) {
write_unlock_irqrestore(&rdev->fence_drv.lock, irq_flags);
return 0;
}
@@ -88,8 +88,8 @@ int radeon_fence_emit(struct radeon_device *rdev, struct radeon_fence *fence)
radeon_fence_ring_emit(rdev, fence);
trace_radeon_fence_emit(rdev->ddev, fence->seq);
- fence->emited = true;
- list_move_tail(&fence->list, &rdev->fence_drv.emited);
+ fence->emitted = true;
+ list_move_tail(&fence->list, &rdev->fence_drv.emitted);
write_unlock_irqrestore(&rdev->fence_drv.lock, irq_flags);
return 0;
}
@@ -129,7 +129,7 @@ static bool radeon_fence_poll_locked(struct radeon_device *rdev)
return false;
}
n = NULL;
- list_for_each(i, &rdev->fence_drv.emited) {
+ list_for_each(i, &rdev->fence_drv.emitted) {
fence = list_entry(i, struct radeon_fence, list);
if (fence->seq == seq) {
n = i;
@@ -145,7 +145,7 @@ static bool radeon_fence_poll_locked(struct radeon_device *rdev)
fence = list_entry(i, struct radeon_fence, list);
fence->signaled = true;
i = n;
- } while (i != &rdev->fence_drv.emited);
+ } while (i != &rdev->fence_drv.emitted);
wake = true;
}
return wake;
@@ -159,7 +159,7 @@ static void radeon_fence_destroy(struct kref *kref)
fence = container_of(kref, struct radeon_fence, kref);
write_lock_irqsave(&fence->rdev->fence_drv.lock, irq_flags);
list_del(&fence->list);
- fence->emited = false;
+ fence->emitted = false;
write_unlock_irqrestore(&fence->rdev->fence_drv.lock, irq_flags);
kfree(fence);
}
@@ -174,7 +174,7 @@ int radeon_fence_create(struct radeon_device *rdev, struct radeon_fence **fence)
}
kref_init(&((*fence)->kref));
(*fence)->rdev = rdev;
- (*fence)->emited = false;
+ (*fence)->emitted = false;
(*fence)->signaled = false;
(*fence)->seq = 0;
INIT_LIST_HEAD(&(*fence)->list);
@@ -203,8 +203,8 @@ bool radeon_fence_signaled(struct radeon_fence *fence)
if (fence->rdev->shutdown) {
signaled = true;
}
- if (!fence->emited) {
- WARN(1, "Querying an unemited fence : %p !\n", fence);
+ if (!fence->emitted) {
+ WARN(1, "Querying an unemitted fence : %p !\n", fence);
signaled = true;
}
if (!signaled) {
@@ -295,11 +295,11 @@ int radeon_fence_wait_next(struct radeon_device *rdev)
return 0;
}
write_lock_irqsave(&rdev->fence_drv.lock, irq_flags);
- if (list_empty(&rdev->fence_drv.emited)) {
+ if (list_empty(&rdev->fence_drv.emitted)) {
write_unlock_irqrestore(&rdev->fence_drv.lock, irq_flags);
return 0;
}
- fence = list_entry(rdev->fence_drv.emited.next,
+ fence = list_entry(rdev->fence_drv.emitted.next,
struct radeon_fence, list);
radeon_fence_ref(fence);
write_unlock_irqrestore(&rdev->fence_drv.lock, irq_flags);
@@ -318,11 +318,11 @@ int radeon_fence_wait_last(struct radeon_device *rdev)
return 0;
}
write_lock_irqsave(&rdev->fence_drv.lock, irq_flags);
- if (list_empty(&rdev->fence_drv.emited)) {
+ if (list_empty(&rdev->fence_drv.emitted)) {
write_unlock_irqrestore(&rdev->fence_drv.lock, irq_flags);
return 0;
}
- fence = list_entry(rdev->fence_drv.emited.prev,
+ fence = list_entry(rdev->fence_drv.emitted.prev,
struct radeon_fence, list);
radeon_fence_ref(fence);
write_unlock_irqrestore(&rdev->fence_drv.lock, irq_flags);
@@ -375,7 +375,7 @@ int radeon_fence_driver_init(struct radeon_device *rdev)
radeon_fence_write(rdev, 0);
atomic_set(&rdev->fence_drv.seq, 0);
INIT_LIST_HEAD(&rdev->fence_drv.created);
- INIT_LIST_HEAD(&rdev->fence_drv.emited);
+ INIT_LIST_HEAD(&rdev->fence_drv.emitted);
INIT_LIST_HEAD(&rdev->fence_drv.signaled);
init_waitqueue_head(&rdev->fence_drv.queue);
rdev->fence_drv.initialized = true;
@@ -413,10 +413,10 @@ static int radeon_debugfs_fence_info(struct seq_file *m, void *data)
seq_printf(m, "Last signaled fence 0x%08X\n",
radeon_fence_read(rdev));
- if (!list_empty(&rdev->fence_drv.emited)) {
- fence = list_entry(rdev->fence_drv.emited.prev,
+ if (!list_empty(&rdev->fence_drv.emitted)) {
+ fence = list_entry(rdev->fence_drv.emitted.prev,
struct radeon_fence, list);
- seq_printf(m, "Last emited fence %p with 0x%08X\n",
+ seq_printf(m, "Last emitted fence %p with 0x%08X\n",
fence, fence->seq);
}
return 0;
diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c
index 6fabe89..eca9570 100644
--- a/drivers/gpu/drm/radeon/radeon_pm.c
+++ b/drivers/gpu/drm/radeon/radeon_pm.c
@@ -781,9 +781,9 @@ static void radeon_dynpm_idle_work_handler(struct work_struct *work)
int not_processed = 0;
read_lock_irqsave(&rdev->fence_drv.lock, irq_flags);
- if (!list_empty(&rdev->fence_drv.emited)) {
+ if (!list_empty(&rdev->fence_drv.emitted)) {
struct list_head *ptr;
- list_for_each(ptr, &rdev->fence_drv.emited) {
+ list_for_each(ptr, &rdev->fence_drv.emitted) {
/* count up to 3, that's enought info */
if (++not_processed >= 3)
break;
diff --git a/drivers/gpu/drm/radeon/radeon_ring.c b/drivers/gpu/drm/radeon/radeon_ring.c
index 49d5820..f3d7d22 100644
--- a/drivers/gpu/drm/radeon/radeon_ring.c
+++ b/drivers/gpu/drm/radeon/radeon_ring.c
@@ -169,7 +169,7 @@ void radeon_ib_free(struct radeon_device *rdev, struct radeon_ib **ib)
if (tmp == NULL) {
return;
}
- if (!tmp->fence->emited)
+ if (!tmp->fence->emitted)
radeon_fence_unref(&tmp->fence);
mutex_lock(&rdev->ib_pool.mutex);
tmp->free = true;
--
1.7.5.4
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 2/3] drm/radeon: no need to check all relocs for duplicates
2011-10-28 9:14 ` [PATCH 2/3] drm/radeon: no need to check all relocs for duplicates Christian König
@ 2011-10-28 14:15 ` Alex Deucher
0 siblings, 0 replies; 7+ messages in thread
From: Alex Deucher @ 2011-10-28 14:15 UTC (permalink / raw)
To: Christian König; +Cc: dri-devel
2011/10/28 Christian König <deathsimple@vodafone.de>:
> Only check the previously checked relocs for
> duplicates. Also leaving the handle uninitialized
> isn't such a good idea.
>
> Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
> ---
> drivers/gpu/drm/radeon/radeon_cs.c | 5 +++--
> 1 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_cs.c b/drivers/gpu/drm/radeon/radeon_cs.c
> index fae00c0..7b6e98a 100644
> --- a/drivers/gpu/drm/radeon/radeon_cs.c
> +++ b/drivers/gpu/drm/radeon/radeon_cs.c
> @@ -58,7 +58,7 @@ int radeon_cs_parser_relocs(struct radeon_cs_parser *p)
>
> duplicate = false;
> r = (struct drm_radeon_cs_reloc *)&chunk->kdata[i*4];
> - for (j = 0; j < p->nrelocs; j++) {
> + for (j = 0; j < i; j++) {
> if (r->handle == p->relocs[j].handle) {
> p->relocs_ptr[i] = &p->relocs[j];
> duplicate = true;
> @@ -84,7 +84,8 @@ int radeon_cs_parser_relocs(struct radeon_cs_parser *p)
> p->relocs[i].flags = r->flags;
> radeon_bo_list_add_object(&p->relocs[i].lobj,
> &p->validated);
> - }
> + } else
> + p->relocs[i].handle = 0;
> }
> return radeon_bo_list_validate(&p->validated);
> }
> --
> 1.7.5.4
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] drm/radeon: fix debugfs handling
2011-10-25 15:04 [PATCH 1/3] drm/radeon: fix debugfs handling Christian König
@ 2011-10-27 22:39 ` Alex Deucher
0 siblings, 0 replies; 7+ messages in thread
From: Alex Deucher @ 2011-10-27 22:39 UTC (permalink / raw)
To: Christian König; +Cc: dri-devel
2011/10/25 Christian König <deathsimple@vodafone.de>:
> Having registered debugfs files globally causes
> the files to not show up on the second, third
> etc.. card in the system.
>
> Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
> ---
> drivers/gpu/drm/radeon/radeon.h | 8 +++++++
> drivers/gpu/drm/radeon/radeon_device.c | 33 ++++++++++++++-----------------
> 2 files changed, 23 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
> index c1e056b..c052406 100644
> --- a/drivers/gpu/drm/radeon/radeon.h
> +++ b/drivers/gpu/drm/radeon/radeon.h
> @@ -881,6 +881,11 @@ void radeon_test_moves(struct radeon_device *rdev);
> /*
> * Debugfs
> */
> +struct radeon_debugfs {
> + struct drm_info_list *files;
> + unsigned num_files;
> +};
> +
> int radeon_debugfs_add_files(struct radeon_device *rdev,
> struct drm_info_list *files,
> unsigned nfiles);
> @@ -1243,6 +1248,9 @@ struct radeon_device {
> struct drm_file *cmask_filp;
> /* i2c buses */
> struct radeon_i2c_chan *i2c_bus[RADEON_MAX_I2C_BUS];
> + /* debugfs */
> + struct radeon_debugfs debugfs[RADEON_DEBUGFS_MAX_NUM_FILES];
> + unsigned debugfs_count;
> };
>
> int radeon_device_init(struct radeon_device *rdev,
> diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
> index b51e157..13ac46c 100644
> --- a/drivers/gpu/drm/radeon/radeon_device.c
> +++ b/drivers/gpu/drm/radeon/radeon_device.c
> @@ -977,33 +977,29 @@ int radeon_gpu_reset(struct radeon_device *rdev)
> /*
> * Debugfs
> */
> -struct radeon_debugfs {
> - struct drm_info_list *files;
> - unsigned num_files;
> -};
> -static struct radeon_debugfs _radeon_debugfs[RADEON_DEBUGFS_MAX_NUM_FILES];
> -static unsigned _radeon_debugfs_count = 0;
> -
> int radeon_debugfs_add_files(struct radeon_device *rdev,
> struct drm_info_list *files,
> unsigned nfiles)
> {
> unsigned i;
>
> - for (i = 0; i < _radeon_debugfs_count; i++) {
> - if (_radeon_debugfs[i].files == files) {
> + for (i = 0; i < rdev->debugfs_count; i++) {
> + if (rdev->debugfs[i].files == files) {
> /* Already registered */
> return 0;
> }
> }
> - if ((_radeon_debugfs_count + nfiles) > RADEON_DEBUGFS_MAX_NUM_FILES) {
> - DRM_ERROR("Reached maximum number of debugfs files.\n");
> - DRM_ERROR("Report so we increase RADEON_DEBUGFS_MAX_NUM_FILES.\n");
> +
> + i = rdev->debugfs_count + 1;
> + if (i > RADEON_DEBUGFS_MAX_NUM_FILES) {
> + DRM_ERROR("Reached maximum number of debugfs components.\n");
> + DRM_ERROR("Report so we increase "
> + "RADEON_DEBUGFS_MAX_COMPONENTS.\n");
> return -EINVAL;
> }
> - _radeon_debugfs[_radeon_debugfs_count].files = files;
> - _radeon_debugfs[_radeon_debugfs_count].num_files = nfiles;
> - _radeon_debugfs_count++;
> + rdev->debugfs[rdev->debugfs_count].files = files;
> + rdev->debugfs[rdev->debugfs_count].num_files = nfiles;
> + rdev->debugfs_count = i;
> #if defined(CONFIG_DEBUG_FS)
> drm_debugfs_create_files(files, nfiles,
> rdev->ddev->control->debugfs_root,
> @@ -1023,11 +1019,12 @@ int radeon_debugfs_init(struct drm_minor *minor)
>
> void radeon_debugfs_cleanup(struct drm_minor *minor)
> {
> + struct radeon_device *rdev = minor->dev->dev_private;
> unsigned i;
>
> - for (i = 0; i < _radeon_debugfs_count; i++) {
> - drm_debugfs_remove_files(_radeon_debugfs[i].files,
> - _radeon_debugfs[i].num_files, minor);
> + for (i = 0; i < rdev->debugfs_count; i++) {
> + drm_debugfs_remove_files(rdev->debugfs[i].files,
> + rdev->debugfs[i].num_files, minor);
> }
> }
> #endif
> --
> 1.7.5.4
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/3] drm/radeon: fix debugfs handling
@ 2011-10-25 15:04 Christian König
2011-10-27 22:39 ` Alex Deucher
0 siblings, 1 reply; 7+ messages in thread
From: Christian König @ 2011-10-25 15:04 UTC (permalink / raw)
To: dri-devel; +Cc: Christian König
Having registered debugfs files globally causes
the files to not show up on the second, third
etc.. card in the system.
Signed-off-by: Christian König <deathsimple@vodafone.de>
---
drivers/gpu/drm/radeon/radeon.h | 8 +++++++
drivers/gpu/drm/radeon/radeon_device.c | 33 ++++++++++++++-----------------
2 files changed, 23 insertions(+), 18 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index c1e056b..c052406 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -881,6 +881,11 @@ void radeon_test_moves(struct radeon_device *rdev);
/*
* Debugfs
*/
+struct radeon_debugfs {
+ struct drm_info_list *files;
+ unsigned num_files;
+};
+
int radeon_debugfs_add_files(struct radeon_device *rdev,
struct drm_info_list *files,
unsigned nfiles);
@@ -1243,6 +1248,9 @@ struct radeon_device {
struct drm_file *cmask_filp;
/* i2c buses */
struct radeon_i2c_chan *i2c_bus[RADEON_MAX_I2C_BUS];
+ /* debugfs */
+ struct radeon_debugfs debugfs[RADEON_DEBUGFS_MAX_NUM_FILES];
+ unsigned debugfs_count;
};
int radeon_device_init(struct radeon_device *rdev,
diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
index b51e157..13ac46c 100644
--- a/drivers/gpu/drm/radeon/radeon_device.c
+++ b/drivers/gpu/drm/radeon/radeon_device.c
@@ -977,33 +977,29 @@ int radeon_gpu_reset(struct radeon_device *rdev)
/*
* Debugfs
*/
-struct radeon_debugfs {
- struct drm_info_list *files;
- unsigned num_files;
-};
-static struct radeon_debugfs _radeon_debugfs[RADEON_DEBUGFS_MAX_NUM_FILES];
-static unsigned _radeon_debugfs_count = 0;
-
int radeon_debugfs_add_files(struct radeon_device *rdev,
struct drm_info_list *files,
unsigned nfiles)
{
unsigned i;
- for (i = 0; i < _radeon_debugfs_count; i++) {
- if (_radeon_debugfs[i].files == files) {
+ for (i = 0; i < rdev->debugfs_count; i++) {
+ if (rdev->debugfs[i].files == files) {
/* Already registered */
return 0;
}
}
- if ((_radeon_debugfs_count + nfiles) > RADEON_DEBUGFS_MAX_NUM_FILES) {
- DRM_ERROR("Reached maximum number of debugfs files.\n");
- DRM_ERROR("Report so we increase RADEON_DEBUGFS_MAX_NUM_FILES.\n");
+
+ i = rdev->debugfs_count + 1;
+ if (i > RADEON_DEBUGFS_MAX_NUM_FILES) {
+ DRM_ERROR("Reached maximum number of debugfs components.\n");
+ DRM_ERROR("Report so we increase "
+ "RADEON_DEBUGFS_MAX_COMPONENTS.\n");
return -EINVAL;
}
- _radeon_debugfs[_radeon_debugfs_count].files = files;
- _radeon_debugfs[_radeon_debugfs_count].num_files = nfiles;
- _radeon_debugfs_count++;
+ rdev->debugfs[rdev->debugfs_count].files = files;
+ rdev->debugfs[rdev->debugfs_count].num_files = nfiles;
+ rdev->debugfs_count = i;
#if defined(CONFIG_DEBUG_FS)
drm_debugfs_create_files(files, nfiles,
rdev->ddev->control->debugfs_root,
@@ -1023,11 +1019,12 @@ int radeon_debugfs_init(struct drm_minor *minor)
void radeon_debugfs_cleanup(struct drm_minor *minor)
{
+ struct radeon_device *rdev = minor->dev->dev_private;
unsigned i;
- for (i = 0; i < _radeon_debugfs_count; i++) {
- drm_debugfs_remove_files(_radeon_debugfs[i].files,
- _radeon_debugfs[i].num_files, minor);
+ for (i = 0; i < rdev->debugfs_count; i++) {
+ drm_debugfs_remove_files(rdev->debugfs[i].files,
+ rdev->debugfs[i].num_files, minor);
}
}
#endif
--
1.7.5.4
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2011-10-28 14:15 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-10-28 9:14 Some minor bugfixes Christian König
2011-10-28 9:14 ` [PATCH 1/3] drm/radeon: fix debugfs handling Christian König
2011-10-28 9:14 ` [PATCH 2/3] drm/radeon: no need to check all relocs for duplicates Christian König
2011-10-28 14:15 ` Alex Deucher
2011-10-28 9:14 ` [PATCH 3/3] drm/radeon: fix a spelling mistake Christian König
-- strict thread matches above, loose matches on Subject: below --
2011-10-25 15:04 [PATCH 1/3] drm/radeon: fix debugfs handling Christian König
2011-10-27 22:39 ` Alex Deucher
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.