diff options
Diffstat (limited to 'drivers/ieee1394/raw1394.c')
-rw-r--r-- | drivers/ieee1394/raw1394.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/ieee1394/raw1394.c b/drivers/ieee1394/raw1394.c index 04e96ba56e09..ec2a0adbedb2 100644 --- a/drivers/ieee1394/raw1394.c +++ b/drivers/ieee1394/raw1394.c | |||
@@ -2356,13 +2356,16 @@ static void rawiso_activity_cb(struct hpsb_iso *iso) | |||
2356 | static void raw1394_iso_fill_status(struct hpsb_iso *iso, | 2356 | static void raw1394_iso_fill_status(struct hpsb_iso *iso, |
2357 | struct raw1394_iso_status *stat) | 2357 | struct raw1394_iso_status *stat) |
2358 | { | 2358 | { |
2359 | int overflows = atomic_read(&iso->overflows); | ||
2360 | int skips = atomic_read(&iso->skips); | ||
2361 | |||
2359 | stat->config.data_buf_size = iso->buf_size; | 2362 | stat->config.data_buf_size = iso->buf_size; |
2360 | stat->config.buf_packets = iso->buf_packets; | 2363 | stat->config.buf_packets = iso->buf_packets; |
2361 | stat->config.channel = iso->channel; | 2364 | stat->config.channel = iso->channel; |
2362 | stat->config.speed = iso->speed; | 2365 | stat->config.speed = iso->speed; |
2363 | stat->config.irq_interval = iso->irq_interval; | 2366 | stat->config.irq_interval = iso->irq_interval; |
2364 | stat->n_packets = hpsb_iso_n_ready(iso); | 2367 | stat->n_packets = hpsb_iso_n_ready(iso); |
2365 | stat->overflows = atomic_read(&iso->overflows); | 2368 | stat->overflows = ((skips & 0xFFFF) << 16) | ((overflows & 0xFFFF)); |
2366 | stat->xmit_cycle = iso->xmit_cycle; | 2369 | stat->xmit_cycle = iso->xmit_cycle; |
2367 | } | 2370 | } |
2368 | 2371 | ||
@@ -2437,6 +2440,8 @@ static int raw1394_iso_get_status(struct file_info *fi, void __user * uaddr) | |||
2437 | 2440 | ||
2438 | /* reset overflow counter */ | 2441 | /* reset overflow counter */ |
2439 | atomic_set(&iso->overflows, 0); | 2442 | atomic_set(&iso->overflows, 0); |
2443 | /* reset skip counter */ | ||
2444 | atomic_set(&iso->skips, 0); | ||
2440 | 2445 | ||
2441 | return 0; | 2446 | return 0; |
2442 | } | 2447 | } |
@@ -2935,6 +2940,7 @@ static int raw1394_release(struct inode *inode, struct file *file) | |||
2935 | /* | 2940 | /* |
2936 | * Export information about protocols/devices supported by this driver. | 2941 | * Export information about protocols/devices supported by this driver. |
2937 | */ | 2942 | */ |
2943 | #ifdef MODULE | ||
2938 | static struct ieee1394_device_id raw1394_id_table[] = { | 2944 | static struct ieee1394_device_id raw1394_id_table[] = { |
2939 | { | 2945 | { |
2940 | .match_flags = IEEE1394_MATCH_SPECIFIER_ID | IEEE1394_MATCH_VERSION, | 2946 | .match_flags = IEEE1394_MATCH_SPECIFIER_ID | IEEE1394_MATCH_VERSION, |
@@ -2956,6 +2962,7 @@ static struct ieee1394_device_id raw1394_id_table[] = { | |||
2956 | }; | 2962 | }; |
2957 | 2963 | ||
2958 | MODULE_DEVICE_TABLE(ieee1394, raw1394_id_table); | 2964 | MODULE_DEVICE_TABLE(ieee1394, raw1394_id_table); |
2965 | #endif /* MODULE */ | ||
2959 | 2966 | ||
2960 | static struct hpsb_protocol_driver raw1394_driver = { | 2967 | static struct hpsb_protocol_driver raw1394_driver = { |
2961 | .name = "raw1394", | 2968 | .name = "raw1394", |