Commit cbc3ec8f authored by David S. Miller's avatar David S. Miller

[TIGON3]: Force use of PCI config space reg writes when loading firmare.

parent fa34ef6f
...@@ -3321,10 +3321,16 @@ static int tg3_load_firmware_cpu(struct tg3 *tp, u32 cpu_base, u32 cpu_scratch_b ...@@ -3321,10 +3321,16 @@ static int tg3_load_firmware_cpu(struct tg3 *tp, u32 cpu_base, u32 cpu_scratch_b
int cpu_scratch_size, struct fw_info *info) int cpu_scratch_size, struct fw_info *info)
{ {
int err, i; int err, i;
u32 orig_tg3_flags = tp->tg3_flags;
/* Force use of PCI config space for indirect register
* write calls.
*/
tp->tg3_flags |= TG3_FLAG_PCIX_TARGET_HWBUG;
err = tg3_reset_cpu(tp, cpu_base); err = tg3_reset_cpu(tp, cpu_base);
if (err) if (err)
return err; goto out;
for (i = 0; i < cpu_scratch_size; i += sizeof(u32)) for (i = 0; i < cpu_scratch_size; i += sizeof(u32))
tg3_write_indirect_reg32(tp, cpu_scratch_base + i, 0); tg3_write_indirect_reg32(tp, cpu_scratch_base + i, 0);
...@@ -3349,7 +3355,11 @@ static int tg3_load_firmware_cpu(struct tg3 *tp, u32 cpu_base, u32 cpu_scratch_b ...@@ -3349,7 +3355,11 @@ static int tg3_load_firmware_cpu(struct tg3 *tp, u32 cpu_base, u32 cpu_scratch_b
(info->data_data ? (info->data_data ?
info->data_data[i] : 0)); info->data_data[i] : 0));
return 0; err = 0;
out:
tp->tg3_flags = orig_tg3_flags;
return err;
} }
/* tp->lock is held. */ /* tp->lock is held. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment