aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/libata-core.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-10-10 07:23:11 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-10-10 07:23:11 -0400
commitd9428f09763d307a6d2220c4bbb01d8fc5c55b52 (patch)
treebe02ed22b6630d6a40706b2e09cc8b13fa3e3e7c /drivers/ata/libata-core.c
parent0cf744bc7ae8e0072159a901f6e1a159bbc30ffa (diff)
parent37017ac6849e772e67dd187ba2fbd056c4afa533 (diff)
Merge branch 'for-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata
Pull libata update from Tejun Heo: "AHCI is getting per-port irq handling and locks for better scalability. The gain is not huge but measureable with multiple high iops devices connected to the same host; however, the value of threaded IRQ handling seems negligible for AHCI and it likely will revert to non-threaded handling soon. Another noteworthy change is George Spelvin's "libata: Un-break ATA blacklist". During 3.17 devel cycle, the libata blacklist glob matching got generalized and rewritten; unfortunately, the patch forgot to swap arguments to match the new match function and ended up breaking blacklist matching completely. It got noticed only a couple days ago so it couldn't make for-3.17-fixes either. :( Other than the above two, nothing too interesting - the usual cleanup churns and device-specific changes" * 'for-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: (22 commits) pata_serverworks: disable 64-KB DMA transfers on Broadcom OSB4 IDE Controller libata: Un-break ATA blacklist AHCI: Do not acquire ata_host::lock from single IRQ handler AHCI: Optimize single IRQ interrupt processing AHCI: Do not read HOST_IRQ_STAT reg in multi-MSI mode AHCI: Make few function names more descriptive AHCI: Move host activation code into ahci_host_activate() AHCI: Move ahci_host_activate() function to libahci.c AHCI: Pass SCSI host template as arg to ahci_host_activate() ata: pata_imx: Use the SIMPLE_DEV_PM_OPS() macro AHCI: Cleanup checking of multiple MSIs/SLM modes libata-sff: Fix controllers with no ctl port ahci_xgene: Fix the error print invalid resource for APM X-Gene SoC AHCI SATA Host Controller driver. libata: change ata_<foo>_printk routines to return void ata: qcom: Add device tree bindings information ahci-platform: Bump max number of clocks to 5 ahci: ahci_p5wdh_workaround - constify DMI table libahci_platform: Staticize ahci_platform_<en/dis>able_phys() pata_platform: Remove useless irq_flags field pata_of_platform: Remove "electra-ide" quirk ...
Diffstat (limited to 'drivers/ata/libata-core.c')
-rw-r--r--drivers/ata/libata-core.c41
1 files changed, 16 insertions, 25 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index f3e7b9f894cd..c5ba15af87d3 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -4261,10 +4261,10 @@ static unsigned long ata_dev_blacklisted(const struct ata_device *dev)
4261 ata_id_c_string(dev->id, model_rev, ATA_ID_FW_REV, sizeof(model_rev)); 4261 ata_id_c_string(dev->id, model_rev, ATA_ID_FW_REV, sizeof(model_rev));
4262 4262
4263 while (ad->model_num) { 4263 while (ad->model_num) {
4264 if (glob_match(model_num, ad->model_num)) { 4264 if (glob_match(ad->model_num, model_num)) {
4265 if (ad->model_rev == NULL) 4265 if (ad->model_rev == NULL)
4266 return ad->horkage; 4266 return ad->horkage;
4267 if (glob_match(model_rev, ad->model_rev)) 4267 if (glob_match(ad->model_rev, model_rev))
4268 return ad->horkage; 4268 return ad->horkage;
4269 } 4269 }
4270 ad++; 4270 ad++;
@@ -6227,7 +6227,7 @@ int ata_host_activate(struct ata_host *host, int irq,
6227 } 6227 }
6228 6228
6229 rc = devm_request_irq(host->dev, irq, irq_handler, irq_flags, 6229 rc = devm_request_irq(host->dev, irq, irq_handler, irq_flags,
6230 dev_driver_string(host->dev), host); 6230 dev_name(host->dev), host);
6231 if (rc) 6231 if (rc)
6232 return rc; 6232 return rc;
6233 6233
@@ -6772,32 +6772,28 @@ const struct ata_port_info ata_dummy_port_info = {
6772/* 6772/*
6773 * Utility print functions 6773 * Utility print functions
6774 */ 6774 */
6775int ata_port_printk(const struct ata_port *ap, const char *level, 6775void ata_port_printk(const struct ata_port *ap, const char *level,
6776 const char *fmt, ...) 6776 const char *fmt, ...)
6777{ 6777{
6778 struct va_format vaf; 6778 struct va_format vaf;
6779 va_list args; 6779 va_list args;
6780 int r;
6781 6780
6782 va_start(args, fmt); 6781 va_start(args, fmt);
6783 6782
6784 vaf.fmt = fmt; 6783 vaf.fmt = fmt;
6785 vaf.va = &args; 6784 vaf.va = &args;
6786 6785
6787 r = printk("%sata%u: %pV", level, ap->print_id, &vaf); 6786 printk("%sata%u: %pV", level, ap->print_id, &vaf);
6788 6787
6789 va_end(args); 6788 va_end(args);
6790
6791 return r;
6792} 6789}
6793EXPORT_SYMBOL(ata_port_printk); 6790EXPORT_SYMBOL(ata_port_printk);
6794 6791
6795int ata_link_printk(const struct ata_link *link, const char *level, 6792void ata_link_printk(const struct ata_link *link, const char *level,
6796 const char *fmt, ...) 6793 const char *fmt, ...)
6797{ 6794{
6798 struct va_format vaf; 6795 struct va_format vaf;
6799 va_list args; 6796 va_list args;
6800 int r;
6801 6797
6802 va_start(args, fmt); 6798 va_start(args, fmt);
6803 6799
@@ -6805,37 +6801,32 @@ int ata_link_printk(const struct ata_link *link, const char *level,
6805 vaf.va = &args; 6801 vaf.va = &args;
6806 6802
6807 if (sata_pmp_attached(link->ap) || link->ap->slave_link) 6803 if (sata_pmp_attached(link->ap) || link->ap->slave_link)
6808 r = printk("%sata%u.%02u: %pV", 6804 printk("%sata%u.%02u: %pV",
6809 level, link->ap->print_id, link->pmp, &vaf); 6805 level, link->ap->print_id, link->pmp, &vaf);
6810 else 6806 else
6811 r = printk("%sata%u: %pV", 6807 printk("%sata%u: %pV",
6812 level, link->ap->print_id, &vaf); 6808 level, link->ap->print_id, &vaf);
6813 6809
6814 va_end(args); 6810 va_end(args);
6815
6816 return r;
6817} 6811}
6818EXPORT_SYMBOL(ata_link_printk); 6812EXPORT_SYMBOL(ata_link_printk);
6819 6813
6820int ata_dev_printk(const struct ata_device *dev, const char *level, 6814void ata_dev_printk(const struct ata_device *dev, const char *level,
6821 const char *fmt, ...) 6815 const char *fmt, ...)
6822{ 6816{
6823 struct va_format vaf; 6817 struct va_format vaf;
6824 va_list args; 6818 va_list args;
6825 int r;
6826 6819
6827 va_start(args, fmt); 6820 va_start(args, fmt);
6828 6821
6829 vaf.fmt = fmt; 6822 vaf.fmt = fmt;
6830 vaf.va = &args; 6823 vaf.va = &args;
6831 6824
6832 r = printk("%sata%u.%02u: %pV", 6825 printk("%sata%u.%02u: %pV",
6833 level, dev->link->ap->print_id, dev->link->pmp + dev->devno, 6826 level, dev->link->ap->print_id, dev->link->pmp + dev->devno,
6834 &vaf); 6827 &vaf);
6835 6828
6836 va_end(args); 6829 va_end(args);
6837
6838 return r;
6839} 6830}
6840EXPORT_SYMBOL(ata_dev_printk); 6831EXPORT_SYMBOL(ata_dev_printk);
6841 6832