From: Randy Dunlap Add and use 'noacpi' parameter for libata-acpi. Add and use 'printk' parameter for libata (parts). Update Documentation/kernel-parameters.txt, including atapi_enabled. Signed-off-by: Randy Dunlap Cc: Jeff Garzik Signed-off-by: Andrew Morton --- Documentation/kernel-parameters.txt | 13 +++++++++++++ drivers/scsi/libata-acpi.c | 12 ++++++++++++ drivers/scsi/libata-core.c | 10 ++++++++++ drivers/scsi/libata.h | 2 ++ 4 files changed, 37 insertions(+) diff -puN Documentation/kernel-parameters.txt~additional-libata-parameters Documentation/kernel-parameters.txt --- devel/Documentation/kernel-parameters.txt~additional-libata-parameters 2006-02-07 13:18:55.000000000 -0800 +++ devel-akpm/Documentation/kernel-parameters.txt 2006-02-07 13:18:55.000000000 -0800 @@ -41,6 +41,7 @@ restrictions referred to are that the re ISAPNP ISA PnP code is enabled. ISDN Appropriate ISDN support is enabled. JOY Appropriate joystick support is enabled. + LIBATA libata driver is enabled. LP Printer support is enabled. LOOP Loopback device support is enabled. M68k M68k architecture is enabled. @@ -245,6 +246,9 @@ running once the system is up. ataflop= [HW,M68k] + atapi_enabled= [LIBATA] Enable discovery & support of ATAPI devices + Format: (0=off, 1=on) + atarimouse= [HW,MOUSE] Atari Mouse atascsi= [HW,SCSI] Atari SCSI @@ -984,6 +988,10 @@ running once the system is up. emulation library even if a 387 maths coprocessor is present. + noacpi= [LIBATA] Disables use of ACPI in libata suspend/resume + when set. + Format: + noalign [KNL,ARM] noapic [SMP,APIC] Tells the kernel to not make use of any @@ -1228,6 +1236,11 @@ running once the system is up. autoconfiguration. Ranges are in pairs (memory base and size). + printk= [LIBATA] Set libata printk level (mask). + The values are defined in include/linux/libata.h. + The default value is 1 (ATA_MSG_DRV). + Format: + profile= [KNL] Enable kernel profiling via /proc/profile Format: [schedule,] Param: "schedule" - profile schedule points. diff -puN drivers/scsi/libata-acpi.c~additional-libata-parameters drivers/scsi/libata-acpi.c --- devel/drivers/scsi/libata-acpi.c~additional-libata-parameters 2006-02-07 13:18:55.000000000 -0800 +++ devel-akpm/drivers/scsi/libata-acpi.c 2006-02-07 13:18:55.000000000 -0800 @@ -212,6 +212,9 @@ int ata_acpi_push_id(struct ata_port *ap struct acpi_object_list input; union acpi_object in_params[1]; + if (noacpi) + return 0; + if (ata_msg_probe(ap)) printk(KERN_DEBUG "%s: ap->id: %d, ix = %d, port#: %d, hard_port#: %d\n", @@ -321,6 +324,9 @@ int do_drive_get_GTF(struct ata_port *ap *gtf_address = 0UL; *obj_loc = 0UL; + if (noacpi) + return 0; + if (!ata_dev_present(atadev) || (ap->flags & ATA_FLAG_PORT_DISABLED)) { if (ata_msg_probe(ap)) @@ -508,6 +514,9 @@ int do_drive_set_taskfiles(struct ata_po __FUNCTION__, ap->id, ap->port_no, ap->hard_port_no); + if (noacpi) + return 0; + if (!ata_dev_present(atadev) || (ap->flags & ATA_FLAG_PORT_DISABLED)) goto out; @@ -557,6 +566,9 @@ int ata_acpi_exec_tfs(struct ata_port *a if (ata_msg_probe(ap)) printk(KERN_DEBUG "%s: ENTER:\n", __FUNCTION__); + if (noacpi) + return 0; + for (ix = 0; ix < ATA_MAX_DEVICES; ix++) { if (ata_msg_probe(ap)) printk(KERN_DEBUG "%s: call get_GTF, ix=%d\n", diff -puN drivers/scsi/libata-core.c~additional-libata-parameters drivers/scsi/libata-core.c --- devel/drivers/scsi/libata-core.c~additional-libata-parameters 2006-02-07 13:18:55.000000000 -0800 +++ devel-akpm/drivers/scsi/libata-core.c 2006-02-07 13:18:55.000000000 -0800 @@ -79,6 +79,14 @@ int atapi_enabled = 0; module_param(atapi_enabled, int, 0444); MODULE_PARM_DESC(atapi_enabled, "Enable discovery of ATAPI devices (0=off, 1=on)"); +int noacpi = 0; +module_param(noacpi, int, 0444); +MODULE_PARM_DESC(noacpi, "Disables use of ACPI in suspend/resume when set"); + +int libata_printk = ATA_MSG_DRV; +module_param_named(printk, libata_printk, int, 0644); +MODULE_PARM_DESC(printk, "Set libata printk flags"); /* in linux/libata.h */ + MODULE_AUTHOR("Jeff Garzik"); MODULE_DESCRIPTION("Library module for ATA devices"); MODULE_LICENSE("GPL"); @@ -5133,6 +5141,8 @@ int ata_device_add(const struct ata_prob (ap->mwdma_mask << ATA_SHIFT_MWDMA) | (ap->pio_mask << ATA_SHIFT_PIO); + ap->msg_enable = libata_printk; + /* print per-port info to dmesg */ printk(KERN_INFO "ata%u: %cATA max %s cmd 0x%lX ctl 0x%lX " "bmdma 0x%lX irq %lu\n", diff -puN drivers/scsi/libata.h~additional-libata-parameters drivers/scsi/libata.h --- devel/drivers/scsi/libata.h~additional-libata-parameters 2006-02-07 13:18:55.000000000 -0800 +++ devel-akpm/drivers/scsi/libata.h 2006-02-07 13:18:55.000000000 -0800 @@ -41,6 +41,8 @@ struct ata_scsi_args { /* libata-core.c */ extern int atapi_enabled; +extern int noacpi; +extern int libata_printk; extern struct ata_queued_cmd *ata_qc_new_init(struct ata_port *ap, struct ata_device *dev); extern int ata_rwcmd_protocol(struct ata_queued_cmd *qc); _