- 12 Jan, 2016 2 commits
-
-
Rui Miguel Silva authored
If allocation of memory for each supply fail, we should get out of release any individual supply. Signed-off-by:
Rui Miguel Silva <rui.silva@linaro.org> Reported-by:
Johan Hovold <johan@hovoldconsulting.com> Reviewed-by:
Johan Hovold <johan@hovoldconsulting.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Johan Hovold authored
Make sure to release the supplies_lock before returning on errors in gb_power_supplies_setup(). Signed-off-by:
Johan Hovold <johan@hovoldconsulting.com> Reviewed-by:
Rui Miguel Silva <rui.silva@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
- 11 Jan, 2016 18 commits
-
-
Vaibhav Hiremath authored
Add wake_detect support to arche-platform driver which is responsible for SVC control. This patch also adds code for handshaking between AP <=> SVC. The sequence is, 1. AP boots To keep compatibility between DB3 and EVT platform, SVC will be help in reset and AP driver would release it at appropriate time. wake/detect pin (WD8A) = Low reset (SVC/APB1/APB2) = Asserted (as per polarity) 2. AP Driver gets inserted 2.1. AP will deassert reset to SVC (following power on sequence) 2.2. SVC allows 360 milliseconds to elapse after switch boots to work around bug described in ENG-330. 2.3. AP asserts wake/detect pin (WD8A = HIGH) 3. SVC detects assertion of wake/detect pin, and sends "wake out" signal to AP 4. AP receives "wake out" signal, takes AP Bridges through their power on reset sequence as defined in the bridge ASIC reference manuals 5. AP takes USB3613 through its power on reset sequence 6. AP should enumerates AP Bridges Note: ISR has been deliberately removed (not merged) as we are still not sure how it will be used, in runtime usage context. Driver as such doesn't do anything for runtime assert-n-deassert of reset to SVC/APB's, it just simply offloads it to user by exporting required gpio's. The exported gpio's are required for FW flashing from user space. When it comes to usersace manipulated control sequence, user has to manage. Signed-off-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Tested-by:
Michael Scott <michael.scott@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Vaibhav Hiremath authored
Now the complete handshaking between AP<=>SVC would be offloaded to parent driver (arche-platform) who is responsible for SVC control, so the apb-ctrl driver can just simply bring APB's out of reset during probe itself. Along with deasserting reset, this patch renames the local fn to exclusively use it for reset purpose. Note that, driver is exporting reset gpio to user, so user can still flash FW from prompt. Signed-off-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Tested-by:
Michael Scott <michael.scott@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Vaibhav Hiremath authored
With TIME_SYNC functionality, assignment of wake/detect pin will change, WD_8A => to bring APB's out of reset WD_8B => TIME_SYNC operation So in order to support this, we can no longer keep wake_detect gpio in apb-ctrl driver. So remove it. In the subsequent patches, wake_detect support will be added to parent SVC driver (arche-platform) who is responsible for SVC control. Note that, this patch also removes ISR related code. The APB state still is maintained, for future use. Signed-off-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Tested-by:
Michael Scott <michael.scott@linaro.org> Reviewed-by:
Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Viresh Kumar authored
This removes few unwanted headers related to irq, interrupt, regulator, spinlock, etc. Also arrange the rest in alphabetical order to make it more readable. Signed-off-by:
Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Viresh Kumar authored
wake_detect_gpio and resetn_gpio are guaranteed to be valid in apb_ctrl_cleanup() and irq-handler, no need to check for their validity. Signed-off-by:
Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Viresh Kumar authored
Relying on apb_ctrl_cleanup() to do the cleanup for errors that occurred within apb_ctrl_init_seq() isn't a very clean idea. Handle that separately within apb_ctrl_init_seq(). This will clean apb_ctrl_cleanup() in later patches. Signed-off-by:
Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Viresh Kumar authored
If devm_gpio_request() returns an error, we shouldn't try to set the direction of the same gpio. Signed-off-by:
Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Viresh Kumar authored
Use dev_err for errors after which we need to abort the currently running routine and dev_warn for resource allocation failure, with which we can continue to work. Signed-off-by:
Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Viresh Kumar authored
Since NULL could in theory be a valid regulator we ought to check for IS_ERR() rather than for NULL. In practice this is unlikely to be an issue but it's better for neatness. Signed-off-by:
Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Viresh Kumar authored
And so we don't need to check for it. Signed-off-by:
Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by:
Alex Elder <elder@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Viresh Kumar authored
There can be no invalid values in the DTS. The actual pin numbers are assigned by gpiolib when the gpio controller is registered. And so a simple 'gpio < 0' is enough instead of gpio_is_valid() which also checks for 'gpio < ARCH_NR_GPIOS'. This will make the usage of of_get_named_gpio() similar with how it is done in arche-platform driver. Signed-off-by:
Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Viresh Kumar authored
Platform data 'apb' is guaranteed to be valid in arche_apb_ctrl_remove() and so no need to check it. Signed-off-by:
Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Viresh Kumar authored
- s/premits/permits - Remove blank lines at the end of the file Signed-off-by:
Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Viresh Kumar authored
Propagate errors returned by of_get_named_gpio() instead of sending -ENODEV. Signed-off-by:
Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Viresh Kumar authored
svc_reset_gpio is guaranteed to be valid in arche_platform_cleanup. Drop the useless check. Signed-off-by:
Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Viresh Kumar authored
The current implementation around of_platform_populate() is not so great. On error, we first print an error message, followed by a success message and finally we return an error. And over that we don't undo what we did initially. This patch puts the APB back into reset and create a separate error path to make things clear. Signed-off-by:
Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Viresh Kumar authored
Populating APBs operation can potentially fail and it would be better if we export the GPIOs towards then end of the routine, so that we don't need to unexport them on error cases. Signed-off-by:
Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Viresh Kumar authored
arche_pdata is guaranteed to be valid in arche_platform_remove(). Signed-off-by:
Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
- 09 Jan, 2016 7 commits
-
-
Eli Sennesh authored
The bootrom protocol issues no dynamic debugging messages when it functions successfully. Use dev_dbg() to fix that by issuing kernel logs when firmware download works. Signed-off-by:
Eli Sennesh <esennesh@leaflabs.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Johan Hovold authored
Use the host device and connection name when logging errors as the version-request helper must not assume that all connection have a bundle. Signed-off-by:
Johan Hovold <johan@hovoldconsulting.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Johan Hovold authored
The bus code should only match bundle devices for now, and must not assume all greybus devices are bundles. Signed-off-by:
Johan Hovold <johan@hovoldconsulting.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Johan Hovold authored
Add missing bus type to driver structure when registering a greybus driver. Signed-off-by:
Johan Hovold <johan@hovoldconsulting.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Johan Hovold authored
Add greybus driver-data accessors. Signed-off-by:
Johan Hovold <johan@hovoldconsulting.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Jacopo Mondi authored
Add support for the flags field of the stream configure request that was recently added to the camera protocol and update the debugfs arguments parsing accordingly. The stream configure response layout is also updated to the latest protocol specification. Signed-off-by:
Jacopo Mondi <jacopo.mondi@linaro.org> Signed-off-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Laurent Pinchart authored
The link config operation was a hack only designed to fulfill the camera driver's needs. Now that a standard operation is defined for the same purpose, implement it and remove the hack. Signed-off-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
- 07 Jan, 2016 4 commits
-
-
Vaibhav Hiremath authored
With addition of handshaking between AP <=> SVC, driver brings out APB out of reset only on reception of WAKE_MOD signal from SVC. So remove the deassertion from probe. Signed-off-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Vaibhav Hiremath authored
This patch enables handshaking of AP and SVC using wake_detect gpio (WD_8A and WD_8B). Note that WAKE_DETECT polarity is active-high, so in order to enable handshaking between AP <=> SVC, we need to set wake_detect gpio to low initially, so that driver can send WAKE_DET signal (active-high) to SVC and then SVC can send back WAKE_MOD signal (active-low). And on reception of WAKE_MOD signal, driver would bring respective APB out of reset. WD_8A => APB1 WD_8B => APB2 Signed-off-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Vaibhav Hiremath authored
In order to allow user to flash the firmware to, SVC: user need to assert the reset first, set sysboot pin and deassert reset. And then issue a flashing command. And APB: User need to assert the reset first, and then issue flashing command. So this patch exports the gpio's to user. Signed-off-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Laurent Pinchart authored
Use 4 lanes at 960MHz to support camera modules requiring higher bandwidths until we implement support for dynamic bandwidth calculation. Signed-off-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
- 05 Jan, 2016 1 commit
-
-
Greg Kroah-Hartman authored
No need to have two separate arche platform drivers, that's just crazy, so merge them both together to be only one kernel module. Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com> Reviewed-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org> Tested-by:
Vaibhav Hiremath <vaibhav.hiremath@linaro.org>
-
- 30 Dec, 2015 6 commits
-
-
Vaibhav Hiremath authored
It seems we need to delete platform_dev of all childs explicitly, in _remove() fn callback of parent driver. There were some discussions about having of_platform_unpopulate(), but it never made it to mainline. https://lkml.org/lkml/2013/7/19/615 There are some drivers which are removing platform_dev explicitly, as done in this patch. Note that, without this, multiple insmod-rmmod won't work, as I see driver probe gets invoked twice and leads to failure of probe. Signed-off-by:
Vaibhav Hiremath <hiremath_vaibhav@projectara.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Johan Hovold authored
Make sure to tear down the data connection also on failure to configure the link by setting the data_connected flag immediately after creating the connection. Signed-off-by:
Johan Hovold <johan@hovoldconsulting.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Johan Hovold authored
Fix memory leak in capture-request handler by making sure to release the operation request buffer after sending the request. Signed-off-by:
Johan Hovold <johan@hovoldconsulting.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Johan Hovold authored
Fix memory leak in configure-streams error path by making sure to release the operation buffers before returning. Signed-off-by:
Johan Hovold <johan@hovoldconsulting.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Viresh Kumar authored
The version of the currently running firmware on the module is useful for userspace as it can be used to find if an update is available or not. This patch fetches interface's version with a new control operation and exposes the same in userspace. Signed-off-by:
Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by:
Johan Hovold <johan@hovoldconsulting.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Viresh Kumar authored
Two exactly same modules can be uniquely identified using module's serial-number. This patch updates the interface hotplug event to also receive the serial-number of the module. Signed-off-by:
Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by:
Johan Hovold <johan@hovoldconsulting.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
- 23 Dec, 2015 2 commits
-
-
Viresh Kumar authored
gb_svc_read_and_clear_module_boot_status() relies on the values of ddbl1_manufacturer_id and ddbl1_product_id to distinguish between ES2 and ES3 chips, but those values are set for the interface structure only after gb_svc_read_and_clear_module_boot_status() is called. This makes ES2 module to fail with following errors: greybus 1-2: Module not ready yet greybus 1-svc: failed to clear boot status of interface 2: -19 Fix this by setting these values before calling gb_svc_read_and_clear_module_boot_status(). Fixes: 51f1dc421b1f ("firmware and svc: detect the difference between ES2 and ES3 chips") Signed-off-by:
Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by:
Johan Hovold <johan@hovoldconsulting.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-
Bryan O'Donoghue authored
The greybus specification reserves SVC type 0x0d-0x0f for timesync. 53124d73 ('svc: Add support for the link config operation') allocated the next available type 0x0d which conflicts with the specification. Change the type to 0x10 to ensure kernel and specification agree. Signed-off-by:
Bryan O'Donoghue <bryan.odonoghue@linaro.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com>
-