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

Commit 83ad283f authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'arc-fixes-for-4.4-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc

Pull ARC architecture fixes from Vineet Gupta:
 "Fixes for:

 - perf interrupts on SMP: Not enabled (at boot) and disabled (at runtime)
 - stack unwinder regression (for modules, ignoring dwarf3)
 - nsim hosed for non default kernel link base builds"

* tag 'arc-fixes-for-4.4-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
  ARC: smp: Rename platform hook @init_cpu_smp -> @init_per_cpu
  ARC: rename smp operation init_irq_cpu() to init_per_cpu()
  ARC: dw2 unwind: Ignore CIE version !=1 gracefully instead of bailing
  ARC: dw2 unwind: Reinstante unwinding out of modules
  ARC: [plat-sim] unbork non default CONFIG_LINUX_LINK_BASE
  ARC: intc: Document arc_request_percpu_irq() better
  ARCv2: perf: Ensure perf intr gets enabled on all cores
  ARC: intc: No need to clear IRQ_NOAUTOEN
  ARCv2: intc: Fix random perf irq disabling in SMP setup
  ARC: [axs10x] cap ethernet phy to 100 Mbit/sec
parents 7b612255 575a9d4e
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -445,6 +445,7 @@ config LINUX_LINK_BASE
	  However some customers have peripherals mapped at this addr, so
	  However some customers have peripherals mapped at this addr, so
	  Linux needs to be scooted a bit.
	  Linux needs to be scooted a bit.
	  If you don't know what the above means, leave this setting alone.
	  If you don't know what the above means, leave this setting alone.
	  This needs to match memory start address specified in Device Tree


config HIGHMEM
config HIGHMEM
	bool "High Memory Support"
	bool "High Memory Support"
+1 −0
Original line number Original line Diff line number Diff line
@@ -46,6 +46,7 @@
			snps,pbl = < 32 >;
			snps,pbl = < 32 >;
			clocks = <&apbclk>;
			clocks = <&apbclk>;
			clock-names = "stmmaceth";
			clock-names = "stmmaceth";
			max-speed = <100>;
		};
		};


		ehci@0x40000 {
		ehci@0x40000 {
+2 −1
Original line number Original line Diff line number Diff line
@@ -17,7 +17,8 @@


	memory {
	memory {
		device_type = "memory";
		device_type = "memory";
		reg = <0x0 0x80000000 0x0 0x40000000	/* 1 GB low mem */
		/* CONFIG_LINUX_LINK_BASE needs to match low mem start */
		reg = <0x0 0x80000000 0x0 0x20000000	/* 512 MB low mem */
		       0x1 0x00000000 0x0 0x40000000>;	/* 1 GB highmem */
		       0x1 0x00000000 0x0 0x40000000>;	/* 1 GB highmem */
	};
	};


+2 −2
Original line number Original line Diff line number Diff line
@@ -23,7 +23,7 @@
 * @dt_compat:		Array of device tree 'compatible' strings
 * @dt_compat:		Array of device tree 'compatible' strings
 * 			(XXX: although only 1st entry is looked at)
 * 			(XXX: although only 1st entry is looked at)
 * @init_early:		Very early callback [called from setup_arch()]
 * @init_early:		Very early callback [called from setup_arch()]
 * @init_cpu_smp:	for each CPU as it is coming up (SMP as well as UP)
 * @init_per_cpu:	for each CPU as it is coming up (SMP as well as UP)
 * 			[(M):init_IRQ(), (o):start_kernel_secondary()]
 * 			[(M):init_IRQ(), (o):start_kernel_secondary()]
 * @init_machine:	arch initcall level callback (e.g. populate static
 * @init_machine:	arch initcall level callback (e.g. populate static
 * 			platform devices or parse Devicetree)
 * 			platform devices or parse Devicetree)
@@ -35,7 +35,7 @@ struct machine_desc {
	const char		**dt_compat;
	const char		**dt_compat;
	void			(*init_early)(void);
	void			(*init_early)(void);
#ifdef CONFIG_SMP
#ifdef CONFIG_SMP
	void			(*init_cpu_smp)(unsigned int);
	void			(*init_per_cpu)(unsigned int);
#endif
#endif
	void			(*init_machine)(void);
	void			(*init_machine)(void);
	void			(*init_late)(void);
	void			(*init_late)(void);
+2 −2
Original line number Original line Diff line number Diff line
@@ -48,7 +48,7 @@ extern int smp_ipi_irq_setup(int cpu, int irq);
 * @init_early_smp:	A SMP specific h/w block can init itself
 * @init_early_smp:	A SMP specific h/w block can init itself
 * 			Could be common across platforms so not covered by
 * 			Could be common across platforms so not covered by
 * 			mach_desc->init_early()
 * 			mach_desc->init_early()
 * @init_irq_cpu:	Called for each core so SMP h/w block driver can do
 * @init_per_cpu:	Called for each core so SMP h/w block driver can do
 * 			any needed setup per cpu (e.g. IPI request)
 * 			any needed setup per cpu (e.g. IPI request)
 * @cpu_kick:		For Master to kickstart a cpu (optionally at a PC)
 * @cpu_kick:		For Master to kickstart a cpu (optionally at a PC)
 * @ipi_send:		To send IPI to a @cpu
 * @ipi_send:		To send IPI to a @cpu
@@ -57,7 +57,7 @@ extern int smp_ipi_irq_setup(int cpu, int irq);
struct plat_smp_ops {
struct plat_smp_ops {
	const char 	*info;
	const char 	*info;
	void		(*init_early_smp)(void);
	void		(*init_early_smp)(void);
	void		(*init_irq_cpu)(int cpu);
	void		(*init_per_cpu)(int cpu);
	void		(*cpu_kick)(int cpu, unsigned long pc);
	void		(*cpu_kick)(int cpu, unsigned long pc);
	void		(*ipi_send)(int cpu);
	void		(*ipi_send)(int cpu);
	void		(*ipi_clear)(int irq);
	void		(*ipi_clear)(int irq);
Loading