aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/libata-pmp.c
diff options
context:
space:
mode:
authorJoe Perches <joe@perches.com>2011-04-15 18:51:59 -0400
committerJeff Garzik <jgarzik@pobox.com>2011-07-23 17:57:36 -0400
commita9a79dfec239568bdbf778242f8fcd10bcc5b9e2 (patch)
tree620648585f89cdb589d1625431f8c21ef70a9258 /drivers/ata/libata-pmp.c
parenta44fec1fce5d5d14cc3ac4545b8da346394de666 (diff)
ata: Convert ata_<foo>_printk(KERN_<LEVEL> to ata_<foo>_<level>
Saves text by removing nearly duplicated text format strings by creating ata_<foo>_printk functions and printf extension %pV. ata defconfig size shrinks ~5% (~8KB), allyesconfig ~2.5% (~13KB) Format string duplication comes from: #define ata_link_printk(link, lv, fmt, args...) do { \ if (sata_pmp_attached((link)->ap) || (link)->ap->slave_link) \ printk("%sata%u.%02u: "fmt, lv, (link)->ap->print_id, \ (link)->pmp , ##args); \ else \ printk("%sata%u: "fmt, lv, (link)->ap->print_id , ##args); \ } while(0) Coalesce long formats. $ size drivers/ata/built-in.* text data bss dec hex filename 544969 73893 116584 735446 b38d6 drivers/ata/built-in.allyesconfig.ata.o 558429 73893 117864 750186 b726a drivers/ata/built-in.allyesconfig.dev_level.o 141328 14689 4220 160237 271ed drivers/ata/built-in.defconfig.ata.o 149567 14689 4220 168476 2921c drivers/ata/built-in.defconfig.dev_level.o Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'drivers/ata/libata-pmp.c')
-rw-r--r--drivers/ata/libata-pmp.c123
1 files changed, 59 insertions, 64 deletions
diff --git a/drivers/ata/libata-pmp.c b/drivers/ata/libata-pmp.c
index f06b7ea590d3..3eb2b816eb2a 100644
--- a/drivers/ata/libata-pmp.c
+++ b/drivers/ata/libata-pmp.c
@@ -147,8 +147,8 @@ int sata_pmp_scr_read(struct ata_link *link, int reg, u32 *r_val)
147 147
148 err_mask = sata_pmp_read(link, reg, r_val); 148 err_mask = sata_pmp_read(link, reg, r_val);
149 if (err_mask) { 149 if (err_mask) {
150 ata_link_printk(link, KERN_WARNING, "failed to read SCR %d " 150 ata_link_warn(link, "failed to read SCR %d (Emask=0x%x)\n",
151 "(Emask=0x%x)\n", reg, err_mask); 151 reg, err_mask);
152 return -EIO; 152 return -EIO;
153 } 153 }
154 return 0; 154 return 0;
@@ -178,8 +178,8 @@ int sata_pmp_scr_write(struct ata_link *link, int reg, u32 val)
178 178
179 err_mask = sata_pmp_write(link, reg, val); 179 err_mask = sata_pmp_write(link, reg, val);
180 if (err_mask) { 180 if (err_mask) {
181 ata_link_printk(link, KERN_WARNING, "failed to write SCR %d " 181 ata_link_warn(link, "failed to write SCR %d (Emask=0x%x)\n",
182 "(Emask=0x%x)\n", reg, err_mask); 182 reg, err_mask);
183 return -EIO; 183 return -EIO;
184 } 184 }
185 return 0; 185 return 0;
@@ -231,8 +231,8 @@ static int sata_pmp_read_gscr(struct ata_device *dev, u32 *gscr)
231 231
232 err_mask = sata_pmp_read(dev->link, reg, &gscr[reg]); 232 err_mask = sata_pmp_read(dev->link, reg, &gscr[reg]);
233 if (err_mask) { 233 if (err_mask) {
234 ata_dev_printk(dev, KERN_ERR, "failed to read PMP " 234 ata_dev_err(dev, "failed to read PMP GSCR[%d] (Emask=0x%x)\n",
235 "GSCR[%d] (Emask=0x%x)\n", reg, err_mask); 235 reg, err_mask);
236 return -EIO; 236 return -EIO;
237 } 237 }
238 } 238 }
@@ -311,26 +311,25 @@ static int sata_pmp_configure(struct ata_device *dev, int print_info)
311 } 311 }
312 312
313 if (print_info) { 313 if (print_info) {
314 ata_dev_printk(dev, KERN_INFO, "Port Multiplier %s, " 314 ata_dev_info(dev, "Port Multiplier %s, "
315 "0x%04x:0x%04x r%d, %d ports, feat 0x%x/0x%x\n", 315 "0x%04x:0x%04x r%d, %d ports, feat 0x%x/0x%x\n",
316 sata_pmp_spec_rev_str(gscr), vendor, devid, 316 sata_pmp_spec_rev_str(gscr), vendor, devid,
317 sata_pmp_gscr_rev(gscr), 317 sata_pmp_gscr_rev(gscr),
318 nr_ports, gscr[SATA_PMP_GSCR_FEAT_EN], 318 nr_ports, gscr[SATA_PMP_GSCR_FEAT_EN],
319 gscr[SATA_PMP_GSCR_FEAT]); 319 gscr[SATA_PMP_GSCR_FEAT]);
320 320
321 if (!(dev->flags & ATA_DFLAG_AN)) 321 if (!(dev->flags & ATA_DFLAG_AN))
322 ata_dev_printk(dev, KERN_INFO, 322 ata_dev_info(dev,
323 "Asynchronous notification not supported, " 323 "Asynchronous notification not supported, "
324 "hotplug won't\n work on fan-out " 324 "hotplug won't work on fan-out ports. Use warm-plug instead.\n");
325 "ports. Use warm-plug instead.\n");
326 } 325 }
327 326
328 return 0; 327 return 0;
329 328
330 fail: 329 fail:
331 ata_dev_printk(dev, KERN_ERR, 330 ata_dev_err(dev,
332 "failed to configure Port Multiplier (%s, Emask=0x%x)\n", 331 "failed to configure Port Multiplier (%s, Emask=0x%x)\n",
333 reason, err_mask); 332 reason, err_mask);
334 return rc; 333 return rc;
335} 334}
336 335
@@ -485,20 +484,17 @@ int sata_pmp_attach(struct ata_device *dev)
485 484
486 /* is it hanging off the right place? */ 485 /* is it hanging off the right place? */
487 if (!sata_pmp_supported(ap)) { 486 if (!sata_pmp_supported(ap)) {
488 ata_dev_printk(dev, KERN_ERR, 487 ata_dev_err(dev, "host does not support Port Multiplier\n");
489 "host does not support Port Multiplier\n");
490 return -EINVAL; 488 return -EINVAL;
491 } 489 }
492 490
493 if (!ata_is_host_link(link)) { 491 if (!ata_is_host_link(link)) {
494 ata_dev_printk(dev, KERN_ERR, 492 ata_dev_err(dev, "Port Multipliers cannot be nested\n");
495 "Port Multipliers cannot be nested\n");
496 return -EINVAL; 493 return -EINVAL;
497 } 494 }
498 495
499 if (dev->devno) { 496 if (dev->devno) {
500 ata_dev_printk(dev, KERN_ERR, 497 ata_dev_err(dev, "Port Multiplier must be the first device\n");
501 "Port Multiplier must be the first device\n");
502 return -EINVAL; 498 return -EINVAL;
503 } 499 }
504 500
@@ -517,8 +513,7 @@ int sata_pmp_attach(struct ata_device *dev)
517 513
518 rc = sata_pmp_init_links(ap, sata_pmp_gscr_ports(dev->gscr)); 514 rc = sata_pmp_init_links(ap, sata_pmp_gscr_ports(dev->gscr));
519 if (rc) { 515 if (rc) {
520 ata_dev_printk(dev, KERN_INFO, 516 ata_dev_info(dev, "failed to initialize PMP links\n");
521 "failed to initialize PMP links\n");
522 goto fail; 517 goto fail;
523 } 518 }
524 519
@@ -562,7 +557,7 @@ static void sata_pmp_detach(struct ata_device *dev)
562 struct ata_link *tlink; 557 struct ata_link *tlink;
563 unsigned long flags; 558 unsigned long flags;
564 559
565 ata_dev_printk(dev, KERN_INFO, "Port Multiplier detaching\n"); 560 ata_dev_info(dev, "Port Multiplier detaching\n");
566 561
567 WARN_ON(!ata_is_host_link(link) || dev->devno || 562 WARN_ON(!ata_is_host_link(link) || dev->devno ||
568 link->pmp != SATA_PMP_CTRL_PORT); 563 link->pmp != SATA_PMP_CTRL_PORT);
@@ -609,23 +604,23 @@ static int sata_pmp_same_pmp(struct ata_device *dev, const u32 *new_gscr)
609 new_nr_ports = sata_pmp_gscr_ports(new_gscr); 604 new_nr_ports = sata_pmp_gscr_ports(new_gscr);
610 605
611 if (old_vendor != new_vendor) { 606 if (old_vendor != new_vendor) {
612 ata_dev_printk(dev, KERN_INFO, "Port Multiplier " 607 ata_dev_info(dev,
613 "vendor mismatch '0x%x' != '0x%x'\n", 608 "Port Multiplier vendor mismatch '0x%x' != '0x%x'\n",
614 old_vendor, new_vendor); 609 old_vendor, new_vendor);
615 return 0; 610 return 0;
616 } 611 }
617 612
618 if (old_devid != new_devid) { 613 if (old_devid != new_devid) {
619 ata_dev_printk(dev, KERN_INFO, "Port Multiplier " 614 ata_dev_info(dev,
620 "device ID mismatch '0x%x' != '0x%x'\n", 615 "Port Multiplier device ID mismatch '0x%x' != '0x%x'\n",
621 old_devid, new_devid); 616 old_devid, new_devid);
622 return 0; 617 return 0;
623 } 618 }
624 619
625 if (old_nr_ports != new_nr_ports) { 620 if (old_nr_ports != new_nr_ports) {
626 ata_dev_printk(dev, KERN_INFO, "Port Multiplier " 621 ata_dev_info(dev,
627 "nr_ports mismatch '0x%x' != '0x%x'\n", 622 "Port Multiplier nr_ports mismatch '0x%x' != '0x%x'\n",
628 old_nr_ports, new_nr_ports); 623 old_nr_ports, new_nr_ports);
629 return 0; 624 return 0;
630 } 625 }
631 626
@@ -691,8 +686,7 @@ static int sata_pmp_revalidate(struct ata_device *dev, unsigned int new_class)
691 return 0; 686 return 0;
692 687
693 fail: 688 fail:
694 ata_dev_printk(dev, KERN_ERR, 689 ata_dev_err(dev, "PMP revalidation failed (errno=%d)\n", rc);
695 "PMP revalidation failed (errno=%d)\n", rc);
696 DPRINTK("EXIT, rc=%d\n", rc); 690 DPRINTK("EXIT, rc=%d\n", rc);
697 return rc; 691 return rc;
698} 692}
@@ -716,13 +710,14 @@ static int sata_pmp_revalidate_quick(struct ata_device *dev)
716 710
717 err_mask = sata_pmp_read(dev->link, SATA_PMP_GSCR_PROD_ID, &prod_id); 711 err_mask = sata_pmp_read(dev->link, SATA_PMP_GSCR_PROD_ID, &prod_id);
718 if (err_mask) { 712 if (err_mask) {
719 ata_dev_printk(dev, KERN_ERR, "failed to read PMP product ID " 713 ata_dev_err(dev,
720 "(Emask=0x%x)\n", err_mask); 714 "failed to read PMP product ID (Emask=0x%x)\n",
715 err_mask);
721 return -EIO; 716 return -EIO;
722 } 717 }
723 718
724 if (prod_id != dev->gscr[SATA_PMP_GSCR_PROD_ID]) { 719 if (prod_id != dev->gscr[SATA_PMP_GSCR_PROD_ID]) {
725 ata_dev_printk(dev, KERN_ERR, "PMP product ID mismatch\n"); 720 ata_dev_err(dev, "PMP product ID mismatch\n");
726 /* something weird is going on, request full PMP recovery */ 721 /* something weird is going on, request full PMP recovery */
727 return -EIO; 722 return -EIO;
728 } 723 }
@@ -777,8 +772,7 @@ static int sata_pmp_eh_recover_pmp(struct ata_port *ap,
777 rc = ata_eh_reset(link, 0, prereset, softreset, hardreset, 772 rc = ata_eh_reset(link, 0, prereset, softreset, hardreset,
778 postreset); 773 postreset);
779 if (rc) { 774 if (rc) {
780 ata_link_printk(link, KERN_ERR, 775 ata_link_err(link, "failed to reset PMP, giving up\n");
781 "failed to reset PMP, giving up\n");
782 goto fail; 776 goto fail;
783 } 777 }
784 778
@@ -819,9 +813,9 @@ static int sata_pmp_eh_recover_pmp(struct ata_port *ap,
819 ehc->i.action |= ATA_EH_RESET; 813 ehc->i.action |= ATA_EH_RESET;
820 goto retry; 814 goto retry;
821 } else { 815 } else {
822 ata_dev_printk(dev, KERN_ERR, "failed to recover PMP " 816 ata_dev_err(dev,
823 "after %d tries, giving up\n", 817 "failed to recover PMP after %d tries, giving up\n",
824 ATA_EH_PMP_TRIES); 818 ATA_EH_PMP_TRIES);
825 goto fail; 819 goto fail;
826 } 820 }
827 } 821 }
@@ -867,8 +861,9 @@ static int sata_pmp_eh_handle_disabled_links(struct ata_port *ap)
867 /* unconditionally clear SError.N */ 861 /* unconditionally clear SError.N */
868 rc = sata_scr_write(link, SCR_ERROR, SERR_PHYRDY_CHG); 862 rc = sata_scr_write(link, SCR_ERROR, SERR_PHYRDY_CHG);
869 if (rc) { 863 if (rc) {
870 ata_link_printk(link, KERN_ERR, "failed to clear " 864 ata_link_err(link,
871 "SError.N (errno=%d)\n", rc); 865 "failed to clear SError.N (errno=%d)\n",
866 rc);
872 return rc; 867 return rc;
873 } 868 }
874 869
@@ -890,7 +885,7 @@ static int sata_pmp_handle_link_fail(struct ata_link *link, int *link_tries)
890 885
891 /* disable this link */ 886 /* disable this link */
892 if (!(link->flags & ATA_LFLAG_DISABLED)) { 887 if (!(link->flags & ATA_LFLAG_DISABLED)) {
893 ata_link_printk(link, KERN_WARNING, 888 ata_link_warn(link,
894 "failed to recover link after %d tries, disabling\n", 889 "failed to recover link after %d tries, disabling\n",
895 ATA_EH_PMP_LINK_TRIES); 890 ATA_EH_PMP_LINK_TRIES);
896 891
@@ -974,7 +969,7 @@ static int sata_pmp_eh_recover(struct ata_port *ap)
974 err_mask = sata_pmp_write(pmp_link, SATA_PMP_GSCR_FEAT_EN, 969 err_mask = sata_pmp_write(pmp_link, SATA_PMP_GSCR_FEAT_EN,
975 gscr[SATA_PMP_GSCR_FEAT_EN]); 970 gscr[SATA_PMP_GSCR_FEAT_EN]);
976 if (err_mask) { 971 if (err_mask) {
977 ata_link_printk(pmp_link, KERN_WARNING, 972 ata_link_warn(pmp_link,
978 "failed to disable NOTIFY (err_mask=0x%x)\n", 973 "failed to disable NOTIFY (err_mask=0x%x)\n",
979 err_mask); 974 err_mask);
980 goto pmp_fail; 975 goto pmp_fail;
@@ -1018,8 +1013,9 @@ static int sata_pmp_eh_recover(struct ata_port *ap)
1018 err_mask = sata_pmp_write(pmp_link, SATA_PMP_GSCR_FEAT_EN, 1013 err_mask = sata_pmp_write(pmp_link, SATA_PMP_GSCR_FEAT_EN,
1019 gscr[SATA_PMP_GSCR_FEAT_EN]); 1014 gscr[SATA_PMP_GSCR_FEAT_EN]);
1020 if (err_mask) { 1015 if (err_mask) {
1021 ata_dev_printk(pmp_dev, KERN_ERR, "failed to write " 1016 ata_dev_err(pmp_dev,
1022 "PMP_FEAT_EN (Emask=0x%x)\n", err_mask); 1017 "failed to write PMP_FEAT_EN (Emask=0x%x)\n",
1018 err_mask);
1023 rc = -EIO; 1019 rc = -EIO;
1024 goto pmp_fail; 1020 goto pmp_fail;
1025 } 1021 }
@@ -1028,8 +1024,9 @@ static int sata_pmp_eh_recover(struct ata_port *ap)
1028 /* check GSCR_ERROR */ 1024 /* check GSCR_ERROR */
1029 err_mask = sata_pmp_read(pmp_link, SATA_PMP_GSCR_ERROR, &gscr_error); 1025 err_mask = sata_pmp_read(pmp_link, SATA_PMP_GSCR_ERROR, &gscr_error);
1030 if (err_mask) { 1026 if (err_mask) {
1031 ata_dev_printk(pmp_dev, KERN_ERR, "failed to read " 1027 ata_dev_err(pmp_dev,
1032 "PMP_GSCR_ERROR (Emask=0x%x)\n", err_mask); 1028 "failed to read PMP_GSCR_ERROR (Emask=0x%x)\n",
1029 err_mask);
1033 rc = -EIO; 1030 rc = -EIO;
1034 goto pmp_fail; 1031 goto pmp_fail;
1035 } 1032 }
@@ -1043,17 +1040,16 @@ static int sata_pmp_eh_recover(struct ata_port *ap)
1043 ata_ehi_hotplugged(&link->eh_context.i); 1040 ata_ehi_hotplugged(&link->eh_context.i);
1044 cnt++; 1041 cnt++;
1045 } else { 1042 } else {
1046 ata_link_printk(link, KERN_WARNING, 1043 ata_link_warn(link,
1047 "PHY status changed but maxed out on retries, " 1044 "PHY status changed but maxed out on retries, giving up\n");
1048 "giving up\n"); 1045 ata_link_warn(link,
1049 ata_link_printk(link, KERN_WARNING, 1046 "Manually issue scan to resume this link\n");
1050 "Manully issue scan to resume this link\n");
1051 } 1047 }
1052 } 1048 }
1053 1049
1054 if (cnt) { 1050 if (cnt) {
1055 ata_port_printk(ap, KERN_INFO, "PMP SError.N set for some " 1051 ata_port_info(ap,
1056 "ports, repeating recovery\n"); 1052 "PMP SError.N set for some ports, repeating recovery\n");
1057 goto retry; 1053 goto retry;
1058 } 1054 }
1059 1055
@@ -1081,9 +1077,8 @@ static int sata_pmp_eh_recover(struct ata_port *ap)
1081 goto retry; 1077 goto retry;
1082 } 1078 }
1083 1079
1084 ata_port_printk(ap, KERN_ERR, 1080 ata_port_err(ap, "failed to recover PMP after %d tries, giving up\n",
1085 "failed to recover PMP after %d tries, giving up\n", 1081 ATA_EH_PMP_TRIES);
1086 ATA_EH_PMP_TRIES);
1087 sata_pmp_detach(pmp_dev); 1082 sata_pmp_detach(pmp_dev);
1088 ata_dev_disable(pmp_dev); 1083 ata_dev_disable(pmp_dev);
1089 1084