From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751052AbdAQNne (ORCPT ); Tue, 17 Jan 2017 08:43:34 -0500 Received: from mga03.intel.com ([134.134.136.65]:13741 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750888AbdAQNnd (ORCPT ); Tue, 17 Jan 2017 08:43:33 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,244,1477983600"; d="scan'208";a="809901809" Message-ID: <1484660404.2133.170.camel@linux.intel.com> Subject: Re: [PATCH v2 1/1] x86/rtc: Allocate interrupt for platform device From: Andy Shevchenko To: Thomas Gleixner Cc: "Luis R. Rodriguez" , Ingo Molnar , "H . Peter Anvin" , linux-kernel@vger.kernel.org, x86@kernel.org Date: Tue, 17 Jan 2017 15:40:04 +0200 In-Reply-To: References: <20170116172345.3823-1-andriy.shevchenko@linux.intel.com> <20170116190437.GB13946@wotan.suse.de> <1484594499.2133.159.camel@linux.intel.com> Organization: Intel Finland Oy Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.22.3-1 Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 2017-01-16 at 22:00 +0100, Thomas Gleixner wrote: > The early callback does not work, but we have one which is invoked > later > on: x86_init.wallclock_init(). That's invoked after the (IO/APIC) > setup has > been completed. See patch below. Unfortunately it is till too early. Looks like descriptors are not available yet and we still can't get an allocation: [    0.000000] intel_mid: Failed to allocate RTC interrupt. Disabling RTC ... [    0.000000] NR_IRQS:4352 nr_irqs:512 0 > +static void __init intel_mid_legacy_rtc_init(void) > +{ > + struct irq_alloc_info info; > + > + ioapic_set_alloc_attr(&info, NUMA_NO_NODE, 1, 0); > + if (mp_map_gsi_to_irq(RTC_IRQ, IOAPIC_MAP_ALLOC, &info)) { > + pr_info("Failed to allocate RTC interrupt. Disabling > RTC\n"); > + x86_platform.legacy.rtc = 0; > + } > +} > + >  static void intel_mid_arch_setup(void) >  { >   if (boot_cpu_data.x86 != 6) { > @@ -151,6 +162,10 @@ static void intel_mid_arch_setup(void) >   if (intel_mid_ops->arch_setup) >   intel_mid_ops->arch_setup(); >   > + /* If the platform has an RTC make sure the APIC entry is > allocated */ > + if (x86_platform.legacy.rtc) > + x86_init.timers.wallclock_init = > intel_mid_legacy_rtc_init; -- Andy Shevchenko Intel Finland Oy