mtip32xx.c (754451342fc5954061ede74b0a8485ec4a4c6eaa) | mtip32xx.c (5657a819a8d94426c76be04dcedfad0f64cfff00) |
---|---|
1/* 2 * Driver for the Micron P320 SSD 3 * Copyright (C) 2011 Micron Technology, Inc. 4 * 5 * Portions of this code were derived from works subjected to the 6 * following copyright: 7 * Copyright (C) 2009 Integrated Device Technology, Inc. 8 * --- 2271 unchanged lines hidden (view full) --- 2280 else if (test_bit(MTIP_DDF_WRITE_PROTECT_BIT, &dd->dd_flag)) 2281 size += sprintf(buf, "%s", "write_protect\n"); 2282 else 2283 size += sprintf(buf, "%s", "online\n"); 2284 2285 return size; 2286} 2287 | 1/* 2 * Driver for the Micron P320 SSD 3 * Copyright (C) 2011 Micron Technology, Inc. 4 * 5 * Portions of this code were derived from works subjected to the 6 * following copyright: 7 * Copyright (C) 2009 Integrated Device Technology, Inc. 8 * --- 2271 unchanged lines hidden (view full) --- 2280 else if (test_bit(MTIP_DDF_WRITE_PROTECT_BIT, &dd->dd_flag)) 2281 size += sprintf(buf, "%s", "write_protect\n"); 2282 else 2283 size += sprintf(buf, "%s", "online\n"); 2284 2285 return size; 2286} 2287 |
2288static DEVICE_ATTR(status, S_IRUGO, mtip_hw_show_status, NULL); | 2288static DEVICE_ATTR(status, 0444, mtip_hw_show_status, NULL); |
2289 2290/* debugsfs entries */ 2291 2292static ssize_t show_device_status(struct device_driver *drv, char *buf) 2293{ 2294 int size = 0; 2295 struct driver_data *dd, *tmp; 2296 unsigned long flags; --- 264 unchanged lines hidden (view full) --- 2561 if (IS_ERR_OR_NULL(dd->dfs_node)) { 2562 dev_warn(&dd->pdev->dev, 2563 "Error creating node %s under debugfs\n", 2564 dd->disk->disk_name); 2565 dd->dfs_node = NULL; 2566 return -1; 2567 } 2568 | 2289 2290/* debugsfs entries */ 2291 2292static ssize_t show_device_status(struct device_driver *drv, char *buf) 2293{ 2294 int size = 0; 2295 struct driver_data *dd, *tmp; 2296 unsigned long flags; --- 264 unchanged lines hidden (view full) --- 2561 if (IS_ERR_OR_NULL(dd->dfs_node)) { 2562 dev_warn(&dd->pdev->dev, 2563 "Error creating node %s under debugfs\n", 2564 dd->disk->disk_name); 2565 dd->dfs_node = NULL; 2566 return -1; 2567 } 2568 |
2569 debugfs_create_file("flags", S_IRUGO, dd->dfs_node, dd, 2570 &mtip_flags_fops); 2571 debugfs_create_file("registers", S_IRUGO, dd->dfs_node, dd, 2572 &mtip_regs_fops); | 2569 debugfs_create_file("flags", 0444, dd->dfs_node, dd, &mtip_flags_fops); 2570 debugfs_create_file("registers", 0444, dd->dfs_node, dd, 2571 &mtip_regs_fops); |
2573 2574 return 0; 2575} 2576 2577static void mtip_hw_debugfs_exit(struct driver_data *dd) 2578{ 2579 if (dd->dfs_node) 2580 debugfs_remove_recursive(dd->dfs_node); --- 1276 unchanged lines hidden (view full) --- 3857 /* Set device limits. */ 3858 blk_queue_flag_set(QUEUE_FLAG_NONROT, dd->queue); 3859 blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, dd->queue); 3860 blk_queue_max_segments(dd->queue, MTIP_MAX_SG); 3861 blk_queue_physical_block_size(dd->queue, 4096); 3862 blk_queue_max_hw_sectors(dd->queue, 0xffff); 3863 blk_queue_max_segment_size(dd->queue, 0x400000); 3864 blk_queue_io_min(dd->queue, 4096); | 2572 2573 return 0; 2574} 2575 2576static void mtip_hw_debugfs_exit(struct driver_data *dd) 2577{ 2578 if (dd->dfs_node) 2579 debugfs_remove_recursive(dd->dfs_node); --- 1276 unchanged lines hidden (view full) --- 3856 /* Set device limits. */ 3857 blk_queue_flag_set(QUEUE_FLAG_NONROT, dd->queue); 3858 blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, dd->queue); 3859 blk_queue_max_segments(dd->queue, MTIP_MAX_SG); 3860 blk_queue_physical_block_size(dd->queue, 4096); 3861 blk_queue_max_hw_sectors(dd->queue, 0xffff); 3862 blk_queue_max_segment_size(dd->queue, 0x400000); 3863 blk_queue_io_min(dd->queue, 4096); |
3865 blk_queue_bounce_limit(dd->queue, dd->pdev->dma_mask); | |
3866 3867 /* Signal trim support */ 3868 if (dd->trim_supp == true) { 3869 blk_queue_flag_set(QUEUE_FLAG_DISCARD, dd->queue); 3870 dd->queue->limits.discard_granularity = 4096; 3871 blk_queue_max_discard_sectors(dd->queue, 3872 MTIP_MAX_TRIM_ENTRY_LEN * MTIP_MAX_TRIM_ENTRIES); 3873 } --- 394 unchanged lines hidden (view full) --- 4268 4269 memset(dd->workq_name, 0, 32); 4270 snprintf(dd->workq_name, 31, "mtipq%d", dd->instance); 4271 4272 dd->isr_workq = create_workqueue(dd->workq_name); 4273 if (!dd->isr_workq) { 4274 dev_warn(&pdev->dev, "Can't create wq %d\n", dd->instance); 4275 rv = -ENOMEM; | 3864 3865 /* Signal trim support */ 3866 if (dd->trim_supp == true) { 3867 blk_queue_flag_set(QUEUE_FLAG_DISCARD, dd->queue); 3868 dd->queue->limits.discard_granularity = 4096; 3869 blk_queue_max_discard_sectors(dd->queue, 3870 MTIP_MAX_TRIM_ENTRY_LEN * MTIP_MAX_TRIM_ENTRIES); 3871 } --- 394 unchanged lines hidden (view full) --- 4266 4267 memset(dd->workq_name, 0, 32); 4268 snprintf(dd->workq_name, 31, "mtipq%d", dd->instance); 4269 4270 dd->isr_workq = create_workqueue(dd->workq_name); 4271 if (!dd->isr_workq) { 4272 dev_warn(&pdev->dev, "Can't create wq %d\n", dd->instance); 4273 rv = -ENOMEM; |
4276 goto block_initialize_err; | 4274 goto setmask_err; |
4277 } 4278 4279 memset(cpu_list, 0, sizeof(cpu_list)); 4280 4281 node_mask = cpumask_of_node(dd->numa_node); 4282 if (!cpumask_empty(node_mask)) { 4283 for_each_cpu(cpu, node_mask) 4284 { --- 324 unchanged lines hidden (view full) --- 4609 4610 dfs_parent = debugfs_create_dir("rssd", NULL); 4611 if (IS_ERR_OR_NULL(dfs_parent)) { 4612 pr_warn("Error creating debugfs parent\n"); 4613 dfs_parent = NULL; 4614 } 4615 if (dfs_parent) { 4616 dfs_device_status = debugfs_create_file("device_status", | 4275 } 4276 4277 memset(cpu_list, 0, sizeof(cpu_list)); 4278 4279 node_mask = cpumask_of_node(dd->numa_node); 4280 if (!cpumask_empty(node_mask)) { 4281 for_each_cpu(cpu, node_mask) 4282 { --- 324 unchanged lines hidden (view full) --- 4607 4608 dfs_parent = debugfs_create_dir("rssd", NULL); 4609 if (IS_ERR_OR_NULL(dfs_parent)) { 4610 pr_warn("Error creating debugfs parent\n"); 4611 dfs_parent = NULL; 4612 } 4613 if (dfs_parent) { 4614 dfs_device_status = debugfs_create_file("device_status", |
4617 S_IRUGO, dfs_parent, NULL, | 4615 0444, dfs_parent, NULL, |
4618 &mtip_device_status_fops); 4619 if (IS_ERR_OR_NULL(dfs_device_status)) { 4620 pr_err("Error creating device_status node\n"); 4621 dfs_device_status = NULL; 4622 } 4623 } 4624 4625 /* Register our PCI operations. */ --- 37 unchanged lines hidden --- | 4616 &mtip_device_status_fops); 4617 if (IS_ERR_OR_NULL(dfs_device_status)) { 4618 pr_err("Error creating device_status node\n"); 4619 dfs_device_status = NULL; 4620 } 4621 } 4622 4623 /* Register our PCI operations. */ --- 37 unchanged lines hidden --- |