diff options
author | Sebastian Ott <sebott@linux.vnet.ibm.com> | 2013-04-16 08:11:14 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2013-04-17 08:07:35 -0400 |
commit | a2ab833360abbed3321fd694b69a5a32ee15785f (patch) | |
tree | bdf3d75949f7510d4bacfcbddcbe640c9e4cdca3 /arch/s390/pci | |
parent | ea793788f8ec868e655920f4726b2bd6a881e5ae (diff) |
s390/pci: debug device states
Use the debugfs to keep track of a pci function's status changes.
Reviewed-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/pci')
-rw-r--r-- | arch/s390/pci/pci.c | 3 | ||||
-rw-r--r-- | arch/s390/pci/pci_clp.c | 13 | ||||
-rw-r--r-- | arch/s390/pci/pci_debug.c | 7 |
3 files changed, 13 insertions, 10 deletions
diff --git a/arch/s390/pci/pci.c b/arch/s390/pci/pci.c index fddf847e71ac..20823f022925 100644 --- a/arch/s390/pci/pci.c +++ b/arch/s390/pci/pci.c | |||
@@ -99,9 +99,6 @@ static int __read_mostly aisb_max; | |||
99 | static struct kmem_cache *zdev_irq_cache; | 99 | static struct kmem_cache *zdev_irq_cache; |
100 | static struct kmem_cache *zdev_fmb_cache; | 100 | static struct kmem_cache *zdev_fmb_cache; |
101 | 101 | ||
102 | debug_info_t *pci_debug_msg_id; | ||
103 | debug_info_t *pci_debug_err_id; | ||
104 | |||
105 | static inline int irq_to_msi_nr(unsigned int irq) | 102 | static inline int irq_to_msi_nr(unsigned int irq) |
106 | { | 103 | { |
107 | return irq & ZPCI_MSI_MASK; | 104 | return irq & ZPCI_MSI_MASK; |
diff --git a/arch/s390/pci/pci_clp.c b/arch/s390/pci/pci_clp.c index f339fe2feb15..bd34359d1546 100644 --- a/arch/s390/pci/pci_clp.c +++ b/arch/s390/pci/pci_clp.c | |||
@@ -13,6 +13,7 @@ | |||
13 | #include <linux/err.h> | 13 | #include <linux/err.h> |
14 | #include <linux/delay.h> | 14 | #include <linux/delay.h> |
15 | #include <linux/pci.h> | 15 | #include <linux/pci.h> |
16 | #include <asm/pci_debug.h> | ||
16 | #include <asm/pci_clp.h> | 17 | #include <asm/pci_clp.h> |
17 | 18 | ||
18 | /* | 19 | /* |
@@ -144,6 +145,7 @@ int clp_add_pci_device(u32 fid, u32 fh, int configured) | |||
144 | struct zpci_dev *zdev; | 145 | struct zpci_dev *zdev; |
145 | int rc; | 146 | int rc; |
146 | 147 | ||
148 | zpci_dbg(3, "add fid:%x, fh:%x, c:%d\n", fid, fh, configured); | ||
147 | zdev = zpci_alloc_device(); | 149 | zdev = zpci_alloc_device(); |
148 | if (IS_ERR(zdev)) | 150 | if (IS_ERR(zdev)) |
149 | return PTR_ERR(zdev); | 151 | return PTR_ERR(zdev); |
@@ -204,8 +206,8 @@ static int clp_set_pci_fn(u32 *fh, u8 nr_dma_as, u8 command) | |||
204 | if (!rc && rrb->response.hdr.rsp == CLP_RC_OK) | 206 | if (!rc && rrb->response.hdr.rsp == CLP_RC_OK) |
205 | *fh = rrb->response.fh; | 207 | *fh = rrb->response.fh; |
206 | else { | 208 | else { |
207 | pr_err("Set PCI FN failed with response: %x cc: %d\n", | 209 | zpci_dbg(0, "SPF fh:%x, cc:%d, resp:%x\n", *fh, rc, |
208 | rrb->response.hdr.rsp, rc); | 210 | rrb->response.hdr.rsp); |
209 | rc = -EIO; | 211 | rc = -EIO; |
210 | } | 212 | } |
211 | clp_free_block(rrb); | 213 | clp_free_block(rrb); |
@@ -221,6 +223,8 @@ int clp_enable_fh(struct zpci_dev *zdev, u8 nr_dma_as) | |||
221 | if (!rc) | 223 | if (!rc) |
222 | /* Success -> store enabled handle in zdev */ | 224 | /* Success -> store enabled handle in zdev */ |
223 | zdev->fh = fh; | 225 | zdev->fh = fh; |
226 | |||
227 | zpci_dbg(3, "ena fid:%x, fh:%x, rc:%d\n", zdev->fid, zdev->fh, rc); | ||
224 | return rc; | 228 | return rc; |
225 | } | 229 | } |
226 | 230 | ||
@@ -237,9 +241,8 @@ int clp_disable_fh(struct zpci_dev *zdev) | |||
237 | if (!rc) | 241 | if (!rc) |
238 | /* Success -> store disabled handle in zdev */ | 242 | /* Success -> store disabled handle in zdev */ |
239 | zdev->fh = fh; | 243 | zdev->fh = fh; |
240 | else | 244 | |
241 | dev_err(&zdev->pdev->dev, | 245 | zpci_dbg(3, "dis fid:%x, fh:%x, rc:%d\n", zdev->fid, zdev->fh, rc); |
242 | "Failed to disable fn handle: 0x%x\n", fh); | ||
243 | return rc; | 246 | return rc; |
244 | } | 247 | } |
245 | 248 | ||
diff --git a/arch/s390/pci/pci_debug.c b/arch/s390/pci/pci_debug.c index a5d07bc2a547..771b82359af4 100644 --- a/arch/s390/pci/pci_debug.c +++ b/arch/s390/pci/pci_debug.c | |||
@@ -11,12 +11,17 @@ | |||
11 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
12 | #include <linux/seq_file.h> | 12 | #include <linux/seq_file.h> |
13 | #include <linux/debugfs.h> | 13 | #include <linux/debugfs.h> |
14 | #include <linux/export.h> | ||
14 | #include <linux/pci.h> | 15 | #include <linux/pci.h> |
15 | #include <asm/debug.h> | 16 | #include <asm/debug.h> |
16 | 17 | ||
17 | #include <asm/pci_dma.h> | 18 | #include <asm/pci_dma.h> |
18 | 19 | ||
19 | static struct dentry *debugfs_root; | 20 | static struct dentry *debugfs_root; |
21 | debug_info_t *pci_debug_msg_id; | ||
22 | EXPORT_SYMBOL_GPL(pci_debug_msg_id); | ||
23 | debug_info_t *pci_debug_err_id; | ||
24 | EXPORT_SYMBOL_GPL(pci_debug_err_id); | ||
20 | 25 | ||
21 | static char *pci_perf_names[] = { | 26 | static char *pci_perf_names[] = { |
22 | /* hardware counters */ | 27 | /* hardware counters */ |
@@ -168,7 +173,6 @@ int __init zpci_debug_init(void) | |||
168 | return -EINVAL; | 173 | return -EINVAL; |
169 | debug_register_view(pci_debug_msg_id, &debug_sprintf_view); | 174 | debug_register_view(pci_debug_msg_id, &debug_sprintf_view); |
170 | debug_set_level(pci_debug_msg_id, 3); | 175 | debug_set_level(pci_debug_msg_id, 3); |
171 | zpci_dbg("Debug view initialized\n"); | ||
172 | 176 | ||
173 | /* error log */ | 177 | /* error log */ |
174 | pci_debug_err_id = debug_register("pci_error", 2, 1, 16); | 178 | pci_debug_err_id = debug_register("pci_error", 2, 1, 16); |
@@ -176,7 +180,6 @@ int __init zpci_debug_init(void) | |||
176 | return -EINVAL; | 180 | return -EINVAL; |
177 | debug_register_view(pci_debug_err_id, &debug_hex_ascii_view); | 181 | debug_register_view(pci_debug_err_id, &debug_hex_ascii_view); |
178 | debug_set_level(pci_debug_err_id, 6); | 182 | debug_set_level(pci_debug_err_id, 6); |
179 | zpci_err("Debug view initialized\n"); | ||
180 | 183 | ||
181 | debugfs_root = debugfs_create_dir("pci", NULL); | 184 | debugfs_root = debugfs_create_dir("pci", NULL); |
182 | return 0; | 185 | return 0; |