Re: [PATCH 3/3 v3] AT91: initialize Compact Flash on AT91SAM9263 cpu

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello.

Stanislaw Gruszka wrote:

[...]

+	if (data->flags & AT91_CF_TRUE_IDE) {
+		/* check if device is present */
+		if (data->det_pin && at91_get_gpio_value(data->det_pin) != 0) {
+			printk(KERN_ERR "AT91 CF True IDE: no device detected\n");
+			return;
+		}
+		if (data->rst_pin) {
+			/* reset the card */
+			at91_set_gpio_output(data->rst_pin, 0);
+			/* wait as defined in ATA7 vol2 (rev 4a) figure 36 */
+			udelay(25);
+			at91_set_gpio_output(data->rst_pin, 1);

I'm still not sure why this is needed. Do you think thta power-on reset is not enough?

HW reset is not needed when board is powered-on. But situation is
diffrent when we have reboot due to board reset booton press.
There are configuration where signal from reset button is connected
to CF card (or disk), in some cases device reset signal is connected to
GPIO with assumption to be asserted by software.

   OK, thanks for the explanation.

I don't know if we can remove this.

   Well, seems worth keeping.

In hw reset case system/driver will run with undefined device state,

What do you mean by undefined? It could have not come out of reset which shoiuld mean that the IDE probing code will have to wait some time before BSY clears -- see ide_port_wait_ready().

in example device can generate interrupts.

Interrupts after any kind of reset? That just shouldn't happen -- it's against the ATA spec at least.

Stanislaw Gruszka

MBR, Sergei
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux