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

Commit 545c8d8d authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

ia64: Convert sn to new irq_chip functions

parent 42c9a74d
Loading
Loading
Loading
Loading
+23 −21
Original line number Original line Diff line number Diff line
@@ -78,34 +78,34 @@ u64 sn_intr_redirect(nasid_t local_nasid, int local_widget,
	return ret_stuff.status;
	return ret_stuff.status;
}
}


static unsigned int sn_startup_irq(unsigned int irq)
static unsigned int sn_startup_irq(struct irq_data *data)
{
{
	return 0;
	return 0;
}
}


static void sn_shutdown_irq(unsigned int irq)
static void sn_shutdown_irq(struct irq_data *data)
{
{
}
}


extern void ia64_mca_register_cpev(int);
extern void ia64_mca_register_cpev(int);


static void sn_disable_irq(unsigned int irq)
static void sn_disable_irq(struct irq_data *data)
{
{
	if (irq == local_vector_to_irq(IA64_CPE_VECTOR))
	if (data->irq == local_vector_to_irq(IA64_CPE_VECTOR))
		ia64_mca_register_cpev(0);
		ia64_mca_register_cpev(0);
}
}


static void sn_enable_irq(unsigned int irq)
static void sn_enable_irq(struct irq_data *data)
{
{
	if (irq == local_vector_to_irq(IA64_CPE_VECTOR))
	if (data->irq == local_vector_to_irq(IA64_CPE_VECTOR))
		ia64_mca_register_cpev(irq);
		ia64_mca_register_cpev(data->irq);
}
}


static void sn_ack_irq(unsigned int irq)
static void sn_ack_irq(struct irq_data *data)
{
{
	u64 event_occurred, mask;
	u64 event_occurred, mask;
	unsigned int irq = data->irq & 0xff;


	irq = irq & 0xff;
	event_occurred = HUB_L((u64*)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED));
	event_occurred = HUB_L((u64*)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED));
	mask = event_occurred & SH_ALL_INT_MASK;
	mask = event_occurred & SH_ALL_INT_MASK;
	HUB_S((u64*)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED_ALIAS), mask);
	HUB_S((u64*)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED_ALIAS), mask);
@@ -206,9 +206,11 @@ finish_up:
	return new_irq_info;
	return new_irq_info;
}
}


static int sn_set_affinity_irq(unsigned int irq, const struct cpumask *mask)
static int sn_set_affinity_irq(struct irq_data *data,
			       const struct cpumask *mask, bool force)
{
{
	struct sn_irq_info *sn_irq_info, *sn_irq_info_safe;
	struct sn_irq_info *sn_irq_info, *sn_irq_info_safe;
	unsigned int irq = data->irq;
	nasid_t nasid;
	nasid_t nasid;
	int slice;
	int slice;


@@ -237,25 +239,25 @@ void sn_set_err_irq_affinity(unsigned int irq) { }
#endif
#endif


static void
static void
sn_mask_irq(unsigned int irq)
sn_mask_irq(struct irq_data *data)
{
{
}
}


static void
static void
sn_unmask_irq(unsigned int irq)
sn_unmask_irq(struct irq_data *data)
{
{
}
}


struct irq_chip irq_type_sn = {
struct irq_chip irq_type_sn = {
	.name			= "SN hub",
	.name			= "SN hub",
	.startup	= sn_startup_irq,
	.irq_startup		= sn_startup_irq,
	.shutdown	= sn_shutdown_irq,
	.irq_shutdown		= sn_shutdown_irq,
	.enable		= sn_enable_irq,
	.irq_enable		= sn_enable_irq,
	.disable	= sn_disable_irq,
	.irq_disable		= sn_disable_irq,
	.ack		= sn_ack_irq,
	.irq_ack		= sn_ack_irq,
	.mask		= sn_mask_irq,
	.irq_mask		= sn_mask_irq,
	.unmask		= sn_unmask_irq,
	.irq_unmask		= sn_unmask_irq,
	.set_affinity	= sn_set_affinity_irq
	.irq_set_affinity	= sn_set_affinity_irq
};
};


ia64_vector sn_irq_to_vector(int irq)
ia64_vector sn_irq_to_vector(int irq)