From patchwork Sat Aug 13 18:42:57 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Darren Stevens X-Patchwork-Id: 658997 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3sBXJB3x7qz9syB for ; Sun, 14 Aug 2016 05:44:10 +1000 (AEST) Received: from ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 3sBXJB37tjzDr6B for ; Sun, 14 Aug 2016 05:44:10 +1000 (AEST) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.135]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3sBXGz4DPGzDr2T for ; Sun, 14 Aug 2016 05:43:05 +1000 (AEST) Received: from [127.0.0.1] ([86.167.175.58]) by mrelayeu.kundenserver.de (mreue005) with ESMTPA (Nemesis) id 0LzWOk-1bC83642CY-014hZE; Sat, 13 Aug 2016 21:42:59 +0200 From: Darren Stevens To: linuxppc-dev@lists.ozlabs.org Date: Sat, 13 Aug 2016 19:42:57 +0100 (BST) Message-ID: <48a33908b3a.5917bc37@auth.smtp.1and1.co.uk> User-Agent: YAM/2.9p1 (AmigaOS4; PPC; rv:20140418r7798) Subject: [PATCH RFC] powerpc/pasemi: Remove hardcoded bus numbers on smbus MIME-Version: 1.0 Content-type: multipart/mixed; boundary="--=_BOUNDARY.6d4b6c10434fcfb1.bb" X-Provags-ID: V03:K0:ycJAwhxR6c5inoe3oTvcTvF1vpWNUB+v3JODGfkdj9FVC+//8sV LHoHKN2mEDo3tQuiqHeNx8iUmN7KxDacmKCSz3CxxYxvid5wz+nAw0tWEKhFEj9JNzQeIOK YOpCA9g4bzLsLK/SmOeTcoiNkRoPkOCTFvrxO+hHaYR6xPGgvQzialZNm9aawDM2yH1PA3h roDM6vP3zqGUEdHdHjssA== X-UI-Out-Filterresults: notjunk:1; V01:K0:uNl54LCWCvU=:qq7pWMCGh+TttbvSvneq2x PsmgtS6aD5IYDbX+oA/yIbvvPmWV4TeVafr7v2QjXgoyT+tQV6R2tqjY27x7HEsDeGSxD3Y7F XsHk40emn+MVTLgGnmTb7FeN9LMdGP9Ldp5CMFJrT9LXFS96VuWodW14OA5cyy5O+Khvvo7I1 JZU1z1D1MR1QaRvxMdEyYYf+SlNhkMH1f/kKzqp3+fADI1+LOidluBv+OEzLF5c05NKMl0LqZ SOoDtz23hkrDFNW9TBP9E/jh4SnWJq46nbYEMApB4H14BI8y1RPrF+CLMNx5+XW61rGsKTUq4 H8itWiBoFrGPoAhxkpM3HLuS7d2ieMA8pUBR1Sqpm1UkidvAAjesRFEnZlP4trHzFlfBmpLbh puyiV38yIIqtOKrHcpzT501jP+4JdWOdkTKNMHCG05oXq+R2gfHBqH/akUKX11SXlapGU1xOx jJIRsJSylWoVuGElYGZsPPirI+PWcW3hLV1O62zUm/I3jpVy/1iaxwJKOwmSvghdHEhOlgc9O P9+50Qq4N3GS2H1F1kIWe6QTz4DddAOkwfQc9z+iGCF3cWWV0vuIKla2SMXwozpIYc4IGIEf/ 8PtpBVcMogf5TQ2jSoqwgPfoqePso5ierhXORbE1QaiIreixWeqyLGmTWrUhwdL8ufsXDUyOA zXQ5pXdcyepWrZxLHNiK+Zj3w59tjtmFPsQ2SUMyNErcecgwdSoTriE7lp7sx144PlzM= X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: olof@lixom.net, Christian Zigotzky Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" The pasemi smbus controller uses PCI_FUNC(dev->devfn) to define which number bus to attach to, however this fails when something else is probed first, for example an ATI Radeon graphics card will claim 9 or 10 busses, including the ones the pasemi wants. Patch the driver to call i2c_add_adapter rather than i2c_add_numbered_adapter. Signed-off-by: Darren Stevens --- I've tested this on my X1000, and can now see the pasemi busses when I run i2cdetect, and can even see devices on bus 0, but as this is probably the first time we've had this working, more testing will be needed. I don't know why the bus tries to use bus numbers 0-2, I couldn't see any reason, maybe Olof has an idea? Regards Darren diff --git a/drivers/i2c/busses/i2c-pasemi.c b/drivers/i2c/busses/i2c-pasemi.c index df1dbc9..ecce83e 100644 --- a/drivers/i2c/busses/i2c-pasemi.c +++ b/drivers/i2c/busses/i2c-pasemi.c @@ -365,7 +365,7 @@ static int pasemi_smb_probe(struct pci_dev *dev, smbus->adapter.class = I2C_CLASS_HWMON | I2C_CLASS_SPD; smbus->adapter.algo = &smbus_algorithm; smbus->adapter.algo_data = smbus; - smbus->adapter.nr = PCI_FUNC(dev->devfn); + smbus->adapter.nr = -1; /* set up the sysfs linkage to our parent device */ smbus->adapter.dev.parent = &dev->dev; @@ -373,7 +373,7 @@ static int pasemi_smb_probe(struct pci_dev *dev, reg_write(smbus, REG_CTL, (CTL_MTR | CTL_MRR | (CLK_100K_DIV & CTL_CLK_M))); - error = i2c_add_numbered_adapter(&smbus->adapter); + error = i2c_add_adapter(&smbus->adapter); if (error) goto out_release_region;