Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3ff42e4f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:
  firewire: fw-core: make two variables static
  firewire: fw-ohci: dma_free_coherent needs IRQs enabled
  firewire: fw-sbp2: set correct maximum payload (fixes CardBus adapters)
  ieee1394: sbp2: more correct Kconfig dependencies
  ieee1394: revert "sbp2: enforce 32bit DMA mapping"
parents 7a883eaf ae57988f
Loading
Loading
Loading
Loading
+13 −7
Original line number Diff line number Diff line
@@ -907,6 +907,8 @@ static void bus_reset_tasklet(unsigned long data)
	int self_id_count, i, j, reg;
	int generation, new_generation;
	unsigned long flags;
	void *free_rom = NULL;
	dma_addr_t free_rom_bus = 0;

	reg = reg_read(ohci, OHCI1394_NodeID);
	if (!(reg & OHCI1394_NodeID_idValid)) {
@@ -970,8 +972,8 @@ static void bus_reset_tasklet(unsigned long data)
	 */

	if (ohci->next_config_rom != NULL) {
		dma_free_coherent(ohci->card.device, CONFIG_ROM_SIZE,
				  ohci->config_rom, ohci->config_rom_bus);
		free_rom     = ohci->config_rom;
		free_rom_bus = ohci->config_rom_bus;
		ohci->config_rom      = ohci->next_config_rom;
		ohci->config_rom_bus  = ohci->next_config_rom_bus;
		ohci->next_config_rom = NULL;
@@ -990,6 +992,10 @@ static void bus_reset_tasklet(unsigned long data)

	spin_unlock_irqrestore(&ohci->lock, flags);

	if (free_rom)
		dma_free_coherent(ohci->card.device, CONFIG_ROM_SIZE,
				  free_rom, free_rom_bus);

	fw_core_handle_bus_reset(&ohci->card, ohci->node_id, generation,
				 self_id_count, ohci->self_id_buffer);
}
@@ -1186,7 +1192,7 @@ ohci_set_config_rom(struct fw_card *card, u32 *config_rom, size_t length)
{
	struct fw_ohci *ohci;
	unsigned long flags;
	int retval = 0;
	int retval = -EBUSY;
	__be32 *next_config_rom;
	dma_addr_t next_config_rom_bus;

@@ -1240,10 +1246,7 @@ ohci_set_config_rom(struct fw_card *card, u32 *config_rom, size_t length)

		reg_write(ohci, OHCI1394_ConfigROMmap,
			  ohci->next_config_rom_bus);
	} else {
		dma_free_coherent(ohci->card.device, CONFIG_ROM_SIZE,
				  next_config_rom, next_config_rom_bus);
		retval = -EBUSY;
		retval = 0;
	}

	spin_unlock_irqrestore(&ohci->lock, flags);
@@ -1257,6 +1260,9 @@ ohci_set_config_rom(struct fw_card *card, u32 *config_rom, size_t length)
	 */
	if (retval == 0)
		fw_core_initiate_bus_reset(&ohci->card, 1);
	else
		dma_free_coherent(ohci->card.device, CONFIG_ROM_SIZE,
				  next_config_rom, next_config_rom_bus);

	return retval;
}
+4 −1
Original line number Diff line number Diff line
@@ -984,6 +984,7 @@ static int sbp2_scsi_queuecommand(struct scsi_cmnd *cmd, scsi_done_fn_t done)
	struct fw_unit *unit = sd->unit;
	struct fw_device *device = fw_device(unit->device.parent);
	struct sbp2_command_orb *orb;
	unsigned max_payload;

	/*
	 * Bidirectional commands are not yet implemented, and unknown
@@ -1017,8 +1018,10 @@ static int sbp2_scsi_queuecommand(struct scsi_cmnd *cmd, scsi_done_fn_t done)
	 * specifies the max payload size as 2 ^ (max_payload + 2), so
	 * if we set this to max_speed + 7, we get the right value.
	 */
	max_payload = min(device->max_speed + 7,
			  device->card->max_receive - 1);
	orb->request.misc =
		COMMAND_ORB_MAX_PAYLOAD(device->max_speed + 7) |
		COMMAND_ORB_MAX_PAYLOAD(max_payload) |
		COMMAND_ORB_SPEED(device->max_speed) |
		COMMAND_ORB_NOTIFY;

+2 −2
Original line number Diff line number Diff line
@@ -734,7 +734,7 @@ fw_core_handle_response(struct fw_card *card, struct fw_packet *p)
}
EXPORT_SYMBOL(fw_core_handle_response);

const struct fw_address_region topology_map_region =
static const struct fw_address_region topology_map_region =
	{ .start = 0xfffff0001000ull, .end = 0xfffff0001400ull, };

static void
@@ -772,7 +772,7 @@ static struct fw_address_handler topology_map = {
	.address_callback	= handle_topology_map,
};

const struct fw_address_region registers_region =
static const struct fw_address_region registers_region =
	{ .start = 0xfffff0000000ull, .end = 0xfffff0000400ull, };

static void
+1 −1
Original line number Diff line number Diff line
@@ -231,7 +231,7 @@ struct fw_card {
	unsigned long reset_jiffies;

	unsigned long long guid;
	int max_receive;
	unsigned max_receive;
	int link_speed;
	int config_rom_generation;

+1 −1
Original line number Diff line number Diff line
@@ -97,7 +97,7 @@ config IEEE1394_SBP2

config IEEE1394_SBP2_PHYS_DMA
	bool "Enable replacement for physical DMA in SBP2"
	depends on IEEE1394 && IEEE1394_SBP2 && EXPERIMENTAL && (X86_32 || PPC_32)
	depends on IEEE1394_SBP2 && VIRT_TO_BUS && EXPERIMENTAL
	help
	  This builds sbp2 for use with non-OHCI host adapters which do not
	  support physical DMA or for when ohci1394 is run with phys_dma=0.
Loading